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

下载本文档

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

文档简介

1、应用数学学院14C语言程序设计课程设计2014-2015学年第二学期系 别: 应用数学学院 专业名称: 信息与计算科学 指导教师: * 姓 名: 林* 学 号: 14100121* 二一五年四月课程设计评分表评 分 内 容满分实际得分1出勤情况,旷课一节课扣2分,迟到一节课扣1分。202A、 Word论文层次清晰,按要求的几个方面叙述,语言准确,行文流畅,书写格式规范。B、 设计能力强,能较好地独立设计出程序,代码清晰,有适当的注释,运行无误。503答辩时对答流畅,对主要问题叙述清楚准确。30总分100等级优(90-100),良(80-89),中(70-79),及格(60-69),不及格(60

2、以下)。五级制评语: 指导教师(签名) 年 月 日 1. 问题重述通过该系统实现对图书信息进行录入、显示、修改、删除、插入、排序、保存等操作的管理。图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。2. 需求分析1、 系统以菜单方式工作。2、 图书信息录入功能(图书信息用文件保存)输入。3、 图书信息浏览功能输出。4、 图书信息查询功能。查询方式:A、 按书名查询B、 按作者名查询5、 图书信息的删除与修改6、 退出系统3. 概要设计3.1. 系统总体设计框架图书管理系统图书信息录入图书信息浏览图书信息查询按 书 名 查询按作者名 查询用文件保存图书信息输出图书信息 修改

3、与删除用户账号密码登录图书信息输出图书信息输出单项修改全部修改删除退出系统退出系统3.2. 系统功能模块图图书信息管理系统系统登录模块菜单选择模块图书信息录入模块图书信息浏览模块图书信息查询模块图书信息修改模块图书信息删除模块4. 详细设计功能模块设计思路,主要功能模块的算法设计思路如下:4.1. 模块1:系统登录模块1)函数的功能:验证管理员信息,进入菜单功能界面。2)函数的思路:定义pass函数,首先提示用户登录系统或者退出,通过switch选择,然后提示用户通过键盘对输入账户及密码,账号密码都正确方可进入系统。3)函数调用关系:被主函数调用,无返回值的空值void函数。 4)函数的出口:

4、用户选择退出。或者当验证失败,提示重新输入,当验证成功,自动进入菜单功能模块.4.2. 模块2:菜单功能选择模块1)函数功能:主要作用是提示用户操作,体现模块化思想,主要是显示出菜单让用户选择要进行的任务。 2)函数思路:从主函数中的jiemian()进入函数。 3)函数调用关系:被主函数调用。并在文中无返回值的空值void函数。 4)函数的出口:执行完所有的printf()函数后自动退出该函数。4.3. 模块3:录入模块 1)函数的功能:利用for循环语句和scanf函数完成对结构数组的输入,存放图书信息(图书编号、图书名、作者名、出版社、出版时间、价格)。2)函数思路:从main()中的i

5、nput进入函数。3)函数调用关系:被主函数调用,并在文中无返回值的空值void函数。4)函数的出口:执行完所有的printf()函数后由if函数判断是否退出该函数。4.4. 模块4:图书信息浏览模块 1)功能: 显示图书的信息(图书号·价格·作者·出版社·出版时间·图书名)2)函数思路: 从主函数main()中的display()进入函数。3)函数调用关系:被主函数调用。并在文中无返回值的空值void函数。4)函数的出口:执行完所有的printf()函数后自动退出该函数。4.5. 模块5:图书信息查询 1)功能: 按照书名查询或作者名查询,按

6、录入顺序输出排序结果。2)函数思路:从main()的search()进入函数。利用scanf输入书名,搜索书库,有p判断,若p=1则有此书。若p=0则无此书,并退出查询。3)函数调用关系:被主函数调用。并在文中无返回值的空值void函数。4)函数的出口:当输出查询结果用printf()标准输出到屏幕上后,由break结束该函数。4.6. 模块6:修改与删除模块1)功能:先利用图书名搜索图书,然后通过模块选择对图书信息(图书号 图书名 作者名 出版社 出版时间 价格)的修改和删除2)函数思路:从主函数main()中的change()进入函数。3)函数调用关系:被主函数调用。并在文中无返回值的空值

7、void函数。4)函数出口:执行完所要修改的信息后由break退出该函数。以上部分函数的流程图如下:模块1:系统登录模块开始判断是否正确?进入功能菜单界面YN输入账号密码退出系统超出次数模块3:录入模块添加图书数据 请输入图书编号 请输入图书书名请输入作者名称请输入出版时间请输入出版社请输入图书单价5. 参考程序主函数:void main()char key; if(pass()=1)read();dojiemian();printf("t请输入所选择的序号:n");key=getch(); switch(key)case'0': printf("

8、感谢使用! -lpkn"); exit(0); case'1': input(); /输入图书信息 break; case'2': display(); /显示图书信息 break; case'3': search(); /查询图书信息 break;case'4':case'5': change(); /修改删除图书信息 default: printf("输入有错误,请按操作要求进行操作!"); while(1);图书结构体定义:#define N 100struct book /图书

9、信息基本情况 char num13; /图书编号 char name20; /图书名 char publish30; /出版社 float price; /图书单价 char author100; /作者 char time100; /出版时间emN;int b=0; /全局变量,定义录入的图书数量登陆界面函数:void denglu()system("cls");/清屏printf("tt|*|n"); printf("tt| 欢迎进入 |n"); printf("tt| 厦门理工学院图书管理系统 |n");pr

10、intf("tt|=|n"); printf("tt| 请输入选项(0-1) |n");printf("tt|=|n"); printf("tt| 1-用户登录 |n"); printf("tt| 0-退出系统 |n");printf("tt|*|nn");账号密码验证函数:int pass()/密码验证int js=0;char ch;int p,k,p1=17,k1=520; denglu();ch=getch();printf("n"); switc

11、h(ch)/进入选择 case '0': printf("感谢使用! -lpkn"); break; case '1':printf("请输入您的账号:"); scanf("%d",&p); printf("n"); printf("请输入密码:"); scanf("%d",&k); printf("n"); while(p!=p1|k!=k1)/ b1、c1之前赋值为17、520,只要刚输入的b与c存在不等

12、于b1与c1,则验证错误 system("cls");/清屏denglu();printf("账号或密码错误,请重新输入!nn"); printf("请输入您的账号:");scanf("%d",&p); printf("n"); printf("请输入密码:"); scanf("%d",&k); printf("n");if(js+>2)printf("次数已用完,自动退出系统。n感谢使用! -lpkn&

13、quot;);return 0;printf("验证通过!请按Enter键进入!n");getchar(); return 1; break; default:printf("指令有误!");return 0;菜单界面函数:void jiemian() /进入时的界面system("cls");/清屏printf("tt|*|n"); printf("tt| 厦门理工学院图书管理系统|n"); printf("tt|=|n"); printf("tt| 请选择下列功

14、能 |n"); printf("tt|=|n"); printf("tt| 1-添加图书 2-图书浏览|n"); printf("tt| 3-图书查询 4-删除图书 |n"); printf("tt| 5-修改图书 |n"); printf("tt| 0-退出系统 -lpk |n"); printf("tt|*|n");图书录入函数:void input()/输入图书信息char ch; system("cls");/清屏 jiemian();

15、printf("t*图书添加系统*n"); for(b=1;b<=N;b+)/要输入的选项if(emb.price!=0) continue;else printf("请输入图书号:n"); /图书号 scanf("%s",emb.num); printf("请输入图书名:n"); /图书名 scanf("%s",); printf("请输入作者名:n"); /作者名 scanf("%s",emb.author); printf(&q

16、uot;请输入时间:n"); /时间 scanf("%s",emb.time); printf("请输入图书出版社:n"); /出版社 scanf("%s",emb.publish); printf("请输入图书单价:n"); /单价 scanf("%f",&emb.price);keep(); printf("录入成功!n按n键继续录入,ENTER键返回主菜单!n"); /是否继续输入图书信息 ch=getch(); if(ch!='N'&

17、amp;&ch!='n') break;图书信息显示函数:void display()/显示图书信息int i; system("cls");/清屏 jiemian(); printf("t*所有的图书信息如下*n"); for(i=1;emi.price!=0;i+)printf("t=n"); printf("图书号t图书名t作者名t时间t出版商t图书单价n");printf("%st%st%st%st%st%.2fn",emi.num,,emi.au

18、thor,emi.time,emi.publish,emi.price); printf("t=n"); printf("按ENTER键返回主菜单n"); /返回主菜单 getchar();图书信息修改函数:void change() /修改图书信息int a=0;char nname20;struct book *p;char ch;int i;system("cls");/清屏 jiemian(); printf("t*图书修改删除系统*n");printf("请输入要查询的图书名:n");

19、 scanf("%s",nname); getchar(); for(i=0;i<=b;i+) if(strcmp(,nname)=0)p=em+i; a=1; break;if(a=0)printf("没有找到该图书,按ENTER进入主菜单!n");getchar(); jiemian();else if(a=1)system("cls");jiemian();printf("t*图书修改删除系统*n");printf("该图书信息如下:n"); printf("

20、;图书号t图书名t作者名t时间t出版社t图书单价n");printf("%st%st%st%st%st%.2fn",emi.num,,emi.author,emi.time,emi.publish,emi.price);printf("t*有以下功能可选择*n");printf("t=n");printf("t1-修改图书号 2-修改图书名 3-修改作者名n");printf("t4-修改出版社 5-修改出版时间 6-修改价格n");printf("t7-修改

21、全部 8-删除该图书 0-放弃修改n");printf("t=n");printf("请选择你要修改的编号:n");ch=getch();switch(ch)case '1':printf("请输入新图书编号:");scanf("%s",p->num);printf("修改成功,按ENTER进入主菜单!n");getchar();getchar();break;case '2':printf("请输入新图书名:");gets(p

22、->name);printf("修改成功,按ENTER进入主菜单!n");getchar();getchar();break;case '3':printf("请输入新作者名:");gets(p->author);printf("修改成功,按ENTER进入主菜单!n");getchar();getchar();break;case '4':printf("请输入新出版社:");gets(p->publish);printf("修改成功,按ENTER进入主菜

23、单!n");getchar();getchar();break;case '5':printf("请输入新出版时间:");scanf("%s",&p->time);printf("修改成功,按ENTER进入主菜单!n");getchar();getchar();break;case '6':printf("请输入新价格:");scanf("%f",&p->price);printf("修改成功,按ENTER进入主菜单

24、!n");getchar();getchar();break;case '7':printf("请输入新图书编号:");scanf("%s",p->num); printf("请输入新图书名:"); scanf("%s",p->name); getchar(); printf("请输入新作者名:"); scanf("%s",p->author); getchar(); printf("请输入新出版社:"); sc

25、anf("%s",p->publish); getchar(); printf("请输入新出版时间:"); scanf("%d",&p->time); getchar(); printf("请输入新价格:"); scanf("%f",&p->price); getchar();printf("修改成功,按ENTER进入主菜单!n");getchar();break;case '8':strcpy(emi.num,em0.num

26、);strcpy(,);strcpy(emi.author,em0.author);strcpy(emi.publish,em0.publish);strcpy(emi.time,em0.time);emi.price=0;break;case '0':break;default :printf("您的输入有误,按ENTER进入主菜单!n");getchar();break;keep();图书搜索函数:void search() int i,p=0; char nname20,nauthor20; char ch; do sy

27、stem("cls");/清屏 jiemian(); printf("ttt*图书查询系统*n"); printf("请输入查询方式:n1.按书名查询t2.按作者名查询n"); ch=getch(); if(ch='1') jiemian(); printf("ttt*图书查询系统*n"); printf("请输入要查询的图书名:n"); scanf("%s",nname); getchar(); for(i=0;i<=b;i+) if(strcmp(e

28、,nname)=0) printf("该图书信息如下:n"); printf("图书号t图书名t作者名t时间t出版商t图书单价n");printf("%st%st%st%st%st%.2fn",emi.num,,emi.author,emi.time,emi.publish,emi.price); p=1; break; if(p=0) printf("抱歉,你所查找的图书不存在!n"); if(ch='2') jiemian(); printf("ttt*图

29、书查询系统*n"); printf("请输入要查询的图书作者名称:n"); scanf("%s",nauthor); getchar(); for(i=0,p=0;i<=b;i+) if(strcmp(emi.author,nauthor)=0) printf("该作者图书如下:n"); printf("图书号t图书名t作者名t时间t出版商t图书单价n"); printf("%st%st%st%st%st%.2fn",emi.num,,emi.author,emi

30、.time,emi.publish,emi.price); printf("=n"); p=1;if(i=b) break; if(p=0) printf("抱歉,书库中没有你所找的作者的图书!n"); printf("请按y键继续查询其他图书信息,ENTER键返回主菜单!n"); ch=getch(); while(ch='y'|ch='Y');保存到文件的函数:void keep() /*成绩保存*/FILE *fp;int i;fp=fopen("C:UsersAdministrator

31、Desktoppk.txt","w"); /*文件打开*/for(i=1;emi.price!=0;i+) /*写入图书信息*/fprintf(fp,"%s ",emi.num);fprintf(fp,"%s ",);fprintf(fp,"%s ",emi.author);fprintf(fp,"%s ",emi.time);fprintf(fp,"%s ",emi.publish);fprintf(fp,"%f ",emi.price);fprintf(fp,"n");fclose(fp);/*文件关闭*/return;从文件中读取图书信息的函数:void read() /*文件读取*/FILE *fp;fp=fopen("C:UsersAdministratorDesktoppk.txt","r"); /*文件打开*/for(b=1;b<N;b+) /*读出图书信息*/fscanf(fp,"%s ",emb.num);fscanf(fp,"%s ",

温馨提示

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

评论

0/150

提交评论