文档介绍:《面向对象程序设计》课程设计
09计应1 09821122 谢燕清
课题设计内容、具备的功能
(一)设计内容
本课程是学生在学习完《程序设计基础》、《面向对象程序设计》课程后,为提高学生使用面向对象的语言解决实际问题的能力设置的一门实践性课程,是计算机科学与技术专业计算机应用方向的必修课。
本课程实验教学的目的是:
使学生通过实践环节深入理解和掌握课堂教学内容,进一步加深理解面向对象的基本理论,掌握基本方法、基本技术。
通过设计一个功能比较完整的,有实际应用价值的应用软件,使学生了解采用面向对象技术开发软件的全部过程,掌握采用面向对象技术开发软件的方法。提高学生使用面向对象方法,和面向对象的语言解决实际问题的能力。
通过本课程设计,为后续《数据库系统原理与应用》《数据结构》《编译原理》等课程打下扎实的专业基础。
学生成绩管理系统,系统存储以下信息:
1) 学生基本信息和成绩;
2) 学生的人数。
1) 根据题目要求,对问题进行需求调查和分析,识别类和对象,合理设计类和对象;
2) 合理设计程序结构,系统各项功能要求在函数中实现。在主函数中设计菜单,通过菜单调用这个函数;
3) 输入输出要求由提取运算符和插入运算符的重载函数实现;公用过程尽可能设计成函数或函数模板;
4) 设计过程中必须考虑程序的健壮性,在关键的地方必须要有容错处理。
(二)具备的功能
系统功能:
(二进制或ASCII文件);
;
;
4查询根据学号,查询相应学生信息;
、姓名、成绩对学生信息排序,并显示;
。
模块(函数)的划分、各模块(函数)的功能、采用的自定义的数据类型
模块(函数)的划分
:
1) 定义抽象类person
protected:
int ID; //学号
char Name[10]; //姓名
public:
virtual bool operator<(Person &)=0; //>运算符重载
virtual bool operator>=(Person &)=0; //<=运算符重载
2) 定义派生数据类student,基类为person类。
Private:
int Score[4]; //成绩
void SwapData(Student *); //交换数据
public:
Student(int =0,char* =NULL,int* =NULL); //构造函数
bool operator<(Person &); //>运算符重载
bool operator>=(Person &); //<=运算符重载
friend ofstream& operator<<(ofstream&,Student*); //<<运算符重载输出到文件
friend ifstream& operator>>(ifstream&,Student*); //>>运算符重载从文件输入
friend ostream_withassign& operator<<(ostream_withassign&,Student*);//<<运
算符重载输出到显示器
friend istream_withassign& operator>>(istream_withassign&,Student*);//>>运算
符重载从键盘输入
friend class List; //List为友元类
3) 定义设计结点类Node
private:
Student *Stup; //指向学生对象指针
Node *Prev,*Next; //指向前后结点指针
public:
Node(); //构造函数
Node(Student *); //构造函数
Node(Node &); //复制构造函数
~Node(); //析构函数
friend class List; //List为友元类
4)定义带有头结点链表类List,私有数据成员为Node *Head,*Tail分别,指向链表头尾:
private:
void InitList(); //初始化函数
public:
List(); //构造函数
~List(); //析构函数
void ClearList(); //清空链表
Node *FindID(int &); //根据学号寻找学生所在结点
void I