C语言课程设计报告—图书信息管理系统_第1页
C语言课程设计报告—图书信息管理系统_第2页
C语言课程设计报告—图书信息管理系统_第3页
C语言课程设计报告—图书信息管理系统_第4页
C语言课程设计报告—图书信息管理系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 程 设 计 报 告课程名称 C语言课程设计 课题名称 图书管理系统 专 业 电气工程及其自动化 班 级 学 号 姓 名 指导教师 2016 年 12 月 20日湖南工程学院课 程 设 计 任 务 书课程名称 C语言课程设计 课 题 图书管理系统 专业班级 电气1604 学生姓名 学 号 指导老师 审 批 二、进度安排星期时间班级内容地点第16周二7-8节电气1604布置任务D600第17周二下午2:00-5:50电气1604布置任务D600第17周三下午2:00-5:50电气1604布置任务D600第17周四下午2:00-5:50电气1604布置任务D600第17周五下午2:00-5:50

2、电气1604布置任务D600湖南工程学院计算机科学系2016年12月 13 日目 录1 题目要求2 分析3 总体设计4 详细设计5运行与测试报告 C 语言程序设计编程实践是学习C语言程序设计的一重要环节,上机实习和课程设计是提高同学们程序设计能力的有效途径,能够使同学们初步掌握程序设计的基本方法和调试技能。学校安排上机时间有限,老师也只能教给我们一些方法,而我们自己需要投入很大的时间和精力来锻炼。1、题目要求设计“图书信息管理系统”要求:图书信息包括:登录号,书名,作者名,分类号,出版单位,出版时间,价格等。使之提供以下功能:(1) 系统以菜单方式工作。(2) 图书信息录入功能。(图书信息用文

3、件保存)。(3) 图书信息浏览功能。(4) 图书信息查询功能。(5) 图书信息的删除和修改。2、分析:根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。3、总体设计: 根据题目要求,可以将系统分为六个模块:(1) 管理员登录系统模块。(2) 菜单选择模块。(3) 图书信息录入功能模块。(4) 图书信息浏览功能。(5) 图书信息查询

4、功能。(6) 图书信息的删除和修改。 第1页管理员登录系统模块菜单选择模块。菜单选择模块。菜单选择模块。菜单菜单选择模块。(1) 择模块。图书信息录入功能模块图书信息浏览功能模块图书信息查询功能模块图书信息的删除和修改图书信息管理系统第 2页4、详细设计:头函数名:#include<stdio.h>#include<stdlib.h>#include<string.h>/*图书信息结构体*/*包括登录号,书名,作者名,分类号,出版单位,出版时间,价格等*/struct bookinf int num; *登录号 char bname20;* 书名 char

5、wname10;* 作者名 char clanum14;* 分类号 char pubcom10;* 出版单位 char pubtime10;* 出版时间 float price;* 价格;一管理员登录系统模块:(1) 来到图书信息管理系统页面void index() char input; 注释:运行时 printf("nnttt*n"); 直接进入 printf("ttt 图书信息管理系统n"); 这个页面 printf("ttt*nnn"); printf(" -n"); printf("t<按

6、任意键进入>nt"); input=getchar(); (2) 管理员登陆进入功能菜单页面第3 页 开始输入管理员帐号和密码输入正确与否进入功能菜单页面结束NFILE *fp;struct manage pswd; if (fp=fopen("password.txt","r")=NULL) printf("nnntCannot open file!nt"); else do printf("nnt请输入管理员帐号:"); scanf("%s",name); printf(&q

7、uot;nnt请输入管理员密码:"); scanf("%s",password); fp=fopen("password.txt","r"); fread(&pswd,sizeof(struct manage),1,fp); fclose(fp); w=strcmp(pswd.manage_name,name); k=strcmp(pswd.password,password); adm_servelist(); while (w!=0|k!=0); adm_servelist(); 第 4 页(3)来到功能菜单页面

8、void adm_servelist() void book_add(); void book_view(); void change(); void del(); void book_search(); void login(); void pwchange(); int in; 注释:菜单列出的服务种类 char input; 从1,2,3,4,5,6 do 所对应的功能进行选择 printf("nnnt-欢迎使用信息管理系统-"); printf("nnt1.图书信息录入n"); printf("t2.图书信息浏览n"); pr

9、intf("t3.图书信息查询n"); printf("t4.图书信息删除n"); printf("t5.图书信息修改n"); printf("t6.退出管理模式n"); printf("nt请选择服务种类:"); scanf("%d",&in); if (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6) printf("nt没有这项服务n&qu

10、ot;); printf("t按任意键重新选择"); input=getchar(); while (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6); switch (in) case 1: book_add(); break; 注释:选择自己所需要 case 2: book_view(); break; 后摁下数字键则 case 3: book_search(); break; 则进入此功能页面 case 4: del(); break; case 5: c

11、hange();break; case 6: login(); break; 第 5 页(4)图书信息录入功能模块void book_add() void adm_servelist(); void book_add(); int i=0,j; FILE *fp; char input; 注释:输入的图书信息 struct bookinf books; 是通过文件进行 struct bookinf book_taxis30; 保存的 printf("nnnt-请输入图书信息-nn"); printf("t登录号:"); scanf("%d&qu

12、ot;,&books.num); printf("nt书名:"); scanf("%s",books.bname); printf("nt作者名:"); scanf("%s",books.wname); printf("nt分类号:"); scanf("%s",books.clanum); printf("nt出版单位:"); scanf("%s",books.pubcom); printf("nt出版时间:"

13、;); scanf("%s",books.pubtime); printf("nt价格:"); scanf("%f",&books.price); if (fp=fopen("book.txt","r")!=NULL) do fread(&book_taxisi,sizeof(struct bookinf),1,fp); i=i+1; while(!feof(fp); fclose(fp); for (j=0;j<=i;j+) if (books.num=book_taxi

14、sj.num) printf("nnnt对不起,这个编号已经使用过了n"); printf("t按任意键返回管理菜单"); input=getchar(); adm_servelist(); break; 第 6页 if (fp=fopen("book.txt","r")=NULL) fp=fopen("book.txt","w"); else fclose(fp); fp=fopen("book.txt","a"); fwrite(&

15、amp;books,sizeof(struct bookinf),1,fp); fclose(fp); printf("nnnt信息输入完毕按任意键继续n"); input=getchar(); adm_servelist();(3) 图书信息浏览功能模块void book_view() void adm_servelist(); void book_view(); int inp,i=0,n=0; FILE *fp; char input; struct bookinf bookview20; if (fp=fopen("book.txt","

16、;r")=NULL) printf("nnnt数据尚未初始化nnt请在管理菜单中增加图书信息n"); printf("nt<按任意键返回管理菜单>nt"); input=getchar(); adm_servelist(); else do fread(&bookviewi,sizeof(struct bookinf),1,fp); i=i+1; while (!feof(fp); fclose(fp); do 第 7 页 printf("nt-共有%d条记录-",i-1); printf("n

17、nt登录号: %dn",bookviewn.num); printf("nt书名: %sn",bookviewn.bname); printf("nt作者名: %sn",bookviewn.wname); printf("nt分类号: %sn",bookviewn.clanum); printf("nt出版单位: %sn",bookviewn.pubcom); printf("nt出版时间: %sn",bookviewn.pubtime); printf("nt价格: %fn

18、",bookviewn.price); printf("nnt1.上一页t2.下一页t3.回目录n"); printf("nt请选择:"); scanf("%d",&inp); switch (inp) case 1: if (n=0) printf("nt已到达首页nt按任意键重新选择"); input=getchar(); else n=n-1; break; case 2: if (n=i-2) printf("nt已到达最末页nt按任意键重新选择"); input=ge

19、tchar(); else n=n+1; break; case 3: adm_servelist(); break; default: printf("nt没有这项服务nt按任意键重新选择"); input=getchar(); 第 8 页 while (inp!=3);(4) 图书信息修改与删除功能模块修改: void change(int x) int inp,i=0,j; void book_search(); FILE *fp,*fp1; char input; struct bookinf books,book_taxis20; do printf("

20、nnnt注意:您确定要修改该记录吗?n"); printf("nt1.是t2.否n"); printf("nt请输入:"); scanf("%d",&inp); if (inp!=1&&inp!=2) printf("nt对不起没有这项服务n"); printf("t按任意键重新选择nt"); input=getchar(); while (inp!=1&&inp!=2); if (inp=2) book_search(); if (inp=1)

21、 printf("nnnt-请输入图书信息-nn"); printf("t登录号:"); scanf("%d",&books.num); printf("nt书名:"); scanf("%s",books.bname); printf("nt作者名:"); scanf("%s",books.wname); printf("nt分类号:"); scanf("%s",books.clanum); printf(&

22、quot;nt出版单位:");第 9 页 scanf("%s",books.pubcom); printf("nt出版时间:"); scanf("%s",books.pubtime); printf("nt价格:"); scanf("%f",&books.price); if (fp1=fopen("book.txt","r")!=NULL) do fread(&book_taxisi,sizeof(struct bookinf)

23、,1,fp1); i=i+1; while(!feof(fp1); fclose(fp1); for (j=0;j<x;j+) if (books.num=book_taxisj.num) printf("nnnt对不起,这个编号已经使用过了n"); printf("t按任意键返回管理菜单"); printf("0"); input=getchar(); book_search(); break; for (j=x+1;j<i-2;j+) if (books.num=book_taxisj.num) printf(&quo

24、t;nnnt对不起,这个编号已经使用过了n"); printf("1"); printf("t按任意键返回管理菜单"); input=getchar(); book_search(); break; book_taxisx=books; fp=fopen("book.txt","w"); for (j=0;j<i-1;j+) fwrite(&book_taxisj,sizeof(struct bookinf),1,fp); fclose(fp);第 10 页 printf("nnt

25、信息修改完成!按任意键返回"); input=getchar(); book_search(); S删除:void del(int y) char input; FILE *fp; int inp,i=0,j; struct bookinf book_taxis20; void book_search(); void adm_servelist(); do printf("nnnt注意:您确定要删除该记录吗?n"); printf("nt1.是t2.否n"); printf("nt请输入:"); scanf("%d

26、",&inp); if (inp!=1&&inp!=2) printf("nt对不起没有这项服务n"); printf("t按任意键重新选择nt"); input=getchar(); while (inp!=1&&inp!=2); if (inp=2) book_search(); if (inp=1) if (fp=fopen("book.txt","r")!=NULL) do fread(&book_taxisi,sizeof(struct booki

27、nf),1,fp); i=i+1; while(!feof(fp); fclose(fp); if (i>2) 第 11 页 fp=fopen("book.txt","w"); for (j=0;j<y;j+) fwrite(&book_taxisj,sizeof(struct bookinf),1,fp); fclose(fp); fp=fopen("book.txt","a"); for (j=y+1;j<i-1;j+) fwrite(&book_taxisj,sizeof(s

28、truct bookinf),1,fp); fclose(fp); else remove("book.txt"); printf("nnt记录已删除!nnt按任意键返回nt"); input=getchar(); adm_servelist(); (5) 图书信息查询功能模块void book_search() void adm_servelist(); void id_search(); void wr_search(); void bn_search(); char input; FILE *fp; int inp; if (fp=fopen("book.txt","r")=NULL) printf("nnnt数据尚未初始化nnt请在管理菜单中增加图书信息n"); printf("nt<按任意键返回管理菜单>nt"); input=getchar(); adm_servelist(); else do 第12页 printf("nnnt1.按图书登录号查询n")

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论