vwdAAA课程设计报告_第1页
vwdAAA课程设计报告_第2页
vwdAAA课程设计报告_第3页
vwdAAA课程设计报告_第4页
vwdAAA课程设计报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告课程名称 程序设计课程设计 项目名称 图书馆图书基本信息管理软件设计 班 级 11 级软件工程2班 实验室名称(或课室) SS1-305 专 业 软件工程 任课教师 张军 学号 11251104214 姓名 何玉平 广东商学院教务处 制 分数_评语:等级项目评分报告格式(15)完成所规定的任务情况(40)内容完整性、思路清晰性(15)代码简洁性、可读性(15)课程设计总结(15) 指导教师(签名) 年 月 日说明:指导教师评分后,课程设计报告交院(系)办公室保存。图书馆图书基本信息管理软件设计1. 系统功能要求:本人计划编写一个图书馆图书基本信息管理系统,主要用来管理图书馆图书信息。这个系统的功能主要包括:(1),建立图书信息,每种图书类的信息有:主编,出版社,出版年,版次,ISBN书号,名称,定价,拥有本数,借出本数,现余本数。(2)借出功能(被借之书“借出本数”增1,“现余本数”减1),可根据书号或名称借书。(3)归还功能(被借之书“借出本数”减1,“现余本数”增1),可根据书号或名称还书。(4)查找功能(需指定书的某项信息,查找该书目前借出、余存信息)。(5)退出程序。2 系统总体设计思想(1) 开发与设计的总体思想图书馆图书基本信息管理软件算法说明:STEP1 预处理,定义结构体STEP2 进入欢迎界面STEP3 选择某一种功能STEP4 根据提示输入一个数字STEP5 对于输入的字母编辑关于借出,归还,查找,退出功能的函数STEP6 如果输入的字母表示退出,退出系统(2)系统模块结构图(3) 系统中的模块及文件说明book.h头文件 头文件主要是提供外部变量常数,定义了所需要的的图书馆图书信息结构,并声明了所有用到的函数。book.c源文件 主要包含主函数,菜单处理函数,菜单选择函数,以及退出程序的函数,主函数用到了所有的函数。add.c源文件 包含输出表头的函数,增加图书信息函数以及保存图书信息的函数。find.c源文件 这个源文件包含了通过书号或书名找到图书序号的函数,以方便实现查询图书功能,借书功能,还书功能,还有一个查询图书信息的函数。lend.c源文件 包含一个函数,即借书功能的函数。return.c源文件包含一个函数,即还书功能的函数。3 系统详细设计思想(1) 系统文件及函数组成、功能源文件函数名或其他成分功能 book.h常数提供常数结构声明图书馆图书信息结构库函数及函数原型声明引用库函数及函数 book.cmain 总控函数handle_menu菜单处理menu_select菜单选择quit退出程序add.cshowtable输出表头addRecords增加图书信息saveRecords保存图书信息 find.cfindnum找到图书类的序号findRecords通过序号找到图书的信息lend.clend借书功能returns.creturn还书功能(2) 函数的描述1.头文件使用条件编译定义头文件函数原型说明数据结构及包含文件2.菜单处理 根据菜单处理函数的参数执行对应的函数功能3.菜单选择给每一个功能指定一个数字,等待键盘键入后即可执行相应的功能若输入的数字不对应任何一个功能,则给出出错信息,并重新选择4.输出表头当需要显示记录信息时,可以先输出表头,这样可以方便的观察所要了解的记录信息5.增加图书记录信息如果没有记录信息存在,给出提示信息可以随时增加新的记录信息,然后保存在文件中6.保存图书记录信息若没有可保存的记录或文件打不开,给出提示信息存储成功返回0,否则返回-17.寻找欲查询或欲借出或欲归还的图书的在结构数组的序号 函数原型:int findnum(char* target,int targetype,int from)可以按图书名查找,也可以按书号查询,返回序号数。参数target表示欲查找的纪录的某一项与target相同参数 targetype表明通过通过哪一项来查找,0为书名,1为学号参数from表示从第from个记录开始查找8.查询记录信息若文件中没有任何书类信息或不存在这本书,则给出提示信息可以通过书名或书号来查询给出所要查询的书的信息9.借出一本书可以按书名或书号来借出一本书若没有这类书,则给出提示信息找到这个记录后,对记录修改后就保存在文件中10.归还一本书可以按书名或书号来归还一本书若没有这类书,则给出提示信息找到这个记录后,对记录修改后就保存在文件中(3)函数的实现代码主函数:int main()records=(Books*)malloc(sizeof(Books)*INITIAL_SIZE);if(records=NULL)printf(memory fail!);exit(-1);arraysize=INITIAL_SIZE;printf(n); printf(t 这是一个 n); printf(t图书馆图书基本信息管理软件n); printf(t 欢迎使用 n);handle_menu();菜单处理函数:void handle_menu()for(;)switch(menu_select()case 1:addRecords();break; case 2:lend();break; case 3:returns();break;case 4:findRecords();break;case 5:quit();菜单选择函数:int menu_select()char str2;int cn=0;printf(n);printf(1.增加图书信息n);printf(2.借出图书n);printf(3.归还图书n);printf(4.查询图书信息n);printf(5.退出n);printf(n左边数字对应功能选择,请选1-5:);for(;)gets(str);cn=atoi(str);if(cn5) printf(n输入错误,重选1-5:);else break;return cn;退出函数:void quit()char str5;if(savedTag=1)printf(是否保存原来的记录?(y/n);gets(str);if(str0!=n&str0!=N)saveRecords();free(records);exit(0);输出表头函数:void showtable()printf(书名t书号t主编t出版社t版次t出版年t);printf(定价t拥有数t借出数t现余数n);增加信息记录函数:void addRecords(void) char str10; if(numbooks=0) printf(原来没有任何书类信息,现在加入信息!n);else printf(下面增加新的信息!n);while(1) printf(您将要增加一项书类信息,确定吗?(y/n); gets(str); if(str0=n|str0=N) break; if(numbooks=arraysize) records=realloc(records,(arraysize+INCR_SIZE)*sizeof(Books); if(records=NULL) printf(memory fail!); exit(-1); arraysize=arraysize+INCR_SIZE; printf(请输入书名:); gets(); printf(请输入书号:); gets(recordsnumbooks.number); printf(请输入主编:); gets(recordsnumbooks.editor); printf(请输入出版社:); gets(recordsnumbooks.publish); printf(请输入版次:); gets(recordsnumbooks.edition); printf(请输入出版年份:); gets(recordsnumbooks.year); printf(请输入定价:); gets(str); recordsnumbooks.price=(float)atof(str); printf(请输入拥有本数:); gets(str); recordsnumbooks.ownnum=atoi(str); printf(请输入借出本数:); gets(str);recordsnumbooks.lendnum=atoi(str); printf(请输入现余本数:); gets(str);recordsnumbooks.nownum=atoi(str); numbooks+; printf(现在一共有%d条书类信息n,numbooks); saveRecords(); savedTag=0; int saveRecords()FILE *fp;char fname30;if(numbooks=0)printf(没有书类记录可存!);return -1;strcpy(fname,bookinfomation);if(fp=fopen(fname,wb)=NULL)printf(不能存入文件.n);return -1;fwrite(records,sizeof(Books)*numbooks,1,fp);fclose(fp);savedTag=0;return 0;找到图书记录序号函数:int findnum(char *target,int targettype,int form)/找到书类记录的序号,找不到返回-1.0为书名,1为书号int i;for(i=form;inumbooks;i+)if(targettype=0&strcmp(target,)=0)|(targettype=1&strcmp(target,recordsi.number)=0) return i;return -1;查询图书信息函数:void findRecords(void) char str5; char target20; int type; int count; int i,j; if(numbooks=0) printf(没有书类记录!); return ; while(1)printf(请输入查询方式:n);printf(1.按书名n);printf(2.桉书号n);printf(3.结束查询n);gets(str);if(str0=3) break;if(str0=1) printf(请输入欲查询的书类的书名:); gets(target); type=0;else printf(请输入欲查询的书类的书号:); gets(target); type=1;i=findnum(target,type,0);count=0;while(i!=-1)count+;showtable();printf(%st%st%st%st%st%s,,recordsi.number,recordsi.editor,recordsi.publish,recordsi.edition,recordsi.year);printf(t%.1ft%dt%dt%dn,recordsi.price,recordsi.ownnum,recordsi.lendnum,recordsi.nownum);i=findnum(target,type,i+1);if(count=0)printf(没有找到这类书!);借出图书函数:void lend(void)char str2;char s5;char st2;int i;if(numbooks=0)printf(现在没有书类信息,不能借书!);return; printf(1.按书名借出n); printf(2.按书号借出n); gets(str); if(str0=1) printf(请输入要借的书类的书名:); gets(s); i=findnum(s,0,0);if(i=-1)printf(没有找到这类书!n);else printf(确定借这本书吗?(y/n); gets(st); if(st0=N|st0=n) return; recordsi.lendnum+; recordsi.nownum-; saveRecords(); printf(n借书成功!nn); else printf(请输入要借的书类的书号:); gets(s); i=findnum(s,1,0); if(i=-1) printf(没有找到这类书!);else recordsi.lendnum+; recordsi.nownum-; saveRecords(); printf(n借书成功!nn); 归还图书函数:void returns(void) char str2; char s5; char st2;int i;if(numbooks=0)printf(现在没有书类信息,不能还书!);return; printf(1.按书名归还n); printf(2.按书号归还n); gets(str); if(str0=1) printf(请输入要归还的书类的书名:); gets(s);i=findnum(s,0,0);if(i=-1)printf(没有找到这类书!);else printf(确定借还本书吗?(y/n); gets(st); if(st0=N|st0=n) return; recordsi.lendnum-; recordsi.nownum+; saveRecords(); printf(还书成功!nn); else printf(请输入要归还的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论