个人图书管理系统_第1页
个人图书管理系统_第2页
个人图书管理系统_第3页
个人图书管理系统_第4页
个人图书管理系统_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论