Курсовой проект на Java
.docНАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ УКРАИНЫ
«КИЕВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ»
Курсовой проект
по дисциплине
«ОБЬЕКТНО-ОРИЕНТИРОВАНОЕ ПРОГРАМИРОВАНИЕ»
Киев – 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 что и обеспечивает данной программе красивый удобный интерфейс и оригинальность.