面向对象程序设计课程设计学生成绩管理系统

上传人:枫** 文档编号:469756073 上传时间:2022-11-25 格式:DOC 页数:18 大小:425KB
返回 下载 相关 举报
面向对象程序设计课程设计学生成绩管理系统_第1页
第1页 / 共18页
面向对象程序设计课程设计学生成绩管理系统_第2页
第2页 / 共18页
面向对象程序设计课程设计学生成绩管理系统_第3页
第3页 / 共18页
面向对象程序设计课程设计学生成绩管理系统_第4页
第4页 / 共18页
面向对象程序设计课程设计学生成绩管理系统_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《面向对象程序设计课程设计学生成绩管理系统》由会员分享,可在线阅读,更多相关《面向对象程序设计课程设计学生成绩管理系统(18页珍藏版)》请在金锄头文库上搜索。

1、面向对象程序设计课程设计09计应1 09821122 谢燕清一 课题设计内容、具备的功能(一)设计内容1.性质 本课程是学生在学习完程序设计基础、面向对象程序设计课程后,为提高学生使用面向对象的语言解决实际问题的能力设置的一门实践性课程,是计算机科学与技术专业计算机应用方向的必修课。2.目的 本课程实验教学的目的是:1) 使学生通过实践环节深入理解和掌握课堂教学内容,进一步加深理解面向对象的基本理论,掌握基本方法、基本技术。2) 通过设计一个功能比较完整的,有实际应用价值的应用软件,使学生了解采用面向对象技术开发软件的全部过程,掌握采用面向对象技术开发软件的方法。提高学生使用面向对象方法,和面

2、向对象的语言解决实际问题的能力。3) 通过本课程设计,为后续数据库系统原理与应用数据结构编译原理等课程打下扎实的专业基础。3.任务 学生成绩管理系统,系统存储以下信息:1) 学生基本信息和成绩;2) 学生的人数。4.要求1) 根据题目要求,对问题进行需求调查和分析,识别类和对象,合理设计类和对象;2) 合理设计程序结构,系统各项功能要求在函数中实现。在主函数中设计菜单,通过菜单调用这个函数;3) 输入输出要求由提取运算符和插入运算符的重载函数实现;公用过程尽可能设计成函数或函数模板;4) 设计过程中必须考虑程序的健壮性,在关键的地方必须要有容错处理。(二)具备的功能系统功能:1.系统初始化 包

3、括上述文件的创建和读取(二进制或ASCII文件);2.增加学生 新增加学生信息和成绩;3.删除学生 根据学号删除相应学生信息;4查询 根据学号,查询相应学生信息;5.排序 根据学生学号、姓名、成绩对学生信息排序,并显示;6.修改 修改指定学号的学生数据。二 模块(函数)的划分、各模块(函数)的功能、采用的自定义的数据类型(一) 模块(函数)的划分1.类的定义:student.h1) 定义抽象类personprotected: int ID; /学号char Name10; /姓名public:virtual bool operator运算符重载virtual bool operator=(Pe

4、rson &)=0; /=运算符重载2) 定义派生数据类student,基类为person类。Private:int Score4; /成绩void SwapData(Student *); /交换数据public:Student(int =0,char* =NULL,int* =NULL); /构造函数bool operator运算符重载bool operator=(Person &); /=运算符重载friend ofstream& operator(ofstream&,Student*); /(ifstream&,Student*); /运算符重载从文件输入friend ostream_

5、withassign& operator(ostream_withassign&,Student*);/(istream_withassign&,Student*);/运算 符重载从键盘输入friend class List; /List为友元类3) 定义设计结点类Nodeprivate: Student *Stup; /指向学生对象指针Node *Prev,*Next; /指向前后结点指针public:Node(); /构造函数Node(Student *); /构造函数Node(Node &); /复制构造函数Node(); /析构函数friend class List; /List为友元

6、类4)定义带有头结点链表类List,私有数据成员为Node *Head,*Tail分别,指向链表头尾:private:void InitList(); /初始化函数public:List(); /构造函数List(); /析构函数void ClearList(); /清空链表Node *FindID(int &); /根据学号寻找学生所在结点void Insert(Node *); /插入一个学生Node *CreateNode(Student *); /建立一个学生结点void Add(); /增加一个学生void Update(); /修改学生成绩void Delete(); /删除一个学

7、生void Query(); /查找一个学生void SortID(); /按学号排序void SortScore(); /按学生总成绩排序void SaveBin(); /以二进制形式保存数据void PrintList(); /显示链表void PrintTitle(); /显示标题void PrintOne(Student *); /显示一个学生数据2.student类的实现:student.cpp3.node类的实现:node.cpp4.list类的实现:list.cpp5.主函数:main.cpp(二) 各模块(函数)的功能1.实现类和函数声明;2.实现派生类student的各函数;

8、3.实现结点类Node的各函数;4.实现结点类List的各函数。程序结束运行前,调用SaveBin()函数以二进制形式保存学生数据到文件student.dat中;5. 设计主函数。主函数中显示功能菜单,通过菜单调用类的成员函数实现系统各项功能。(三) 采用自定义的数据类型自定义的数据类型:student.h#ifndef STUDATA_H#define STUDATA_H#includeint GetID();class List;class Person /抽象类protected:int ID;char Name10;public:virtual bool operator=(Perso

9、n &)=0;class Student:public Personint Score4;void SwapData(Student *);public:Student(int =0,char* =NULL,int* =NULL);bool operator=(Person &);friend ofstream& operator(ifstream&,Student*);friend ostream_withassign& operator(istream_withassign&,Student*);friend class List;class NodeStudent *Stup;Node

10、*Prev,*Next;public:Node();Node(Student *);Node(Node &);Node();friend class List;class ListNode *Head,*Tail;void InitList();public:List();List();void ClearList();Node *FindID(int &);void Insert(Node *);Node *CreateNode(Student *);void Add();void Update();void Delete();void Query();void SortID();void SortScore();void SaveBin();void PrintList();void PrintTitle();void PrintOne(Student *);#endif三 程序运行流程图开始输入选项输入选项!=END保存数据SaveBin()增加学生、修改成绩、删除学生、查询数据、显示数据、按学号排序、按总成绩排序注:在主函数中,输入选项,判断是否

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号