ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:419.56KB ,
资源ID:16596774      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-16596774.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言图方案管理系统实验报告.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言图方案管理系统实验报告.docx

1、C语言图方案管理系统实验报告课 程 报 告课 程 名 称: 程序设计实践 专 业 班 级 : 信息类1110 学 生 姓 名 : 学 号 : 任 课 教 师 : 学 期 :20101-2012学年第二学期 课程报告任务书题 目图书信息管理系统主要内容开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:(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分成绩评定教师: 1 需求分析这是一个能简单管理图书的小型图书管理系统,其中图书信息包括:书名,作者名,书编号,分类,出版单位,出版时间,价格等。通过这些信息使之提供以下功能: (1)图书信息创建功能。其中图书信息包括:书名,作者名,书编号,分类,

4、出版单位,出版时间,价格等。(图书信息用文件保存)。(2)图书信息查看功能。用来查看各项图书信息。(3)图书信息查找功能。通过已知信息来查找想要的图书。(4)图书信息的删除。可以删除特定图书。(5)图书信息的修改。可以修改图书的各项信息。(6)图书信息的排序功能。按图书信息对录入的图书进行排序。(7)菜单选择功能,此功能也是图书信息信息管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能2 概要设计 数据结构图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。/自定

5、义枚举类型fi_type,用来表示图书信息 typedef enum _fi_type news=1, /图书信息 fi_type;/图书信息结构体 struct fi_info char name11; /书名 char writer21; /作者 char shuhao10; /书号 char fenlei10; /分类 char chuban20; /出版社 int chubantime; /出版时间 float price; /价格 fi_type type; struct fi_info* next; /结构体的指针域,用于存放链表的下个结点的地址; 模块划分本系统主要有创建新的图书

6、、查找图书、删除图书、修改图书、查看图书和图书排序几个基本功能。 2struct fi_info *head=NULL,*head_=NULL ; /将图书信息写成链表,头指针分别为空 int Book_num; /图书信息的统计数 void menu();int ReadinfoFromFile(); /读入数据 /函数申明 int chuangjian(); /创建新的图书信息void chazhao(); /查找图书void shanchu(); /删除图书void xiugai(); /修改图书void show(); /查看图书void paixu() ; /图书排序void qui

7、t(); /退出(3)程序结构3 详细设计1.主菜单函数的原型:void menu()函数的功能:调用菜单,使用各项功能程序:void menu() printf(nn*n); printf(-主菜单- n); printf(ttt n); printf(ttt n); printf(ttt n); printf(ttt n); printf(ttt n); printf(ttt n); printf(ttt n); printf(- n);2.新建文件函数的原型:int ReadinfoFromFile()函数的功能:建立文件储存数据程序int ReadinfoFromFile() /读入数

8、据 FILE *fp=NULL; /文件指针 struct fi_info *p=NULL; /结构体指针 int i; if(fp=fopen(sun.txt,r+)=NULL) printf(文件不存在!n); fp=fopen(sun.txt,w); /为输出打开一个文件 printf(文件建立成功!n); fscanf(fp,%d,&Book_num); /从文件中分别读入图书信息统计数,以便于下面for循环的条件控制 for(i=0;iname); fscanf(fp,%s,p-writer); fscanf(fp,%s,p-shuhao); fscanf(fp,%s,&p-fenl

9、ei); fscanf(fp,%s,p-chuban); fscanf(fp,%d,&p-chubantime); fscanf(fp,%.2f,&p-price); fscanf(fp,%d,&p-type); if(p-type=1) if(head=NULL) head=p; p-next=NULL; else p-next=head; head=p; else if(head_=NULL) head_=p; p-next=NULL; else p-next=head_; head_=p; fclose(fp); return 0;3.创建图书信息函数的原型:int chuangjian

10、()函数的功能:记录图书的各项信息程序:int chuangjian() /创建图书信息 struct fi_info *p=NULL; p=(struct fi_info*)malloc(sizeof(struct fi_info); printf(请输入书名:); scanf(%s,p-name); printf(请输入作者名:); scanf(%s,p-writer); printf(请输入书号:); scanf(%s,p-shuhao); printf(请输入分类:); scanf(%s,&p-fenlei); printf(请输入出版社:); scanf(%s,p-chuban);

11、printf(请输入出版时间:); scanf(%d,&p-chubantime); printf(请输入价格:); scanf(%f,&p-price); p-type=news; Book_num+=1; p-next=head; head=p; return 0;4.查找图书信息函数的原型:void chazhao()函数的功能:通过书名查找、作者查找、组合查找三种方式查找图书信息。程序:void chazhao() /查找图书信息 struct fi_info *p=NULL; char name10,writer21; int price; int b=1,i; printf(按书名

12、查找请按1.n按作者名查找请按2.n按组合查询请按3.n); scanf(%d,&i); if(i=1) printf(请输入要查找的书名:); scanf(%s,name); for(p=head;p!=NULL;p=p-next) /一个链表指针p的遍历,直到结尾p=NULL if(strcmp(name,p-name)=0) /字符串的比较函数,若前后相等则等于0 b=0; /若存在,则b=0 printf(找到要查找的图书信息:n); printf(图书名称 %sn,p-name); printf(图书作者 %sn,p-writer); printf(图书书号 %sn,p-shuhao

13、); printf(图书分类 %sn,p-fenlei); printf(出版社 %sn,p-chuban); printf(出版时间 %dn,p-chubantime); printf(图书价格 %.2fn,p-price); if(head=NULL) printf(n); if(b) printf(n); /若b=1,则不存在 else if(i=2) printf(请输入要查找的作者名:); scanf(%s,writer); for(p=head;p!=NULL;p=p-next) /一个链表指针p的遍历,直到结尾p=NULL if(strcmp(writer,p-writer)=0

14、) /字符串的比较函数,若前后相等则等于0 b=0; /若存在,则b=0 printf(找到要查找的图书信息:n); printf(图书名称 %sn,p-name); printf(图书作者 %sn,p-writer); printf(图书书号 %sn,p-shuhao); printf(图书分类 %sn,p-fenlei); printf(出版社 %sn,p-chuban); printf(出版时间 %dn,p-chubantime); printf(图书价格 %.2fn,p-price); if(head=NULL) printf(n); if(b) printf(n); /若b=1,则不

15、存在 else if(i=3) printf(请输入要查找的 书名 价格n:); scanf(%s %d,name,&price); for(p=head;p!=NULL;p=p-next) /一个链表指针p的遍历,直到结尾p=NULL if(strcmp(name,p-name)=0&price=p-price) /字符串的比较函数,若前后相等则等于0 b=0; /若存在,则b=0 printf(找到要查找的图书信息:n); printf(图书名称 %sn,p-name); printf(图书作者 %sn,p-writer); printf(图书书号 %sn,p-shuhao); print

16、f(图书分类 %sn,p-fenlei); printf(出版社 %sn,p-chuban); printf(出版时间 %dn,p-chubantime); printf(图书价格 %.2fn,p-price); if(head=NULL) printf(查无此书n); if(b) printf(n); /若b=1,则不存在 else printf(n); system(PAUSE); /暂停 5.删除图书信息函数的原型:void shanchu()函数的功能:通过书名确定图书,进而删除该书程序:void shanchu() /删除图书信息 struct fi_info *p=NULL; /定

17、义两个结构体指针 struct fi_info *q=NULL; char name10; int b=1; int a; printf(请输入要删除的书名:n); scanf(%s,name); for(p=head,q=head;p!=NULL;p=p-next) if(strcmp(name,p-name)=0) b=0; printf(确定删除? 0(是) or 1(否)n); scanf(%d,&a); if(a=0) if(p=head) head=head-next; else q-next=p-next; printf(删除成功!n); else q=p; if(b) prin

18、tf(next) if(strcmp(p-name,name)=0) b=0; printf(图书名称 %sn,p-name); printf(图书作者 %sn,p-writer); printf(图书书号 %sn,p-shuhao); printf(图书分类 %sn,p-fenlei); printf(出版社 %sn,p-chuban); printf(出版时间 %dn,p-chubantime); printf(图书价格 %.2fn,p-price); printf(n); scanf(%d,&a); if(a=0) printf(*请重新输入信息*n); printf(请输入书名:);

19、scanf(%s,p-name); printf(请输入作者名:); scanf(%s,p-writer); printf(请输入书号:); scanf(%s,p-shuhao); printf(请输入分类:); scanf(%s,&p-fenlei); printf(请输入出版社:); scanf(%s,&p-chuban); printf(请输入出版时间:); scanf(%d,&p-chubantime); printf(请输入价格:); scanf(%f,&p-price); p-type=news; printf(nn nn); if(b=1) printf(n); system(P

20、AUSE);7.显示图书信息 函数的原型:void show()函数的功能:显示已存图书的各项信息程序: void show() /显示图书信息 struct fi_info *p=NULL;system(cls); for(p=head;p!=NULL;p=p-next) printf(图书名称 %sn,p-name); printf(图书作者 %sn,p-writer); printf(图书书号 %sn,p-shuhao); printf(图书分类 %sn,p-fenlei); printf(出版社 %sn,p-chuban); printf(出版时间 %dn,p-chubantime);

21、 printf(图书价格 %.2fn,p-price); system(PAUSE);8.图书排序函数的原型:void paixu()函数的功能:按出版时间的不同将记录的图书排序程序:void paixu() /按出版时间排序 struct fi_info *a1000,*p,*p1,*temp; int i,k,index,n=0; char b; p1=head; for(p=head;p;p=p-next) n+; for(i=0;inext; for(k=0;kn-1;k+) index=k; for(i=k+1;ichubantimeai-chubantime) index=i; t

22、emp=aindex; aindex=ak; ak=temp; for(i=0;iname); printf(图书作者 %sn,ai-writer); printf(图书书号 %sn,ai-shuhao); printf(图书分类 %sn,ai-fenlei); printf(出版社 %sn,ai-chuban); printf(出版时间 %dn,ai-chubantime); printf(图书价格 %.2fn,ai-price); system(PAUSE);4 调试分析此次编写的图书管理系统,相对于以前学到的程序,它要大得多,也要复杂的多。涉及到多个模块的调用,每个模块都给我带来一些困惑

23、。其中感觉图书查找和排序这两个最为麻烦。查找模块涉及到指针和链表问题后来在同学的帮助下得以解决,我就模仿按书名查找的方法另外设计出了两种查找方法。排序中的for循环刚开始不是太熟练,出了很多错误。程序设计好后,数据的输出格式不太规范,而且各模块也出现了一些小问题,经过修改最后运行的结果基本上达到了预期的目的。由于准备的有点仓促,没能把一些细节优化好,而且没能加入一些其他功能,比如图书借阅模块,那样程序将会比较完美。5测试结果测试的部分数据 书名作者书号分类出版社出版时间价格大学物理罗益民a1教科类北京邮电大学出版社58时间简史霍金b2科普类湖南科学技术出版社45仰望饶雪漫c3文学类海南出版社1

24、5登录号任意输入下面为测试的部分结果截图 。6 课程心得总结 通过这次亲自动手编写C语言图书管理系统,从中收获了很多。很多学过的知识得以巩固,对链表、数组指针、结构体等知识有了更深一步的了解。编写的过程中我也借鉴别人设计的一些程序,从中发现了自己的一些不足,在构建框架和编写源程序上面的一些问题。在源程序编写好后,对源程序的检测花费了我很多时间,这也算是锻炼了我的耐心。在检测中发现的一些细节上的毛病和粗心这个坏习惯都需要我加以改正。同时同学对我的帮助也比较大,有些问题很感谢他们对我的帮助。亲自编写了这个大型程序后,我领悟了“实践出真知”这个道理,体会到了C语言的巨大用处,对C语言有了更浓厚的兴趣。在今后我也会更加深入的学习C语言,打好稳固的基础,

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2