图书管理系统;c语言报告(共24页).doc

上传人:飞****2 文档编号:16638650 上传时间:2022-05-18 格式:DOC 页数:24 大小:115KB
返回 下载 相关 举报
图书管理系统;c语言报告(共24页).doc_第1页
第1页 / 共24页
图书管理系统;c语言报告(共24页).doc_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《图书管理系统;c语言报告(共24页).doc》由会员分享,可在线阅读,更多相关《图书管理系统;c语言报告(共24页).doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上C语言程序设计报告时 间 设计项目 图书管理系统 学 院 专业班级 姓 名 学 号 指导教师 目录13一、 需求分析根据程序要求分析,我们认为整个程序大致应该分为5个大块,其中包括主函数以及其他4个功能函数:存入模块void In_nue();查询模块void Book_search();借阅模块void Book_send();图书归还模块void Book_return()。各个模块又利用小模块实现细小功能划分,例如:查询模块分为全库查询void Book_search_all();按书名查询该书籍BOOK Book_search_name(char sign);

2、按编号查询该书籍BOOK Book_search_num( char sign);按作者查询该作者的所有书籍void Book_search_zuozhe(BOOK book2,char sign);共4个小模块。在5个大模块外,还应加一个独立的小块显示模块,即显示书籍信息的函数,用于全程序调用。各功能介绍:1、 新书存入:主要实现程序最初运行时书籍数据的录入以及其后的运行中新书数据的追加功能;2、 查询函数:实现书库拥有书籍的查看、清点功能,方便管理员查看,以及借阅者参考;3、 图书借阅:实现从书库中借出书籍,保存记录。(由于时间问题,及人力不够,还不能保存借书者个人信息。)4、 图书归还:

3、将已借出的书籍归还书库;5、 显示函数:显示书籍的基本信息,主要是供上面四个函数调用。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每本书的信息类型为结构体类型,包括书名,书编号,作者,价格,拥有总数,已借出数量6个变量,添加及追加的书籍信息直接写入D盘的123.txt文件中,其他函数每次对书籍信息访问时,其数据来源都是123.txt文件,这样做不但可以保证书籍数据的一致性,而且可以对书籍数据进行永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图1、程序总体结构图显示主界面,输入选项1.2.3.4.5.6选项1:进入

4、新书存入函数选项2:进入查询函数输入选项1.2.3选项3:进入图书借阅函数选项4:进入图书归还函数选项5:退出函数选项1:全库书查看选项2:按书名查看选项4:按书作者查看选项3:按书编号查看主界面示例:2、主函数流程图输入选项输入为符号Q,W,E,R,T?显示主界面YN按选项进入各功能函数结束开始N2、新书函数流程图选项Q选项Q进入函数输入书名等书籍数据追加方式打开文件D:123.txt不成功?将书籍数据存入文件D:、123.txt中N结束显示“打开文件不成功”Y3、查询函数流程图查询总操作选项W进入函数输入选项1.2.3.4.5进入对应查询函数输入内容为数字1.2.3.4.5YN用显示函数显

5、示查询结果YN继续查询?(YN)结束Y全库查询YY选项1进入此函数读的方式打开文件D:123.txt不成功?N不是文件结尾N不是文件结尾NY显示该书籍信息结束关闭文件Y显示“打开文件不成功”读出一组书籍数据,记录到参数book1中按书名查询NYYN选项2进入此函数读的方式打开文件D:123.txt不成功?输入书名记录在sign中不是文件结尾YY读出一组书籍数据,记录到参数book1中Nbook1书名等于sing?K=1K=0?K=0“未找到该书籍”显示book1的信息Y显示“打开文件不成功”关闭文件结束按编号查输入书编号记录在sign中NYYN选项2进入此函数读的方式打开文件D:123.txt

6、不成功?不是文件结尾YY读出一组书籍数据,记录到参数book1中Nbook1书编号等于sing?K=1K=0?K=0“未找到该书籍”显示book1的信息Y显示“打开文件不成功”关闭文件结束按作者查与、类似不做赘述4、借书函数流程图NY选项E进入函数输入要借书的书名,记录在ch中 利用查询函数查找该书籍,记录在book00中已借出数=总数?“对不起该书已经借完”“成功借出”借出数+1结束5、还书函数与4相似,不做赘述。三、核心技术说明本程序主要由七个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,新书存入函数、查询数据函数、借书函数和还书函数是

7、程序中较为核心的部分,下面分别进行说明。1、 新书存入将数据存入一个已有的文件“123.txt”中,如果没有该文件须手动在D盘中建立该文件,以保证数据不会丢失2、 查询该函数的核心是利用循环以及fread()函数从文件中读取相应数据,判断是不是所找书籍,然后调用显示函数print()显示该书籍信息。3、 借书函数在查询的同时修改书籍已借出的数量即可。4、 还书与借书相同。四、总结通过本次程序设计我们学会了一些基本编程技术,虽然在此过程中遇到不少问题,但经过小组的合作与共同努力克服了诸多困难,但由于水平有限程序中难免会有一些小问题我们已力求使得此程序臻于完美。五、参考文献1 谭浩强C程序设计北京

8、:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include#include#include#include#define BOOK_MAX 100#define NAME_MAX 20 struct BOOK /每本书的基本信息char B_NameNAME_MAX; /书名char B_NumberNAME_MAX; /书编号char B_ZBNAME_MAX; /主编char B_CBSNAME_MAX; /出版社int B_ZS; /总数 int B_Sended; /已借出 int B_Jiage; /价格;void ma

9、nu(); /显示菜单void In_nue(); /新书存入void Book_send(); /借出void Book_return();/还书void Break(); /退出系统void Book_search();/搜索,总操作void Book_search_all();/全库查询BOOK Book_search_name(char sign);/名字查BOOK Book_search_num( char sign);/编号查void Book_search_zuozhe(BOOK book2,char sign);/按作者查void print(struct BOOK book1

10、);/显示信息/吴明宇完成:主函数,显示函数,菜单函数BOOK book_sign;int pan;/判断有没有找到int i;/个数void main()printf(*n);printf(*n);printf(* *n);printf(* 欢迎来到*图书馆管理系统 *n);printf(* *n);char sign;domanu();sign=getch();switch(sign)case(q):case(Q): In_nue();break;case(w):case(W):Book_search();break;case(e):case(E):Book_send();break;ca

11、se(r):case(R):Book_return();break;case(t):case(T):break;default:printf(nn 输入错误,请重新输入nnn);break;while(sign!=T&sign!=t);/=void manu() /显示菜单printf(*n);printf(*n);printf(* *n);printf(* 菜单选项: *n);printf(* *n);printf(* (1)存入新书请按 Q; *n);printf(* *n);printf(* (2)图书查询请按 W; *n);printf(* *n);printf(* (3)图书借阅请按

12、 E; *n);printf(* *n);printf(* (4)图书归还请按 R; *n);printf(* *n);printf(* (5)退出系统请按 T; *n);printf(* *n);printf(*n);printf(*n);/=void print(BOOK book)printf(书名:%sn书编号:%sn主编:%sn出版社:%sn价格:%dn总数:%d本n已借出:%d本n,book.B_Name,book.B_Number,book.B_ZB,book.B_CBS,book.B_Jiage,book.B_ZS,book.B_Sended);/吴文广完成:存入函数,借出函数

13、,还书函数/=void In_nue()FILE *fp;if(fp=fopen(D:123.txt,at)=NULL)printf(无法打开n);exit(0);BOOK book;printf( 请输入书名:n);scanf( %s,book.B_Name);printf( 请输入编号:n);scanf( %s,book.B_Number);printf( 请输入作者:n);scanf( %s,&book.B_ZB);printf( 请输入出版社n);scanf( %s,book.B_CBS);printf( 请输入价格:n);scanf( %d,&book.B_Jiage);printf

14、( 请输入存入总数:n);scanf( %d,&book.B_ZS);book.B_Sended=0;fwrite(&book,sizeof(BOOK),1,fp);print(book);printf(已存入n);fclose(fp);/=/查询void Book_search()/总操作 while(1)char si,si2;printf(请选择查询选项:n);printf(1.全库信息查看。n);printf(2.按书名查看。n);printf(3.按书编号查看。n);printf(4.按作者查看。n);printf(5.返回。n);fflush(stdin);si=getch();s

15、witch(si)case(1):Book_search_all();break;case(2):printf( 请输入书名:n);charnameNAME_MAX;scanf(%s,name);BOOK book0=Book_search_name(name);if(pan!=1)print(book0);printf(是否继续查询?(Y/N)n);si2=getch();break;case(3):printf( 请输入书编号:n);char numNAME_MAX;scanf(%s,num);BOOK book01=Book_search_num(num);if(pan!=1)print

16、(book01);printf(是否继续查询?(Y/N)n);si2=getch();break;case(4):printf( 请输入书作者:n);char zuozheNAME_MAX;scanf(%s,zuozhe);BOOK book02BOOK_MAX;Book_search_zuozhe(book02,zuozhe);if(pan!=1)for(int s=0;s=book00.B_ZS)printf(对不起,该书已经借完。n);elseif(a=y)|(a=Y)printf(借出已成功n);book00.B_Sended=book00.B_Sended+1;print(book0

17、0);FILE*fp;BOOK book1BOOK_MAX;int i=0;if(fp=fopen(D:123.txt,rt)=NULL)printf(无法打开n);exit(0);rewind(fp);while(!feof(fp)BOOK book01;fread(&book01,sizeof(struct BOOK),1,fp);if(strcmp(book00.B_Name,book01.B_Name)=0)book01.B_Sended=book00.B_Sended;if(!feof(fp)book1i=book01;i+;fclose(fp);fp=fopen(D:123.txt

18、,wt);puts();fclose(fp);fp=fopen(D:123.txt,at);rewind(fp);for(int j=0;ji;j+)fwrite(&book1j,sizeof(BOOK),1,fp);fclose(fp);void Book_return()/还书printf(请输入书名:n);char chNAME_MAX;scanf( %s,ch);struct BOOK book00=Book_search_name(ch);printf(确认请按Y,返回主菜单请按Nn);char a;a=getch();if(a=y)|(a=Y)printf(还书已成功n);book

19、00.B_Sended=book00.B_Sended-1;print(book00);FILE*fp;BOOK book1BOOK_MAX;int i=0;if(fp=fopen(D:123.txt,rt)=NULL)printf(无法打开n);exit(0);rewind(fp);while(!feof(fp)BOOK book01;fread(&book01,sizeof(struct BOOK),1,fp);if(strcmp(book00.B_Name,book01.B_Name)=0)book01.B_Sended=book00.B_Sended;if(!feof(fp)book1i=book01;i+;fclose(fp);fp=fopen(D:123.txt,wt);puts();fclose(fp);fp=fopen(D:123.txt,at);rewind(fp);for(int j=0;ji;j+)fwrite(&book1j,sizeof(BOOK),1,fp);fclose(fp);l 图书管理系统设计报告专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁