




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual C课程设计第 42 页 共 42 页图书馆小型系统课程设计报告二零零七年 九月 二十一日Visual C+ 课程设计题目:图书馆小型管理系统计题目的描述及其要求(1)程序的每个功能可以根据自己的需要进行多次的重复使用,如果想从一个功能跳到另一个功能则需要退回到主菜单。(2)其中借书和还书的过程可以把所借图书的相关信息保存下来,并可以随时对你所输入的信息核实,若有错可以随时修改。(3)设计一个功能:每借一本书所借书的本数就加一,每还一本书就在所借图书的基础上减一。(4)设计一个用来进行罚款的函数,并可以查看借书者的违章情况。(5)为了尽量让这个程序的初用者能够顺利地用这个程序增加一些对这个程序解释的函数。程序的功能简介这是一个简单的图书馆系统管理简单程序,里面包括“借书”、“还书”、“查看图书”、“查看违章记录”、“罚款”、“对输入的错误进行修改”等功能。设计的需求这次我设计所选的题目的是图书馆小型管理系统。因为在当代社会随着人们物质生活水平的提高,精神生活也是日益增进。因此书籍就成了人们作为丰富自己精神生活的途径之一。因此现在的书籍可谓是“浩如烟海”,当然类似图书馆这类的对书籍的管理型单位也是“层出不穷”,这类单位对图书的管理也是必不可少的,依次有必要设计出一套有用的程序来代替人们复杂的人工管理。设计环境与手段这次设计的环境实在Visual C+6.0下进行的,里面用到的主要知识点有“选择语句”、“循环语句”、“类和对象”、“结构体”、“文件流”、“字符串处理”、“函数”等。关键性代码的解释及其流程图)源程序的总体框架的流程图:(源程序总体的框架结构流程图.doc)由上面的流程图可以看出图书馆管理系统实际上是多个循环构成的一个系统,其中的重中之重是“借书 还书”。当然实际中的图书馆管理是一个相当复杂的问题,首先必须有一个完备的数据库,用来记录所有图书的所有信息(但是由于本程序的局限在此程序中只用十本书说明一下问题),而且一些其中的相当一部分内容比较琐碎,必须有足够的耐心与细心来完成。)对关键性代码的说明:) 借书函数(void jieshu( ))流程图:(借书函数(void jieshu( ))流程图:.doc) 通过一定的手段将图书从图书馆顺利的借出,并记录一些相关的信息。借书函数(void jieshu( ))具体的语句如下:void jieshu()stsyem(“cls”);char username12;/ 借书者的姓名char booktitle20;/ 所借图书的名称int cardnumber;/ 借书证号码int booknumber;/ 你所借书的序列号char select;cout booknumber;coutusername;coutcardnumber;coutbooktitle;ifstream get(jieshu.txt);/将借书的一些资料写到到相应的文件夹以便后面进行调用getbooknumber;/取出书的序列号get.close();/关闭a+;/借了一本书则增加一,以便下面统计c1: void jieshudisplay();/c1是为了下面的goto用cout username:n usernameendl;/呈现你所借书的一些资料coutbooktitle:nbooktitleendl;coutcardnumber:ncardnumberendl;coutbooknumber:nbooknumberendl;coutselect;if (select=1)/输入的借书的相关信息正确coutch;if(ch=1)/想继续借书jieshu();/调用借书的函数else/不想继续借书ofstream save(jieshu.txt);/保存你所借过书的一些信息savebooknumberendl;save.close;/关闭main();/继续调用主函数 if (select=0)/输入的借书的相关信息不正确 b1: /b1是下面用到goto时候用的 cout哪个选项错了?n; cout请按照如下的规则进行选择n; /修改的一些选项 coutc-修改cardnumber!n; /修改借书证号 coutu-修改username!n; /修改借书者的姓名 coutb-修改booknumber!n; /修改所借图书的序列号 couth-修改booktitle!n; /修改所借图书的名称 char modify; coutmodify; switch (modify)/进入借书信息中的一些错误信息的修改 case c: int j; coutj; cardnumber=j;/将改正后的借书证号赋给原来输入错误的证号以达到修改的目的 goto c1;/返回到void jieshudisplayer()函数以陈列出修改后的借书信息;以便进一步查看是否有错误进而进行修改 coutm; if(m=1)/要进行继续修改 goto b1;/返回修改菜单进行继续修改 else coutch; if(ch=1)/继续进行借书 jieshu();/返回借书菜单 else/否则对借书的一些信息进行保存 ofstream save(jieshu.txt); savebooknumberendl; save.close; coutnnnnendl; cout恭喜你借书成功nendl; main();/返回主菜单,继续进行其它选项 ; break; caseu: char u10; int i; coutu; for(i=0;i10;i+)/用一个循环语句将正确的借书者的姓名赋给原来输错的借书者姓名以达到修改的目的 usernamei=ui; usernamei=0;/字符串结束的处理 goto c1;/以下功能同上面的解释 coutp; if(p=1) goto b1; else coutch; if(ch=1) jieshu(); else ofstream save(jieshu.txt); savebooknumberendl; save.close; coutnnnnendl; cout恭喜你借书成功nendl; main(); ; break; caseb: char b20; int k; coutb; for (k=0;k20;k+)/用一个循环语句将正确的借出书的名称赋给原来输错的借出书的名称以达到修改的目的 booktitlek=bk; booktitlek=0;/对字符串结束的处理goto c1;/以下的功能同上面的解释 coutq; if(q=1) goto b1; else coutr; if(r=1) jieshu();/返回借书函数 else/保存修改后的借书的相关信息 ofstream save(jieshu.txt); savebooknumberendl; save.close; coutnnnnendl; cout恭喜你借书成功nendl; main();/返回主函数,以便进行另外的操作 ; break; caseh:/同上面借书证号的操作 int h; couth; booknumber=h;goto c1;/同上 coutt; if(t=1) goto b1;/同上 else/同上 coutch; if(ch=1) jieshu(); else/保存一下借书的相关信息 ofstream save(jieshu.txt); savebooknumberendl; save.close; main(); coutnnnnendl; cout恭喜你借书成功nendl; main(); ; break; default:/以防你不是按照提示进行操作的 coutnn你的输入有误,请重试nn; goto b1;/继续进行修改操作 还书函数(void huanshu( ))流程图:还书(void huanshu())函数的流程图.doc 功能:将所借图书经过一定的手段还入图书馆,并对图书的罚款等方面的事宜进行一定的处理与记录。还书函数(void huanshu( ))具体的语句如下:double static fa;/用一个全局变量代表罚款的总额;而且在接下来的void chakan()函数中要用到这个数据 void huanshu ()/进入还书的具体功能的操作 stsyem(“cls”); int hcardnumber;/这是要求借书者输入所要还的书的序列号 int cardnumber;/这是要求图书馆管理员按照你的借书证号输入的你先前结果的书的序列号 int t;/所借天数与15相减的结果一查看是否超期int cha;/借书者输入的书的序列号与管理员输入的序列号进行比较的差 cout cardnumber; couts; if (s=0)/图书馆管理员输入有误,进行重新输入 couta; cardnumber=a;goto c2;/跳到c2处进行接下来的操作 else/图书馆管理员的输入无误 couthcardnumber; get.close(); couthcardnumber;/借书者输入所要还书的序列号,以便于图书馆管理员输入的相比较 coutl; if (l=0)/借书者输入有误,进行修改 couta; hcardnumber=a; else/借书者的输入无误,继续进行下面的操作 coutcardnumber; getjieshu.close(); ifstream gethuanshu(huanshu.txt);gethuanshuhcardnumber;gethuanshu.close(); cha=hcardnumber-cardnumber;/对借书者的输入与管理员的输入是否一致进行判断 if (cha=0)/一致 cout还书成功n; a-;/还书成功,所借的图书的数目减1 coutt;/由管理员输入你借书的天数 if (t15)/所借的书超期 cout对不起你借书已经超过了期限,需要进行罚款n; cout超过的期限为:n; coutt-15天n;/超过的天数 fa=0.5*(t-15);/罚款的总数额(以每天0.5元计算) cout应罚款:n; coutfa元n; if(0t&t=15)/所借的图书没超期cout未超期,无须罚款n;if(t=0)/操作有误cout操作有误,请重试n ;main();/返回函数继续其它操作 void huanshudisplay();/对你的还书的一些情况进行相应的操作 cout你目前未还书的数目为:n; couta本n; coutj; if (j=1)/想继续还书huanshu();/继续调用还书的函数else /不想继续还书,进行另外的操作/保存一下还书的一些信息ofstream save(huanshu.txt);savehcardnumberendl;save.close();coutnnnnnendl;cout恭喜你还书成功nendl;main();/继续调用主函数,进行另外的操作 else/如果借书者的输入与管理员的输入不一致 cout对不起这不是你所要还的书n; main();/继续调用主函数,进行另外的操作 程序与源码的详细解答#include #include /输入输出流的头文件#include /下面用到了setw函数#include /下面用到了exit函数#include /下面用到了字符串处里的一些 void handle (char choice);/在进入界面的时候选择相关的操作 void jieshu ();/包含借书相关功能的函数 void jieshudisplay();/查看你借书的一些情况 void huanshu();/包含还书相关功能的函数 void huanshudisplay();/查看你还书的一些情况 void chakan();/查看你的违章记录 void bangzhu();/查看一些帮助信息void bookview();/看一看图书馆里的一些书int a;/用一个全局变量,来统计你当前所借的书的数目int main () coutttt欢迎使用图书馆管理系统n; char choice;/下面是对进入界面的选择进行说明char j;char h;char c;char b;char t;do/进入循环 couttttv-进入查书选项n;couttttj-进入借书选项n;coutttth-进入还书选项n;couttttc-进入查看选项n;couttttb-进入帮助选项n;couttttt-退出整个系统n;coutchoice; switch(choice)/进行选择case j:jieshu();break;case h:huanshu();break;case c:chakan();break;case b: bangzhu();break;casev:bookview();break;case t:cout谢谢使用图书馆管理系统!nendl;cout再见!n;exit(0);/退出整个系统break;default:/如果你的选择不以上列入的字符串之中则进行这个操作coutnn无效操作,请重试nn;main();/继续调用主函数 while (choice=!t);/ void bookview() struct book/用结构体来定义书的一些特征 char booktitle20;/书的名称 char publicplace30;/出版社 int booknumber;/书的序列号 char writer10;/书的作者;book s0;/书的一些成员book s1;/只是为了说明一下问题,因此只是列举10本书book s2;book s3;book s4;book s5;book s6;book s7;book s8;book s9;strcpy(s0.booktitle,计算机程序设计);/将书名用strcpy进行拷贝strcpy(s0.publicplace,苏州大学出版社出版);/将出版社名用strcpy进行拷贝strcpy(s0.writer,张岳新);/将书的作者名用strcpy进行拷贝s0.booknumber=110;/为书的序列号进行赋值strcpy(s1.booktitle,大学物理);strcpy(s1.publicplace,清华大学出版社);strcpy(s1.writer,张三慧);s1.booknumber=111;strcpy(s2.booktitle,电路);strcpy(s2.publicplace,机械工业出版社);strcpy(s2.writer,黄锦安);s2.booknumber=112;strcpy(s3.booktitle,概率统计);strcpy(s3.publicplace,高等教育出版社);strcpy(s3.writer,盛骤);s3.booknumber=113;strcpy(s4.booktitle,大学英语);strcpy(s4.publicplace,复旦大学出版社);strcpy(s4.writer,翟象俊);s4.booknumber=114;strcpy(s5.booktitle,工程数学);strcpy(s5.publicplace,高等教育出版社);strcpy(s5.writer,陆庆乐);s5.booknumber=115;strcpy(s6.booktitle,物理实验);strcpy(s6.publicplace,高等教育出版社);strcpy(s6.writer,李相银);s6.booknumber=116;strcpy(s6.booktitle,大学计算机基础);strcpy(s6.publicplace,南京大学出版社);strcpy(s6.writer,张宏);s6.booknumber=116;strcpy(s7.booktitle,线性代数);strcpy(s7.publicplace,高等教育出版社);strcpy(s7.writer,张弦);s7.booknumber=117;strcpy(s8.booktitle,六级历年真题);strcpy(s8.publicplace,学园出版社);strcpy(s8.writer,谢钟明);s8.booknumber=118;strcpy(s9.booktitle,数学模型);strcpy(s9.publicplace,高等教育出版社);strcpy(s9.writer,姜启源);s9.booknumber=119;couttttt图书的详情如下:n;/以下的程序是将书的一些信息进行输出coutsetw(20)书名setw(20)出版社setw(20)书的序列号setw(20)作者endl; coutsetw(20)s0.booktitlesetw(20)s0.publicplacesetw(20)s0.booknumbersetw(20)s0.writerendl;coutsetw(20)s1.booktitlesetw(20)s1.publicplacesetw(20)s1.booknumbersetw(20)s1.writerendl;coutsetw(20)s2.booktitlesetw(20)s2.publicplacesetw(20)s2.booknumbersetw(20)s2.writerendl;coutsetw(20)s3.booktitlesetw(20)s3.publicplacesetw(20)s3.booknumbersetw(20)s3.writerendl;coutsetw(20)s4.booktitlesetw(20)s4.publicplacesetw(20)s4.booknumbersetw(20)s4.writerendl;coutsetw(20)s5.booktitlesetw(20)s5.publicplacesetw(20)s5.booknumbersetw(20)s5.writerendl;coutsetw(20)s7.booktitlesetw(20)s7.publicplacesetw(20)s7.booknumbersetw(20)s7.writerendl;coutsetw(20)s6.booktitlesetw(20)s6.publicplacesetw(20)s6.booknumbersetw(20)s6.writerendl;coutsetw(20)s8.booktitlesetw(20)s8.publicplacesetw(20)s8.booknumbersetw(20)s8.writerendl;coutsetw(20)s9.booktitlesetw(20)s9.publicplacesetw(20)s9.booknumbersetw(20)s9.writerendl; main(); void jieshu()char username12;/ 借书者的姓名char booktitle20;/ 所借图书的名称int cardnumber;/ 借书证号码int booknumber;/ 你所借书的序列号char select;cout booknumber;coutusername;coutcardnumber;coutbooktitle;ifstream get(jieshu.txt);/将借书的一些资料写到到相应的文件夹以便后面进行调用getbooknumber;/取出书的序列号get.close();/关闭a+;/借了一本书则增加一,以便下面统计c1: void jieshudisplay();/c1是为了下面的goto用cout username:n usernameendl;/呈现你所借书的一些资料coutbooktitle:nbooktitleendl;coutcardnumber:ncardnumberendl;coutbooknumber:nbooknumberendl;coutselect;if (select=1)/输入的借书的相关信息正确coutch;if(ch=1)/想继续借书jieshu();/调用借书的函数else/不想继续借书ofstream save(jieshu.txt);/保存你所借过书的一些信息savebooknumberendl;save.close;/关闭main();/继续调用主函数 if (select=0)/输入的借书的相关信息不正确 b1: /b1是下面用到goto时候用的 cout哪个选项错了?n; cout请按照如下的规则进行选择n;/修改的一些选项 coutc-修改cardnumber!n;/修改借书证号 coutu-修改username!n;/修改借书者的姓名 coutb-修改booknumber!n;/修改所借图书的序列号 couth-修改booktitle!n;/修改所借图书的名称 char modify; coutmodify; switch (modify)/进入借书信息中的一些错误信息的修改 case c: int j; coutj; cardnumber=j;/将改正后的借书证号赋给原来输入错误的证号以达到修改的目的 goto c1;/返回到void jieshudisplayer()函数以陈列出修改后的借书信息;以便进一步查看是否有错误进而进行修改 coutm; if(m=1)/要进行继续修改 goto b1;/返回修改菜单进行继续修改 else coutch; if(ch=1)/继续进行借书 jieshu();/返回借书菜单 else/否则对借书的一些信息进行保存 ofstream save(jieshu.txt); savebooknumberendl; save.close; coutnnnnendl; cout恭喜你借书成功nendl; main();/返回主菜单,继续进行其它选项 ; break; caseu: char u10; int i; coutu; for(i=0;i10;i+)/用一个循环语句将正确的借书者的姓名赋给原来输错的借书者姓名以达到修改的目的 usernamei=ui; usernamei=0;/字符串结束的处理 goto c1;/以下功能同上面的解释 coutp; if(p=1) goto b1; else coutch; if(ch=1) jieshu(); else/保存一下借书的信息 ofstream save(jieshu.txt); savebooknumberendl; save.close; coutnnnnendl; cout恭喜你借书成功nendl; main(); ; break; caseb: char b20; int k; coutb; for (k=0;k20;k+)/用一个循环语句将正确的借出书的名称赋给原来输错的借出书的名称以达到修改的目的 booktitlek=bk; booktitlek=0;/对字符串结束的处理goto c1;/以下的功能同上面的解释 coutq; if(q=1) goto b1; else coutr; if(r=1) jieshu();/返回借书函数 else/保存修改后的借书的相关信息 ofstream save(jieshu.txt); savebooknumberendl; save.close; coutnnnnendl; cout恭喜你借书成功nendl; main();/返回主函数,以便进行另外的操作 ; break; caseh:/同上面借书证号的操作 int h; couth; booknumber=h;goto c1;/同上 coutt; if(t=1) goto b1;/同上 else/同上 coutch; if(ch=1) jieshu(); else/同上 ofstream save(jieshu.txt); savebooknumberendl; save.close; main(); coutnnnnendl; cout恭喜你借书成功nendl; main(); ; break; default:/以防你不是按照提示进行操作的 coutnn你的输入有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2.1 数据结构与数据类型 教学设计 2023-2024学年人教中图版(2019)高中信息技术选择性必修1数据与数据结构
- 触电安全知识培训目的
- 未来型农业科技:稻种培育加工技术体系创新研究
- 角的比较与运算说课课件
- 2024年五年级英语上册 Unit 1 How can I get there第二课时说课稿 人教PEP
- Unit 4 Growing up说课稿-2025-2026学年初中英语九年级上册牛津译林版
- 2025年葡萄酒产区特色品牌国际化品牌形象塑造策略分析
- 自考专业(计算机网络)试题预测试卷及完整答案详解(考点梳理)
- 观察一棵植物课件
- 1.13 近似数教学设计-2025-2026学年初中数学华东师大版2024七年级上册-华东师大版2024
- 2025年湖南湘西自治州州直事业单位招聘考试笔试试卷附答案
- 幼儿园安全责任书及后勤管理制度
- 消防车辆事故课件
- 《2型糖尿病中医防治指南(2024版)》解读课件
- 剑阁县普安镇污水处理厂扩容建设项目环评报告
- 商务楼宇管理办法
- 肺炎护理试题填空及答案
- 社用手机管理办法
- 中国兽药典三部 2020年版
- ISO45001职业健康安全管理体系手册和程序文件
- 《区域大地构造学》全套教学课件
评论
0/150
提交评论