《c++家具管理系统报告书及程序设计(共19页).docx》由会员分享,可在线阅读,更多相关《c++家具管理系统报告书及程序设计(共19页).docx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上C+语言程序设计项目书家具管理系统程序设计华中科技大学土木学院道路桥梁与渡河工程1001班 小组设计方案2011-7-1 目 录一 设计目的 3二 课程设计的内容 3三 课程设计的要求与数据 3四 课程设计应完成的工作 4 五 总体设计(包含几大功能模块)5六 详细设计(各功能模块的具体实现算法流程图)5 七 调试分析(包含各模块的测试用例,及测试结果)6 7.1 源程序 67.2 调试与测试 13 八 总结 16九 成员设计内容 18十 参考资料 19 一、设计目的 (1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法
2、; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。(4)进一步加深、巩固所学课程(C+语言程序设计)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握运用C+语言独立地编写、调试应用程序和进行其它相关设计的技能。二、课程设计的内容 某家具商店现有家具若干,类型包括椅、桌、柜和床等。要求对所有的库存家具都能按照名称或编号进行显示、查找、增加和删除、保存的功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三 课程设计的要求与数据1. 用C+实现系统(1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰
3、的类层次; (3)功能用菜单实现 ; (4)数据的输入输出可根据用户选择,从文件或键盘输入。(5)提交项目源码(带注释)和报告,报告包括设计思路,系统功能,调试过程,程序代码,项目总结。2. 对家具(包括椅子,桌子,柜子和床等)进行管理,以及对所有的库存家具都能按照名称或编号进行显示、查找、增加和删除、保存。3. 家具信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:(1) 记录各家具的名称或编号(2) 查找功能(3) 增加功能(4) 删除功能(5) 保存功能4.在基本要求达到后,可进行创新设计。例如加入类的派生和新的属性及功能等四、课程设计应完成的工作(1)编写算法;(
4、2)算法测试,并有具体的测试结果和结果分析;(3)撰写课程设计报告。内容包括:1) 封面扉页 2) 设计任务书3) 目录4) 总体设计方案(包括流程图)5) 使用说明及运行实例(包括界面)6) 成员设计内容简介7) 项目源程序代码(注意注释的使用)8) 课程设计心得9) 指导教师评语五、总体设计(包含几大功能模块)l 名称输入功能l 查找功能l 增加功能l 删除功能l 保存功能六 详细设计(各功能模块的具体实现算法流程图) 结束开始输出菜单根据菜单输入n的值选择程序输入退出输出保存编号名称删除增加查找七 调试分析(包含各模块的测试用例,及测试结果) 7.1 源程序#include #inclu
5、de #include using namespace std;/家具类class Jiaju /家具的信息protected: char Miaosu10; public: char Bianhao10; char Mingcheng10; /构造函数 Jiaju() strcpy(Miaosu,家具); /从文件导入信息函数 void FromFile(fstream& fs) fs.read(char*)Bianhao,sizeof(char)*10); fs.read(char*)Mingcheng,sizeof(char)*10); fs.read(char*)Miaosu,size
6、of(char)*10); /向文件导出信息函数 void ToFile(fstream& fs) fs.write(Bianhao,sizeof(char)*10); fs.write(Mingcheng,sizeof(char)*10); fs.write(Miaosu,sizeof(char)*10); /显示函数 friend ostream& operator(ostream& os,const Jiaju& jia) os编号:jia.Bianhao, 名称:jia.Mingcheng, 描述:jia.Miaosuendl; return os; ;/椅子类class Yizi:J
7、iajupublic: Yizi() strcpy(Miaosu,椅子); ;/桌子类class Zhuozi:Jiajupublic: Zhuozi() strcpy(Miaosu,桌子); ;/柜子类 class Guizi:Jiajupublic: Guizi() strcpy(Miaosu,柜子); ;/床类class Chuang:Jiajupublic: Chuang() strcpy(Miaosu,床); ;/家具店类class JiajuDian /家具列表 list JiajuList; public: /添加家具函数 void AddJiaju() Jiaju* jj; c
8、har ccc20; int ch; cout请选择家具类型:t1.椅类t2.桌类t3.柜类t4.床类ch; switch(ch) case 1: jj=(Jiaju*)new Yizi(); break; case 2: jj=(Jiaju*)new Zhuozi(); break; case 3: jj=(Jiaju*)new Guizi(); break; case 4: jj=(Jiaju*)new Chuang(); break; default: jj=new Jiaju(); break; cout输入编号:ccc; strcpy(jj-Bianhao,ccc); cout输入名
9、称:ccc; strcpy(jj-Mingcheng,ccc); JiajuList.push_back(*jj); delete jj; /显示列表函数 void Show() list:iterator it; int i; for(i=0,it=JiajuList.begin();it!=JiajuList.end();+it,+i) cout-i-*itendl; /保存列表函数 void ToFile(fstream& fs) list:iterator it; int i=0; for(it=JiajuList.begin();it!=JiajuList.end();+it) i+
10、; fs.write(char*)&i,sizeof(int)*1); for(it=JiajuList.begin();it!=JiajuList.end();+it) Jiaju* jj=&(*it); jj-ToFile(fs); /载入列表函数 void FromFile(fstream& fs) int n; fs.read(char*)&n,sizeof(int)*1); int i; JiajuList.clear(); for(i =0;in;i+) Jiaju jj; jj.FromFile(fs); JiajuList.push_back(jj); /加载文件函数 void
11、 Load() fstream fs; fs.open(1.dat,ios_base:in|ios_base:binary); if(fs.is_open() FromFile(fs); fs.close(); Show(); else coutFile Open Error.endl; /保存文件 void Save() fstream fs; fs.open(1.dat,ios_base:out|ios_base:binary); if(fs.is_open() ToFile(fs); fs.close(); else coutFile Open Error.endl; /增加家具功能 v
12、oid Insert() AddJiaju(); cout家具表已更新endl; Show(); /删除家具功能 void Delete() cout请输入删除的位置:n; list:iterator it; int i=0; bool sch=false; for(it=JiajuList.begin();it!=JiajuList.end();+it) if(i=n) /Jiaju jj=*it; JiajuList.erase(it); sch=true; break; i+; if(sch) cout家具表已更新endl; Show(); else cout删除失败endl; /查找家
13、具功能 void Find() coutch; char xinxi20; coutxinxi; bool found=false; list:iterator it; for(it=JiajuList.begin();it!=JiajuList.end();+it) Jiaju* jj=&(*it); if(ch=1 & strcmp(jj-Bianhao,xinxi)=0) cout*jjMingcheng,xinxi)=0) cout*jjendl; found=true; if(!found) cout没有匹配的项目endl; /功能函数 void Run() cout家具店n; Lo
14、ad(); int ch=1; while(ch) coutch; switch(ch) case 1: Find(); break; case 2: Insert(); break; case 3: Delete(); break; default: Save(); break; system(PAUSE); ;main()JiajuDian j;j.Run();7.2 调试与测试主要程序运行结果运行开始选择1.查找选择1.按编号查找 第十三页查找1选择2.按名称查找输入zhuozi 选择功能2选择功能3选择功能0较完整的编译 八 总结 由于本课题中的许多知识点都没有学过都要靠自己到课外的资
15、料中去查找。在用的时候难免出现这样那样的错误。如开始设计出来的菜单不是预想的那样,而是总个窗中出现混乱。解决的这个问题的办法是调整。一个系统的菜单和提示信息非常重要。如果没有这些用户 根本不知道怎么用你设计的这个系统。在设计的调试过程中也无法顺利的完成调试工作。有了一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。回顾起此次课程设计,我感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,在整整两个礼拜的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识
16、是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识熟悉了,本次课程设计结束了,我们通过这次实践学到了许多知识。学到了设计一个简单的系统。要注意哪些方面。也使我们知道自己哪些方面做得还不够。这不仅是程序设计,更是锻炼我们处理问题的能力,同时也使我们了解到团队合作的可贵.编写程序是件
17、细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!在编写程序的过程中,错误不断出现,不同的类型(如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心,耐心,能不能坚持到底,不能半途而废。 但我们总结出了一点点的经验如下:1、要对系统的功能和要求做出详细的分析,并合理分解任务。2、把分解出来的子任务,做给一个相对独立的模块。3、在设计一个模块之前,要简单构想一下总界面的显视情况。4、针对构想出来的界面进行程序的编写。九 成员设计内容小组成员信息 学号 姓名 一 U2010 *(组长)U20101* *(组员)U20101* *(组员)U20101* *(组员)U20101*( *(组员)U20101* *(组员)U20101* *(组员)U20101* *(组员) 总体设计(包括设计流程、模块函数原型接口设计以及重要模块的程序设计,以及模块组装调试,), 此次项目所有成员都参与进来,包括设计程序及设计报告形式十 参考资料1中南大学C+语言课程设计 2 网上相关资料3C+程序设计教材4大学计算机基础5华中科技大学教学资料 后记:小组成员经过2个星期 的探讨及从网上查阅资料,终于完成了此次程序设计,感谢指导老师*一学期来的教导。专心-专注-专业
限制150内