还剩16页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
程序设计课程设计报告图书管理系统专业计算机科学与技术学生姓名于露班级B计123学号1210704324指导教师张静林完成日期2013年6月1.课程设计的目的
1.加强对《c语言程序设计》课程知识的理解,掌握c语言应用程序的__方法和步骤
2.进一步掌握和利用c语言进行程序设计的能力
3.进一步理解和运用结构化程序设计的思想和方法
4.初步掌握__一个小型实用系统的基本方法
5.学会调试一个较长程序的基本方法
6.学会利用流程图或N-S图表示算法
7.掌握书写程序设计__文档的能力书写课程设计报告2.课程设计任务3.课程设计课题课题1图书管理系统总体程序框图系统的总体流程图程序#includestdio.h#includestring.h#includestdlib.hstructlist{charnum
[20];/*图书编号*/charname
[40];/*书名*/charauthor
[40];/*__*/charpublish
[40];/*出版社*/doublepri__;/*__*/};structlistb
[40];intw=0;/*定义一个全局变量用来记录bookinfo.___文件中的数据个数*/voidsearch_allinfor__tionstructlistb[];/*查看全部图书信息*/voidcheck_bookinfor__tionstructlistb[];/*查找图书信息*/voidadd_bookinfor__tionstructlistb[];/*添加图书信息*/voiddelete_bookinfor__tionstructlistb[];/*删除图书信息*/voidborrow_bookstructlistb[];/*借阅图书*/int__in{inti=0;intchoi__1;FILE*fp;printf********************************\n;printf*欢迎进入图书馆信息管理系统*\n;printf********************************\n;fp=fopene:\\BookInfo.___r;iffp==NULL{printfCannotopenthefile!\n;exit0;}while!feoffp{fscanffp%s%s%s%s%lf/*调用函数将文件中的数据读入结构变量中*/b[i].numb[i].nameb[i].authorb[i].publishb[i].pri__;i++;}w=i-1;fclosefp;do{printf################################################################################;printf功能选项:\n;printf1:查看全部图书信息\n;printf2:查找图书信息\n;printf3:添加图书信息\n;printf4:删除图书信息\n;printf5:借阅图书\n;printf0:退出系统\n;printf################################################################################;printf请选择操作:;scanf%dchoi__1;switchchoi__1{case1:search_allinfor__tionb;break;case2:check_bookinfor__tionb;break;case3:add_bookinfor__tionb;break;case4:delete_bookinfor__tionb;break;case5:borrow_bookb;break;case0:break;}}whilechoi__1!=0;printf谢谢使用!\n;return0;}/*查看全部图书信息*/voidsearch_allinfor__tionstructlistb[]{inti;printf####################################\n;printf#查看全部图书信息!#\n;printf####################################\n;printf图书的相关信息:编号书名__出版社__\n;fori=0;iw;i++{printf%s%s%s%s%.2f\n/*将数据输出到屏幕中*/b[i].numb[i].nameb[i].authorb[i].publishb[i].pri__;}printf%dw;printf################################################################################\n;}/*查找图书信息*/voidcheck_bookinfor__tionstructlistb[]{intiflag=0;chars
[20];printf输入编号:\n;/*提示输入图书编号*/scanf%ss;printf#####################################\n;printf#查找图书信息!#\n;printf#####################################\n;fori=0;iw;i++ifstrcmpsb[i].num==0{printf该图书的相关信息:编号书名__出版社__\n;printf%s%s%s%s%.2f\nb[i].numb[i].nameb[i].authorb[i].publishb[i].pri__;flag=1;break;}ifflag==0{printf该图书编号不存在!\n;printf是否要继续查找y:是;n:否\n;getchar;switchgetchar{casey:check_bookinfor__tionb;/*调用函数本身继续查找*/casen:break;}}printf################################################################################\n;}/*添加图书信息*/voidadd_bookinfor__tionstructlistb[]{inticount=0choi__3;structlistp;FILE*fp2;printf#####################################\n;printf#添加图书信息!#\n;printf#####################################\n;printf请输入该图书的相关信息:\n;printf编号书名__出版社__\n;scanf%s%s%s%s%lfp.nump.namep.authorp.publishp.pri__;printf添加成功!\n;printf是否显示添加后的信息1:是;2:否\n;printf请选择:;scanf%dchoi__3;switchchoi__3{case1:{fori=0;iw;i++ifstrcmpp.numb[i].num0count++;fori=w;icount;i--b[i]=b[i-1];b[i]=p;w++;/*每添加一本图书,图书数目都会增加一个*/fp2=fopene:\\BookInfo.___w;iffp2==NULL{printfCannotopenthefile!\n;exit0;}fori=0;iw;i++fprintffp2%s%s%s%s%.2f\nb[i].numb[i].nameb[i].authorb[i].publishb[i].pri__;fclosefp2;fori=0;iw;i++printf%s%s%s%s%.2f\nb[i].numb[i].nameb[i].authorb[i].publishb[i].pri__;}case2:break;}printf################################################################################\n;}/*删除图书信息*/voiddelete_bookinfor__tionstructlistb[]{intiflag=0choi__4;chars
[20];printf#####################################\n;printf#删除图书信息#\n;printf#####################################\n;printf请输入图书编号:;scanf%ss;fori=0;iw;i++ifstrcmpsb[i].num==0{printf删除成功!\n;printf是否显示删除后的信息1:是;2:否\n;printf请选择:;scanf%dchoi__4;switchchoi__4{case1:{printf删除后的图书信息:编号书名__出版社__\n;fori=0;iw;i++{ifstrcmpsb[i].num!=0printf%s%s%s%s%.2f\nb[i].numb[i].nameb[i].authorb[i].publishb[i].pri__;}case2:break;}}flag=1;break;}ifflag==0printf该图书编号不存在!\n;printf################################################################################\n;}/*借阅图书*/voidborrow_bookstructlistb[]{inti=0n=0flag=0x=0;intm;/*定义一个变量用来记录sendinfo.___文件中的数据个数*/structlistq;structstudent{charname
[20];charnumber
[40];};structstudentstu
[50];FILE*fp;FILE*fp4;printf#####################################\n;printf#借阅图书#\n;printf#####################################\n;A:printf输入图书编号:;scanf%sq.num;fp=fopene:\\BookInfo.___a;iffp==NULL{printfCannotopenthefile!\n;exit0;}fori=0;iw;i++{ifstrcmpq.numb[i].num==0flag=1;}ifflag==0{printf该图书编号不存在请重新输入!\n;borrow_bookb;}fclosefp;ifflag==1{fp4=fopene:\\SentInfo.___r;iffp4==NULL{printfCannotopenthefile!\n;exit0;}while!feoffp4{fscanffp4%s%s/*调用函数将文件中的数据读入结构变量中*/stu[i].numberstu[i].name;i++;}n=i-1;fclosefp4;fp=fopene:\\SentInfo.___a;iffp==NULL{printfCannotopenthefile!\n;exit0;}fori=0;in;i++ifstrcmpq.numstu[i].number==0{printf该图书已借出!;printf是否继续续借yorn\n;getchar;ifgetchar==ygotoA;elsex=1;}}ifx==0/*若该图书未借出,则执行以下操作*/printf请输入学号:;scanf%dm;iffp=fopene:\\SendInfo.___a==NULL{printfFileopenerror!\n;exit0;}fprintffp%s%dq.numm;fclosefp;printf借阅成功!\n;printf################################################################################\n;}功能模块的调试及测试主菜单运行界面图
4.1主菜单运行界面图查询所有图书信息模块运行界面按1操作查询所有图书信息,1打开源程序,编译程序,单击Compile按钮,出现错误,如图2错误均指向55行,经检查发现调用函数时调用的是整个结构体,而非某一个,所以应该为search_allinfor__tionb.3改正后重新运行,即的如下所示的界面如下图
4.2查询所有图书信息模块界面查找某一本图书信息模块运行界面按2选择按书名查询某一本图书信息,若图书编号存在则界面如下图
4.3按编号查询图书信息界面若图书编号不存在,1输入y,没有进行继续查找的操作2调试程序,可查出输入的y对程序无影响,由于输入的是一个字符,而”\0”本身也是一个字符,则可将scanf“%s”a改为getchar即可该后则界面如下图
4.4图书编号查询图书界面添加图书信息模块运行界面按3选择,输入编号,界面如下图
4.5按图书编号添加图书界面删除图书信息模块运行界面按4选择,输入编号,如果编号不存在,界面如下图
4.6按图书编号删除图书界面如果编号存在,界面如下图
4.7按图书编号删除图书界面借阅图书模块信息运行界面按5选择,输入编号,出现如下界面图
4.8借阅图书界面(有错误)调试后找出错误为文件SendInfo.___扩展名是隐藏的,应将文件名改为SendInfo,得到如下正确界面图
4.9借阅图书界面如果编号不存在,界面如下图
4.10借阅图书界面开始编译运行__in打开文件数据读入结构体中执行选择调用不同函数。