《C++课程设计报告(图书管理系统)(共23页).doc》由会员分享,可在线阅读,更多相关《C++课程设计报告(图书管理系统)(共23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上目录(1) 实践任务书.,.1(2) 总体设计方案.21.设计分析.22.模块设计.33.流程图.3(3) 使用说明及运行实例.41.系统首页.42.操作主页.43.功能模块.5 (1)新增图书.5(2)更改图书.5(3)删除图书.6(4)查找图书.6(5)统计图书.7(6)清空全部.7(7)退出系统.8(4) 成员设计内容简介.9(5) 项目源程序代码.10(6) 课程设计心得.191. 设计心得体会(侯想).192. 设计心得体会(孙昱).203. 设计心得体会(周易).21(7) 成绩评定及评语.22(一)设计任务书1.题目:图书管理系统2.程序功能组成:程序为
2、图书管理系统。包括以下功能:图书增添,修改,删除,统计,查找,清空记录。3.成员组成与分工: (1)成员组成:机械1309 侯想 机械1309 周易 机械1309 孙昱(2)分工:人员:侯想周易孙昱分工: 1.模块设计2.报告修改1.程序美化程序调试2.报告设计制作1.模块设计2.报告修改 (3)进度安排:时间:进度安排:实施情况:6月23日自由组队,选择设计项目,明确分工。按时完成6月24日26日小组成员进行模块设计,包括编写、查找代码,运行调试代码。按时完成6月27日28日进行程序代码的组合,调试。按时完成7月1日2日进行程序的运行,检查,修改。按时完成7月3日4日提交,答辩。按时完成(二
3、)总体设计方案1设计分析(1)系统功能:图书管理系统基本功能:增加,更改,查找,删除;全部图书记录的统计与显示;快捷清空所有图书记录。(2)系统要求:数据成员char nameStrNum; 用来存放书名。char numberStrNum; 用来存放图书的编号。char kindType; 用来存放图书的类型。int tag; 定义删除标记。int num; 定义图书编号为整形。int add; 增加标记。函数成员Book() 无参构造函数,用于为书名和作者姓名设置默认值。char getkind() 用于获取图书类型。 char getname() 用于获取书名。int getnum()
4、用于获取图书编号。 int gettag() 用于获取删除标记。void setname(char na) 用于设置书名。void setkind(char kin) 用于设置类型。void setauthor(char au) 用于设置作者。void setpress(char pr) 用于设置出版社。void delbook() 用于删除图书。void addbook(int n,char *na,char *kin,char *au.char *pr) 用于增加图书。void disp() 用于输出图书。 (3) 系统特点: 操作界面有颜色(背景蓝,字体白); 功能齐全; 系统稳定,无b
5、ug。2模块设计 共七个模块: (1) 新增图书按编号,书名,类型,作者,出版社信息顺序添加图书;(2) 更改图书按编号查找图书,然后进行信息更改录入;(3) 删除图书按编号查找图书,然后进行删除工作;(4) 查找图书 根据编号查找图书;(5) 统计图书 显示系统所以已录入图书信息;(6) 清空全部 一次性清空系统记录,慎用(无恢复功能);(7) 退出系统3流程图系统首页操作主页退出系统新增图书更改图书删除图书查找图书统计图书清空全部按图书五项基本信息录入按编号选择图书,修改信息(三)使用说明及运行实例1.系统首页注)选择1才正式进入操作图书管理系统,选择0退出系统。2.操作主页注)输入数字1
6、-6进入相应操作模块,输入0则退出系统。3.功能模块(1)新增图书注)进入“新增图书”模块后,分别输入图书的编号,类型,书名,作者,出版社,回车结束操作。(2)更改图书注)进入“更改图书”模块后,输入对应需要更改的类容。(3)删除图书注)进入“删除图书”模块后,输入图书编号,键入y确认删除,n取消删除。(4)查找图书注)进入“查找图书”模块后,输入图书编号,回车后则显示所查找图书,且同时显示图书的信息。(5)统计图书注)进入“统计图书”模块后,即会显示所以系统保存的图书信息。(6)清空全部注)进入“新增图书”模块后,键入y确认清空,n取消清空。(7)退出系统注)在功能模块,键入0,即会返回系统
7、首页。若需重新操作,参考前面类容介绍;若需退出系统,则再键入0,回车,然后任意键退出系统。(四)成员设计内容简介成员设计工作表及简介姓名侯想孙昱周易设计类容1. 图书增加加入图书书名,作者,编号,类型,出版社五种信息,录入记录。2. 图书显示加入编号显示图书记录与信息。3. 图书统计显示所以图书记录。4. 设计报告修改进行报告后期修改。1. 图书删除加入删除指定编号图书信息与记录,带有确认提示。2. 图书清空加入清空所以图书记录信息,带有确认提示系统。3. 图书更改加入按编号显示查找出需修改的图书,然后进行信息修改。1. 系统修改修改源代码,美化操作界面,添加蓝色背景白色字体代码。2. 程序调
8、试调试程序,查看是否存在bug,修复不合理地方。3. 报告设计与制作进行报告结构设计与简单制作,明确设计报告具体内容。(五)项目源程序代码程序源代码:/*/#define StrNum 20#define Type 20#include #include #include #include /输入/输出文件流类using namespace std;const int Maxb=100; /最多可存储的图书class Bookprivate: int tag; /删除标记int num; /图书编号int add; /增加标记char numberStrNum; /编号char nameStr
9、Num; /书名char kindType; /图书类型char authorStrNum; /图书作者char pressStrNum; /出版社public:Book()char getkind() /获取图书类型return kindType; char getname() /获取书名 return nameStrNum; char getauthor() /获取作者return authorStrNum;char getpress() /获取出版社return pressStrNum;int getnum() /获取图书编号 return num; int gettag() /获取删除
10、标记 return tag;void setname(char na) /设置书名strcpy(name,na);void setkind(char kin) /设置类型strcpy(kind,kin);void setauthor(char au) /设置作者strcpy(author,au);void setpress(char pr) /设置出版社strcpy(press,pr);void delbook() /删除图书tag=1;void addbook(int n,char *na,char *kin,char *au,char *pr) /增加图书tag=0;num=n;strcp
11、y(name,na);strcpy(kind,kin);strcpy(author,au);strcpy(press,pr);void disp() /输出图书cout.flags (ios:left); /设置对齐的标志位为左coutsetw(15)numsetw(15)namesetw(13)kindsetw(10)authorsetw(10)presssetw(10)endl;/*/class BDatabaseprivate: int top; /图书记录指针Book bookMaxb; /图书记录public:BDatabase() /构造函数,将book.txt读到book中 Bo
12、ok b;top=-1;fstream file(book.txt,ios:in);while (1)file.read(char *)&b,sizeof(b);if (!file) break;top+;booktop=b;file.close(); void clear() /全删top=-1; int addbook(int n,char *na,char *kin,char *au,char *pr) /增加图书Book *p=query(n);if(NULL=p)top+;booktop.addbook(n,na,kin,au,pr);return 1;return 0;Book *
13、query(int bookid) /查找图书for (int i=0;i=top;i+)if (booki.getnum()=bookid &booki.gettag()=0)return &booki;return NULL;void bookdata(); /图书库void disp() for (int i=0;i=top;i+) if (booki.gettag()=0) booki.disp();BDatabase() /析构函数,将book写到book.txt文件中fstream file(book.txt,ios:out); for (int i=0;i=top;i+)if (
14、booki.gettag()=0)file.write(char *)&booki,sizeof(booki);file.close();void BDatabase:bookdata() char choice;char bname40;char bkind40;char newType20;char bauthor40;char bpress40;int bookid;Book *b;while (choice!=0) coutendl; cout endl;cout 图 书 管 理 系 统 endl; cout endl;cout 1. 新增图书 endl; cout 2. 更改图书 e
15、ndl; cout 3. 删除图书 endl;cout 4. 查找图书 endl;cout 5. 统计图书 endl;cout 6. 清空全部 endl;cout 0. 退出系统 endl;coutendl; coutchoice;switch (choice) case 1:cout输入图书编号:bookid;cout输入图书类型:newType; cout输入图书书名:bname;cout输入图书作者:bauthor;cout输入出版社:bpress;addbook(bookid,bname,newType,bauthor,bpress);break; case 2:cout输入图书编号:
16、bookid;b=query(bookid);if(b=NULL)cout该图书不存在endl; break;cout输入新的书名:bname;b-setname(bname);cout输入新的类型:bkind;b-setkind(bkind);cout输入新的作者:bauthor;b-setauthor(bauthor);cout输入新的出版社:bpress;b-setpress(bpress); break; case 3: cout读入图书编号:bookid;b=query(bookid);if(b=NULL) cout该图书不存在endl; break;char tg1;cout确定要
17、删除此记录吗?(Y/N)tg1;if(tg1!=n&tg1!=N)b-delbook();cout已成功删除该书记录!endl;break;case 4:cout读入图书编号:bookid;b=query(bookid);if (b=NULL)cout该图书不存在endl;break;coutdisp();break;case 5:cout图书编号 图书名称 图书类型 图书作者 出版社 n;disp();break;case 6: char tg2;cout确定要清空所有记录吗?(Y/N)tg2;if(tg2!=n&tg2!=N)clear(); cout已成功清空记录!endl;break;
18、case 0:break;default:cout输入错误,请从新输入(数字为06):;/main() 函数的实现,程序的主界面的引导void main() system(color 3f);char choice;BDatabase BookDB;while(choice!=0) cout欢迎使用endl; cout endl;cout endl;cout endl; cout endl; cout 图 书 管 理 系 统 endl; cout endl; cout endl; cout endl; cout endl; cout endl; cout endl; cout endl; co
19、ut endl; cout endl;cout by 侯想 孙昱 周易 endl;coutendl; coutttt1 进 入 系 统nnttt0 离 开endl;coutchoice;switch(choice)case 1:BookDB.bookdata();break; case 0: coutnnttt欢迎再次使用图书管理系统nn; break;default:cout输入错误,请从新输入:;注)/操作环境:在win7 32位系统中使用软件Microsoftvisualc+6.0简体中文版编写。(六)课程设计心得1.设计心得体会(侯想)说起课程设计,我认为最重要的就是做好设计的预习,认
20、真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。通过此次课程设计,使我更加扎实的掌握了有关C+程序设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过
21、亲自动手制作,使我们掌握的知识不再是纸上谈兵。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的观念。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于解决了。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可。2.设计心得体会(孙昱)对我们大学生而言,课程设计无疑是一个锻炼与
22、提升自我的机会,进一步使我们了解到计算机程序设计基础C+这门课程的意义与实用价值。在做这项任务的过程中,我深刻体会到了自己能力的不足,这来自于我程序设计基础的薄弱和自我锻炼机会的欠缺。这次的C+程序设计实践令我收获颇多,也感慨颇多。首先,我们经常会遇到困难,而这些困难看上去似乎已经超出了自己的能力范围,凭自己无法解决。事实上,是我们自己把困难放大了,在没有真正去接触、去思考、去设法解决问题之前,没有人有权力说自己做不到。其次,我们要学会利用自己拥有的资源,学会运用查阅书籍、上网查阅资料、询问同学的方法来帮助自己解决问题。当然,查阅资料也要讲究方法策略。利用资源,获取帮助对我们来说也是一种重要的
23、能力,会使我们解决问题的过程更加顺利。然后,我们不能轻视平时的基础知识,学会基础知识是完成任务的基础。如果平时学习不认真,基础知识掌握不牢固,到实际运用时就会浪费许多时间,遇到一些不必要的麻烦。我平时对于程序设计不太感兴趣,学习时也不努力,因而在做实践时遇到了不少问题。因此有着扎实的基础知识十分重要。这次的课程设计带给我很大的帮助和收获。我相信,只要通过不懈努力,就能把事情做好。3.设计心得体会(周易)课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当今计算机应用在生活中可以说
24、得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C+又是最常见,功能最强大的一种高级语言,因此做好C+课程设计是十分必要的。 回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整两个周的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,链表通过这次课程设计之后,我们把前
25、面所学过的知识又重新温故了一遍。编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强迫自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多错误和漏洞,不过还是很高兴的。无论如何是我们的劳动成果,是我们经过努力得到的成绩,同时也是学习C+的一次实践作业,我们进步的证明。在课程设计过程中,收获知识,提高能力的同时,我们也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我们一定会把课程设计的精神带到生活中,不畏艰难,勇往直前。(七)报告评定及评语1.成绩表中 南 大 学C+程序设计基础课程设计成绩表 姓名班次学号成绩2.评语班级: 机械1309 学生姓名:侯想 周易 孙昱 指导教师评语(包括工作态度,遵守纪律;基本理论、知识、技能;独立工作能力和分析解决问题的能力;完成任务情况及水平): 指导教师:_ _年_月_日专心-专注-专业
限制150内