图书管理系统综合实验报告
更新时间:2024-06-16 09:17:01 阅读量: 综合文库 文档下载
- 图书管理系统综合设计报告推荐度:
- 相关推荐
信息科学与工程学院 《结构化程序设计》综合实验报告
图书管理系统的设计与实现
学科专业: 计算机科学与技术 班 级: 学 号: 指导教师: 学 生:
二零一四年十二月
福建工程学院信息科学与工程学院
目 录
1 设计任务 ................................................................................................................................................2 2 需求分析 ................................................................................................................................................2
2.1 系统功能 ............................................................................................................................2 2.2 开发与运行环境 ................................................................................................................2
3 系统概要设计 ........................................................................................................................................2
3.1 数据结构设计 ....................................................................................................................2 3.2 总体设计 ............................................................................................................................3 4 系统详细设计 ................................................................................................................................4 5 系统测试 ........................................................................................................................................6 6 总结与反思 ....................................................................................................................................9 参考文献 ....................................................................................................................................................10 致 谢........................................................................................................................................................ 11 附录 源代码 ............................................................................................................................................13
1
《结构化程序设计》综合实验报告
1 设计任务
设计并实现一个图书管理系统,可以对书籍进行添加、删除、浏览、查找等操作。 图书的信息项应包括:书名、索书号、ISBN号、作者、出版社、出版年份。查找功能应能够支持以图书的任一信息项为关键字,并能够进行多个信息项的组合查找。
2 需求分析
本图书管理系统,可以对书籍进行添加、删除、浏览、查找等操作。查找功能支
持图书以任一信息项为关键字,并能够进行多项信息组合查找。
2.1 系统功能
本图书管理系统,可以对书籍进行添加、删除、浏览、查找等操作。查找功能支持图书以出版社和作者进行组合查找。
2.2 开发与运行环境
2.2.1 开发环境
1.开发语言统一为C语言。
2.开发平台为Code::Blocks 13.12版本,GCC编译器。 2.2.2 运行环境
本次课程设计运行实现win 8.1(64位)
3 系统概要设计
3.1 数据结构设计
int Mark; 记录储存次数
福建工程学院信息科学与工程学院
typedef struct {
char booknum[20]; 书籍编号 char bookname[20]; 书籍名称 char author[20]; 书籍作者 char pubhouse[20]; 书籍出版社 char pubtime[20]; 书籍出版时间 char searchnum[20]; 书籍索引号 char ISBNnum[20]; 书籍ISBN编号 }book; 定义结构体book
3.2 总体设计
绘制系统总体功能构成,如下图所示。
图书管理系统登陆系统书籍信息查找书籍信息修改已有数据载入主界面载入单项查找组合查找显示全部信息添加书籍信息删除书籍信息 图1 系统总体设计
图1为系统总体功能展示,分为进入系统、书籍信息查找、书籍信息修改三大部分,其中登陆系统又分为已有数据载入和主界面载入两部分;书籍信息查找又分为单项查找和组合查找两部分;书籍信息修改分为显示全部信息、添加书籍信息、删除书籍信息三部分。
3
《结构化程序设计》综合实验报告
4 系统详细设计
4.1所有函数
表1 所有函数列表
函数首部 void main() void Welcome() book.h void Increase() void Deletebookinfor() void Search() void Save(int n) int Show() void Load() 功能概要 主函数 界面初始化 自定义结构体头文件 添加书籍数据 删除书籍数据 查找书籍数据 保存文件 显示所有书籍数据 读取文件信息 4.2进入系统模块
登陆系统已有数据载入主界面载入
图2 登陆系统
图2为登陆系统,在已有数据载入函数Load中可以讲以前添加的书籍信息从文件中读取到内存中,保证再次写入的时候不会丢失原有数据。主界面载入函数通过循环,使得每项作完成总能回到主界面。
表2 进入系统函数与主函数
函数首部 功能概要 福建工程学院信息科学与工程学院
void main() void Welcome() book.h void Load() 主函数 界面初始化 自定义结构体头文件 读取文件信息 4.3书籍信息查找模块
书籍信息查找单项查找组合查找 图3书籍信息查找
图3书籍信息查找模块,单项查找可以实现书籍名称和书籍编号的单项查找,组合查找可实现通过作者和出版的的组合进行查找。
表3 书籍信息查找函数
函数首部 void Search() 功能概要 查找书籍数据 4.4书籍信息修改模块
书籍信息修改显示全部信息添加书籍信息删除书籍信息 图4书籍信息修改
图4书籍信息修改模块,可实现当前存储书籍信息的全部浏览、添加新的书籍信息、通过书籍编号删除已有书籍信息。
5
《结构化程序设计》综合实验报告
表4 书籍信息修改函数
函数首部 void Save(int n) int Show() void Increase() void Deletebookinfor()
功能概要 保存文件 显示所有书籍数据 添加书籍数据 删除书籍数据 5 系统测试
图1 欢迎界面
福建工程学院信息科学与工程学院
图2 添加新的图书
图3 显示所有书籍信息
7
《结构化程序设计》综合实验报告
图4 按照书籍编号查找
图5 按照书籍名称查找
图6 出版社和作者混合查找
图7 删除已有书籍信息
福建工程学院信息科学与工程学院
图8 退出系统
6 总结与反思
通过本次课程设计,我进一步熟练掌握了用工程文件模块化的进行程序设计,本次课程设计过程中遇到了很多困难,比如在工程文件当中结构体如何调用问题,如何实现组合查找,还有程序运行过程中出现的种种错误等等,通过克服这些错误,我觉得自己对于C语言的掌握比以前更好了。
本次课程设计有部分问题较难解决。在显示所有函数时,总是显示一个空的书籍,在添加文件之后并不能及时写入文件当中保存,而是要结束整个程序运行才能将数据保存在文件当中。对于这些问题我查了各种资料,询问老师、同学,最终找到了解决的方法,以后在程序设计的时候我会认真设计争取避免同样的情况发生。
9
《结构化程序设计》综合实验报告
参考文献
[1] 黄翠兰. 高级语言程序设计[M]. 修订版. 厦门:厦门大学出版社. 2012. [2] 杨升. 数据结构(C语言版)[M]. 第二版. 厦门:厦门大学出版社. 2013. [3] 谭浩强. C程序设计[M]. 第3版. 北京: 清华大学出版社. 2005.
福建工程学院信息科学与工程学院
致 谢
本次课程设计要感谢我的同学,他们在我程序出现问题的时候给予我帮助,帮我查找并修改程序。同时还要感谢老师,老师教给我这些知识,让我能够学习C语言,运用C语言,感谢老师给予我的帮助。
11
《结构化程序设计》综合实验报告
福建工程学院信息科学与工程学院
附录 源代码
/*----------book.h----------*/ //自定义结构体头文件 #define NUM 100 #ifndef STRU_book #define STRU_book
int Mark;//记录储存次数
typedef struct {
char booknum[20]; char bookname[20]; char author[20]; char pubhouse[20]; char pubtime[20]; char searchnum[20]; char ISBNnum[20]; }book;//自定义结构体book
#endif // STRU_book
/*----------main.c----------*/ //主函数
#include \#include \#include \#include \
book bookinfor[NUM];
void main() {
Mark=0; char ch;
Load();//载入已有数据 do//界面循环 {
Welcome();
13
《结构化程序设计》综合实验报告
printf(\请选择需要执行的操作:\ scanf(\ getchar();
if(ch=='1') Show();
if(ch=='2') Increase();
if(ch=='3') Deletebookinfor(); if(ch=='4') Search(); if(ch=='5') break; system(\ }while(1);
system(\ printf(\谢谢使用!\}
/*----------Load.c----------*/ //读取文件信息
#include \#include \#include \#include \
extern book bookinfor[NUM];
void Load() {
int i;
FILE *fp;// 指向文件指针
if((fp=fopen(\//读取bookinfor.txt里存储的书籍信息
{
printf(\文件打开失败\\n\ return; }
printf(\读取文件...\\n\ rewind(fp);
for(i=0;i fread(&bookinfor[i],sizeof(book),1,fp);//将文件中的数据读取到内存当中 } printf(\书籍信息读取成功...\\n\ for(i=0;i 福建工程学院信息科学与工程学院 书籍信息 { if(strlen(bookinfor[i].bookname)==0) { Mark=i;//改变记录函数的值 return; } } } /*----------Welcome.c----------*/ //界面初始化 #include \#include \#include \#include \ extern book bookinfor[NUM]; void Welcome() { printf(\图书管理系统-------\\n\ printf(\显示图书信息------\\n\ printf(\添加新的图书------\\n\ printf(\删除已有图书------\\n\ printf(\查找图书信息------\\n\ printf(\退出管理系统------\\n\} /*----------Save.c----------*/ //保存文件 #include \#include \#include \#include \ extern book bookinfor[NUM]; void Save() { 15 《结构化程序设计》综合实验报告 FILE *fp; int i,b=0; if((fp=fopen(\ printf(\文件打开失败!\\n\ for(i=0; i fwrite(&bookinfor[i],sizeof(book),1,fp); } fclose(fp); } /*----------Show.c----------*/ //显示所有书籍数据 #include \#include \#include \#include \ extern book bookinfor[NUM];//读取头文件中定义的自定义结构体 int Show() { int i=0; FILE *fp; system(\ if((fp=fopen(\ { printf(\打开文件失败\\n\ getchar(); return; }; while(i fread(&bookinfor[i],sizeof(book),1,fp); printf(\书籍编号:\ printf(\ printf(\书名:\ printf(\ printf(\作者:\ printf(\ printf(\出版社:\ 福建工程学院信息科学与工程学院 printf(\ printf(\出版时间:\ printf(\ printf(\索书号:\ printf(\ printf(\编号:\ printf(\ i++; } fclose(fp); printf(\请按任意键返回...\ getch(); return i; } /*----------Increase.c----------*/ //添加书籍数据 #include \#include \#include \#include \ extern book bookinfor[NUM]; void Increase() { int i=Mark; char ch; FILE *fp; do { system(\ printf(\当前输入书籍为第%d本\\n\ printf(\开始输入书籍信息\\n\\n\ printf(\书籍编号:\\n\ gets(bookinfor[i].booknum); printf(\书名:\\n\ gets(bookinfor[i].bookname); printf(\作者:\\n\ gets(bookinfor[i].author); printf(\出版社:\\n\ gets(bookinfor[i].pubhouse); 17 《结构化程序设计》综合实验报告 printf(\出版时间:\\n\ gets(bookinfor[i].pubtime); printf(\索书号:\\n\ gets(bookinfor[i].searchnum); printf(\编号:\\n\ gets(bookinfor[i].ISBNnum); printf(\添加成功!是否继续添加?(Y/N)\ Mark=Mark+1; do { ch=getch(); if(ch=='Y'||ch=='y'||ch=='N'||ch=='n') { printf(\//将输入的字母打印到界面中 getchar(); break; } }while(1); i++; }while(ch=='Y'||ch=='y'); Save(); return; } /*----------Search.c----------*/ //查找书籍数据 #include \#include \#include \#include \ extern book bookinfor[NUM]; void Search() { char ch; char search[20], search2[20]; int i=0; FILE *fp; system(\ printf(\查找方式:\\n1.书籍编号查找\\n2.书籍名称查找\\n3.出版社和作者查找\\n请选择:\ 福建工程学院信息科学与工程学院 do//获取输入的值 { ch=getch(); if(ch>=0) { printf(\//打印输入的选项在界面中 getchar(); break; } } while(1); if((fp=fopen(\ { printf(\打开文件失败\\n\ return; } if(ch=='1') { printf(\请输入书籍编号:\ gets(search); while(!feof(fp)) { fread(&bookinfor[i],sizeof(book),1,fp); if(!strcmp(search,bookinfor[i].booknum))//search与书籍编号相等时输出值为1 { printf(\书籍编号:\ printf(\ printf(\书名:\ printf(\ printf(\作者:\ printf(\ printf(\出版社:\ printf(\ printf(\出版时间:\ printf(\ printf(\索书号:\ printf(\ printf(\编号:\ printf(\ printf(\请按任意键返回...\ getchar(); fclose(fp); return; 19 《结构化程序设计》综合实验报告 i++; } } } if(ch=='2') { printf(\请输入书名:\ gets(search); while(!feof(fp)) { fread(&bookinfor[i],sizeof(book),1,fp); if(!strcmp(search,bookinfor[i].bookname)) { printf(\书籍编号:\ printf(\ printf(\书名:\ printf(\ printf(\作者:\ printf(\ printf(\出版社:\ printf(\ printf(\出版时间:\ printf(\ printf(\索书号:\ printf(\ printf(\编号:\ printf(\ printf(\请按任意键返回...\ getchar(); fclose(fp); return; i++; } } } if(ch=='3') { printf(\请输入出版社和作者 :\ scanf(\//获取输入的出版社 getchar(); scanf(\//获取输入的作者 while(!feof(fp))//在整个文件中查找,直到文件末尾 { fread(&bookinfor[i],sizeof(book),1,fp); 福建工程学院信息科学与工程学院 if(!strcmp(search2,bookinfor[i].author)&&!strcmp(search,bookinfor[i].pubhouse))//找到与输入值相同的信息输出为1 { printf(\书籍编号:\ printf(\ printf(\书名:\ printf(\ printf(\作者:\ printf(\ printf(\出版社:\ printf(\ printf(\出版时间:\ printf(\ printf(\索书号:\ printf(\ printf(\编号:\ printf(\ printf(\请按任意键返回...\ getchar(); getchar(); break; fclose(fp); } else { printf(\查找错误!\\n\ printf(\请按任意键返回...\ getchar(); getchar(); break; } } } else { system(\ printf(\操作错误!请按任意键返回...\ fclose(fp); getchar(); return; } } 21 《结构化程序设计》综合实验报告 /*----------Delete.c----------*/ //删除书籍数据 #include \#include \#include \#include \ extern book bookinfor[NUM]; void Deletebookinfor() { int i=0,b=0,k; char deletenum[20]; FILE *fp; system(\ printf(\输入要删除的书籍编号:\ gets(deletenum); if((fp=fopen(\ { printf(\文件打开失败\\n\ return; } while(!feof(fp)) { fread(&bookinfor[i],sizeof(book),1,fp); i++; } for(b=0;b if(!strcmp(deletenum,bookinfor[b].booknum))//两者值相等时,输出为1 { for(k=b;k if((fp=fopen(\ { printf(\文件打开失败\\n\ return; } for(i=0;i if(fwrite(&bookinfor[i],sizeof(book),1,fp)!=1) printf(\文件写入失败\\n\ fclose(fp); printf(\删除成功!请按任意键返回...\ 福建工程学院信息科学与工程学院 getchar(); return; } printf(\找不到要删除的文件!请按任意键返回...\ getchar(); return; } 23
正在阅读:
图书管理系统综合实验报告06-16
超市晋升主管述职报告04-13
遨游科学的海洋作文800字06-26
全国抗击新冠肺炎疫情表彰大会学生观后感言09-08
武术理论试题完成12-10
黔南州荔波县水尧乡新寨煤矿-水文地质调查报告 - 图文05-10
建筑节能工程现场实体检验题目B12-10
2010届高考英语(单项选择题)题库(共44套44页)05-28
高中生自我鉴定模板范文大全优秀6篇03-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 管理系统
- 实验
- 报告
- 图书
- 综合
- 小区安防系统设计方案毕业论文设计 - 图文
- 高考对联题(对联知识、高考真题及答案、对应练习题)
- 高教版分析化学课后习题答案第4至7章
- 高考实验专题突破:仪器连接顺序
- 基于MATLAB的声音的延迟与混响
- 数学一1987-2010.doc
- 最全的CCNA实验
- 人才心理测评与培训4次作业
- 国考报名24日:海关平均竞争比65:1 仍有11职位无人报考
- 公共心理学
- 重庆市土地利用总体规划(2006~2020年) - 图文
- 基于单片机的正弦波发生器的设计
- 上海各区大型超市一览表
- 互联网金融对建行发展的影响及对策研究开题报告(改)
- 机械原理课程设计-洗瓶机
- 返老还童最新研究端粒与端粒酶
- 肺部检查习题
- 2011年英语初中英语词汇大全
- 乡土中国
- 晶体结构空间群点群