4、,机械工业出版社目录内蒙古科技大学课程设计任务书I第一章需求分析31.1引言31.2任务概述41.3数据描述41.4功能需求41.5性能需求41.6运行需求51.7任务计划5第二章概要设计72.1总体设计72.2数据类型设计(或数据结构设计)72.3接口设计82.4运行界面设计8第三章详细设计103.1输入模块设计103.2查找模块设计113.3删除模块设计123.4借阅模块设计143.5还书模块设计163.6流程图17第四章测试分析184.1测试程序执行情况184.2出现的问题和解决的方法21第五章课程设计总结22附录:程序代码23参考文献30
5、致谢31第一章需求分析1.1引言随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息系统的作用也越来越大。图书馆在正常运营中总是面对大量的读者信息,书籍信息以及由两者相互作用产生的借书信息,还书信息。随着图书的大量增加,其管理难度也越来越大,如何优化图书馆的日常管理也就成为一个大众化的课题。数据处理手工操作,工作量大,出错率高,出错后不易更改。当前图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作
8、至少两种种查询方式)算法按书名查询按作者名查询1.3数据描述图1.31.4功能需求图1.41.5性能需求在运行本程序时只要按照正确的操作方法不会出现无法运行的情况,系统稳定性好,安全,可靠。1.6运行需求1.输入图书信息时按照“图书编号、书名、作者、出版日期、图书价格”的顺序输入。2.以(0/1)形式判断时,只能用阿拉伯数字。3.进入排序功能后,要想见排序信息,到主菜单下浏览信息。1.7任务计划1.样例输出和输入下面以上述据描述的数据为测试数据进行简单输入输出查询界面删除界面第二章概要设计图书管理系统2.1总体设计信息录入信息查询信息浏览信息删除信息修改退出系统图2
10、部函数功能intmain()int建立主界面voidsrvoid输入函数voidcxVoid查询图书voidscVoid删除图书voidjsvoid借书图书voidhsVoid还书图书voidtcvoid退出表2.3函数列表2.4运行界面设计/*主函数.主菜单*/intmain()intsele;flag=0;sele=1;voidsr();voidcx();voidsc();voidjs();voidhs();voidtc();voidjsh();/system("tsgl");printf("nn");prin
11、tf("*n");printf("1:输入2:查询3:删除n");printf("4:借书5:还书0:退出n");printf("*n");while(1)printf("nn请输入功能序号:");scanf("%d",&sele);if(sele>=0&&sele<=5)switch(sele)case1:sr();break;case2:cx();break;case3:sc();break;cas
12、e4:js();break;case5:hs();break;case0:jsh();break;if(flag)break;printf("nn");printf("*n");printf("1:输入2:查询3:删除n");printf("4:借书5:还书0:退出n");printf("*n");elseprintf("输入错误请再次输入|nn");printf("nn");printf("*n");p
14、f("图书名称:");scanf("%s",sN-n-1+i.tsmc);printf("图书编号:");scanf("%d",&sN-n-1+i.tsbh);printf("单价:");scanf("%f",&sN-n-1+i.dj);printf("作者:");scanf("%s",&sN-n-1+i.zz);strcpy(sN-n-1+i.czzt,"未借出");strcpy(sN-n-
15、1+i.xm,"无");3.2查找模块设计voidcx()inti,j100=-1,d,k,t=0;charm20;printf("查询:");printf("1:图书名称2:图书编号");printf("nn请输入查询选项:");scanf("%d",&k);if(k=1)printf("请输入图书名称:");scanf("%s",m);for(i=0;i 16、1;elseif(k=2)printf("请输入图书编号:");scanf("%d",&d);for(i=0;i 17、%st%st%d",sji.tsmc,sji.tsbh,sji.dj,sji.zz,sji.czzt,sji.xm,sji.xb,sji.xh);3.3删除模块设计voidsc()inti,d,k,t=0;charms20;intja=-1;printf("查询:");printf("1:图书名称2:图书编号");printf("nn请输入查询选项:");scanf("%d",&k);if(k=1)printf("请输入图书名称:");scanf(" 18、%s",ms);for(i=0;i 19、t;);if(ja!=-1&&p)N=N-1;for(i=ja;i 20、harm20;printf("查询:");printf("1:图书名称2:图书编号");printf("nn请输入查询选项:");scanf("%d",&k);if(k=1)printf("请输入图书名称:");scanf("%s",&m);for(i=0;i 21、uot;,&d);for(i=0;i 22、czzt,sji.xm,sji.xb,sji.xh);printf("1:确定借阅2:退出n");scanf("%d",&k);switch(k)case1:printf("请输入学号:n");scanf("%d",&sji.xh);printf("请输入姓名:n");scanf("%s",&sji.xm);printf("请输入性别:n");scanf("%s",&sji.xb);strcpy(sj 23、i.czzt,"已借出");printf("已借出,按任意键继续n");/getch();case2:break;3.5还书模块设计voidhs()inti,j100=-1,d,k,t=0;charm20;printf("查询:");printf("1:图书名称2:图书编号");printf("nn请输入查询选项:");scanf("%d",&k);if(k=1)printf("请输入图书名称:");scanf("%s&qu 24、ot;,&m);for(i=0;i 25、,sji.xb,sji.xh);printf("1:确定归还2:退出n");intp;scanf("%d",&p);if(p=1)strcpy(sji.czzt,"未借出");strcpy(sji.xm,"无");sji.xh=0;printf("已归还,按任意键继续n");/getch();3.6流程图主菜单退出查询数据添加删除还书借书图3.7第四章测试分析4.1测试程序执行情况管理界面图4.1.2添加图书图4.1.3名称查询图4.1.4编号查询图4.1.5借书图 26、4.1.6还书删除信息4.2出现的问题和解决的方法第五章课程设计总结通过两周的课程设计,使我清楚地认识到了实践的重要性.经过有针对性地上机操作,不仅可以提高我对C语言的认识,更重要的是提高了自己的实践能力。在课程设计过程中,我学到了许多道理,也懂得无论做什么事情都应该先拟定一个计划。有了计划,就有了奋斗目标,我们就会冲着目标奋进。通过这次学习使我对指针、数组、结构体以及循环有了深刻的理解,可以学以致用,觉得有了很大的收获。与此同时也使我学会了如何克服不良情绪,怎样调整自己的心态。在这次学习中,我遇到了许多困难,但经过我的耐心研究,同学们的帮助以及老师的谆谆教导,使我最终克服了困难,成 27、功地完成了本次课程设计。这让我懂得了,无论做什么事都不要轻言放弃,无论做什么事都要有耐心、信心加恒心,只有这样,我们才会成功。在这次设计中,我的人生格言也在无时无刻地帮助着我,鼓励这我,在我感到困惑疲惫时,在我被问题萦绕百般不解时,它都会激励我,它就是在磨练中成长、苦中作乐附录:程序代码#include 29、izeof(library.book0),library.count,fp);voidputin()/*定义录入函数*/inty=1;system("cls");while(y)printf("t请输入您的书籍的书号:");scanf("%s",library.booklibrary.count.number);printf("t请输入书名:");scanf("%s",);printf("t请输入作者名:"); 31、y.booklibrary.count.price);library.count+;printf("录入成功,恭喜您!");printf("n是否继续录入(1.继续;0,退出录入):");fflush(stdin);scanf("%d",&y);if(y!=1)y=0;break;save();voidlookup()system("cls");printf("图书号t图书名t作者名t出版社t出版日期t图书价格n");for(inti=0;i 32、i+)printf("%st%st%st%st%st%6.2fn",library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price);printf("n查询结果如上按0键返回主菜单:");fflush(stdin);getchar();voidsearch_by_name()/*定义按书名查询*/chars220;intflag=1;printf("n请输 33、入要查询的书名:");fflush(stdin);scanf("%s",s2);printf("图书号t图书名t作者名t出版社t出版日期t图书价格n");for(inti=0;i 34、ish,library.booki.time,library.booki.price);if(flag)printf("查询错误!按0键返回主菜单:");fflush(stdin);getchar();voidsearch_by_author()/*定义按作者名查询*/chars320;intflag=1;printf("请输入要查询的书的作者:");fflush(stdin);scanf("%s",s3);printf("图书号t图书名t作者名t出版社t出版日期t图书价格n");for(inti= 35、0;i 36、);voidsearch()/*定义查询函数*/inta;system("cls");/*进行清屏*/printf("tt*n");printf("开始查询n");printf("ttt1-按书名查询n");printf("ttt2-按作者名查询n");printf("ttt0-退出n");printf("tt*n");printf("tt请选择你想要的查询方式:");fflush(stdin);scanf(&q 37、uot;%d",&a);switch(a)case1:search_by_name();break;case2:search_by_author();break;case0:return;voiddel()/*定义删除函数*/charnumber10;system("cls");/*清屏*/printf("n请输入想要删除的书名:");fflush(stdin);scanf("%s",number);inti;for(i=0;i 38、mber,library.booki.number)=0)break;if(i!=library.count)for(;i 39、brary.booki.time,library.booki+1.time);library.booki.price=library.booki+1.price;library.count-;elseprintf("ncannotfound!n");printf("删除成功按0键返回主菜单");save();fflush(stdin);getchar();voidupdate()/修改图书信息charnumber10;system("cls");/*清屏*/printf("n请输入你要更改的图书名:") 40、;fflush(stdin);scanf("%s",number);inti;for(i=0;i 41、ary.booki.time,library.booki.price);break;if(i!=library.count)mbookbook;printf("ntt请输入修改后此图书的信息n");printf("t请输入图书号:");scanf("%s",book.number);printf("t请输入图书名:");scanf("%s",);printf("t请输入作者名:");scanf("%s",book.author);