




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程报告课程名称:程序设计实践专业班级:信息类1110学生姓名:学号:任课教师:学期:20101 -2012学年第一学期课程报告任务书题 目图书信息管理系统主要内容开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、岀版社、类别、 出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量 等)。使之能提供以下 基本功能:(1)图书信息录入功能(图书信息用文件保存)一一输入?(2)图书信息浏览功能一一输岀(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):?按书名查询按作者名查询按照价钱排序按岀版时间排序等等(4)图书信息的删除与修改扩展功能:可以按照自
2、己的程度进行扩展。比如(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 概要设计 数据结构图书管理系统中主要的数据结构包含书名、图书书号、作者名、分类、出版社、出版时 间、价格等;在处理过程中各项可以作为一本图书的不同属性来进行处理。/ / 自定义枚举类型 fi_typ
5、e ,用来表示图书信息typedef enum _fi_typenews=1, / 图书信息fi_type;/ 图书信息结构体struct fi_infochar name11; / 书名char writer21; / 作者char shuhao10; / 书号char fenlei10; /分类char chuban20; / 出版社int chuba ntime; /出版时间float price; / 价格fi_type type;struct finfo* n ext;/结构体的指针域,用于存放链表的下个结点的地址;模块划分本系统主要有创建新的图书、查找图书、删除图书、修改图书、查看
6、图书和图书排序几 个基本功能。2将图书信息写成链表,头指针分别为struct fi_info *head=NULL,*head_=NULL ; /空int Book_num; /图书信息的统计数void menu();int Readi nfoFromFile(); /读入数据/函数申明int chua ngjia n(); /void chazhao(); /void sha nchu(); /void xiugai(); /void show(); /void paixu() ; /void quit(); /(3)程序结构创建新的图书信息查找图书删除图书修改图书查看图书图书排序退出开始3
7、详细设计1. 主菜单函数的原型:void menu()函数的功能:调用菜单,使用各项功能 程序:void menu ()prin tf(nn*图书信息管理系*n);printf( 主 菜 n);printf(ttt1;创建图书信息n);printf(ttt2;查找图书信息n);printf(ttt3;删除图书信息n);printf(ttt4;修改图书信息n);printf(ttt5;显示图书信息n);printf(ttt6;按出版时间排n);printf(ttt0 ;退出n);序printf( n);2. 新建文件函数的原型: int ReadinfoFromFile() 函数的功能:建立文件
8、储存数据 程序int ReadinfoFromFile() / 读入数据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); fscan
9、f(fp,%s,p-shuhao);fscanf(fp,%s,&p-fenlei);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;elseif(head_=NULL) head_=p; p-next=NULL;elsep-next=head_; head_=p; fclose(fp); return
10、0;3. 创建图书信息 函数的原型: int chuangjian() 函数的功能:记录图书的各项信息 程序: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)
11、;printf( 请输入出版社: ); scanf(%s,p-chuban);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,wr
12、iter21;int price;int b=1,i;printf( 按书名查找请按 1.n 按作者名查找请按 2.n 按组合查询请按 3.n); scanf(%d,&i);if(i=1)printf( 请输入要查找的书名 :);一个链表指针 p 的遍历,直到结尾 p=NULL字符串的比较函数,若前后相等则等于 0若存在,则 b=0scanf(%s,name);for(p=head;p!=NULL;p=p-next) /if(strcmp(name,p-name)=0) / b=0; /printf( 找到要查找的图书信息 :n); printf( 图书名称 %sn,p-name);print
13、f(图书作者%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,则不存在else if(i=2)printf( 请输入要查找的作者名 :);for(p=head;p!=NULL;p=p-next) /scanf(%s,writer);一个链表指针 p 的遍历,直到
14、结尾 p=NULLif(strcmp(writer,p-writer)=0) /b=0;/字符串的比较函数,若前后相等则等于 0若存在,则 b=0printf(printf(找到要查找的图书信息 :n); 图书名称 %sn,p-name);printf(printf(图书作者 %sn,p-writer);图书书号 %sn,p-shuhao);printf(图书分类 %sn,p-fenlei);printf(出版社 %sn,p-chuban);printf(出版时间%dn,p-chubantime);printf(图书价格%.2fn,p-price);if(head=NULL) printf(n
15、);if(b) printf(n); / 若b=1,则不存在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=0printf( 找到要查找的图书信息 :n);printf(图书名称%sn,p-name);printf(图书作者%sn,p-writer);
16、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,则不存在 else printf(n);system(PAUSE); / 暂停5. 删除图书信息 函数的原型: void shanchu() 函数的功能:通过书名确定图书,进而删除该书 程序:void shanchu() /
17、删除图书信息struct fi_info *p=NULL; / 定义两个结构体指针 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;elseq-next=p-next;printf( 删除成功! n);
18、else q=p;if(b) printf(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);sy
20、stem(PAUSE);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-c
21、hubantime); 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)
22、index=i; temp=aindex;aindex=ak; ak=temp; for(i=0;iname);printf(图书作者 %sn,ai-writer);printf(图书书号 %sn,ai-shuhao);printf(图书分类 %sn,ai-fe nlei);printf(出版社 %sn,ai-chuba n);printf(出版时间 %dn,ai-chubantime);printf(图书价格 %.2fn,ai-price);system(PAUSE);4调试分析此次编写的图书管理系统,相对于以前学到的程序,它要大得多,也要复杂的多。涉及 到多个模块的调用,每个模块都给我带来
23、一些困惑。其中感觉图书查找和排序这两个最为麻 烦。查找模块涉及到指针和链表问题后来在同学的帮助下得以解决,我就模仿按书名查找的 方法另外设计出了两种查找方法。排序中的for循环刚开始不是太熟练,出了很多错误。程序设计好后,数据的输出格式不太规范,而且各模块也出现了一些小问题,经过修改最后运 行的结果基本上达到了预期的目的。由于准备的有点仓促,没能把一些细节优化好,而且没 能加入一些其他功能,比如图书借阅模块,那样程序将会比较完美。5测试结果测试的部分数据书名作者书号分类出版社出版时间价格大学物理罗益民a1教科类北京邮电大学出版社58时间简史霍金b2科普类湖南科学技术出版社45仰望饶雪漫c3文学
24、类海南出版社15登录号任意输入F面为测试的部分结果截图H:Debug雯韦昔逞萦统ex杖“;创建图书信息2;查找图书信息3;删除图书信息4;修改图书信息5 ;显不图书信息6;按岀版时间排序0;退岀氏理民 邮11 剿物豆类京20 迪子罗科北 誚大al教:S 曲名:社时摂 尅 isrnlm n 一:4TB娈名者号米 书八念岀价 舞入入入入入入入 、I主冃主冃主冃主冃主冃主冃主冃H:DebugU韦昔逕萦统ex*6;按出版时间排序携按3. f&按请按聚查询 醤名查 al名者合r*科040 :書10.0续 Kswb2科湖2045继 查找 键羊 要查称者号类间曹 入要霑书八柱时理 芻按岀出S-佳冃刖%:B息 玉简H:DebugU韦背巻统ex*6;按出版时间排序桑 2 楠按3.Tr按请按 日主主冃3一劉名者合4- V 一 LLL nk理作书物民; 的燈子益科京“.0续 番大罗al教北20!:. 查找 键 要查称者号类间蚩思 入要霑书八柱时类邮
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023八年级英语上册 Module 2 My home town and my country Unit 2 Cambridge is a beautiful city in the east of England教学设计(新版)外研版
- 5 国家机构有哪些 课时2《国家机关的职权》 教学设计-2024-2025学年道德与法治六年级上册统编版
- 2024-2025学年高中物理 第2章 1 欧姆定律教学设计 教科版选修3-1
- 2023六年级语文上册 第八单元 语文园地教学设计新人教版
- Unit 3 My School Reading Plusl拓展阅读(教学设计)-2024-2025学年人教版(2024)七年级英语上册
- 《第一单元 红灯停 绿灯行 唱歌 小蚂蚁》(教学设计)-2023-2024学年人教版音乐一年级下册
- 16 大家一起来合作(教学设计)2023-2024学年统编版道德与法治 一年级下册
- 肠炎患儿护理查房
- 2015人教版九年级历史与社会下册:第五单元第三课第一框《苏联的改革与发展》教学设计(浙江椒江区洪家第二中学)
- 2025毕业答辩模板:创意与学术并存
- 2025年浙江省杭州市拱墅区中考语文模拟试卷含答案
- 原发性高血压护理措施
- 路面工程安全专项施工方案
- 人工智能基础(Python实现)-课件 第8章 生成式大模型应用
- 2024年安徽宁马投资有限责任公司招聘10人笔试参考题库附带答案详解
- 做新时代的忠诚爱国者课件
- 纪检监察审查调查业务培训
- 《变频器原理及应用》课件
- 2024年中考模拟试卷英语(苏州卷)
- 摄像服务行业品牌建设研究-深度研究
- 游戏人物立绘课程设计
评论
0/150
提交评论