Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовой проект на Java

.doc
Скачиваний:
154
Добавлен:
02.05.2014
Размер:
60.42 Кб
Скачать

НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ УКРАИНЫ

«КИЕВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ»

Курсовой проект

по дисциплине

«ОБЬЕКТНО-ОРИЕНТИРОВАНОЕ ПРОГРАМИРОВАНИЕ»

Киев – 2007

Задание

Написать програму для работы с уловным набором данных про успеваемость студентов курса, которая также должна кметь в себе клас для записи таких показателей: ФИО студента, возраст студента, оценки с нескольких предметов, пол и група, а также рассчитывать среднюю успеваемость по курсу, по группе, успеваемость для мальчиков и девочек, успеваемость для отдельного студента и получать полную информацию для студента за его ФИО.

Метод решения

Данная программа состоит из трёх классов Student, BD и sdb.

Подробнее о каждом:

Student хранит информацию про студентов. В нем определен один конструктор, который принимает и сохраняет эту информацию. Еще в этом классе определны методы srednee и toString. Первый возвращает средний бал студента – второй полную информацию о студенте.

BD хранит массив студентов и имеет два конструктора: первый вызывается по умолчанию и создает массив размером в десять записей, второй в качестве парметра принимает целое число и создает массив с таким размером. Метод dobavit добавляет в массив очередного студента. Методы srStud, srKyrs, srGr, srPol возврашают средний бал по группе, курсу, полу, студенту. stName возвращает объект, содержащий информацию о студенте с указанным именем. Show отображает всех студентов в объекте, переданом в переменую out.

Sdb этот класс является наследником класса Applet. Он отображается в

браузере как Java-апплет. В нем переопределен метод init, в этом методе создается объект класса BD, его конструктору передаётся значение 5. Затем создается текстовое поле(объект типа TextArea) и добавляется к форме. В базу данных, с помощью метода dobavit, добавляется пять студентов. Потом все они выводятся в тектсовую область(db.show(text)) и выводится средний бал по одной из групп.

Листинг

Текст файла sdb.java:

import java.awt.*; //импортирование AWT и Applet

import java.applet.*;

public class sdb extends Applet{ //класс определяющий апплет, который

будет отображать в браузере

String msg;

TextArea text; //текстовая область

mass db = new mass(5);

public void init(){ //инициализация апплета

msg = "";

db.dobavit("Fedia", (short)18, "male", "gr-1", (short)1, 5.0, 4.0, 5.0);

db.dobavit("Vasia", (short)18, "male", "gr-1", (short)1, 4.0, 5.0, 4.0);

db.dobavit("Lida", (short)17, "female", "gr-2", (short)1, 5.0, 5.0, 5.0);

db.dobavit("Toha", (short)18, "male", "gr-2", (short)1, 5.0, 5.0, 5.0);

db.dobavit("Vania", (short)18, "male", "gr-4", (short)2, 5.0, 5.0, 5.0);

setBackground(Color.white);

setForeground(Color.green);

text = new TextArea(); //создание текстовой области

add(text); //добавление её к апплету

db.show(text); //отображение базы

String grypa = "gr-1";

text.append("Средний бал в группе " + grypa + ": " + Double.toString(db.srGr("gr-1"))); //средний бал по группе

};

public void start(){

};

public void paint(Graphics g){ //перерисовка

g.drawString(msg, 30, 200);

};

};

Текст файла BD.java:

import java.awt.*; //импортирование пакета, содержащего AWT

public class BD{ //данный класс симулирует базу

int defs = 10; //кол-во студиков по умолчанию

Student studiki[]; //массив студентов

int qual = 0; //количество уже использованных записей

private int curr = 0; //индекс просматриваемого студента

public BD(){ //конструктор по умолчанию

qual = 0;

studiki = new Student[defs];

};

public BD(int size){ //конструктор с заданным размером массива

qual = 0;

studiki = new Student[size];

};

public void dobavit(String FIO, short age, String gender, String groop, short kyrs, double fiz, double math, double prog){ //добавление студента в базу

studiki[qual++] = new Student(FIO, age, gender, groop, kyrs, fiz, math, prog);

}; //addStudent

public double srStud(String FIO){ //среднее по студенту

for (int i = 0; i < qual; i++)

if (studiki[i].FIO.equals(FIO))

return studiki[i].srednee();

return -1;

};

public double srGr(String gr){ //среднее по группе

double summ = 0, q = 0;

for(int i = 0; i < qual; i++){

if (studiki[i].groop.equals(gr)){

summ += studiki[i].srednee();

q++;

};

};

return summ/q;

};

public double srKyrs(short kr){ //среднее по курсу

double summ = 0, q = 0;

for(int i = 0; i < qual; i++){

if (studiki[i].kyrs == kr){

summ += studiki[i].srednee();

q++;

};

};

return summ/q;

};

public double srPol(String gd){ //среднее по полу

double summ = 0, q = 0;

for(int i = 0; i < qual; i++){

if (studiki[i].gender.equals(gd)){

summ += studiki[i].srednee();

q++;

};

};

return summ/q;

};

public Student stName(String name){ //информация о студенте

Student rez = new Student("NO SUCH STUDENT!", (short)-1, "", "", (short)-1, -1.0, -1.0, -1.0);

for(int i = 0; i < qual; i++){

if(studiki[i].FIO.equals(name)) rez = studiki[i];

};

return rez;

};

public void show(TextArea out){ //вывод базы в текствое поле

for(int i = 0; i < qual; i++){

out.append(studiki[i].toString());

};

};

}; //BD

Текст файла Student.java:

public class Student{ //хранит информацию о студнте

String FIO;

short age;

String gender;

String groop;

short kyrs;

double fiz;

double math;

double prog;

Student(String FIO, short age, String gender, String groop, short kyrs, double fiz, double math, double prog){ //конструктор

this.FIO = FIO;

this.age = age;

this.gender = gender;

this.groop = groop;

this.kyrs = kyrs;

this.fiz = fiz;

this.math = math;

this.prog = prog;

};

double srednee(){ //средний бал студента

return (fiz + math + prog)/3;

};

public String toString(){

return "Name: " + FIO + "\n-- age: " + age + "\n-- gender: " + gender + "\n-- group: " + groop + "\n-- kyrs: " + kyrs + "\n-- phisics: " + fiz + "\n-- math: " + math + "\n-- programming: " + prog + "\n\n";

};

};

Выводы

Данная программа имеет графический интерфейс который реализован с помощью пакета AWT(Abstract Window Toolkit) и Applet, который и обеспечивает открытие данной программы не через командную строку, а через Internet Explorer что и обеспечивает данной программе красивый удобный интерфейс и оригинальность.

6