




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录 一 需求分析 2 二 概要设计 2 三 详细设计 4 四 调试分析 6 五 用户手册 6 六 测试数据 6 七 附录 8 一 需求分析一 需求分析 1 程序以菜单的方式工作 具备图书的添加 删除 修改 查询 统计操作 数据存储采用文件形式 2 定义结构体数组struct library bookinf 30 用以存储ISBN 书名 作者名 图书 类别 出版单位 出版时间 价钱 数量信息 利用文件开辟并将信息保存在 bookinf txt 中 3 用户从键盘输入需要的操作 其中 ISBN 书名 作者名 图书类别 出版 单位 需使用字符输入 出版时间 价格 数量 采用数字输入 4 测试数据 1 查找 若找到了所要查找的书本 则打印出书本信息 若没有找到 则打 印 没有找到您要找的书本 2 删除 若找到了所要查找的书本 按下 y 确认删除后 打印出 该书已删 除 若没有找到要删除的书本 则打印 没有找到该书 退出操作 3 修改 若找到了要修改的书本 打印 请输入你要修改的信息 并开始修 改 若没有找到要修改的书本 则打印 没有找到要修改的书本 5 程序执行命令为 1 创建 bookinf txt 文件 2 将图书信息用添加操作加进 bookinf txt 文件中 3 用户选择所需操作 4 搜索结果 二 概要设计二 概要设计 1 定义结构体数组struct library bookinf 50 bookinf i ISBN ISBN bookinf i name 书名 bookinf i author 作者名 bookinf i vari 图书类别 bookinf i pubplace 出版单位 bookinf i pubtime 出版时间 bookinf i price 价格 bookinf i num 数量 用以下程序开辟存储文件 bookinf txt FILE fp if fp fopen bookinf txt r NULL printf 无法打开文件 n return 2 程序构造 add 通过此函数将输入的书本信息添加存储进 bookinf txt 文件中 用于下一次的查 询或删 改 统操作的调用 del 通过此函数完成对 bookinf txt 文件中书本信息的删除 printf 确定要删除该书 吗 y n n 键盘输入 y n 确定书本信息的删除 删除后将不再有该书记 录 modify 通过此函数完成对书本信息的修改 修改内容包括 ISBN 书名 作者名 图 书类别 出版单位 出版时间 价格 数量 search 此函数为查询书本信息操作 可查询 bookinf txt 文件中存储的书本信息 count 此操作为统计操作 用于统计 bookinf txt 文件中存储书本的总数量及金额数 main 通过对上述函数的调用 将所得信息打印出来 3 主程序流程 主函数 增加模 块 删除模 块 修改模块查询模 块 统计模 块 三 详细设计三 详细设计 1 图书馆管理的数据类型 struct library char ISBN 20 ISBN char name 30 书名 char author 30 作者名 char vari 10 图书类别 char pubplace 50 出版单位 int pubtime 出版时间 int price 价格 int num 数量 基本操作的算法描述 1 文件部分 FILE fp if fp fopen bookinf txt r NULL 检查打开的操作是否出错 printf 无法打开文件 n 若出错则打印该行文字 return 2 查询操作部分 printf n请输入您要查找的书名 n scanf s bookname 输入想查询的书名 while feof fp 循环 直到文件尾部 函数值为真 fread 从 fp 中读入 1 个长度为 sizeof struct library 的数据 存到 bookinf 中 if strcmp bookinf name bookname 0 比较输入的书名和文件中保存的书 名 若相同 printf ISBN 书名 作者名 图书类别 出版单位 出版时间 价格 数量 n printf s s s s s d d d n bookinf ISBN bookinf name bookinf author bookinf vari bookinf pubplace bookinf pubtime bookinf price bookinf num 若相同 则打印出书本的信息 i 1 break if i 1 若没有找到该书 printf 没有找到您要找的书本 n 3 删除部分 strcpy bookinf flag ISBN bookinf flag 1 ISBN 将后一本书的 ISBN 复制给前一本 书的 ISBN strcpy bookinf flag name bookinf flag 1 name 将后一本书的书名复制给前 一本书的书名 strcpy bookinf flag author bookinf flag 1 author 将后一本书的作者名复制给 前一本书的作者名 strcpy bookinf flag vari bookinf flag 1 vari 将后一本书的图书种类复制给 前一本书的图书类别 strcpy bookinf flag pubplace bookinf flag 1 pubplace 将后一本书的出版单位 复制给前一本书的出版单位 bookinf flag pubtime bookinf flag 1 pubtime 将后一本书的出版时间复制给 前一本书的出版时间 bookinf flag price bookinf flag 1 price 将后一本书的价格复制给前一本书 的价格 bookinf flag num bookinf flag 1 num 将后一本书的数量复制给前一本书 的数量 4 修改部分 if strcmp bookinf i ISBN nbook 0 如果输入的书本 nbook 与文件中存储的 ISBN 相同 则开始修改 5 统计部分 int tn total 0 alprice 0 初始化总数和总价格的值为 0 for i 0 i tn i total total bookinf i num 运用递归 新的总数和为上一次的总数值加上 这一次的值 alprice alprice bookinf i num bookinf i price 运用递归 新的总价钱和为 上一次的总价钱值加上这一次的价钱 printf 图书总册书为 d 总金额数为 d n total alprice 打印出图书总册书和 总金额数 6 菜单部分 printf 欢迎登录图书管系统 n printf n printf 1 添加图书 2 删除图书 n printf 3 修改图书 4 查询图书 n printf 5 统计图书 0 退出系统 n printf n 7 选择部分 switch b case 1 add break 选择 1 时 执行添加操作 case 2 del break 选择 2 时 执行删除操作 case 3 modify break 选择 3 时 执行修改操作 case 4 search break 选择 4 时 执行查询操作 case 5 count break 选择 5 时 执行统计操作 case 0 flag 1 break 选择 0 时 执行退出操作 default printf 您输入的选择错误 n 否则 打印输入错误 四 调试部分四 调试部分 1 开始写程序时 没有运用文件保存函数 导致输入的书本信息不能被查看 2 程序删除函数部分产生左值方面的错误 后运用 strcmp 解决 3 程序删除函数部分 开始不论找到还是没找到要删除的书本 都会打印循环 外的 该书已删除 后运用 i n 解决了这个问题 五 用户手册五 用户手册 1 本程序执行文件为 bookinf txt 2 进入菜单部分 会出现一下选择菜单 1 添加图书 2 删除图书 3 修改图书 4 查询图书 5 统计图书 0 退出系统 并提示 请输入你的选择 用户仅需选择 0 5 运行该程序 3 添加 修改图书部分 其中 ISBN name author vari pubplace 需输入 字符 即字母或数字 pubtime price num 需输入数字 4 添加 修改图书部分 输入的信息不可超标 需遵循 ISBN 为 20 字节 name author 为 30 字节 vari 为 10 字节 pubplace 为 50 字节 六 测试部分六 测试部分 欢迎登录图书管系统 1 添加图书 2 删除图书 3 修改图书 4 查询图书 5 统计图书 0 退出系统 请输入你的选择 1 请输入需要添加的书本书以及您要添加的书本数信息 1 ISBN 1 书名 1 作者 1 图书类别 1 出版单位 1 出版时间 1 价钱 1 数量 1 欢迎登录图书管系统 1 添加图书 2 删除图书 3 修改图书 4 查询图书 5 统计图书 0 退出系统 请输入你的选择 3 请输入您要修改的书号 2 没有找到要修改的书本 欢迎登录图书管系统 1 添加图书 2 删除图书 3 修改图书 4 查询图书 5 统计图书 0 退出系统 请输入你的选择 3 请输入您要修改的书号 1 ISBN 2 书名 2 作者 2 图书类别 2 出版单位 2 出版时间 2 价钱 2 数量 2 修改成功 欢迎登录图书管系统 1 添加图书 2 删除图书 3 修改图书 4 查询图书 5 统计图书 0 退出系统 请输入您的选择 4 请输入您要查找的书名 2 ISBN 书名 作者名 图书类别 出版单位 出版时间 价格 数量 2 2 2 2 2 2 2 2 欢迎登录图书管系统 1 添加图书 2 删除图书 3 修改图书 4 查询图书 5 统计图书 0 退出系统 请输入您的选择 2 请输入您要删除的书本名 2 2 2 2 2 2 2 2 2 确定要删除该书吗 y n y 该书已删除 欢迎登录图书管系统 1 添加图书 2 删除图书 3 修改图书 4 查询图书 5 统计图书 0 退出系统 请输入您的选择 0 press any key to continue 七 附录七 附录 include stdio h include string h include struct h include conio h struct library bookinf 30 int n struct library char ISBN 20 char name 30 char author 30 char vari 10 char pubplace 50 int pubtime int price int num 结构体部分 void main 主函数部分 int b flag 0 while 1 菜单部分 printf 欢迎登录图书管系统 n printf n printf 1 添加图书 2 删除图书 n printf 3 修改图书 4 查询图书 n printf 5 统计图书 0 退出系统 n printf n printf 请输入你的选择 n scanf d switch b case 1 add break 选择 1 执行添加操作 case 2 del break 选择 2 执行删除操作 case 3 modify break 选择 3 执行修改操作 case 4 search break 选择 4 执行查询操作 case 5 count break 选择 5 执行统计操作 case 0 flag 1 break 选择 0 退出程序操作 default printf 您输入的选择错误 n 否则 打印该句 void add 添加函数 int i char x printf n请输入需要添加的书本书以及您要添加的书本数信息 n scanf d 输入要添加的书本数 for i 0 i n i 用循环添加书本信息 printf ISBN scanf s bookinf i ISBN printf 书名 scanf s bookinf i name printf 作者 scanf s bookinf i author printf 图书类别 scanf s bookinf i vari printf 出版单位 scanf s bookinf i pubplace printf 出版时间 scanf d printf 价钱 scanf d printf 数量 scanf d x getch 按任意键返回菜单 save 调用保存函数 void del 删除函数 int i 0 flag t 0 tn 0 tn为保存文件内的书本数 char a bookname 20 FILE fp if fp fopen bookinf txt r NULL 如果无法打开文件 printf 无法打开文件 n return printf n请输入您要删除的书本名 n scanf s bookname rewind fp while feof fp 没有结束时进行循环 fread tn fclose fp for i 0 i tn i if strcmp bookinf i name bookname 0 如果输入的书名与文件内保存的书名 相同 printf s s s s s d d d n bookinf i ISBN bookinf i name bookinf i author bookinf i vari bookinf i pubplace boo kinf i pubtime bookinf i price bookinf i num getch flag i t 1 printf 确定要删除该书吗 y n n scanf s if a y for flag flag tn flag strcpy bookinf flag ISBN bookinf flag 1 ISBN 将后一本书 的 ISBN 复制给前一本书的 ISBN strcpy bookinf flag name bookinf flag 1 name 将后一本书的书 名复制给前一本书的书名 strcpy bookinf flag author bookinf flag 1 author 将后一本书 的作者名复制给前一本书的作者名 strcpy bookinf flag vari bookinf flag 1 vari 将后一本书的 图书类别复制给前一本书的图书类别 strcpy bookinf flag pubplace bookinf flag 1 pubplace 将后 一本书的出版单位复制给前一本书的出版单位 bookinf flag pubtime bookinf flag 1 pubtime 将后一本书的出 版时间复制给前一本书的出版时间 bookinf flag price bookinf flag 1 price 将后一本书的价格 复制给前一本书的价格 bookinf flag num bookinf flag 1 num 将后一本书的数量 复制给前一本书的数量 tn 删除后书的数量减一 printf n该书已删除 n break getch if t 1 如果没有找到要删除的书 printf n没有找到该书 退出操作 n save void search 查询函数 int i 0 FILE fp 文件打开 struct library bookinf char bookname 20 if fp fopen bookinf txt r NULL printf 无法打开文件 n return printf n请输入您要查找的书名 n scanf s bookname while feof fp 循环 直到文件尾部 函数值为真 fread 从 fp 中读入 1 个长度为sizeof struct library 的数据 存到 bookinf 中 if strcmp bookinf name bookname 0 比较输入的书名和文件中保存的书 名 printf ISBN 书名 作者名 图书类别 出版单位 出版时间 价格 数量 n printf s s s s s d d d n bookinf ISBN bookinf name bookinf author bookinf vari bookinf pubplace bookinf pubtime bookinf price bookinf num i 1 break if i 1 如果没有找到要查询的书 printf 没有找到您要找的书本 n printf n按任意键返回菜单 n getch void modify 修改函数 int i 0 n 0 char nbook 20 FILE fp 文件打开 char bookname 20 printf n请输入您要修改的书号 n scanf s nbook if fp fopen bookinf txt r NULL printf 无法打开文件 n return while feof fp 没有结束时进行循环 fread n for i 0 i n i if strcmp bookinf i ISBN nbook 0 如果输入的 nbook 与文件内保存的 ISBN 相同 printf 请输入你要修改的信息 n printf ISBN scanf s bookinf i ISBN printf 书名 scanf s bookinf i name printf 作者 scanf s bookinf i author printf 图书类别 scanf s bookinf i vari printf 出版单位 scanf s bookinf i pubplace printf 出版时间 scanf d printf 价钱 scanf d printf 数量 scanf d printf n修改成功 n break if i n 如果没找到要修改的书本 printf 没有找到要修改的书本 n getch save void count 统计函数 int total 0 alprice 0 i tn 0 先定义总数量 总价钱为 0 FILE fp 文件打开 if fp fopen bookinf txt r NULL printf 无法打开文件 n return while feof fp fread tn fclose fp for i 0 i tn i total total bookin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第2章构建三维模型2.1三维建模基础-高中教学同步《信息技术人工-三维设计与创意》教学设计(人教-中图版2019)
- 线缆厂成品出库检查记录制度
- 2024-2025学年高中防范电信诈骗主题班会教案
- 第17课 君主立宪制的英国(新说课稿)2023-2024学年九年级上册历史(部编版)
- 2.2 乘法公式说课稿-2025-2026学年初中数学湘教版2012七年级下册-湘教版2012
- 保险业务担保合同集合
- 智能家居设备人工费承包及售后服务合同模板
- 生态旅游区开发合同履行与生态资源保护协议
- 高级法院认证离婚协议及子女抚养安排
- 农田流转与农业科技示范推广租赁合同
- 大学生中秋国庆假期安全
- 中小学资助工作宣传与培训计划
- 2025年云南空港百事特商务有限公司招聘笔试参考题库含答案解析
- 2024年贵州省公务员考试《行测》真题及答案解析
- 港区泊位码头工程施工组织设计(图文)
- 2023年全国职业院校技能大赛-融媒体内容策划与制作赛项规程
- 《水利工程施工监理规范》SL288-2014
- 胸外科讲课完整全套课件
- 产品知识培训-汽车悬架系统
- 维生素C在黄褐斑治疗中的作用
- 台球市场调研报告
评论
0/150
提交评论