收藏 分享(赏)

《C语言程序设计实践》课程报告new.doc

上传人:dzzj200808 文档编号:2638526 上传时间:2018-09-24 格式:DOC 页数:24 大小:838.18KB
下载 相关 举报
《C语言程序设计实践》课程报告new.doc_第1页
第1页 / 共24页
《C语言程序设计实践》课程报告new.doc_第2页
第2页 / 共24页
《C语言程序设计实践》课程报告new.doc_第3页
第3页 / 共24页
《C语言程序设计实践》课程报告new.doc_第4页
第4页 / 共24页
《C语言程序设计实践》课程报告new.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、 1课 程 报 告课 程 名 称: 程序设计实践 专 业 班 级 : 计算机科学与技术 1205 班 学 生 姓 名 : 雷原康 学 号 : 201216010522 任 课 教 师 : 陈卫东 学 期 :2012-2013 学年第二学期 2课程报告任务书题 目 图书信息管理系统主要内容开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等) 。使之能提供以下基本功能:(1)图书信息录入功能(图书信息用文件保存 )输入(2)图书信息浏览功能输出(3)查询功能(至少一种查询方式 )、排序功能(至少一

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 分 总分成绩评定成绩评定教师: 31.需求分析经过大一上学期的理论学习,在基础实验的基础上,本学期我们继续开设了 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

6、图书信息统计系统:1-void sorttongji 书籍类别统计 .2-void kuno 库存低于标准统计3.程序框架1 进行录入图书信息2 录入后进行浏览系统3 然后根据需要分别进行查询,排序,修改,删除,统计功能43.详细设计:1.定义图书结构:typedef struct booklong num;/书的序号char nameMAX;/书名char timeMAX;/出版时间char writerMAX;double price;char pressMAX;/出版社char sortMAX;int kucun;/库存量book;2.图书录入系统:void AddNewbook(FIL

7、E *fp)/*添加书籍system(“cls“);int a;if(fp=fopen(“图书信息.txt“,“a+“)=NULL)printf(“不能打开图书信息管理系统!n“);exit(0);book newbook;printf(“(-1 代表结束)“);while(a!=-1)printf(“输入书籍编号:“);scanf(“%ld“,printf(“输入书名:“);scanf(“%s“,newbook.name);printf(“输入出版时间:“);scanf(“%s“,newbook.time);5printf(“输入作者:“);scanf(“%s“,newbook.writer

8、);printf(“输入价格:“);scanf(“%lf“,printf(“输入出版社:“);scanf(“%s“,newbook.press);printf(“输入书籍种类:“);scanf(“%s“,newbook.sort);printf(“输入库存量:“);scanf(“%d“,fwrite(scanf(“%d“,fclose(fp);3.图书浏览系统void Rprint(FILE *fp)/图书信息浏览system(“cls“);if(fp=fopen(“图书信息.txt“,“r+“)=NULL)printf(“不能打开图书信息管理系统!n“);exit(0);book log;p

9、rintf(“书籍编号 书名 出版时间 作者 价格 出版社 种类 库存量 n“);while(!feof(fp)fread(printf(“%8ld %s %6s %10s %.2lf %s %s %d n“,log.num,log.name,log.time,log.writer,log.price,log.press ,log.sort,log.kucun); 4.图书查询系统一按编号查找void numnode(FILE *fp)if(fp=fopen(“图书信息.txt“,“r“)=NULL)6printf(“不能打开图书信息管理系统!n“);exit(0);long num;int

10、i=0;book chaxun;printf(“Enter num:“);scanf(“%ld“,while(!feof(fp)fread(if(num=chaxun.num)printf(“%ldt%st%st%st“,chaxun.num,chaxun.name,chaxun.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

11、)if(fp=fopen(“图书信息.txt“,“r“)=NULL)printf(“不能打开图书信息管理系统!n“);exit(0);int i=0;char nameMAX;7book chaxun;printf(“Enter name:“);scanf(“%s“,name);while(!feof(fp)fread(if(strcmp(name,chaxun.name)=0)printf(“%ldt%st%st%st%.2lft%st%dn“,chaxun.num,chaxun.name,chaxun.time,chaxun.writer,chaxun.price,chaxun.sort,

12、chaxun.kucun);i=1;if(i!=1)printf(“对不起,没有你想要查找的书籍。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(if(strcmp(writer,chaxun.writer)=0)8prin

13、tf(“%ldt%st%st%st%.2lft%st%dn“,chaxun.num,chaxun.name,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“,“r“)=NULL)printf(“不能打开图书信息管理系统!n“);exit(0);int i=0;char pressMAX;book chaxun;

14、printf(“Enter press:“);scanf(“%s“,press);while(!feof(fp)fread(if(strcmp(press,chaxun.press)=0)printf(“%ldt%st%st%st%.2lft%st%dn“,chaxun.num,chaxun.name,chaxun.time,chaxun.writer,chaxun.price,chaxun.sort,chaxun.kucun);i=1;9if(i!=1)printf(“对不起,没有你想要查找的书籍。n“);fclose(fp);五模糊查询void fuzzy(FILE *fp)if(fp=f

15、open(“图书信息.txt“,“r“)=NULL)printf(“不能打开图书信息管理系统!n“);exit(0);int k=0;char zifuMAX;book chaxun;printf(“输入关键字:“);getchar();int i,j;for(i=0;(zifui=getchar()!=n;i+);zifui=0;while(!feof(fp)fread(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“,chax

16、un.num,chaxun.name,chaxun.time,chaxun.writer,chaxun.price,chaxun.sort,chaxun.kucun);k=1;if(k!=1)printf(“对不起,没有你想要查找的书籍。n“);fclose(fp);104.排序功能一 按价钱排序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(!feof(fp)

17、fread(i+;for(i=1;ipaixuj+1.price)t=paixuj;paixuj=paixuj+1;paixuj+1=t;for(i=1;i0)t=paixuj;paixuj=paixuj+1;paixuj+1=t;for(i=1;ikcun.kucun)printf(“%ldt%st%st%st%.2lft%st%dn“,kcun.num,kcun.name,kcun.time,kcun.writer,kcun.price,kcun.sort,kcun.kucun);fclose(fp);三统计选择函数void tongjixinxi(FILE *fp)if(fp=fopen

18、(“图书信息.txt“,“r“)=NULL)printf(“不能打开图书信息管理系统!n“);exit(0);16int choice;printf(“1-书籍类别统计 .n2-库存低于标准统计.n“);scanf(“%d“,switch(choice)case 1:sorttongji(fp);break;case 2:kuno(fp);break;default:printf(“errorn“);break;4.调试分析:问题一 界面不美观,进入一次系统只能进行一项操作的问题解决方法 通过将主菜单与清屏函数(system(“cls” ) )一起,在每次进行完一次具体操作后都能出现 prin

19、tf(“Enter your choice:n“);问题二: 浏览图书信息时编号等文字与下面的图书信息不对应解决办法:文字与文字间的间隔与字符字符间的间隔一致问题三:一些小错误比如单词前后拼写错误解决办法:反复调试修改问题四:在查询中由于回车符释放过多使信息录入异常解决办法:去掉多余的 getchar()问题五:输入时无法结束输入的问题解决办法:由于在输入时时先输入图书的编号,所以在输入时除了输入第一本图书的信息,即在输入第一本图书之后在输入时先输入图书的编号,加上一个判断循环 while(num!=-1)才继续输入完这本图书的其他信息,即-1 可以作为输入结束标志.5.测试结果一界面172.

20、录入图书3.浏览图书184 按编号查询图书5 按书名查询196.按出版社查找7.按价格排序208 按出版时间排序9 按书籍类别统计2110 库存低于标准统计2211.图书信息修改修改后浏览图书2312 图书删除,删除 3 后的浏览246.课程心得总结经历了几个星期的课程设计,从设计前期的不知如何下手到开始设计时的各种错误的困扰再到一个个的攻破各个问题,最后到对程序的进一步完善与课程报告的撰写。这一段时间我们由被程序困扰到几乎崩溃到最后成就感的油然而生;从一整天的坐在电脑屏幕面前到现在的带着喜悦一遍一遍运行着程序;一遍遍的互相探讨解决大家遇到的问题到越来越发现编程的有意思,我到现在真的感觉认真自己做完这样一个系统收获颇大:1.对结构化程序设计与函数的嵌套调用有了更清晰具体的认识;2.引入了文件知识可以对电脑硬盘上的数据操作,改变了对 C 语言的狭义认识,认识 到 C语言实际上还可以实现更复杂丰富的功能来利用开发的软件来进一步实现对现实中的问题的解决;3.学习到语言的学习一定不不能忽视一个很小很小的细节,因为完全会导致不同的结果对如何用语言来完成一个较大的系统的整体思路有清晰的认识

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报