最新C实习报告--图书信息管理系统设计.doc





《最新C实习报告--图书信息管理系统设计.doc》由会员分享,可在线阅读,更多相关《最新C实习报告--图书信息管理系统设计.doc(69页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC实习报告-图书信息管理系统设计C实习报告-图书信息管理系统设计C 语 言 课 程 实 习 报 告所 在 院 系 :数学与物理学院班 级 学 号 : 121091 姓 名 : 程序 已存档 : 指 导 老 师 :评 分 :二零一零年七月十五日图书信息管理系统设计一.题目要求 图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系
2、统,使之能提供以下功能:1 系统以菜单方式工作2 图书信息录入功能(图书信息用文件保存)3 图书信息浏览功能4 图书信息查询功能5 图书信息的删除与修改(可选项)二.需求分析 根据题目要求,需建立图书信息结构体,结构体中应包括图书登录号、书名、作者名、分类号、出版单位、出版时间、价格。 图书信息应存放在文件中,所以提供文件的输入输出等操作;并且程序需具有实现图书信息浏览、查询、删除等功能,并可对图书信息进行选择性修改;另外还应提供键盘是选择菜单来实现功能选择。三.总体设计.图书信息管理系统系统结合上述分析该系统应包括以下模块:信息录入、信息查询、信息浏览、信息删除、信息修改。结构图如下信息浏览
3、信息删除信息修改信息查询信息录入四.详细设计1、 主函数开始主函数要求设计比较简洁,只提供设输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图结束根据n的值调用各功能模块函数显示一系列功能选项输入n,判断n是否是05? N Y程序Void main()int a;/*变量保存选择菜单数字,判断输入的数字是否在功能人能够菜单所对应的数字范围内*/menu: page_title(操作菜单); /*调用页眉打印函数*/printf(tt请用数字键选择操作nn); printf(tt1 图书信息录入nntt2 图书信息查询nn); printf(tt3 图书信息浏览nntt4 图
4、书信息修改nn); printf(tt5 图书信息删除nntt0 退出n);/*对功能选项的显示*/printf(nt选择使用功能种类(0-5) bb); scanf(%d,&a); if(a5) /*对选择的数字作判断*/ printf(t无该项功能,请重新选择:); scanf(%d,&a); /*实现选择功能*/ switch(a) case 1 : book_luru();break; case 2 : book_search();break; case 3 : book_scan();break; case 4 : book_modify();break; case 5 : book
5、_del();break; case 0 : exit(0); break; /*以上完成了主函数计主菜单的构成*/2数据结构 根据题目中对数据结构的要求每一本图书包含的信息利用一个结构体来存放。其中结构体需包含 :字符变量:书名、作者、出版单位实型变量:价格整型变量:图书登录号、分类号、出版时间定义结构体如下struct BOOK int id,kind,out_time; float price;char name50,author25,out_place300; booksN; /*booksN中每个数组元素对应一本书的全部信息*/*以上完成了对于结构体的定义*/注意 本程序booksN
6、中的个数,采取宏定义的方式,可以随时在源程序宏定义中更改,本程序在此宏定义#define N 1000。3.录入模块 需求分析该模块的功能是假如用户需要新加入新图书的信息,通过文件指针将已存在二进制文件上的新图书的信息录入图书信息管理系统。输入图书信息流程图保存信息 保存不成功 提示保存不成功 保存 成功使指针不在指向文件提示返回主菜单程序void book_luru()int i; FILE *fp; page_title(图书信息录入); printf(t输入图书的登录号、书名、作者名、分类号、出版单位、出版时间、价格:nt);for(i=0;iSIZE;i+)scanf(%d%s%s%d
7、%s%d%f,&booksi.id,booksi.name,booksi.author,&booksi.kind,booksi.out_place,&booksi.out_time,&booksi.price); /*信息录入*/ if(fp=fopen(book_imf,wb)=NULL)printf(tcannot open filen); return_confirm(); return;for(i=0;iSIZE;i+)if(fwrite(&booksi,sizeof(struct BOOK),1,fp)!=1) /*信息保存*/printf(tfile write errorn);
8、fclose(fp); /*信息保存完成后关闭文件*/ return_confirm();return;printf(t成功录入并保存%d本图书的信息,SIZE);return_confirm();注意 SIZE是录入新图书信息的数目,可以采用宏定义的方式,可以随时在源程序宏定义中更改,本程序在此宏定义#define SIZE 3。4.查询模块需求分析该模块的功能是根据输入的图书分类号查找相应图书的记录流程图输入查询图书名称 是否有该图书记录 Y N提示没有找到显示找到的记录 Y询问用户是否继续查询 N提示是否返回主菜单 程序 void book_search() int n,t,i=0,a;
9、 page_title(图书信息查询); /*调用页眉打印函数*/abc:printf(t请输入图书分类号:); scanf(%d,&t); for(n=0;nN;n+) if(booksn.kind=t) printf(t书名:%sn,booksn.name); i+;/*查找并显示图书*/if(i=0) printf(t此类书不存在.);printf(t是否继续查询:1.是 2.否 );scanf(%d,&a);switch(a)case 1: goto abc; case 2: return_confirm();/*调用返回函数*/5.浏览模块需求分析 该模块用于显示某本图书所有的信息,
10、根据所输入的图书名查找并显示图书的信息。流程图输入图书名称查找图书是否存在 N Y提示不存在显示图书信息提示返回主菜单提示是否继续浏览 Y N程序void book_scan() int n,a,i=0; char bookname50;page_title(图书信息浏览); /*调用页眉打印函数*/ab:printf(t请输入书名:); scanf(%s,bookname); for(n=0;nN;n+) if(strcmp(booksn.name,bookname)=0) printf(t登录号:%dn,booksn.id); printf(t书名:%sn,booksn.name); pr
11、intf(t作者:%sn,booksn.author); printf(t分类号:%sn,booksn.kind); printf(t价格:%.2fn,booksn.price); printf(t出版单位:%sn,booksn.out_place); printf(t出版时间:%sn,booksn.out_time); i+; /*i记录书的本数*/ if(i=0) printf(t此书不存在.n);printf(t是否继续浏览:1.是 2.否 );scanf(%d,&a);switch(a)case 1: goto ab; /*用goto语句继续浏览*/ case 2: return_co
12、nfirm();/*调用返回函数*/6.修改模块需求分析 该模块用于显示某本图书所有的信息,以便进行选择性修改。显示完所有信息后,用户需输入信息编号进而进行修改图书信息流程图输入图书名称是否找到该图书记录 N Y显示图书所有信息,确定哪个需要修改提示不存在输入需修改的图书信息的编号 输入正确 输入错误提示重新输入编号输入修改信息提示返回主菜单 N是否确定修改Y 显示查找到的记录调用修改函数程序void book_modify() /*修改模块*/ int n,c,d,i=0; char bookname50;page_title(图书信息修改); printf(t请输入书名:); scanf(
13、%s,bookname); for(n=0;nnn 1).登录号 2).书名 3).作者 4).分类号 5).价格 6.出版单位 7.出版时间 8.取消修改并返回; printf(twhich you needed?: bb); scanf(%d,&c); /*选择修改项*/ if(c8) puts(ntchoice error! please choose again! ); while(c8); /*do while语句实现重新选择修改项*/ doswitch(c) case 1:printf(t登录号:); scanf(%d,&booksn.id); break; case 2: pri
14、ntf(t书名:); scanf(%s,&booksn.name); break; case 3: printf(t作者:); scanf(%s,&booksn.author); break; case 4: printf(t分类号:); scanf(%d,&booksn.kind); break; case 5: printf(t价格:); scanf(%.2f,&booksn.price); break; case 6:printf(t出版单位:); scanf(%s,&booksn.out_place);break; case 7: printf(t出版时间:); scanf(%s,&b
15、ooksn.out_time);break; printf(ntare you sure?nnt1).sure 2).No and remodify bb);scanf(%d,&d); /*提示是否确定修改*/ while(d=2); /*do while语句实现重新输入修改信息*/ printf(tmodify successfully);i+; return_confirm();/*调用返回函数*/if(i=0) printf(t此书不存在.n); return_confirm();/*提示此书不存在并返回*/7.删除模块需求模块 该模块用于删除某本图书的所有信息,根据输入的书名查找并显示
16、书的信息,再确定是否删除。输入图书名称流程图 查找是否有该图书记录 Y N显示该图书信息返回主菜单显示查找到的记录调用修改函数显示查找到的记录调用修改函数提示没有找到 确定是否删除 N 提示是否返回主菜单 Y提示删除成功程序void book_del() /*删除模块*/ int n,i=0; char bookname50;page_title(图书信息删除); printf(t请输入书名:); scanf(%s,bookname); for(n=0;nN;n+) if(strcmp(booksn.name,bookname)=0) /*用strcmp函数查找*/printf(t登录号:%d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 实习 报告 图书 信息管理 系统 设计

限制150内