图书馆管理系统-c语言-X工业大学.doc_第1页
图书馆管理系统-c语言-X工业大学.doc_第2页
图书馆管理系统-c语言-X工业大学.doc_第3页
图书馆管理系统-c语言-X工业大学.doc_第4页
图书馆管理系统-c语言-X工业大学.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

课 程 报 告课 程 名 称: 程序设计实践 专 业 班 级 : 信息类1006班 学 生 姓 名 : 杜 威 科 学 号 : 201046830622 任 课 教 师 : 徐 振 强 学 期 :2010-2011学年第二学期 课程报告任务书题 目图书信息管理系统主要内容开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)输入v(2)图书信息浏览功能输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): l 按书名查询 按作者名查询 按照价钱排序 按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理 (2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。(4)模糊查询 (5)综合查询 (6)统计功能 比如统计处某一类别的图书信息 或 筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。任务要求一、提交材料应包括:(1)系统源代码 (2)课程报告二、整个设计过程具体要求(1)需求分析 要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2)设计过程 要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3)实现过程 要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4)总结阶段 按照要求完成系统设计和实现报告,并进行总结、答辩。成绩评定报告撰写情况(30分)系统完成情况(30分)答辩情况(40分)总分内容20分规范程度5分程序测试5分基本功能20分扩展功能10分自述情况10分答辩情况30分成绩评定教师: 1 需求分析针对一般图书管理信息系统的需求,通过对图书管理信息工作的实际分析,设计出如下的图书信息:图书编号,图书名字,图书作者,图书出版社,图书价格,五个基本信息,由于图书的其他信息在程序上实现的过程基本相同,所以选出最具代表性的集中图书信息作为程序设计实践的数据2 概要设计1. 系统程序结构主函数main通过调用int choiceuser();/用户选择访问身份,int admmenu();/管理员的功能选择,int visitormenu();/访客的功能选择,void creat();/录入图书,void browsebook();/浏览图书,void updatebook();/修改图书信息,void deletebook();/删除图书,void sortbook();/排序图书,void querybook();/查询图书,void export();/导出所需的图书信息,void fuzzyquery();/模糊查询图书信息,特色功能,以及这些函数分别又再次调用其所属子函数,实现图书管理系统的图书信息的录入,显示,修改,删除,排序,查询,导出,特别是模糊查询等功能。2. 系统宏定义,调用函数,结构体如下:#define BI 10 bookid 定义图书编号长为10#define BN 31 bookname 定义图书名字长为15个字#define BA 11 bookname 定义图书作者长为5个字#define BP 25 bookpublisher 定义图书出版社长为12个字typedef struct bookchar idBI;/id定义为字符型防止定义为整形是id超出取值范围char nameBN;char authorBA;char publisherBP;double price;struct book *next;Book; 自定义类型 Bookint choiceuser();/用户选择访问身份int admmenu();/管理员的功能选择int visitormenu();/访客的功能选择void showfile();void creat();/录入图书void browsebook();/浏览图书int judgeclass();/判断classes是否为空int openclass(char booktype);/打开class并且读出booktypeBook *filetolink(char booktype);/从图书类型文件中读出数据到链表void updatebook();/修改图书信息void deletebook();/删除图书Book *deletebyid(Book *head,char id);/按图书编号删除Book *deletebyname(Book *head,char name);/按图书名字删除Book *deletebyauthor(Book *head,char author);/按图书作者删除void deletebybooktype();/删除图书类型,谨慎使用void sortbook();/排序图书Book *sortbyid(Book *head);/Book *sortbyname(Book *head);/Book *sortbyauthor(Book *head);/Book *sortbyprice(Book *head);/void querybook();/查询图书Book *querybyid(Book *head);/Book *querybyname(Book *head);/Book *querybyauthor(Book *head);/void export();/导出所需的图书信息void directexport(Book *head);/void exportaftersortbyid(Book *head);/void exportaftersortbyname(Book *head);/void exportaftersortbyauthor(Book *head);/void exportaftersortbyprice(Book *head);/void fuzzyquery();/模糊查询图书信息,特色功能void fuzzyquerybyid(Book *head);/ 按图书编号模糊查询void fuzzyquerybyname(Book *head);/ 按图书名字模糊查询void fuzzyquerybyauthor(Book *head);/按图书作者模糊查询void fuzzyquerystackroom();/模糊查询书库3. 程序总体框架 主函数main选择管理员身份选择访客身份三次机会输入密码管理员菜单访客菜单模糊查询,按编号,名字,作者模糊查询导出图书,排序后或直接导出到D盘文件查询图书,按编号,名字,作者查询修改图书,先调用先查询函数,后修改排序图书,按编号 名字 作者 价格 排序删除图书,按编号,名字,作者删除查看图书,显示所有图书类型的信息图书录入,新建或者添加图书信息回到用户菜单 退出系统3 详细设计*main()/主函数Book *head=NULL;int choice;if(choiceuser()while(choice=admmenu()switch(choice)case 1:creat();break;case 2:browsebook();break;case 3:deletebook();break;case 4:sortbook();break;case 5:updatebook();break;case 6:querybook();break;case 7:export();break;case 8:fuzzyquery();break;case 9:fuzzyquerystackroom();break;default:printf(n您输入的数据无效,请按任意键继续);getch();break;elsewhile(choice=visitormenu()switch(choice)case 1:browsebook();break;case 2:sortbook();break;case 3:querybook();break;case 4:export();break;case 5:fuzzyquery();break;case 6:fuzzyquerystackroom();break;default:printf(n您输入的数据无效,请按任意键继续);getch();break;printf(您已经退出本系统,欢迎再次使用!n);*void deletebook()/删除图书的主调用函数FILE *fbtype;char booktype20,idBI,nameBN,authorBA,id0BI;int n=1,i;Book *head,*p;if(judgeclass()=0) return ;if(openclass(booktype)=0)return ;head=filetolink(booktype);if(head=NULL) return ;printf(t-删除图书-nn);printf(ttt0-退出删除图书nnttt1-按图书编号删除nn);printf(ttt2-按图书名字删除nnttt3-按图书作者删除nn);printf(ttt4-按图书类型删除(谨慎使用 )nn);printf(t-nn);printf(请选择您要删除图书方式的代号:);scanf(%d,&i);getchar();switch(i)case 0:break;case 1:printf(n输入图书编号为 0 时退出删除nn);printf(请输入你要删除的图书编号:);scanf(%s,id);getchar();while(strcmp(id,0)!=0) switch(strlen(id)case 1:strcpy(id0,0000);strcpy(id,strcat(id0,id);break;case 2:strcpy(id0,000);strcpy(id,strcat(id0,id);break;case 3:strcpy(id0,00);strcpy(id,strcat(id0,id);break;case 4:strcpy(id0,0);strcpy(id,strcat(id0,id);break;case 5:break;default:printf(你输入的图书编号过长,请按任意键结束);getch();return ;head=deletebyid(head,id);if(head=NULL)printf(该类型中的图书信息已经完全删除,请回车继续);getchar();break;printf(请输入你要删除的图书编号:);scanf(%s,id);getchar(); break;case 2:printf(n输入图书名字为 0 时退出删除nn);printf(请输入你要删除的图书名字:);scanf(%s,name);getchar();while(strcmp(name,0)!=0) head=deletebyname(head,name);if(head=NULL)printf(该类型中的图书信息已经完全删除,请回车继续);getchar();break;printf(请输入你要删除的图书名字:);scanf(%s,name);getchar(); break;case 3:printf(n输入图书作者为 0 时退出删除nn);printf(请输入你要删除的图书作者:);scanf(%s,author);getchar();while(strcmp(author,0)!=0) head=deletebyauthor(head,author);if(head=NULL)printf(该类型中的图书信息已经完全删除,请回车继续);getchar();break;printf(请输入你要删除的图书作者:);scanf(%s,author);getchar(); break;case 4:deletebybooktype();return ;default:printf(您输入的数据无效!请按任意键继续);getch(); return ;/删除图书后存入文件if(fbtype=fopen(booktype,wb)=NULL)printf(该类型图书信息由于某种原因无法删除,请回车以继续!);getchar();return ;p=head;while(p)fwrite(p,sizeof(Book),1,fbtype);p=p-next;fclose(fbtype);*void sortbook()/排序图书的主调用函数char booktype20;int n=1,i;Book *head;if(judgeclass()=0) return ;if(openclass(booktype)=0)return ;head=filetolink(booktype);if(head=NULL) return ;printf(nt-排序图书-nn);printf(ttt0-退出排序图书nnttt1-按图书 编号 排序nn);printf(ttt2-按图书 名字 排序nnttt3-按图书 作者 排序nn);printf(ttt4-按图书 价格 排序nn);printf(t-nn);printf(请选择您要排序图书方式的代号:);scanf(%d,&i);getchar();switch(i)case 0:break;case 1:sortbyid(head);break;case 2:sortbyname(head);break;case 3:sortbyauthor(head);break;case 4:sortbyprice(head);break;default:printf(您输入的数据无效!按任意键继续);getch();break;*void querybook()/查询图书的主调用函数char booktype20;int n=1,i;Book *head;if(judgeclass()=0) return ;if(openclass(booktype)=0)return ;head=filetolink(booktype);if(head=NULL) return ;printf(nt-查询图书-nn);printf(ttt0-退出查询图书nnttt1-按图书编号查询nn);printf(ttt2-按图书名字查询nnttt3-按图书作者查询nn);printf(t-nn);printf(请选择您要查询图书方式的代号:);scanf(%d,&i);getchar();switch(i)case 0:break;case 1:querybyid(head);break;case 2:;querybyname(head);break;case 3:querybyauthor(head);break;default:printf(您输入的数据无效!按任意键继续);getch();break;*void export()/导出图书的主调用函数char booktype20;int i;Book *head;if(judgeclass()=0) return ;if(openclass(booktype)=0)return ;head=filetolink(booktype);if(head=NULL) return ;printf(nt-导出图书信息);printf(-nn);printf(ttt0-退出导出图书信息nn);printf(ttt1-直接导出该类型的图书信息nn);printf(ttt2-按图书 编号 排序后导出nn);printf(ttt3-按图书 名字 排序后导出);printf(nnttt4-按图书 作者 排序后导出nn);printf(ttt5-按图书 价格 排序后导出nn);printf(t-);printf(-nn);printf(说明:导出信息将自动保存在 D盘 图书馆管理系统 文件夹下,);printf(导出信息以文本形式存放。为保证你导出的图书信息有效,);printf(请及时移出该文件夹。nn);printf(请选择您要导出图书信息方式的代号:);scanf(%d,&i);getchar();/自动创建文件夹_mkdir(D:图书馆管理系统);switch(i)case 0:break;case 1:directexport(head);break;case 2:exportaftersortbyid(head);break;case 3:exportaftersortbyname(head);break;case 4:exportaftersortbyauthor(head);break;case 5:exportaftersortbyprice(head);break;default:printf(您输入的数据无效!按任意键继续);getch();break;*void fuzzyquery()/特色功能,模糊查询图书信息char booktype20;int i;Book *head;if(judgeclass()=0) return ;if(openclass(booktype)=0)return ;head=filetolink(booktype);if(head=NULL) return ;printf(nt-模糊查询( 特色功能 ));printf(-nn);printf(ttt0-退出模糊查询nnttt1-按图书 编号 模糊查询nn);printf(ttt2-按图书 名字 模糊查询nn);printf(ttt3-按图书 作者 模糊查询nn);printf(t-nn);printf(请选择您要模糊查询图书方式的代号:);scanf(%d,&i);getchar();switch(i)case 0:break;case 1:fuzzyquerybyid(head);break;case 2:fuzzyquerybyname(head);break;case 3:fuzzyquerybyauthor(head);break;default:printf(您输入的数据无效!按任意键继续);getch();break;*4 调试分析1,测试数据图书编号 图书名字 图书作者 图书出版社 图书价格 00230 程序设计 何钦铭 高等教育出版社 23.30 00210 大学物理 罗益民北京邮电大学出版社 58.00 20010 计算机组装与维护 秦杰 清华大学出版社 32.00 01030 工程数学线性代数同济大学 高等教育出版社 15.10 03010 高等数学上册同济大学 高等教育出版社 30.30 02030 高等数学下册

温馨提示

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

评论

0/150

提交评论