




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 中国地质大学C语言课程设计综合实习报告 题目:图书信息管理系统 姓名: 班学号: 院系: 专业: 指导教师: 2008 年 7 月目录(1)作者简介3(2)报告摘要3(3)报告主体33.1报告要求33.2需求分析33.3总体设计43.4详细设计43.4.1主函数43.4.2各功能模块设计63.4.3公共函数123.5上机操作153.5.1数据源153.5.2编译、连接和运行153.5.3结果15(4)实习总结20(1)作者简介: 我叫王栋,是地球科学学院资源环境与城乡规划管理专业的二年级学生,有幸在大二上学期学习C程序设计这
2、门课程.刚开始的时候对这门课没什么理解,觉得很难很复杂,而在后来慢慢深入的学习之后开始对其产生了兴趣。看到自己亲手编写的程序能够发挥出作用,觉得能够运用自己写出来的东西做出成果很高兴。同时也知道了做程序并不是想象之中的那么难的,只要我们能好好看懂课本上面的东西,并能在实践中加以练习就一定能够很好的掌握。(2)报告摘要:本论文设计了程序:C语言课程设计指导书第12题图书信息管理系统。这个管理系统能对图书信息(包括登录号、书名、作者号、分类号、出版单位、出版时间、价格等)进行有效地信息录入、浏览、查询、插入、删除等操作,会给用户带来很大的便利,达到既节省时间又节省精力的目的。(3)报告主体:3.1
3、 题目要求图书信息包括登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)图书信息录入功能(图书信息用文件保存)(3)图书信息浏览功能(4)图书信息查询功能(5)图书信息删除与修改功能(可选项) 提示 建立图书信息结构体,结构体成员包括登录号、书名、作者名、分类号、出版单位、出版时间、价格。3.2 需求分析根据题目要求,要求对图书信息进行输入、输出等操作;在程序中需要浏览图书的信息,应提供显示、查找、浏览、插入、修改等操作;另外还应提供键盘式选择菜单实现功能选择。3.3总体设计根据需求分析,可以对这个系统的设计分
4、为以下几个模块:图书信息管理系统数据输入数据浏览数据查找数据插入退出图1.3 系统功能模块图3.4详细设计 主函数主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。流程图:显示一系列功能选项根据 n的值调用各功能模块函数NY输入n ,判断n 是否是0-5图 主函数流程图程序 /*主函数*/main ()menu();/*menu函数*/void menu() int n,w; do puts("tt*MENU*nn"); puts("tttt 1.enter"); puts("tttt 2.brows
5、e"); puts("tttt 3.search"); puts("tttt 4.delete or modify");puts("tttt 5.add"); puts("tttt 6.exit");puts("nntt*n"); printf("Choice your number(1-5): bb"); scanf("%d",&n); if(n<1|n>6) w=1;getchar(); else w=0; while(w
6、=1); switch(n) case 1:enter();break; case 2:browse();break; case 3:search();break; case 4:deal();break; case 5:add();break; case 6:exit(0); 注:menu函数能提供菜单方式选择功能,可以根据用户需要进入到所想要的操作模块中,此外把menu函数独立出来,可以方便随时对它进行调用,容易返回到系统界面。各功能模块设计(1)输入模块在这里主要运用结构体的形式来输入保存图书的各种信息,包括图书的登录号、书名、作者名、分类号等等,因为图书的数目众多,因此采用结构体数组的
7、形式。用结构体来存放图书信息:/*结构体*/#define N 100#include<stdio.h>#include<string.h>#include<stdlib.h>struct book char dlnum10; char name50; char writer20; char flnum10; char pressname50; char presstime20; char price10; booksN; booksN中每个数组元素对应一本图书*/其中可以根据宏定义# define N随时对N的值进行调整,扩大信息的储存量。程序:/*输入模
8、块*/void enter() int i,n; void menu(); void input(int k); void save(int k); printf("How many books(0-%d)?:",N-1); scanf("%d",&n); printf("n Enter data nownn"); for(i=0;i<n;i+) printf("n Input %dth book record.n",i+1); input(i); if(i!=0)save(n); printf(&q
9、uot;Pass any key to backn"); getchar(); menu(); (2)浏览模块需求分析 该模块的功能是显示所有图书记录信息。流程图显示图书记录(10个一屏):按任意键显示下一屏按任意键返回主菜单图1 浏览模块流程图程序:/*浏览(全部)模块*/void browse() int k; void menu(); int load(); void printf_books(int n); k=load(); printf_books(k); printf("Pass any key to backn"); getchar(); menu
10、();(3)查找模块/*按书名查找模块*/流程图:按书名查找模块用户作出选择,输入一整型数值1,2,还是3修改返回主菜单继续查找图2 按书名查找模块流程图void search_by_name()struct book s;int n,i,k=0;int load();void printf_one(int i);n=load();printf("enter a book name: ");scanf("%s",&); for(i=0;i<n;i+) if(strcmp(,)=0) printf
11、_one(i); k=1; if(k=0)printf("nNot found the file!n"); /*按作者查找模块*/ 流程图按作者名称查找模块用户作出选择,输入一整型数值1,2,还是3修改继续查找返回主菜单图3按图书名查找模块流程图程序:void search_by_writer()struct book s; int n,i,k=0;int load();void printf_one(int i);n=load();printf("enter a writer's name: ");scanf("%s",&a
12、mp;s.writer); for(i=0;i<n;i+) if(strcmp(s.writer,booksi.writer)=0) printf_one(i); k=1; if(k=0)printf("nNot found the file!n");/*按出版社查找模块*/按出版社查找模块用户作出选择,输入一整型数值1,2,还是3返回主菜单修改继续查找图4 按出版社查找模块流程图void search_by_press() struct book s; int n,i,k=0; int load(); void printf_one(int i); n=load()
13、; printf("enter a press: "); scanf("%s",&s.pressname); for(i=0;i<n;i+) if(strcmp(s.pressname,booksi.pressname)=0) printf_one(i); k=1; if(k=0)printf("nNot found the file!n");/*按登录号查找模块*/按登录号查找模块用户作出选择,输入一整型数值1,2,还是3修改继续查找返回主菜单图5 按登录号查找模块流程图void search_by_dlnum() s
14、truct book s; int n,i,k=0; int load(); void printf_one(int i); n=load(); printf("enter a dlnum: "); scanf("%s",&s.dlnum); for(i=0;i<n;i+) if(strcmp(s.dlnum,booksi.dlnum)=0) printf_one(i); k=1;if(k=0)printf("nNot found the file!n");(4)插入模块需求分析 该模块的功能是插入图书纪录信息并且不能覆
15、盖原有图书信息。流程图插入模块调用加载函数让用户输入要插入的图书信息个数调用整条信息输入函数用户作出选择,输入1or21还是21 浏览全部2返回主菜单图6插入模块流程图/*插入模块*/add() int i,n,m,k; FILE*fp; n=load(); printf("How many book are you want to add(0-%d)?:",N-1-n); scanf("%d",&m); k=m+n; for(i=n;i<k;i+) printf("nInput %d the books record.n&quo
16、t;,i-n+1 ); input(i); if(fp=fopen("book.txt","ab")=NULL) printf("cannot open filen"); for(i=n;i<k;i+) if(fwrite(&booki,sizeof(struct book),1,fp)!=1) printf("file write errorn"); fclose(fp); printf_back();(5)修改功能void modify(int m,int n) int c,w1; void me
17、nu(); do puts("nmodify by =>nn 1).dlnum 2).name 3).writer 4).flnumn5).pressname 6).presstime 7).price 8).modify all"); printf("Which you need?: bb"); scanf("%d",&c); if(c>8|c<1) puts("nChoice error! Please again!"); getchar(); while(c>8|c<1)
18、; do switch(c) case 1:printf("dlnum: ");scanf("%s",booksm.dlnum);break;case 2:printf("name: ");scanf("%s",);break;case 3:printf("writer: ");scanf("%s",booksm.writer);break;case 4:printf("flnum: ");scanf("%s",b
19、ooksm.flnum);break;case 5:printf("pressname: ");scanf("%s",booksm.pressname);break;case 6:printf("presstime: ");scanf("%s",booksm.presstime);break;case 7:printf("price: ");scanf("%s",booksm.price);break;case 8:printf("Enter a new infor
20、mation:n");input(m); printf_face(); printf_one(m); printf("nAre you sure?nnt1).Sure 2).no and remodify 3).Back without save in this time bb"); scanf("%d",&w1); while(w1=2); if(w1=1)save(n);公共函数(1) 保存函数 save(int n)void save(int n) FILE *fp; int i; if(fp=fopen("book.t
21、xt","wb")=NULL) printf("nCannot open filen"); for(i=0;i<n;i+) if(fwrite(&booksi,sizeof(struct book),1,fp)!=1) printf("file write erron"); fclose(fp);(2)加载函数 load()int load() FILE *fp; int i; if(fp=fopen("book.txt","rb")=NULL) printf("
22、;nCannot open filen"); return 0; for(i=0;!feof(fp);i+) fread(&booksi,sizeof(struct book),1,fp); fclose(fp); return(i-1);(3)图书信息输入函数no_input(int i,int n)void input(int i) printf_face();scanf("%s%s%s%s%s%s%s",booksi.dlnum,,booksi.writer,booksi.flnum,booksi.pressname,books
23、i.presstime,booksi.price);(4)输入整一个记录函数input(int i) 说明:形参i表示第i个图书记录。void input(int i)no_input(i,i); printf("book-name:");scanf("%s",); printf("writer-name:");scanf("%s",booki.writer); printf("classify-num:");scanf("%s",booki.flnum)
24、; printf("publish-unit:");scanf("%s",booki.pressname); printf("publish-time:");scanf("%s",booki.presstime); printf("price:");scanf("%s",booki.price); (5)显示一个记录的函数 printf_one(int i)void printf_one(int i)printf("%5s %5s %5s %5s %5s %5s %
25、5s",booksi.dlnum,,booksi.writer,booksi.flnum,booksi.pressname,booksi.presstime,booksi.price);printf("nn");(6)一个任务结束时的选择浏览还是返回的函数printf_back()void printf_back() int w; do printf("What do you want to do?nnt1).BACK TO MENUt2)continue .: bb"); scanf("%d",&am
26、p;w); switch(w) case 1: menu();break; case 2: menu_search();break; while(w!=1&&w!=2);(7)修改整条数据记录函数modify_data(int i,int n)void modify(int m,int n) int c,w1; void menu(); do puts("nmodify by =>nn 1).dlnum 2).name 3).writer 4).flnumn5).pressname 6).presstime 7).price 8).modify all"
27、;); printf("Which you need?: bb"); scanf("%d",&c); if(c>8|c<1) puts("nChoice error! Please again!"); getchar(); while(c>8|c<1); do switch(c) case 1:printf("dlnum: ");scanf("%s",booksm.dlnum);break; case 2:printf("name: ");sc
28、anf("%s",);break; case 3:printf("writer: ");scanf("%s",booksm.writer);break; case 4:printf("flnum: ");scanf("%s",booksm.flnum);break; case 5:printf("pressname: ");scanf("%s",booksm.pressname);break; case 6:printf("presstime: ");scanf("%s",booksm.presstime);break; case 7:printf("price: ");scanf("%s",booksm.price);break; case 8:printf("Enter a new
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025医疗设备、耗材、试剂采购协议合同
- 2025存量房买卖合同附加协议(现房)
- 二年级上册科学教案-太阳的位置和方向-1教学设计
- 亚马逊商城的课件
- 2025私人仓库租赁合同书
- 关于电动自行车骑行安全致学生家长的一封信
- Scratch 编程《揭秘机器学习》(教案)六年级下册信息科技Scratch编程
- 《全球金融市场概述》课件
- 2025标准商业店铺出租合同模板
- 2023-2024学年浙江摄影版(三起)(2020)小学信息技术五年级下册第二单元第8课 变量计数(教学设计)
- 北京市丰台区2025届高三下学期3月一模试题 英语 含解析
- 饰品工厂知识培训课件
- 无人机飞手培训班合作合同协议范本模板
- 中国时尚产业的发展趋势分析
- VDA6.3-2023版培训教材课件
- 2025河北保定钞票纸业有限公司人员招聘29人笔试参考题库附带答案详解
- 2025有关房屋买卖合同书模板
- 河北新化股份有限公司锅炉技改项目(噪声、固体废物)竣工环境保护验收报告
- 高++中语文++高考复习+语言文字运用之错别字
- 个人用电协议合同范例
- SZDB∕Z 317-2018 大中型商场、超市安全防范规范
评论
0/150
提交评论