中南大学c++课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学
《高级程序设计实践(C++)》
课程设计报告
设计题目教学设备管理系统
指导老师
设计者
专业班级
设计日期
目录
一课题的基本内容和要求二程序功能简介
三主体内容:
1 设计分析
2 程序整体结构
3 部分模块的结构
4 相关模块源程序
5 操作方法
6试验结果
7设计体会
8 参考文献
一基本内容和要求
(一)基本要求
本设计采用教师指导、学生自学和独立编程操作方式,先由学生查阅与本设计有关的书籍和资料,利用Visual C++ 6.0设计环境与开发工具,在两周时间内,完成课程设计内容中的一个管理系统,具体要求如下:
1、独立思考:独立完成课程设计中各任务的设计和调试。
2、上机准备:每次上机前,要事先编制好准备调试的程序,
认真想好调试步骤和有关环境的设置方法,准备好有关的文
件。
3、数据管理:管理系统中的数据可用数据库(如Access数据
库)的形式保存,也可用普通文件(文本文件或二进制文件)
的形式保存。
4、程序要求:界面美观、可操作性强、稳定性好。
(二)基本内容:教学设备管理系统
为方便管理学校教学设备,编写一个教学设备管理系统软件。系统记录必须包括设备编号、设备名称、生产厂家、购置日期、台数、单价、及备注等。
二程序功能简介
(1)添加:增加一台设备的记录到管理系统中。
(2)查询:可以根据设备编号查找某台设备的相关信息,若找到则显示其信息。
(3)修改:在管理系统中修改一台设备的记录。
(4)保存:将所有教学设备信息保存在一个文件中(数据库文件或普通的文本文件)。
(5)读取:从文件中读取已保存了数据。
(6)删除:从管理系统中删除一条记录。
(7)恢复:能恢复被删除的记录。
(8)统计:(A)统计每页合计台数及金额;(B)累计设备的总台数及总金额;(C)统计单价在:200元以下、200~800元之间和800
元以上的设备总台数及总金额。(D)以表格形式打印教学设备
明细表。
(9)其他:可以根据自己的思路设计其他功能。
三主体内容
1 设计分析
根据问题描述和要求,系统要求能够添加设备,按设备编号查询,修改,保存,读取,删除,恢复设备的信息。系统既然具有“数据存盘”功能,设备数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出人员数据,所以系统增加了“人员数据装入”模块,以方便用户使用,避免数据重新录入。考虑到系统实现简捷,人员数据文件采用文本文件,人员数据文件名.
使用面向对象的程序设计思想进行分析,整个系统涉及两个类的信息和操作,设备和购置日期。所以系统主要涉及两个大类:设备类Equipment,日期Date。系统的主体框架就是设备类,考虑系统操作的
设备信息的数量具有不确定性,所以考虑使用链表保存,处理设备信息。设备类包含所以设备信息的一个不带头结点的链表,可以对设备信息进行增,删,改,查询,基础数据设置,数据存盘,数据装入等操作的相关模块(Add,Delete,Modify,Find,Save,Recover,Read,Statistic )作为成员函数。
2程序整体结构 (1)系统功能模块图
3 部分模块的结构 (1) 主函数流程
(2)类的层次图
Equipment
Num Name Date Factory
Amount Prrice
Year Month Day
(4)Equipment
(5)Equipment::Modify
(6)Equipment::Save
四相关模块源程序
#include
#include
#include
#include
using namespace std;
class Date
{
private:
int year;
int month;
int day;
public:
Date(int y = 0 , int m = 0 , int d = 0);
Date & operator = (Date &a);
void foutput(ofstream &fout);
void output();
void alloutput();
};
void Date::alloutput()
{
cout< } void Date::foutput(ofstream &fout) { fout< } Date::Date(int y,int m,int d) { year = y; month = m; day = d; } Date & Date::operator = (Date &a) { year = a.year; month = a.month; day = a.day; return *this; } void Date::output() {