已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三 个人图书管理系统 一 题目内容 1 问题描述 学生在自己的学习和生活中会有很多书籍 包括电子出学生在自己的学习和生活中会有很多书籍 包括电子出 版物 版物 对所购买的书籍进行分类和统计是一种良好的习惯 如 对所购买的书籍进行分类和统计是一种良好的习惯 如 果以文件来存储相关书籍的各种信息 包括分类 书名 作者 果以文件来存储相关书籍的各种信息 包括分类 书名 作者 购买日期 价格 简介等 辅之以程序来使用这些文件 并加购买日期 价格 简介等 辅之以程序来使用这些文件 并加 以维护 从而使图书管理工作变得轻松而有趣 以维护 从而使图书管理工作变得轻松而有趣 2 基本要求 1 能够以文件存储书籍的各种相关信息 能够以文件存储书籍的各种相关信息 2 提供查询工作 可按照一种或多种关键字查找需要的书提供查询工作 可按照一种或多种关键字查找需要的书 籍 籍 3 提供排序功能 可按照一种或多种关键字对所有书籍进提供排序功能 可按照一种或多种关键字对所有书籍进 行排序 比如按价格进行排序 并输出排序结果 行排序 比如按价格进行排序 并输出排序结果 4 提供图书信息维护 初始化 增加 删除 修改 打印提供图书信息维护 初始化 增加 删除 修改 打印 输出 输出 5 提供登录认证工作 具有户头 密码认证 提供登录认证工作 具有户头 密码认证 6 使用界面要适当美观 便捷 使用界面要适当美观 便捷 3 实现提示 由于书籍可能较多且要长期保存 可按文件形式存放到由于书籍可能较多且要长期保存 可按文件形式存放到 外存储器 需要操作时从文件中调入内存来进行查询 排序 外存储器 需要操作时从文件中调入内存来进行查询 排序 维护 退出前保存当前最新信息于文件中 维护 退出前保存当前最新信息于文件中 二 分析 问题中提到的主要有两个信息 个人信息以及图 书信息 这个可以用结构体来实现 用一个 menu 函数来实现 主菜单功能 包括增加新书 修改书内容 删除书 查找书 显示书 以及 对书进行排序 输入不同的操作编号来实现不同的操作对于增 加新书 可以用一个 addbook 函数来实现 用 modifyBook 函数 实现对书的参数的修改 DelBook 函数实现对书的删除操作 SortBook 函数实现对书的按照不同的参数进行排序 这些都建 立在一个更基本的函数 findbook 上 该函数通过按照不同的参 数对数进行查找 然后通过其它函数进行相应的操作 主函数 完成测试功能 三 程序设计 include include include include include include struct BookList char name 32 char editor 32 char num 32 char price 32 struct UserList char user 32 char word 32 函数声明 bool OpenBookFile fstream int menu void AddBook FILE fp void ModifyBook FILE fp void DelBook FILE fp BookList FindBook FILE fp void ShowBook FILE fp int GetCount FILE fp void SortBook FILE fp void Login int GetMax int a int n int main Login bool Exit false fstream BookFile FILE fp fp fopen Book txt rb while Exit switch menu case 1 AddBook fp break case 2 ModifyBook fp break case 3 DelBook fp break case 4 FindBook fp break case 5 ShowBook fp break case 6 SortBook fp break case 7 Exit true break return 0 显示主菜单函数 int menu int m 0 while true cout 1 增加新书 endl cout 2 修改书内容 endl cout 3 删除旧书 endl cout 4 查找书 endl cout 5 显示书 endl cout 6 对书排序显示 endl cout 7 退出程序 endl cout m if m 1 else cout 输入有误 endl return m 增加书目 void AddBook FILE fp fopen Book txt ab BookList temp memset cout temp name cout temp editor cout temp num cout temp price fwrite fclose fp cout 添加成功 n 按任意键继续 n 修改书内容 void ModifyBook FILE fp int m 0 int done 1 int n GetCount fp char str 32 memset str 0 32 char str2 32 BookList book book new BookList n for int i 0 i n i memset BookList temp memset BookList ModBook memset cout 请选择要修改的书 cout endl ModBook FindBook fp strcpy str2 ModBook name fp fopen Book txt rb cout 请选择修改的内容 cout endl cout 1 书名 endl cout 2 作者 endl cout 3 书号 endl cout 4 价钱 endl cout 5 退出 endl cout m if m5 cout m else switch m case 1 cout 原书名为 ModBook name cout str strcpy ModBook name str cout 修改后该书内容为 cout endl cout 书名 ModBook name endl cout 作者 ModBook editor endl cout 书号 ModBook num endl cout 价钱 ModBook price endl fclose fp fp fopen Book txt rb for i 0 i n i fread if strcmp temp name str2 0 book i ModBook else book i temp fp NULL fp fopen Book txt wb for i 0 i n i fwrite fclose fp cout n 按任意键继续 n 删除旧书 void DelBook FILE fp 只提供删除指定书名的书 fp fopen Book txt rb int n GetCount fp int j 0 BookList book book new BookList n 1 for int i 0 i n 1 i memset BookList temp memset BookList DelBook memset DelBook FindBook fp cout 确定删除吗 Y N p if p Y y for i 0 i n i fread if strcmp temp name DelBook name 0 book j temp j fp fopen Book txt wb fp NULL fp fopen Book txt wb for j 0 j n 1 j fwrite fclose fp else fclose fp cout n 按任意键继续 n 对所有书进行排序 void SortBook FILE fp fp fopen Book txt rb int n GetCount fp BookList book book new BookList n for int i 0 i n i memset int p p new int n BookList temp memset for i 0 i n i fread book i temp p i atoi book i price int k n for int j 0 j n j int m GetMax p k cout 书名 book m name endl cout 作者 book m editor endl cout 书号 book m num endl cout 价钱 book m price endl p m 1 fclose fp cout n 按任意键继续 n int GetMax int a int n int m 0 int temp a 0 for int i 1 itemp temp a i m i if m 0 return m else return 0 查找书 BookList FindBook FILE fp int done 0 fp fopen Book txt rb cout 1 按书名查找 endl cout 2 按作者查找 endl cout 3 按书号查找 endl cout 4 退出查找 endl cout m switch m case 1 char FindName 32 memset while true cout FindName if strlen FindName 0 cout 输入有误 endl else break BookList temp memset while feof fp fread if strcmp temp name FindName 0 cout 书名 temp name endl cout 作者 temp editor endl cout 书号 temp num endl cout 价钱 temp price endl done 1 return temp break if done 1 cout 未找到相应书 endl break case 2 char FindName 32 memset while true cout FindName if strlen FindName 0 cout 输入有误 endl else break int done 1 BookList temp memset while feof fp fread if strcmp temp editor FindName 0 cout 书名 temp name endl cout 作者 temp editor endl cout 书号 temp num endl cout 价钱 temp price endl return temp break break case 3 char FindName 32 memset while true cout FindName if strlen FindName 0 cout 输入有误 endl else break int done 1 BookList temp memset while feof fp fread if strcmp temp num FindName 0 cout 书名 temp name endl cout 作者 temp editor endl cout 书号 temp num endl cout 价钱 temp price endl return temp break break case 4 break default cout n 按任意键继续 n 显示书 void ShowBook FILE fp fp fopen Book txt rb BookList temp memset fread while feof fp cout 书名 temp name endl cout 作者 temp editor endl cout 书号 temp num endl cout 价钱 temp price endl fread cout endl cout 书的总数目为 GetCount fp fclose fp cout n 按任意键继续 n int GetCount FILE fp int count 0 fp fopen Book txt rb BookList temp memset while feof fp fread count return count 1 fclose fp cout n 按任意键继续 n void Login UserList user 3 for int i 0 i 2 i memset strcpy user 0 user fanming 帐户密码 初始值 你自己可以修改 strcpy user 0 word 123 int m 0 int done 0 char user
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025四川成都东部新区新民卫生院年编外人员招聘2人笔试考试备考题库及答案解析
- 2025年北华航天工业学院第二次公开招聘工作人员11名(人事代理)考试笔试参考题库附答案解析
- 2025湖南怀化芷江侗族自治县工业园区投资开发有限责任公司招聘1人考试笔试备考题库及答案解析
- 2025云南康旅职业培训学校有限公司招聘1人考试笔试备考试题及答案解析
- 2025天津海河金岸投资建设开发有限公司集团内部招聘1人笔试考试参考试题及答案解析
- 2025福建泉州桂华中心幼儿园后勤岗位人员招聘1人笔试考试备考题库及答案解析
- 2025年榆林神木市文化产业投资集团有限公司招聘(25人)笔试考试参考题库及答案解析
- 2025湖南张家界市永定区南庄坪街道办事处便民服务中心招聘公益性岗位人员1人笔试考试参考题库及答案解析
- 《JBT9025-1999 单侧曲轨侧卸式矿车》(2026年)实施指南
- 2025海南三亚市直属学校赴高校面向2026年应届毕业生招聘教师111人(第5号)笔试考试备考试题及答案解析
- 鲁迅先生的资料
- DB3710T 157-2021 园林绿化种植土壤质量要求和改良技术导则
- 医院感染暴发报告处置及预防控制
- 幼儿园绘本故事《三只小猪盖房子》教学课件全文
- 清廉国企课件教学课件
- 电力项目场地平整施工方案
- 2024年全国职业院校技能大赛(节水系统安装与维护赛项)考试题库(含答案)
- 概率论与数理统计浙江大学第四版-课后习题答案(完全版)
- 小品剧本《铡美案》台词完整版辽宁民间艺术团宋小宝
- 精细化工考试:仪表部分必看题库知识点
- 医科大学附属眼视光医院净化空调维保服务(2023-2026)招标文件
评论
0/150
提交评论