




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 报 告课 程 名 称: 程序设计实践 专 业 班 级 : 计算机科学与技术1205班 学 生 姓 名 : 雷原康 学 号 : 201216010522 任 课 教 师 : 陈卫东 学 期 :2012-2013学年第二学期 课程报告任务书题 目图书信息管理系统主要内容开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存)输入v(2)图书信息浏览功能输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): l
2、 按书名查询 按作者名查询 按照价钱排序 按出版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理 (2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。(4)模糊查询 (5)综合查询 (6)统计功能 比如统计处某一类别的图书信息 或 筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能。任务要求一、提交材料应包括:(1)系统源代码 (2)课程报告二、整个设计过程具体要求(1)需求分析 要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2)设计过程 要求学生进一步明确各模
3、块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)(3)实现过程 要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4)总结阶段 按照要求完成系统设计和实现报告,并进行总结、答辩。成绩评定报告撰写情况(30分)系统完成情况(30分)答辩情况(40分)总分内容20分规范程度5分程序测试5分基本功能20分扩展功能10分自述情况10分答辩情况30分成绩评定教师: 24 1. 需求分析经过大一上学期的理论学习,在基础实验的基础上,本学期我们继续开设了C语言程序设计实践课。课程要求我们对已经学习的基础实验进行整合与衔接处理,并最终形成一个系统性质的规模较大的程序。本次
4、课程设计要求我们达到能独立完成一个图书管理系统,完成后要求实现的功能有对图书信息的录入、删除、修改,浏览(即输出), 按某种方式查询(要求至少一种查询方式),按某种方式排序(要求至少一种排序方式)。当然,我们可以根据自己的能力对系统进行完善性的拓展,例如自己加入简单的权限处理,统计功能,模糊查询等,甚至可以拓展为图书借阅系统。通过整个程序的开发过程,最终使我们掌握利用计算机解决实际问题的基本方法,熟悉C语言开发的全过程,提高综合应用C语言的能力、编程和调试能力,为学习计算机后续课程打好专业基础。 2. 概要设计1. 系统采用的是结构数组数据系统,用于实现图书信息的存放,修改,排序等功能。 用二
5、进制文件保存已写入的信息。2. 模块划分:1 void AddNewbook图书信息录入系统2 void Rprint图书信息浏览系统3 void Querybook图书信息查询系统:void numnode1-书籍编号查找 .2-书名void namenode查找.3-void writer作者查找.4-void press出版社查找.5-void fuzzy模糊查找.4 void paixu图书信息排序系统:1-价格排序2-时间排序5 Voide xiugai图书信息修改系统6 Void shanchu图书信息删除系统 7 图书信息统计系统:1-void sorttongji书籍类别统计.
6、2-void kuno库存低于标准统计3. 程序框架1 进行录入图书信息2 录入后进行浏览系统3 然后根据需要分别进行查询,排序,修改,删除,统计功能3. 详细设计:1. 定义图书结构:typedef struct booklong num;/书的序号char nameMAX;/书名char timeMAX;/出版时间char writerMAX;double price;char pressMAX;/出版社 char sortMAX;int kucun;/库存量book;2. 图书录入系统:void AddNewbook(FILE *fp)/*添加书籍system("cls&quo
7、t;);int a;if(fp=fopen("图书信息.txt","a+")=NULL)printf("不能打开图书信息管理系统!n");exit(0);book newbook;printf("(-1代表结束)"); while(a!=-1)printf("输入书籍编号:"); scanf("%ld",&newbook.num);printf("输入书名:");scanf("%s",);printf(&
8、quot;输入出版时间:");scanf("%s",newbook.time);printf("输入作者:");scanf("%s",newbook.writer);printf("输入价格:");scanf("%lf",&newbook.price);printf("输入出版社:");scanf("%s",newbook.press);printf("输入书籍种类:");scanf("%s",ne
9、wbook.sort);printf("输入库存量:"); scanf("%d",&newbook.kucun); fwrite(&newbook,size,1,fp);scanf("%d",&a);fclose(fp);3. 图书浏览系统void Rprint(FILE *fp)/图书信息浏览system("cls");if(fp=fopen("图书信息.txt","r+")=NULL)printf("不能打开图书信息管理系统!n"
10、;);exit(0);book log;printf("书籍编号 书名 出版时间 作者 价格 出版社 种类 库存量 n");while(!feof(fp)fread(&log,sizeof(book),1,fp);printf("%8ld %s %6s %10s %.2lf %s %s %d n",log.num,,log.time,log.writer,log.price,log.press ,log.sort,log.kucun);4. 图书查询系统一按编号查找void numnode(FILE *fp)if(fp=fopen
11、("图书信息.txt","r")=NULL)printf("不能打开图书信息管理系统!n");exit(0);long num;int i=0;book chaxun;printf("Enter num:");scanf("%ld",&num);while(!feof(fp) fread(&chaxun,size,1,fp); if(num=chaxun.num)printf("%ldt%st%st%st",chaxun.num,,cha
12、xun.time,chaxun.writer);printf("%.2lft%st%dn",chaxun.price,chaxun.sort,chaxun.kucun); i=1; if(i!=1)printf("对不起,没有你想要查找的书籍。n");fclose(fp);二按书名查找void namenode(FILE *fp)if(fp=fopen("图书信息.txt","r")=NULL)printf("不能打开图书信息管理系统!n");exit(0);int i=0;char nameM
13、AX;book chaxun;printf("Enter name:");scanf("%s",name);while(!feof(fp)fread(&chaxun,size,1,fp);if(strcmp(name,)=0)printf("%ldt%st%st%st%.2lft%st%dn",chaxun.num,,chaxun.time,chaxun.writer,chaxun.price,chaxun.sort,chaxun.kucun);i=1;if(i!=1)printf(
14、"对不起,没有你想要查找的书籍。n");fclose(fp);三按作者名查找void writernode(FILE *fp)if(fp=fopen("图书信息.txt","r")=NULL)printf("不能打开图书信息管理系统!n");exit(0);int i=0;char writerMAX;book chaxun;printf("Enter writer:");scanf("%s",writer);while(!feof(fp)fread(&chaxun,
15、size,1,fp);if(strcmp(writer,chaxun.writer)=0)printf("%ldt%st%st%st%.2lft%st%dn",chaxun.num,,chaxun.time,chaxun.writer,chaxun.price,chaxun.sort,chaxun.kucun);i=1;if(i!=1)printf("对不起,没有你想要查找的书籍。n");fclose(fp);四按出版社查找void pressnode(FILE *fp)if(fp=fopen("图书信息.txt"
16、;,"r")=NULL)printf("不能打开图书信息管理系统!n");exit(0);int i=0;char pressMAX;book chaxun;printf("Enter press:");scanf("%s",press);while(!feof(fp)fread(&chaxun,size,1,fp);if(strcmp(press,chaxun.press)=0)printf("%ldt%st%st%st%.2lft%st%dn",chaxun.num,chaxun.n
17、ame,chaxun.time,chaxun.writer,chaxun.price,chaxun.sort,chaxun.kucun);i=1;if(i!=1)printf("对不起,没有你想要查找的书籍。n");fclose(fp);五模糊查询void fuzzy(FILE *fp)if(fp=fopen("图书信息.txt","r")=NULL)printf("不能打开图书信息管理系统!n");exit(0);int k=0;char zifuMAX;book chaxun;printf("输入关键
18、字:");getchar();int i,j;for(i=0;(zifui=getchar()!='n'i+);zifui='0'while(!feof(fp)fread(&chaxun,size,1,fp);for(i=0;zifui!='0'i+)for(j=0;chaxun.writerj!='0'j+)if(zifui=chaxun.writerj)printf("%ldt%st%st%st%.2lft%st%dn",chaxun.num,,chaxun.time
19、,chaxun.writer,chaxun.price,chaxun.sort,chaxun.kucun);k=1;if(k!=1)printf("对不起,没有你想要查找的书籍。n");fclose(fp);4. 排序功能一 按价钱排序void price(FILE *fp)if(fp=fopen("图书信息.txt","r")=NULL)printf("不能打开图书信息管理系统!n");exit(0);int n;int i=1,j;n=tongji(fp);book t;book paixuMAX;while(
20、!feof(fp)fread(&paixui,size,1,fp);i+;for(i=1;i<n;i+)for(j=1;j<n-i;j+)if(paixuj.price>paixuj+1.price)t=paixuj;paixuj=paixuj+1;paixuj+1=t;for(i=1;i<n;i+)printf("%ldt%st%st%st%.2lft%st%dn",paixui.num,,paixui.time,paixui.writer,paixui.price,paixui.sort,paixui.kucun);
21、fclose(fp);二按时间排序void time(FILE *fp)if(fp=fopen("图书信息.txt","r")=NULL)printf("不能打开图书信息管理系统!n");exit(0);int n;int i=1,j;n=tongji(fp);book paixuMAX,t;while(!feof(fp)fread(&paixui,size,1,fp);i+;for(i=1;i<=n;i+)for(j=1;j<=n-i;j+)if(strcmp(paixuj.time,paixuj+1.time)
22、>0)t=paixuj;paixuj=paixuj+1;paixuj+1=t;for(i=1;i<n;i+)printf("%ldt%st%st%st%.2lft%st%dn",paixui.num,,paixui.time,paixui.writer,paixui.price,paixui.sort,paixui.kucun);fclose(fp);三排序选择void paixu(FILE *fp)int choice=-1;printf("1-价格排序n2-时间排序n");scanf("%d",&
23、amp;choice); switch(choice)case 1:price(fp);break;case 2:time(fp);break;default:printf("errorn");break;5. 修改功能void bookxiugai(FILE *fp)if(fp=fopen("图书信息.txt","r")=NULL)printf("不能打开图书信息管理系统!n");exit(0);FILE *t;int n=0;int i=0;if(t=fopen("图书信息.txt",&qu
24、ot;r+")=NULL)printf("不能打开图书信息管理系统!n");exit(0);long num;int choice;book xiugai;book duqu;printf("输入要修改书的编号:");scanf("%ld",&num);while(!feof(t)i+;fread(&duqu,size,1,t);if(num=duqu.num)printf("请输入修改后的书籍信息:n"); printf("请输入书籍编号:");scanf("
25、;%d",&xiugai.num);printf("请输入书名:");scanf("%s",);printf("请输入作者:");scanf("%s",xiugai.writer);printf("请输入出版时间:");scanf("%s",xiugai.time);printf("请输入价格:");scanf("%lf",&xiugai.price);printf("请输入出版
26、社:");scanf("%s",xiugai.press);printf("请输入书籍种类:");scanf("%s",xiugai.sort);printf("请输入库存量:");scanf("%d",&xiugai.kucun); n=i; fseek(t,(n-1)*size,0);printf("1-确认修改。n其他数字-取消修改。");scanf("%d",&choice);if(choice=1)fwrite(&
27、;xiugai,size,1,t);printf("修改成功!n");6. 删除功能void bookshanchu(FILE *fp)FILE *t;if(fp=fopen("图书信息.txt","r")=NULL) printf("不能打开图书信息管理系统!n");exit(0);int i=1,n;long num;n=tongji(fp);book duquMAX;printf("请输入书籍编号:");scanf("%ld",&num);while(!feof
28、(fp)fread(&duqui,size,1,fp);i+;if(t=fopen("图书信息.txt","w")=NULL) printf("不能打开图书信息管理系统!n");exit(0);for(i=1;i<n;i+)if(num!=duqui.num)fwrite(&duqui,size,1,t);fclose(t);fclose(fp);7.。统计功能一按类别统计void sorttongji(FILE *fp)if(fp=fopen("图书信息.txt","r"
29、)=NULL)printf("不能打开图书信息管理系统!n");exit(0);int i=0;char sortMAX;book sor;printf("请输入书籍类别:");scanf("%s",sort);while(!feof(fp)fread(&sor,size,1,fp);if(strcmp(sort,sor.sort)=0)i+;printf("本类别的书籍种类有%dn",i);fclose(fp);二按库存标准统计void kuno(FILE *fp)if(fp=fopen("图书
30、信息.txt","r")=NULL)printf("不能打开图书信息管理系统!n");exit(0);int n;book kcun;printf("请输入标准库存量:");scanf("%d",&n);while(!feof(fp)fread(&kcun,size,1,fp);if(n>kcun.kucun)printf("%ldt%st%st%st%.2lft%st%dn",kcun.num,,kcun.time,kcun.writer,kcun.price,kcun.sort,kcun.kucun);fclose(fp);三统计选择函数void tongjixinxi(FILE *fp)if(fp=fopen("图书信息.txt","r")=NULL)printf("不能打开图书信息管理系统!n");exit(0); int choice; printf("1-书籍类别统计.n2-库存低于标准统计.n&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 橙色可爱卡通节约粮食模板
- 股权转让协议
- 产品业务提成合同范例
- 人事部经理工作总结模版
- 医疗健康大数据驱动的个性化医疗解决方案
- 2025年小学体育教师年度考核个人工作总结模版
- 运输新质生产力
- 预留、预埋、防雷等施工技术总结
- 中药柜销售合同范例
- 医院科室质控工作总结模版
- 业主大会申请书
- (部编版)语文五年级上册“小古文”阅读理解训练82篇附参考答案
- 《应收款项减值专题》课件
- 农艺师常规知识培训课件
- 2025-2030年中国管理咨询行业十三五发展战略规划及投资前景预测报告
- 改革开放史知到智慧树章节测试课后答案2024年秋齐鲁师范学院
- 夏季高温环卫工人安全培训
- 2025年广东深圳市福田街道办事处招聘历年高频重点提升(共500题)附带答案详解
- 第8课 良师相伴 亦师亦友(课件)-【中职专用】高一思想政治《心理健康与职业生涯》
- AI技术赋能体育课堂教学评价
- 国际物流中的风险管理与决策优化探讨
评论
0/150
提交评论