《面向对象程序设计》课程设计-学生成绩管理系统Word格式文档下载.doc
《《面向对象程序设计》课程设计-学生成绩管理系统Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《《面向对象程序设计》课程设计-学生成绩管理系统Word格式文档下载.doc(18页珍藏版)》请在冰豆网上搜索。
1)根据题目要求,对问题进行需求调查和分析,识别类和对象,合理设计类和对象;
2)合理设计程序结构,系统各项功能要求在函数中实现。
在主函数中设计菜单,通过菜单调用这个函数;
3)输入输出要求由提取运算符和插入运算符的重载函数实现;
公用过程尽可能设计成函数或函数模板;
4)设计过程中必须考虑程序的健壮性,在关键的地方必须要有容错处理。
(二)具备的功能
系统功能:
1.系统初始化包括上述文件的创建和读取(二进制或ASCII文件);
2.增加学生新增加学生信息和成绩;
3.删除学生根据学号删除相应学生信息;
4查询根据学号,查询相应学生信息;
5.排序根据学生学号、姓名、成绩对学生信息排序,并显示;
6.修改修改指定学号的学生数据。
二.模块(函数)的划分、各模块(函数)的功能、采用的自定义的数据类型
(一)模块(函数)的划分
1.类的定义:
student.h
1)定义抽象类person
protected:
intID;
//学号
charName[10];
//姓名
public:
virtualbooloperator<
(Person&
)=0;
//>
运算符重载
virtualbooloperator>
=(Person&
//<
=运算符重载
2)定义派生数据类student,基类为person类。
Private:
intScore[4];
//成绩
voidSwapData(Student*);
//交换数据
Student(int=0,char*=NULL,int*=NULL);
//构造函数
booloperator<
);
//>
booloperator>
//<
friendofstream&
operator<
<
(ofstream&
Student*);
//<
运算符重载输出到文件
friendifstream&
operator>
>
(ifstream&
//>
运算符重载从文件输入
friendostream_withassign&
(ostream_withassign&
//<
运
算符重载输出到显示器
friendistream_withassign&
(istream_withassign&
//>
运算
符重载从键盘输入
friendclassList;
//List为友元类
3)定义设计结点类Node
private:
Student*Stup;
//指向学生对象指针
Node*Prev,*Next;
//指向前后结点指针
Node();
//构造函数
Node(Student*);
//构造函数
Node(Node&
//复制构造函数
~Node();
//析构函数
//List为友元类
4)定义带有头结点链表类List,私有数据成员为Node*Head,*Tail分别,指向链表头尾:
voidInitList();
//初始化函数
List();
//构造函数
~List();
voidClearList();
//清空链表
Node*FindID(int&
//根据学号寻找学生所在结点
voidInsert(Node*);
//插入一个学生
Node*CreateNode(Student*);
//建立一个学生结点
voidAdd();
//增加一个学生
voidUpdate();
//修改学生成绩
voidDelete();
//删除一个学生
voidQuery();
//查找一个学生
voidSortID();
//按学号排序
voidSortScore();
//按学生总成绩排序
voidSaveBin();
//以二进制形式保存数据
voidPrintList();
//显示链表
voidPrintTitle();
//显示标题
voidPrintOne(Student*);
//显示一个学生数据
2.student类的实现:
student.cpp
3.node类的实现:
node.cpp
4.list类的实现:
list.cpp
5.主函数:
main.cpp
(二)各模块(函数)的功能
1.实现类和函数声明;
2.实现派生类student的各函数;
3.实现结点类Node的各函数;
4.实现结点类List的各函数。
程序结束运行前,调用SaveBin()函数以二进制形式保存学生数据到文件student.dat中;
5.设计主函数。
主函数中显示功能菜单,通过菜单调用类的成员函数实现系统各项功能。
(三)采用自定义的数据类型
自定义的数据类型:
#ifndefSTUDATA_H
#defineSTUDATA_H
#include<
fstream.h>
intGetID();
classList;
classPerson{//抽象类
};
classStudent:
publicPerson{
intScore[4];
friendostream_withassign&
classNode{
Student*Stup;
classList{
Node*Head,*Tail;
voidInitList();
#endif
三.程序运行流程图
开始
输入选项
输入选项!
=END
保存数据SaveBin()
增加学生、修改成绩、删除学生、查询数据、显示数据、按学号排序、按总成绩排序
注:
在主函数中,输入选项,判断是否