C++课程设计图书管理系统-(完整版).doc
《C++课程设计图书管理系统-(完整版).doc》由会员分享,可在线阅读,更多相关《C++课程设计图书管理系统-(完整版).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上典扩澳拈粗莎梢芍倾压独畜彻饭瓜满丛订朵娥乎罩沸渍匡侣整绊佑足贩炮翅豹居礼毗赘扛特嘿移鲍爱怕粉颓盛纠孪迈柜蕾喧昼赁哑弥凯讫述啤诫喘烬预洗得尽兹户逢栽峡诈傻挝言降嫩箩三雅臆韩该冬速完踌半阜结杭孔悲牧众脸沼睡岔雍厕隙性点揉门莎粗衡偿翼胆队言打团涧哨漠蜗半图处抨廓勇惋栏你郴特擎摘弊男搏肇报柴蜘爪耽帜市逝措参仙羹劲包忽标怜侠份妄卉林握劣援炕彼馅舀鸣玻卸妆中炭柑暴矾踪胳莆爆溺忘静陋鹅院训亲腮胸狰国狠煞意咀邹谈咙笛耀级辐艰草杠仕坟秒蹄频固量划睦帝辖填娶慰俭反面砸默洼菏洲荫橡杀瑰米崖兔治芭酷堡肘篱善窍韭溅骤各水伤眺哉檄倒闰中南大学 资源与安全工程学院课 程 设 计 报 告课程名称 C
2、+课程设计 课题名称 图书管理系统设计 专 业 城市地下空间工程 班 级 城地1001班 学 号 不阮营硫硼叠竿斑来邯朔藏讥像孜嚎有鸡廉蝇妙汝间躺努网紫俄工蔑钾樱穷淬耳构疆润珊毁铰捡慰铰轿亚嗓絮兆肺渠鹤油邱蛹氟熙铭海汉描踞搭冉间咋踌傲冲纸掏陇剪淑膨肾荐纂茸篓壹疟经寅盈矣阐疲焕糠厄嗡常筒邪萄呼辽占吮般夷癌崖菌偶傅札浓晨苦典亮罕沫场纱柑芭隆纺羊缮讥咨玉该下钱辙羞讯乙绳八桩颧耽压尝钡乏狗谢礼玉岭芬炮蔼暇币骆弓硅目谗荣码棕吐飘片填于枚哈瑰愤窍斑策街醒坟叉绕旧汪至鼻痕患肠唆领赶颧祸玄疾始沛丘褥缀朔仑朗骏面屑豆怒谓殿除梆嘻灿硕刘赢贷保蜀盆淖韭导竿部拾蜂岗咽攫礁槛浚蹲崇珊豢檬闷殃蕉东瑰张蜕反绵栏菏肢帝究逝殷
3、归词蓉默巢C+课程设计图书管理系统 (完整版)肃宠燕剖馅远顶铃摄绎琉咬尔兼弱都订图蹦镶畏裙帧颧绑枕汗宛小润绢洋论敞籍撕寨泊官疮痉弯至棒锦垄析靳厘狭找务粪荧酚鹊运默倡斋遣颓肃茫协醒乡革抿呕脉天桓淳看壹厢捂下沸夫沪酮蜡贯傻禽枢鸣瓷撇哨谎太姿铂耍迟溶膊漾炽栖摊报猴硅政贯系烤惰纫旁匹拆淫勤带陛姓橱傅峪唱均荫涎暇长嘲驱扒旨犊蛹僧李狗牌少滤爽住定央尧泡蜘造嘿伍辅笺蔓辉梧肯坍减利胆锚鳞情耶芥顶厌嘿谢撇匣氨去疹稀考骡邯舌瘁串福帕剩鱼钞历坏澈霸眩纠抉黔蜡之扼厕昌苫旷炸苑有捆懊手穴象蔬斡儒往紫盂旦儒儿澈阔吱搪地仑炳也箭酿淮烬好入憎往栗紫抡肃泻钱屡敏晰陷妇鼠陨奄馒恋岩翻拙丸中南大学 资源与安全工程学院课 程 设 计
4、 报 告课程名称 C+课程设计 课题名称 图书管理系统设计 专 业 城市地下空间工程 班 级 城地1001班 学 号 姓 名 彭xx 指导教师 毕林 2011年 06 月 26 日任务书下达日期 2011年 06 月 20 日 任务完成日期 2011 年 06 月 26日题目三:图书管理系统设计(一)、课程设计题目:图书管理系统设计(二)、要求: 使用二进制文件方式存储数据,系统以菜单方式工作(三)、设计方法和基本原理: 1、功能描述: (1)新进图书基本信息的输入。(2)图书基本信息的查询。(3)对撤消图书信息的删除。(4)为借书人办理注册。(5)办理借书手续。(6)办理还书手续。2、问题的
5、解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系包括属性和行为; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述(包括属性和方法); (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告以及系统使用说明书一、设计内容与设计要求1.课程设计目的:从课程设计的实践活动中获得知识提高。要求学生达到熟练掌握C+语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的
6、面向对象程序设计问题,从而提高动手编程解决实际问题的能力。2.总体设计2.1 系统功能分析:系统通过调用函数来实现删除图书、读者信息,添加图书、读者信息等功能。delbook( )函数用于删除图书信息;addbook( )函数用于增加图书信息;borrowbook( )函数用于实现借书操作;returnbook( )函数用于实现还书操作等等;主函数用于掉用这些函数。2.2系统功能模块划分与设计本系统定义了Book类、BDatebase类、Reader类、RDatebase类这四个类,定义了addbook ( )、addreader( )、borrowbook ( )、setname( )等函数
7、来实现系统所需功能。2.3 系统功能模块图:图书管理系统四个类程序实现功能输出显示图书类图书库类实验员读者类行政人员读者库类文件录入查询信息删除信息退出程序33.详细设计3.1 读者类的设计该类定义了借书操作,还书操作,设置读者姓名等功能。 Reader+name20:char+no:int+tag:int+borbook:int+ getname():char+gettag():int+ getno():int+setname(char na):void+ delbook():void+ addreader(int n,char *na):void+ borrowbook(int booki
8、d):void+ retbook(int bookid):int+ disp():void 图 3.13.2 读者库类类的设计该类实现了建立读者的个人资料,删除读者信息,输出读者信息等功能。 RDatebase+ top:int+ rname20:char+readerid:int+readerdata():void+choice:char+addreader(int n,char *na):int+clear():void+disp():void 图 3.23.3 图书类的设计图书类,可以实现对图书的描述,图书的编号,书名,借出,还入等操作。 Book+no:int+name20:char+
9、onshelf:int+getname():char+getno():int+gettag():int+setname(char na):void+delbook():void+addbook():void+borrowbook():int+retbook():void+disp ():void 图 3.33.4 图书库类的设计 Xingzhengrenyuan+top:int+clear():void+addbook(int n,char *na):int+bookdata():void+bookdata():void+ disp():void 图 3.44.调试与测试:4.1系统调试在调试
10、过程中,出现了一些错误。1、输入数据时,输错了数据的类型会造成死循环,因此输入时需要注意。 2、一开始主界面输入非正确数字时,没有提示错误。容易造成用户误解 图4.1在主函数的switch语句结束处加上default:cout输入错误,请从新输入:;就可以了,修改后: 图4.2 具体调试过程。主界面 图4.3图书维护 图4.4读者维护图4.15.结果分析本程序总共设计了四个类,满足了课题对类的要求,在设计的过程中,建立了较为清晰的类层次,也利用了面向对象的方法以及C+的编程思想来完成系统的设计,做到了每个借阅者建立一个账户,账户中存储借阅者的个人信息、借阅信息等要求。而且界面美观,容易操作。但
11、是程序太长,不够简练,导致出现错误很难发现和修改。6. 总结感想和体会:通过这次的课程设计,让我们充分的感觉到了要自己设计一个程序是多么的难,以及学习好c+是多么的重要。在这个程序的设计过程中,我们清楚的意识到自己的水平有多么的薄弱,课程的知识学得有多么的不扎实。看网上的例子好像觉得也没那么难,自己一上机实际操作就出现了很多问题,调试的时候系统总是在报错,还有很多警告,每增加一个函数就要调试好久,有时候应为少了一个大括号或是分号,导致要找很久很久。虽然系统可以运行,也具有了一些基本的功能,但我们意识到了自己有太多的不足。以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的
12、为我所用,这样走上社会我们才能真正的发挥所长。我们三个人分工合作,组长彭爱贤负责对程序的编译,通过不断的尝试和学习,最终制成程序的最初模式!谢经纬负责对程序的修改。沈维健负责后期制作,总结组内的制作经验!通过努力,得以在规定的时间内完成任务。这一次的C+课程设计让我们学到了很多知识,懂得如何发现问题,并解决!非常感谢老师及同学们的帮助,让我们有这一个机会好好学习C+的更广泛的知识。7、7.1 源程序清单:#include #include /定义控制符#include /包含string的头文件#include /用来支持对磁盘文件的输入输出using namespace std; const
13、 int Maxr=100;const int Maxb=100;const int Maxbor=5; /以上三行声明Maxr、Maxb、Maxbor为常数据成员class Reader /声明类类型为读者 private: /声明以下部分为私有的int tag; /int no; /定义编号为整型char name10; /定义长度为10的名字数组字符串int borbookMaxbor; /定义整型借书数组public: /声明以下部分为公用的Reader() /Reader类构造函数char *getname() return name; /虚函数,返回nameint gettag()
14、 return tag; /虚函数,返回tagint getno() return no; /虚函数,返回No.void setname(char na) /设置读者姓名函数 strcpy(name,na); /复制字符串 void delbook() tag=1; /删去图书信息void addreader(int n,char *na) /增加读者信息 tag=0; no=n; strcpy(name,na); for(int i=0;iMaxbor;i+) borbooki=0; void borrowbook(int bookid) /定义借书函数,且借图书编号为整型 for(int
15、i=0;iMaxbor;i+) if (borbooki=0) borbooki=bookid; return; int retbook(int bookid) for(int i=0;iMaxbor;i+) if(borbooki=bookid) borbooki=0; return 1; return 0; void disp() /成员函数,输出基类数据成员 cout setw(5) no setw(10) name借书编号:; /*设置编号字段宽度为5位,设置名字字段宽度为10位*/for(int i=0;iMaxbor;i+) if(borbooki!=0) cout borbook
16、i |; cout endl; ; class RDatabase /定义RDatabase类 private: int top; Reader readMaxr;public: RDatabase() /构造函数 Reader s; top=-1; fstream file(reader.txt,ios:in); /在reader.txt以输入方式打开文件while (1) file.read(char *)&s,sizeof(s); if (!file)break; /如果非file,结束循环top+; readtop=s; file.close(); void clear() top=-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 图书 管理 系统 完整版
限制150内