




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆师范大学重庆师范大学 课程名称 软件工程课程名称 软件工程 试题题目 小型教材订购系统试题题目 小型教材订购系统 姓姓 名 名 罗罗 鹏 陆荟芸鹏 陆荟芸 学学 号 号 2008051216120080512161 2008051214520080512145 专专 业 业 20082008 级计算机科学与技术 师范 级计算机科学与技术 师范 学学 院 院 计算机与信息科学学院计算机与信息科学学院 时时 间 间 20102010 年年 1212 月月 1717 号号 1 目录目录 一 开发背景与目标一 开发背景与目标 3 1 系统开发的背景 3 二 需求分析说明书二 需求分析说明书 3 2 1 系统介绍 3 2 2 系统面向的用户群体 4 2 3 系统的功能性需求 4 2 4 系统的非功能性需求 5 2 4 1 安全与保密要求 5 2 4 2运行环境 5 三 可行性分析报告三 可行性分析报告 5 3 1 社会可行性分析 5 3 2 操作可行性分析 6 3 3 技术可行性分析 6 3 4 时间 设备可能性 6 3 5 文档要求 7 四 开发环境与项目规划四 开发环境与项目规划 7 4 1 开发环境 7 4 2 项目规划与管理 7 4 2 1开发人员安排 7 4 2 2开发进度安排 7 五 结构化分析与设计五 结构化分析与设计 8 5 1 本系统的基本设计概念和处理流程如下 8 5 2 结构 8 六 数据库分析与设计六 数据库分析与设计 8 6 1 数据库环境说明 9 6 3 数据库逻辑设计 10 6 3 1逻辑设计步骤 10 6 3 2逻辑设计原则 10 6 3 3逻辑设计图 11 6 4 数据库物理设计 13 6 4 1数据库物理设计步骤 13 6 4 2表 视图汇总 14 2 七 七 人机界面设计人机界面设计 17 7 1 界面设计原则 17 7 2 系统窗体汇总 17 7 3 主界面设计 17 7 4 子界面设计 17 八 项目系统实现八 项目系统实现 18 8 1 实现环境与技术 18 8 2 核心模块实现技术代码 18 九 软件测试分析报告九 软件测试分析报告 46 9 1 测试范围与主要内容 46 9 2 测试方法 47 9 3 系统测试步骤 47 十 软件使用说明书十 软件使用说明书 60 10 1 软件概述 60 10 2 使用说明 60 10 2 3 系统简介 60 10 2 4 更多功能 60 3 一 开发背景与目标一 开发背景与目标 项目名称 教材订购系统 项目开发小组成员 罗鹏 陆荟芸 项目与其他软件 系统的关系 项目与其他软件 系统的关系 本项目采用客户机 服务器原理 客户端的程序是建立在 Windows NT 系统上以 Microsoft Visual C 以及 ACCESS 数据库等为开发软件的应用程序 1 系统开发的背景系统开发的背景 人工订购教材流程复杂 容易出错 且效率低下 经常造成资料管理混乱 容 易产生问题 开发学校教材订购系统是供学校的老师和学生订购教材使用 流程简单 且负 责管理订购教材的工作人员的处理时间自由 查看清晰 方便 且处理起来也 比较高效 不容易出错 2 系统开发目标 1 学生和老师能够随时登录订购教材 查看和修改订购单 还可以查看领书 单 2 发行人员能随时登录处理订购单 查看库存和输入初始的库存书籍 还有查 看进书通知 3 采购人员能随时登录系统查看缺书单 填写进书单 系统实现后 大大提高学校教材订购的服务效率 降低教材订购服务中的错误 发生率 减少信息交流的烦琐过程及其带来的开销 使得订购者订购更加方便 也为学校节省了许多人力资源 4 二 需求分析说明书二 需求分析说明书 2 1 系统介绍系统介绍 系统名称 学校教材订购系统 系统的简要说明 各个订购者把信息 姓名 号码 所要订购的书名 主编 数量等 输入到系统中 系统 为订购者安排领书单 当订购者输入其各项信息后 系统打印出领书单给订购者 订购者如有什么不满 可以通过系统删除已订购教材书籍 1 学生和老师能够随时登录订购教材 查看和修改订购单 还可以查看领书单 2 发行人员能随时登录处理订购单 查看库存和输入初始的库存书籍 还有查 看进书通知 3 采购人员能随时登录系统查看缺书单 填写进书单 2 2 系统面向的用户群体系统面向的用户群体 用户群体 学校的学生 老师和相关购书单位 机构 2 3 系统的功能性需求系统的功能性需求 系统功能要求 1 输入人员信息 姓名 号码 2 系统能够存储老师和学生填写的订购单 输出订购单和提供修改订购单的功 能 3 发行人员能够登陆系统处理相应的订购单 查看库存和输入初始的库存书籍 还有查看进书通知 采购人员能随时登录系统查看缺书单 填写进书单 4 主要功能 为客户订购教材 提供教材订购业务 方便人们的订购服务 提 高工作质量及服务质量 性能要求 将订购教材的信息及时反映在学校的工作平台上 订购系统的定单 必须无差错的存储在学校的主服务器上 对服务器上的数据必须进行及时正确 的刷新 输出要求 数据完整 详实 输出要求 简捷 快速 实时 7 故障处理要求 出现故障会给出提示页面和纠错步骤 8 精度 应该保证查询时的精度与全面性 5 9 时间特性要求 操作的响应时间应该一般为 1 2 秒 当数据增大或者运算 量增大时适当增多处理时间 一般应该控制在 3 4 秒 10 灵活性 遇到错误操作时会给出适当处理方式并且及时纠正且给出相应提 示 12 输入输出要求 以字符串输入 输入数据的设备是鼠标各键盘 系统输入 输出 数据应满足用户的需求 保证精度 13 数据管理能力要求 系统要处理的数据不会太大 对容量方面不会有太多 要求 可靠性要求 具有正常操作情况下不会出现故障的可靠性 可维护性要求 可以随时进行维护修改的操作并且工作量能保持在一定的限度 内 可重用性要求 应采取模块化方式进行设计 系统内各模块接口尽可能强内聚 弱耦合 以提高模块的可重用性 可理解性要求 系统的各个界面或者提示操作都应该通俗易懂 2 4 系统的非功能性需求系统的非功能性需求 2 4 1 安全与保密要求 安全与保密要求 服务器的管理员享有对教材信息库及定购信息 库的管理与修改 系统要求用户登录时进行身份验证 允许通过任可身份的用 户使用本系统 要但读取其他用户的信息就一定要通过其资料验证通过 2 4 2 运行环境运行环境 硬件环境 P2 更高档微机或笔记本电脑 运行时内存要求 最少为 64M 所 需硬盘 最少 5M 软件环境 Windows 2000 XP ME 6 三 可行性分析报告三 可行性分析报告 3 1 社会可行性分析社会可行性分析 1 用户使用可行性 1 使用本软件人员要求有一定计算机基础的人员 系统管理员要求由计算 机的专业知识 所有人员都要经过本公司培训 2 管理人员也需经一般培训 3 经过培训人员将会熟练使用本软件 2 社会其他方面可行性 教材订购系统在学校教材管理的方面大大提高了工作效率 使得订购者订购 更加方便 也为学校节省了许多人力 3 2 操作可行性分析操作可行性分析 用户操作可行性 使用本软件人员要求有一定计算机基础的人员 系统管理员要求由计算机的专业 知识 所有人员都要经过本公司培训 管理人员也需经一般培训 经过培训人员将会熟练使用本软件 软件能被原有 工作人员快速接受 3 3 技术可行性分析技术可行性分析 1 系统的简要说明 各个订购者把信息 姓名 号码 所要订购的书名 主编 数量等 输入到系统 中 系统为订购者安排领书单 当订购者输入其各项信息后 系统打印出领书单给 订购者 订购者如有什么不满 可以通过系统删除已订购教材书籍 2 数据处理和数据流图 7 教师学生教材订购系统采购人员 发行人员 订购单 领书单 缺书单 进书单 订购单 进书单 缺书单 库存表 现有技术可完全承担开发任务 3 4 时间 设备可能性时间 设备可能性 本系统的开发需要大概两个月的时间 时间充足 时间可行 本系统的开发只需要两台 PC 机和相关开发软件 设备可行 3 5 文档要求文档要求 文档写作按照学院老师规定要求填写 四 开发环境与项目规划四 开发环境与项目规划 4 1 开发环境开发环境 系统是在 winXP 下 Msrosoft Visual Studio 完成的 8 4 2 项目规划与管理项目规划与管理 4 2 1 开发人员安排开发人员安排 人员分工 陆荟芸 罗 鹏 需求分析 软件设计 编码 测试 项目很小 共同完成 4 2 2 开发进度安排开发进度安排 阶段点 工作成果 时间 需求分析 需求规格说明书 2010 9 20 2010 9 23 设 计 设计说明书 2010 9 24 2010 9 27 编 码 源程序清单 2010 9 27 2010 10 20 测 试 测试报告 2010 10 22 2010 12 9 五 结构化分析与设计五 结构化分析与设计 5 1 本系统的基本设计概念和处理流程如下 本系统的基本设计概念和处理流程如下 S1 系统启动时 激活身份验证模块 S2 通过身份验证后 对系统进行初始化 判断用户身份 导入到不同的处理 页面是 S3 系统进入消息循环状态 通过事件驱动机制激活各功能模块 并执行指定 模块 S4 各项功能执行完毕后 重新进入消息循环状态 S5 由退出系统事件激活关闭系统模块 退出系统 9 5 2 结构结构 学校教材定购系统 教师学生采购人员发行人员 查询订购书 删除订购书籍 订购书籍 查询领书单 查询缺书单 输入进书单 处理订购单 查询进书单 输入初始库存 查询库存 六 数据库分析与设计六 数据库分析与设计 6 1 数据库环境说明数据库环境说明 运行环境 运行环境 Windows 2000 XP ME 6 2 数据库命名标准与规范数据库命名标准与规范 按如下的数据格式输入数据即可 按如下的数据格式输入数据即可 教师或学 生姓名 号码订购书籍删除书籍查看订购 单 查看领书 单 10 liang7022cyuyan rjgc sjjg cyuyan查看查看 hao7021zcyl 发行人员 姓名 号码处理订购 单 查看进书 通知 输入系统 初始库存 书籍 查看库存 cong7024处理查看cyuyan rjgc sjjg 查看 采购人员 姓名 号码查看缺书 单 填写进书 单 zhu7023查看zcyl 11 6 3 数据库逻辑设计数据库逻辑设计 教师学生教材订购系统采购人员 发行人员 订购单 领书单 缺书单 进书单 订购单 进书单 缺书单 库存表 6 3 1 逻辑设计步骤逻辑设计步骤 1 建立教师学生模块 2 建立发行人员模块 3 建立采购人员模块 4 将以上的模块按照逻辑设计原则进行连接 6 3 2 逻辑设计原则逻辑设计原则 12 学校教材定购系统 教师学生采购人员发行人员 查询订购书 删除订购书籍 订购书籍 查询领书单 查询缺书单 输入进书单 处理订购单 查询进书单 输入初始库存 查询库存 6 3 3 逻辑设计图逻辑设计图 13 14 6 4 数据库物理设计数据库物理设计 6 4 1 数据库物理设计步骤数据库物理设计步骤 1 根据物理设计图分析各自的模块的特性与联系 2 建立各自的的模型图 3 将各自的模型图进行联系并融合 15 6 4 2 表 视图汇总表 视图汇总 16 发行人员模块 处理订购单 查询进书通知 输入初始库存 查询库存 进书单 库存表 检索用户 读取用户订购单 比较库存书 返回领书单 发行人员模块 处理订购单 查询进书通知 输入初始库存 查询库存 进书单 库存表 检索用户 读取用户订购单 比较库存书 返回领书单 17 发行人员模块 处理订购单 查询进书通知 输入初始库存 查询库存 进书单 库存表 检索用户 读取用户订购单 比较库存书 返回领书单 教师学生模块 输入订购单 查询订购单 删除订购单 读取领书单 订购单 领书单 储存订购单 读取订购单 储存订购单 读取领书单 18 七 七 人机界面设计人机界面设计 7 1 界面设计原则界面设计原则 1 简单 易懂 富有人性化 7 2 系统窗体汇总系统窗体汇总 略 详见数据测试 7 3 主界面设计主界面设计 7 4 子界面设计子界面设计 下面给出一个子界面的 详细见数据测试 订购书名为 zcyl 这本库存不存在的书籍 19 八 八 项目系统实现 8 1 实现环境与技术实现环境与技术 硬件环境 P2 更高档微机或笔记本电脑 运行时内存要求 最少为 64M 所 需硬盘 最少 5M 软件环境 Windows 2000 XP ME 8 2 核心模块实现技术代码核心模块实现技术代码 include include include include include include include include conio h 20 define USER LEN sizeof USER define BOOK LEN sizeof BOOK typedef struct user 用户 char num 12 号码 char name 30 姓名 struct user next USER typedef struct book 书籍 char nam 30 名字 char editor 30 作者 int amount 数量 int tag1 库存标记 int tag2 数量是否足够标记 struct book next BOOK char first menu 顶层菜单 USER user input 用户信息输入 完成 BOOK input book list 输入图书信息 void books list save BOOK head book char filename 以用户名为文件名存储书籍信息 void print fetch USER head user 显示领书单 char user menu 教师学生菜单 char buyer menu 采购员菜单 char issuer menu 发行人员菜单 void dispose buy list 处理订购单 BOOK load char filename 打开存储书籍的文件 USER load user record char filename 打开存储用户信息的文件 void print book list BOOK head book 显示书单 总共 20 行 BOOK obliterate BOOK head book 删除 void save user record USER head void create file char filename 创建空文件 为了以后的追加做准备 void add to store BOOK new adding 加到库存 void print user record USER head user 打印用户记录 int cmp store BOOK head store BOOK head book 检查库存是否存在该书籍 void return list 返回领书单 void delete file char filename 删除文件 void check about lack BOOK head book 登记入缺书表 void week day 显示星期 BOOK together BOOK head book 归并相同的名称书籍的数量 int check amount char input 检查输入的数字是否合法 int amount do char input 5 21 主要模块 void about system 系统备注 char quit 退出确定 void tcher stu do 教师和学生模块 void buyer 采购员模块 void issuer 发行人员模块 void main system color 2f if fopen c all user txt r NULL create file all user printf n n n n n 欢迎进入学校教材订购系统 n n printf 按任意键继续 getch for switch first menu case 0 switch quit case 1 about system exit 0 break case 0 break break case 1 tcher stu do break case 2 buyer break case 3 issuer break void week day char wday 7 Sun Mon Tue Wed Thu Fri Sat time t timep struct tm p int m time p localtime 取得当地时间 if strcmp wday p tm wday Sun m 7 if strcmp wday p tm wday Mon m 1 if strcmp wday p tm wday Tue m 2 22 if strcmp wday p tm wday Wed m 3 if strcmp wday p tm wday Thu m 4 if strcmp wday p tm wday Fri m 5 if strcmp wday p tm wday Sat m 6 switch m case 1 printf 星期一 n break case 2 printf 星期二 n break case 3 printf 星期三 n break case 4 printf 星期四 n break case 5 printf 星期五 n break case 6 printf 星期六 n break case 7 printf 星期日 n break char first menu 顶层菜单 char n time t timep struct tm p time p localtime 取得当地时间 system cls 刷屏 printf n printf 今天是 d 年 d 月 d 日 1800 p tm year 1 p tm mon p tm mday week day printf n printf 欢迎使用我们的系统 n printf n printf 按 0 退出 n printf MENU n printf 请根据选择输入您的身份 n printf 1 教师或学生 n printf 2 采购人员 n printf 3 发行人员 23 n printf n printf n printf n printf n printf n printf n printf n printf n t t t 您的选择是 1 3 scanf s return n USER user input 用户信息输入 完成 USER p head NULL time t timep struct tm a p USER malloc USER LEN if p printf nOut of memory return head time a localtime 取得当地时间 system cls 刷屏 printf n printf 今天是 d 年 d 月 d 日 1800 a tm year 1 a tm mon a tm mday week day printf n 24 printf 欢迎使用我们的系统 n printf n printf 按 0 退出 n printf MENU n printf n n n printf 姓名 27 个字符以内 scanf s if p name 0 0 return NULL while strlen p name 27 system cls printf 您输入的姓名过长 请重新输入 不要超过 27 个字符 getch system cls 刷屏 printf n printf 今天是 d 年 d 月 d 日 1800 a tm year 1 a tm mon a tm mday week day printf n printf 欢迎使用我们的系统 n printf n printf 按 0 退出 n printf MENU n printf n n n printf 姓名 27 个字符以内 scanf s if p name 0 0 return NULL printf n printf 号码 7 位以内 scanf s if p num 0 0 return NULL while strlen p num 7 system cls printf 您的号码过长请重新输入 getch system cls 25 printf n printf 今天是 d 年 d 月 d 日 1800 a tm year 1 a tm mon a tm mday week day printf n printf 欢迎使用我们的系统 n printf n printf 按 0 退出 n printf MENU n printf n n n printf 姓名 s p name printf n n printf 号码 7 位以内 scanf s if p num 0 0 return NULL p next NULL head p return head 还没有对输入的数据长度做规范处理 还没有确定是否要对使用的用户做记录 文件的读取或是存储存在问题 BOOK input book list BOOK head 输入图书信息 BOOK p1 p2 char input 5 system cls printf 输入需订购书籍的信息 n n printf 如果你知道该图书的主编则输入其姓名 否则输入 0 n n printf 按 0 返回 n n n n if head NULL head p1 p2 BOOK malloc BOOK LEN 输入第一个结点 do printf 书名 输入书名 scanf s head nam if head nam 0 0 return NULL 26 if strlen head nam 27 printf 输入长度不能大于 27 个字符 请重新输入 n while strlen head nam 27 do printf 主编 输入主编者名字 scanf s head editor if head editor 0 0 strcpy head editor UNKNWON if strlen head editor 27 printf 输入长度不能大于 27 个字符 请重新输入 n while strlen head editor 27 do printf 数量 scanf s input if strlen input 3 printf 输入不能多于 3 位 请重新输入 n while strlen input 3 check amount input head amount amount do input 将字符转成整型 head tag1 0 head tag2 0 head next NULL for 输入后续的结点 p2 BOOK malloc BOOK LEN do printf 书名 输入书名 scanf s p2 nam if p2 nam 0 0 return head if strlen p2 nam 27 printf 输入长度不能大于 27 个字符 请重新输入 n while strlen p2 nam 27 do printf 主编 输入主编者名字 scanf s p2 editor if p2 editor 0 0 strcpy p2 editor UNKNWON if strlen p2 editor 27 printf 输入长度不能大于 27 个字符 请重新输入 n while strlen p2 editor 27 do printf 数量 scanf s input if strlen input 3 printf 输入不能多于 3 位 请重新输入 n while strlen input 3 check amount input p2 amount amount do input 将字符转成整型 p2 tag1 0 p2 tag2 0 p2 next NULL p1 next p2 p1 p2 27 else p1 p2 head while p1 next p1 p1 next 将指针移动到最后 for 输入后续的结点 p2 BOOK malloc BOOK LEN do printf 书名 输入书名 scanf s p2 nam if p2 nam 0 0 return head if strlen p2 nam 27 printf 输入长度不能大于 27 个字符 请重新输入 n while strlen p2 nam 27 do printf 主编 输入主编者名字 scanf s p2 editor if p2 editor 0 0 strcpy p2 editor UNKNWON if strlen p2 editor 27 printf 输入长度不能大于 27 个字符 请重新输入 n while strlen p2 editor 27 do printf 数量 scanf s input if strlen input 3 printf 输入不能多于 3 位 请重新输入 n while strlen input 3 check amount input p2 amount amount do input 将字符转成整型 p2 tag1 0 p2 tag2 0 p2 next NULL p1 next p2 p1 p2 return head int check amount char input 检查输入的数字是否合法 28 int len n len strlen input 1 for n 0 n 0 return 1 return 0 int amount do char input 5 int len n value 0 hundred 90 ten 9 int a 5 len strlen input 1 for n 0 ntm year 1 p tm mon p tm mday week day printf n printf 欢迎使用我们的系统 n printf n printf 按 0 退出 n printf MENU n printf 输入您的选择 1 3 n printf 0 退出 n printf 1 订购书籍 n printf 2 查看自己的订购单 n printf 3 删除订购单中的某些书籍 n printf 4 查看领书单 n printf n printf n printf n printf n 30 printf n t t t 您的选择是 scanf s return n void tcher stu do 教师和学生模块 USER head user BOOK head book head user user input 输入教师或学生的信息 if head user NULL return save user record head user 追加存储信息到磁盘 for switch user menu 教师学生菜单 case 0 switch quit case 1 about system exit 0 break case 0 break break case 1 head book load head user num 首先检测之前是否有订购单 head book input book list head book 输入订购单 head book together head book 归并相同的名称书籍的数量 print book list head book if head book books list save head book head user num 以用户的号码为文 件名存储订购单 break case 2 head book load head user num 装载已存储的订购单 if head book print book list head book 查询自己的订购单 else system cls printf n n n n 并没有属于您的订购单 又或是你的订购单 已经经过处理 请到查询领书单 getch break case 3 head book load head user num 装载已存储的订购单 if head book print book list head book 查询自己的订购单 head book obliterate head book print book list head book 修改自己的订购单 31 if head book books list save head book head user num else delete file head user num else system cls printf n n n n 没有属于您的订购单 n 请先输入订购单 n 按任意键继续 getch break case 4 print fetch head user break 查看个人的领书单 void books list save BOOK head book char filename 以 filename 为文件名存储书籍信息 FILE fp BOOK p char a 90 c char b 5 txt strcat a filename strcat a b if fp fopen a w NULL printf Cannot open the file n return p head book while p NULL fwrite p BOOK LEN 1 fp p p next fclose fp printf Save the file successfully n BOOK load char filename 打开文件 BOOK p1 p2 head NULL FILE fp 32 char a 90 c char b 5 txt strcat a filename strcat a b if fp fopen a r NULL return NULL p1 BOOK malloc BOOK LEN if p1 printf Out of memory n return head head p1 while feof fp if fread p1 BOOK LEN 1 fp 1 break p1 next BOOK malloc BOOK LEN if p1 next printf Out of memory n return head p2 p1 p1 p1 next p2 next NULL fclose fp return head void print book list BOOK head book 显示订购单 总共 9 行 int n i j t char m BOOK q point 9 USER p for i 0 inext j 设置一个指针数组用来标记每一页的初指针 if j 9 1 point j 9 1 q i 1 页数 33 while q point i n 1 system cls 刷屏 printf printf 1 上一页 2 下一页 0 确认 printf printf printf 编号 书名 主编 数量 n printf while q n q q next q NULL printf printf 第 d 页 i m getch if m 0 break else if m 1 if point i 1 i 1 else printf n n 这是第一页 没有上一页了 按任意键继续 getch else if m 2 if point i 1 i 1 else printf n n 这是最后一页 没有下一页了 按任意键继续 getch return void print fetch USER head user 显示用户表单 34 char a 9 f BOOK head book strcat a head user num head book load a if head book NULL system cls printf n n n n n 可能您的订购单还未经过发行人员的审核 请多等待几天 n printf 又或许之前您并没有提交订购单 请确定您已经填写订购单 n n 按任意键继续 getch else system cls printf 提示 n n printf 如果您发现订购的某些书籍不在您的领书单里面 即 表明该书库存却货 n printf 请稍等几日后再提交该书的订购申请 n printf 在您查询过领书单之后 系统将会删除领书单 n n n n n n printf n n n 按任意键后将显示领书单 getch print book list head book delete file a void buyer 采购员模块 USER head buyer BOOK absent books BOOK new adding NULL head buyer user input 输入采购员的信息 if head buyer NULL return for switch buyer menu 菜单 case 0 switch quit case 1 about system exit 0 break case 0 break break case 1 输入进书单 new adding input book list new adding new adding together new adding 归并相同名称书籍的数量 35 books list save new adding new add print book list new adding add to store new adding break case 2 absent books load lack if absent books absent books together absent books books list save absent books lack system cls printf n n n 提示 n n printf 在您查询过缺书单之后 系统将会删除缺 书单 n n n n printf n n n 按任意键后将显示缺书单 getch print book list absent books delete file lack else system cls printf n n n n n 暂无缺书 记录 getch break 查看书库缺书单 char buyer menu 采购员菜单 char n time t timep struct tm p time p localtime 取得当地时间 system cls 刷屏 printf n printf 今天是 d 年 d 月 d 日 1800 p tm year 1 p tm mon p tm mday week day printf n printf 欢迎使用我们的系统 n printf 36 n printf 按 0 退出 n printf MENU n printf 输入您的选择 0 2 n printf 0 退出 n printf 1 填写进书单 n printf 2 查看缺书单 n printf n printf n printf n printf n printf n t t t 您的选择是 scanf s return n void add to store BOOK new adding 加到库存 BOOK p head store p head store load store 先载入库存的链表 while p next p p next p next new adding 将新的链表接如库存链表表尾 head store together head store 归并相同的名称书籍 books list save head store store void issuer 发行人员模块 USER head issuer head user BOOK head book head new head store NULL head issuer user input 输入采购员的信息 37 if head issuer NULL return for switch issuer menu 菜单 case 0 switch quit case 1 about system exit 0 break case 0 break case 1 dispose buy list 返回领书单给用户 break case 2 head new load new add 查看进书通知 if head new print book list head new else system cls printf n n n n 尚无进书通知 getch break 显示书单 总共 9 行 case 3 if load store NULL head store input book list head store head store together head store books list save head store store print book list head store else system cls printf 库存表已经存在 收到进书通知之后系统将自动更 新库存 getch break case 4 head store load store 查看库存 print book list head store break char issuer menu 发行人员菜单 char n time t timep struct tm p time p localtime 取得当地时间 system cls 刷屏 printf n printf 今天是 d 年 d 月 d 日 1800 p tm year 1 p tm mon p tm mday week day printf n 38 printf 欢迎使用我们的系统 n printf n printf 按 0 退出 n printf MENU n printf 请输入您的选择 1 4 n printf 0 退出 n printf 1 处理订购单 n printf 2 查看进书通知 n printf 3 输入系统初始的库存书籍 n printf 4 查看库存 n printf n printf n printf n t t t 您的选择是 scanf s return n void dispose buy list 处理订购单 int n 0 USER p head user BOOK head book head store store q p3 p4 copy head store load store head user load user record all user if head user NULL printf 没有用户提交订购单 n if head store NULL printf n 库存是空的 请您先检查库存 n if head store NULL head user NULL printf 按任意键继续 getch return if head user while p head book load p num if head book n 39 print book list head book if cmp store head store head book 0 与库存相比较 当库存有满足需求的书籍 时 books list save head store store 存储修改后的库存 return list head book p 返回领书单 delete file p num 删除原来的订购单 else if cmp store head store head book 0 p3 head store 若该用户所有订购的书籍库存都不能满足 p4 head book while p3 next p3 p3 next for p4 head book p4 p4 p4 next 在库存表尾生成新的接点 copy BOOK malloc BOOK LEN strcpy copy nam p4 nam strcpy copy editor p4 editor copy next NULL copy amount p4 amount copy tag1 0 copy tag2 0 p3 next copy p3 copy head store together head store 合并同名书籍的数量 books list save head store store p p next if n 0 system cls printf n n n n n n 没有用户提 交订购单 getch check about lack head store return void delete file char filename 删除文件 char a 9 c char b 5 txt strcat a filename strcat a b remove a return 40 int cmp store BOOK head store BOOK head book 检查库存是否存在该书籍且足够数目 BOOK p1 p2 head lack p3 int count 0 p1 head book p2 head store if p2 while p1 p2 head store while p2 if p2 如果指针不空 p1 tag1 1 则标记为存在 if p1 amountamount p1 tag2 1 如果数目存在 则标记足够 p2 amount p2 amount p1 amount 将库存记录的数量改成取书后的数量 count p1 p1 next return count void check about lack BOOK head store 登记入缺书表 BOOK p FILE fp if fp fopen c lack txt a NULL return p head store while p if p amountnext 41 fclose fp return void return list BOOK head book USER head user 返回领书单 BOOK p FILE fp c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 丹东市中石油2025秋招笔试模拟题含答案电气仪控技术岗
- 中国广电通化市2025秋招行业解决方案岗位专业追问清单及参考回答
- 大唐电力朔州市2025秋招自动化与测控专业面试追问及参考回答
- 国家能源绍兴市2025秋招面试专业追问及参考交通运输岗位
- 达州市中石油2025秋招笔试模拟题含答案油气储运与管道岗
- 白银市中石化2025秋招笔试性格测评专练题库及答案
- 延安市中储粮2025秋招面试专业追问题库战略研究博士岗
- 2025年喜报内容考试题及答案
- 中国联通防城港市2025秋招行业常识50题速记
- 国家能源甘南藏族自治州2025秋招笔试逻辑推理题专练及答案
- 安检员X射线机培训课件
- 空调收购拆除合同范例
- 【MOOC】航天推进理论基础-西北工业大学 中国大学慕课MOOC答案
- 工程进度保证协议
- 超市员工岗位职责(33篇)
- 《前列腺穿刺中国专家共识》
- 麦肯锡商业计划书模板
- 项目经理职业生涯规划
- 除锈剂MSDS参考资料
- 高一英语选择性必修一课文及翻译(外研版新教材)中英Word精编文档
- 消防管道支架工程量计算表
评论
0/150
提交评论