中国地质大学(武汉)C语言图书管理系统课程设计报告.doc_第1页
中国地质大学(武汉)C语言图书管理系统课程设计报告.doc_第2页
中国地质大学(武汉)C语言图书管理系统课程设计报告.doc_第3页
中国地质大学(武汉)C语言图书管理系统课程设计报告.doc_第4页
中国地质大学(武汉)C语言图书管理系统课程设计报告.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

C 语 言 课 程 实 习 报 告 所 在 院 系 :工程学院班 级 学 号 :052126-20121002220姓 名 :方日忠 程序 已存档 : 是 否 指 导 老 师 :赵 曼评 分 :二零一四年七月1.题目要求 图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)图书信息录入功能(3)图书信息浏览功能(4)图书信息查询功能(5)图书信息的删除与修改2.需求分析根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。3.总体设计:根据题目要求,可以将系统分为六个模块: 图书信息管理系统 菜单 图书 图书 图书 图书 图书选择 录入 浏览 查询 删除 修改功能 功能 功能 功能 功能 功能模块 模块 模块 模块 模块 模块4.详细设计:#include#include#include/*图书信息结构体*/*包括书号、书名、作者、出版社、出版时间,价格*/typedef struct char number10;/书号char name20;/书名char author20;/作者char publish50;/出版社char time20;/出版时间float price; /价格mbook;typedef struct int count;/书的本数mbook book100;/最大可有100本书mlibrary;mlibrary library;void save()/保存图书信息FILE *fp;if(fp=fopen(library.doc,w)=NULL)printf(n不能保存图书信息n);return;fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book0),library.count,fp);/*图书信息录入功能模块*/*分析:设计一判断语句和循环语句,继续录入则输入1,为真,进入循环。用scanf输入要录入的信息*/void putin() /*定义录入函数*/int y=1;system(cls);while(y)printf(t请输入您的书籍的书号:);scanf(%s,library.booklibrary.count.number);printf(t请输入书名:);scanf(%s,);printf(t请输入作者名:);scanf(%s,library.booklibrary.count.author);printf(t请输入出版社:);scanf(%s,library.booklibrary.count.publish);printf(t请输入出版时间:);scanf(%s,library.booklibrary.count.time);printf(t请输入该书的价格:);fflush(stdin);scanf(%f,&library.booklibrary.count.price);library.count+;printf(n是否继续录入(1.继续;0,退出录入):);fflush(stdin);scanf(%d,&y);if (y!=1)y=0;break;save();/*图书信息浏览功能模块*/*分析:设计一循环,在i总书本数library.count 时,依次显示书的信息*/void lookup()system(cls);printf(图书号t图书名t作者名t出版社t出版日期t图书价格n);for (int i=0;ilibrary.count;i+)printf(%st%st%st%st%st%6.2fn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price);fflush(stdin);getchar();/*图书信息查询功能模块*/*按书名查询*/*分析:首先输入要查找的书名,然后利用循环语句和strcmp 函数,把输入书名和已录入的所有书名一一比较,若相同,则跳出循环,将该书信息显示出来*/void search_by_name() /*定义按书名查询*/char s220;int flag=1;printf(n请输入要查询的书名: );fflush(stdin);scanf(%s,s2);printf(图书号t图书名t作者名t出版社t出版日期t图书价格n);for(int i=0;ilibrary.count;i+ )if(strcmp(s2,)=0)flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price);if (flag)printf(cannot found!);fflush(stdin); /清空输入缓冲区,为了确保不影响后面的数据读取getchar();/*按作者名查询*/*分析:首先输入要查找的作者名,然后利用循环语句和strcmp 函数,把输入的作者名和已录入的所有书的作者名一一比较,若相同,则跳出循环,将该书信息显示出来*/void search_by_author() /*定义按作者名查询*/char s320;int flag=1;printf(请输入要查询的书的作者: );fflush(stdin);scanf(%s,s3);printf(图书号t图书名t作者名t出版社t出版日期t图书价格n);for(int i=0;ilibrary.count;i+ )if(strcmp(s3,library.booki.author)=0)flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price);if (flag)printf(cannot found!);fflush(stdin); /清空输入缓冲区,为了确保不影响后面的数据读取getchar();/*/void search() /*定义查询函数*/int a;system(cls); /*进行清屏*/printf(tt*n);printf(开始查询n);printf(ttt1-search_by_namen);printf(ttt2-search_by_writern);printf(ttt0-exitn);printf(tt*n) ;printf(tt请选择你想要的查询方式:);fflush(stdin);scanf(%d,&a);switch(a)case 1:search_by_name();break;case 2:search_by_author();break;case 0:return;/*图书信息删除功能模块*/*分析:首先输入要删除的图书号,然后利用循环语句和strcmp 函数,把输入的图书号和已录入的所有书的图书号一一比较,若相同,则跳出循环,然后利用循环语句和strcpy 函数将后一本书的信息复制给前一本书,这样就达到了删除的目的*/void del() /*定义删除函数*/char number10;system(cls); /*清屏*/printf(n Please type in the number of the book you want to delete:);fflush(stdin);scanf(%s,number);int i;for (i=0;ilibrary.count;i+)if(strcmp(number,library.booki.number)=0)break;if (i!=library.count)for(;ilibrary.count-1;i+)strcpy(,library.booki+1.name);strcpy(library.booki.number,library.booki+1.number);strcpy(library.booki.publish,library.booki+1.publish);strcpy(library.booki.author,library.booki+1.author);strcpy(library.booki.time,library.booki+1.time);library.booki.price=library.booki+1.price;library.count-;elseprintf(n cannot found!n);save();fflush(stdin);getchar();/*图书信息修改功能模块*/*分析:首先输入要修改的图书号,然后利用循环语句和strcmp 函数,把输入的图书号和已录入的所有书的图书号一一比较,若相同,则跳出循环,然后输入要修改后的信息,利用循环语句和strcpy 函数将要修改后的信息复制给原来的对应的书本,即用新的信息代替了原来的信息*/void update()/修改图书信息char number10;system(cls); /*清屏*/printf(n Please type in the number of the book you want to delete:);fflush(stdin);scanf(%s,number);int i;for (i=0;ilibrary.count;i+)if(strcmp(number,library.booki.number)=0)printf(图书号t图书名t作者名t出版社t出版日期t图书价格n);printf(%st%st%st%st%st%6.2fn,library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price);break;if (i!=library.count)mbook book;printf(ntt请输入修改后此图书的信息n);printf(t请输入图书号:);scanf(%s,book.number);printf(t请输入图书名:);scanf(%s,);printf(t请输入作者名:);scanf(%s,book.author);printf(t请输入出版社:);scanf(%s,book.publish);printf(t请输入出版时间:);scanf(%s,book.time);printf(t请输入该书的价格:);fflush(stdin);scanf(%f,&book.price);strcpy(,);strcpy(library.booki.number,book.number);strcpy(library.booki.publish,book.publish);strcpy(library.booki.author,book.author);strcpy(library.booki.time,book.time);library.booki.price=book.price;save();elseprintf(n cannot found!n);fflush(stdin);getchar(); /*主函数*/开始显示一系列功能选项输入a,判断a是否是05根据a的值调用各功能模块函数结束YNvoid main()FILE *fp;if(fp=fopen(library.doc,r)=NULL)printf(n不能打开图书信息库n);fp=fopen(library.doc,w+);printf(n初始化图书信息库,初始化之后要重启程序n);library.count=0;fwrite(&library.count,sizeof(int),1,fp);fclose(fp);return;fread(&library.count,sizeof(int),1,fp);fread(library.book,sizeof(library.book0),library.count,fp);fclose(fp);int a;dosystem(cls);printf(nnnnntttt图书信息管理系统ttttn);printf(tt*n);printf(ttt1 -图书信息录入n);printf(ttt2 -图书信息浏览n);printf(ttt3 -图书信息查询n);printf(ttt4 -图书信息删除n);printf(ttt5 -图书信息修改n);printf(ttt0 -退出图书信息系统n);printf(tt*n);printf(ttPlease Enter Choose: );fflush(stdin);scanf(%d,&a);switch(a)case 1:putin();break;case 2:lookup();break;case 3:search();break;case 4:del();break;case 5:update();

温馨提示

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

评论

0/150

提交评论