“C语言程序设计实践”任务书(正式版)_第1页
“C语言程序设计实践”任务书(正式版)_第2页
“C语言程序设计实践”任务书(正式版)_第3页
“C语言程序设计实践”任务书(正式版)_第4页
“C语言程序设计实践”任务书(正式版)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C C 语言程序设计实践语言程序设计实践 任务书任务书 信息科学与工程学院电气与自动化实验室信息科学与工程学院电气与自动化实验室 20122012 年年 5 5 月月 目 录 一 指导老师安排 二 课程设计要求 三 结构化程序设计方法 四 相关管理系统设计题的基本功能要求 五 成绩评定要素 六 课程设计报告基本内容要求 八 设计题 共 13 题 九 上机地点及时间安排表 第 18 周至第 19 周 附录 1 附录 2 附录 3 C C 语言程序设计实践语言程序设计实践 任务书任务书 一 指导老师安排一 指导老师安排 电气信息类 1119 班 唐朝晖 李志民 电气信息类 1120 班 唐朝晖 李志民 电气信息类 1124 班 叶华文 李志民 电气信息类 1125 班 叶华文 李志民 电气信息类 1127 班 袁艳 李志民 二 课程设计要求二 课程设计要求 本次 C 语言程序设计实践 课程设计 是基于 C 语言程序设计基础 课程学习内 容的重要实践环节 其主要目的在于 通过综合程序课程设计 培养和提高学生的独立分 析问题 解决实际问题的能力和计算机语言编程能力 本次课程设计时间为 2 周 要求每 位同学在为期两周的时间段内 独立完成相关设计题所规定的任务 上机时数为 20 学时 进度安排建议如下 1 阅读设计题目 任务内容 规划设计进度 并进行软件的各相关功能模块的规划 设计 1 天 2 在 Turbo C 或 Visual C 6 0 环境下 用结构化程序设计思想进行 C 语言程 序设计 功能模块调试 7 9 天 3 进行课程设计报告编写与整理 2 天 4 课程设计结束时 要求进行设计成果演示 由指导老师验收相关程序运行成果并 打分 每人须对相关电子文档进行整理上交 包括 程序文件 帮助说明文档 交课程 设计报告 纸质 一份 手工书写稿 课程设计报告基本内容及格式参考 P4 页上内容 三 结构化程序设计方法三 结构化程序设计方法 结构化技术是软件工程中最成熟的技术之一 它包括结构化分析方法 Structured Analysis 结构化设计方法 Structured design 和结构化程序设计方法 Structured Programming 简称为 SA SD SP 方法 它的总的指导思想是自顶向下 逐步求精 单 入口 单出口 基本原则是抽象和功能的分解 对于较为复杂问题的大型程序开发 应采取 自顶向下 逐步细化和模块化 的设计方法 模块化程序设计是结构化程序设计方法在 开发大型程序中的应用 1 1 自 自顶向下 逐步细化 逐步顶向下 逐步细化 逐步求精求精 所谓 自顶向下 逐步细化 逐步求精 就是在对于给定问题进行透彻的了解和详细 的分析的基础上 把问题分解成若干个按顺序执行的逻辑部分 称为 模块 每个子任务 如果仍很复杂 还可以再分解为若干个子任务 如此逐层分解 对于每个模块的设计都采 用这种 自顶向下 逐步细化 的方法 将它们分解成为基本结构为止 就如同写文章先 拟出题目和中心内容 再确定分为几大部分 每一大部分又分哪几节 每一节分为几段 每一段包括哪几个意思 这就是 自顶向下 逐步细化 的方法 2 2 菜单技术 菜单技术 当一个程序的规模比较庞大 层次和模块比较多时 不要每次都将所有模块按顺序执 行一遍 最好在每一层 至少在最高几层都设一个 菜单 为方便用户操作 菜单 技 术已广泛使用在计算机的系统软件中 具体做法是 程序首先把各功能说明及相应代号以 菜单形式显示在屏幕上 然后由用户在键盘上输入所选的功能代号 程序自动转去调用相 应的功能模块进行处理 四 相关管理系统设计题的基本功能要求四 相关管理系统设计题的基本功能要求 1 数据文件管理功能 创建新文件 管理老文件 包括 Open New 2 输入 添加 插入记录 能够完成对任意一条记录输入 添加或插入数据表中 并 保存到数据文件中 3 显示 查询记录 能够打开已存在的数据表文件 根据用户要求按所给记录关键 字显示 查询一个或多个相关联记录的各项信息 4 修改记录 能够打开已存在的数据表文件 并对确定的任意记录进行修改 在修 改过程中 应显示记录信息 给出确认提示 并对更新的记录信息进行文件保存 5 删除记录 能够打开已存在的数据表文件 可以删除数据表中的任一记录 要求 具备逻辑删除 具有恢复功能 和物理删除功能 并对新的数据表信息进行文件保存 6 统计功能 能够打开已存在的数据表文件 对数据表中与某关键字匹配的相关记 录进行数据统计 包括 总数 平均值 分段信息 例如 按课程得分为 100 90 99 80 89 70 79 60 69 和不及格学生的人数 以及所占百分比 7 排序 对记录进行排序 例如 按某门课程的成绩排序 或按成绩总分进行排序 等 在正确 合理的软件功能规划的基础上 进行各功能模块的设计 建议用 文件包含或工程文件形式 进行逐个模块的功能调试与功能实现 切忌将多个 功能模块混合一起进行调试 有关 C 语言程序设计参考 见附录 1 五 成绩评定要素五 成绩评定要素 成绩分为优 良 中 及格 不及格五档 考核标准如下 1 验收程序的可用性 实用性 通用性 可扩充性 程序设计源代码 50 2 学生的动手能力 创新精神 10 3 程序设计说明书 30 4 平时成绩 10 六 课程设计报告基本内容要求六 课程设计报告基本内容要求 一 封面 封面格式见附录 2 二 目录 三 本次课题的基本内容和要求 四 软件设计整体规划及方案 五 程序功能简介 六 主体内容 简要说明总体情况 详细介绍本人任务部分 1 设计分析 2 程序结构 画总体模块图 本人设计部分的程序 N S 或 ANSI 流程图 3 各模块的功能及程序说明 4 相关模块源程序 5 操作方法 流程 6 试验结果 包括输入数据和输出结果 7 设计体会 8 参考文献 八 设计八 设计题 共题 共 1313 题题 1 12 题为信息管理类型题目 13 题为控制类型题目 每个题目有人数的限制 每位 学生可以根据自己的情况独立选择一题作为设计任务 鼓励几个同学搭档分组 分工合作 完成 以下题目的基本功能要求仅供参考 建议同学根据实际应用状况及要求 进行合理 规划 选题选题 1 1 销售信息管理系统 建议 销售信息管理系统 建议 2 32 3 人 人 调研 选择一个典型销售案例 实现按月进行销售员销售业绩信息管理 其中 每个 销售员记录 包括编号 姓名 产品 1 销售额 产品 2 销售额 产品 N 销售额 总销售额等 信息 具体功能要求参见 P3 选题选题 2 2 职工工资信息管理系统 建议 职工工资信息管理系统 建议 2 32 3 人 人 调研 选择一个典型职工信息管理案例 实现按月保存职工的工资数据 其中 每位 职工记录 包括编号 姓名 职务基本工资 岗位津贴 其他补贴 应发工资 实发工资 扣除项目包括 所得税 住房公基金 养老金 医疗保险 失业保险 职务 基本工资 奖金 工资总额 具体功能要求参见 P3 选题选题 3 3 图书信息管理系统 建议 图书信息管理系统 建议 2 32 3 人 人 调研 选择一个典型图书信息管理案例 实现图书库存 借阅信息管理 每本图书的 记录信息包括 书号 书名 作者 单价 库存数量 出版时间 出版单位 价格等 具 体功能要求参见 P3 选题选题 4 4 材料管理系统 建议 材料管理系统 建议 2 32 3 人 人 调研 选择一个典型仓库材料信息管理案例 实现材料库存 领用信息信息管理 每 种材料的记录信息 包括 编号 名称 单价 入库数量 库存数量 出库数量 保管人 进货时间 出货时间和备注等 具体功能要求参见 P3 选题选题 5 5 学生成绩管理系统 建议 学生成绩管理系统 建议 2 32 3 人 人 调研 选择一个典型学生学籍 成绩 信息管理案例 实现以班为单位的学生成绩信 息管理 学生成绩的基本信息包括 学号 姓名 五门以上课程成绩 成绩总分 平均成 绩等 具体功能要求参见 P3 选题选题 6 6 设备管理系统 建议 设备管理系统 建议 2 32 3 人 人 调研 选择一个典型设备信息管理案例 实现各基层单位的设备资产信息管理 每个 设备的记录信息 包括设备编号 8 位数 仪器名称 型号规格 单价 购入日期 领用 人 使用状况和备注 50 字 具体功能要求参见 P3 选题选题 7 7 通信录 建议 通信录 建议 1 21 2 人 人 以班为单位进行通讯录信息管理 每个记录包括 序号 姓名 性别 年龄 电话 籍 贯 现工作单位 家庭住址 通信地址及邮编等 具体功能要求参见 P3 选题选题 8 8 人事信息管理系统 建议 人事信息管理系统 建议 2 32 3 人 人 调研 选择一个典型人事基本信息管理案例 实现某基层单位的人事基本信息管理 人事基本信息包括 职工号 职工号不重复 姓名 性别 年龄 学历 职称 基本工资 岗位津贴 工资总额 在岗状况等 具体功能要求参见 P3 选题选题 9 9 人员基本信息管理系统 人员基本信息管理系统 建议 建议 2 32 3 人 人 调研 选择一个典型人员基本信息管理案例 例如 流动人口管理 小区楼栋居民管 理等 实现分片或楼栋为数据库的人员基本信息管理 信息包括 序号 姓名 年龄 性 别 出生年月 籍贯 电话 E mail 等 具体功能要求参见 P3 选题选题 1010 学生选修课程信息管理系统 建议 学生选修课程信息管理系统 建议 2 32 3 人 人 调研 选择一个典型学生选课基本信息管理案例 实现对多门课程的选课信息管理 每门课程的基本信息 包括 课程编号 课程名称 课程性质 总学时 授课学时 实验 或上机学时 学分 开课学期等信息 具体功能要求参见 P3 选题选题 1111 小学算术运算测试 建议 小学算术运算测试 建议 1 21 2 人 人 实现不同年级程度的算术运算能力测试 加 差 乘 除 要求每套试卷共十题 能 够 根据练习水平和进度随机产生数据和不同运算要求 并建议制答题时间 能判断结果正确 性 给出综合评分 包括 答题时间 正确率 总分 累记平均分等 并保存文件 打开文件 选题选题 1212 宿舍信息管理系统 建议 宿舍信息管理系统 建议 2 32 3 人 人 调研 选择一个典型学生宿舍楼的住房基本信息管理案例 实现学生区各个宿舍楼的 宿舍信息管理 每个宿舍基本信息包括 楼层号 房间号 面积 可住宿人数 实际住宿 人数 修缮状况 良好 待维修 备注 记录入住人员姓名 性别 年龄 单位等 具体 功能要求参见 P3 选题选题 1313 基于 基于 C C 语言的模拟电梯系统程序设计 建议每组语言的模拟电梯系统程序设计 建议每组 5 65 6 人 人 根据 模拟电梯控制任务说明书 的规定 设计实现一个模拟电梯控制的仿真软件 方 便进行相关控制策略验证和分析 这一任务可由包含 5 6 名同学的小组集体完成 通过该 作业 希望同学们能够复习巩固结构化程序设计知识 培养良好的程序设计风格与习惯 了解软件开发的整个过程 学习书写简单文档 练习多人合作开发软件 设计任务说明 书 详见附录 3 备注备注 电气与自动化专业实验室自动化专业实验室 2012 年 5 月 22 日 附录附录 1 C C 语言程序设计实践语言程序设计实践 课程设计课程设计 参考及指导参考及指导 设计参考题目 设计参考题目 通通信信录录管管理理系系统统 一 一 程序组织方法程序组织方法 在 Turbo C 或 VC 6 0 中新建一个工程 再按下述方法创建各源程序文 件 1 将所有包含文件 符号常量定义 数据类型定义存放在头文件 task1a h 中 此文件基本不用改动 将所有函数声明存放在头文件 task1b h 中 每当定义一个新的函数时 就在此文件中增加一行此函数 的声明 并在注释中标明定义此函数的文件 这样在每个 源程序文件开头 只需有 2 条包含命令 include task1a h include task1b h 2 将 main 函数单独存放在一个源程序文件 task1000 c 中 3 将 main 函数主菜单中直接调用的函数的定义存放在源程序文件 task1100 c task1200 c task1300 c 中 4 将一些公用的函数的定义存放在源程序文件 task1900 c 中 5 将 task1100 c 中调用的函数的定义存放在源程序文件 task1110 c task1120 c task1130 c 中 将 task1120 c 中调 用的函数的定义存放在源程序文件 task1121 c task1122 c task1123 c 中 6 每增加一个模块 调通测试后 将所有源文件复制到一个文件夹保存 文件 夹命名的规则和顺序可如下 v0 00 v0 01 v0 02 v0 03 全部完成后最 终保存所有源文件的文件夹命名为 v1 00 初始版本 v0 00 由老师提供 二 二 部分参考程序部分参考程序 1 1 头头文文件件 t ta as sk k1 1a a h h 的的格格式式和和内内容容 prj1 head file prj1a h ifndef PRJ1A SOFTW05 Start of head file prj1a h define PRJ1A SOFTW05 include stdio h include conio h include string h include stdlib h define NODE struct comm info 定义结点类型 define LEN sizeof struct comm info 定义结点长度 define TRUE 1 符号常量定义 define FALSE 0 符号常量定义 define MAXLINE 1000 符号常量定义 define LIMIT 符号常量定义 全局变量的定义在 prj1030 c 文件中 extern long count 全局变量声明 extern NODE head 全局变量声明 extern NODE tail 全局变量声明 extern NODE np LIMIT 全局变量声明 struct comm info 定义通信信息结构体类型 long num 编号 char group 16 分组 char name 16 姓名 char hphone 16 固话 home phone char mphone 16 手机号 mobile phone char qq 16 QQ 号码 char email 20 e mail 地址 char code 10 邮政编码 int len 家庭住址或通信地址长度 char addr 家庭住址或通信地址 struct comm info prev 前向链表指针 struct comm info next 后向链表指针 endif End of head file prj1a h 2 2 头头文文件件 t ta as sk k1 1b b h h 的的格格式式和和部部分分内内容容 可可添添加加更更多多函函数数声声明明 prj1 head file prj1b h contains only function declarations ifndef PRJ1B SOFTW05 Start of head file prj1b h define PRJ1B SOFTW05 所有自定义函数都应在下面加以声明 void show version void 在 prj1010 cpp 文件中定义 void login void 在 prj1020 cpp 文件中定义 void set list void 在 prj1030 cpp 文件中定义 void display void 在 prj1100 cpp 文件中定义 void add record void 在 prj1200 cpp 文件中定义 void del record void 在 prj1300 cpp 文件中定义 void find void 在 prj1400 cpp 文件中定义 void modify void 在 prj1500 cpp 文件中定义 void sort void 在 prj1600 cpp 文件中定义 void help void 在 prj1700 cpp 文件中定义 void warn exit void 在 prj1700 cpp 文件中定义 void save void 在 prj1800 cpp 文件中定义 int menu void 在 prj1001 cpp 文件中定义 void new data void 在 prj1031 cpp 文件中定义 void old data void 在 prj1032 cpp 文件中定义 void ptrcopy void 在 prj1033 cpp 文件中定义 int exist long num 在 prj1034 cpp 文件中定义 void ins node NODE p 在 prj1035 cpp 文件中定义 void pause void 在 prj1900 cpp 文件中定义 void clrscr void 在 prj1900 cpp 文件中定义 int YesOrNo void 在 prj1900 cpp 文件中定义 void newline int n 在 prj1900 cpp 文件中定义 endif End of head file prj1b h 3 3 源程序文件源程序文件 task1000 ctask1000 c 的的内内容容 prj1 source file prj1000 cpp contains main include prj1a h include prj1b h 通信录管理系统主函数 main int argc char argv int option show version login set list if argc 1 option menu else if argc 2 break case a option 2 break case r option 3 break case f option 4 break case m option 5 break case s option 6 break case h option 7 break case x option 8 break case q option 0 break default help option menu break else help option menu while 1 switch option case 1 display break case 2 add record break case 3 del record break case 4 find break case 5 modify break case 6 sort break case 7 help break case 8 save break case 0 warn exit option menu return 0 4 4 源程序文件源程序文件 task1900 ctask1900 c 的的内内容容 prj1 source file task1900 cpp contains functions in common use include prj1a h include prj1b h waiting void pause void printf nPress any key to continue getch clear screen void clrscr void system cls Get a response return 0 for No 1 for Yes int YesOrNo void char r do r getch while r Y if r Y r y return 1 else return 0 5 5 源程序文件源程序文件 task1100 ctask1100 c 的的初初始始内内容容 为为学学生生提提供供的的初初始始模模板板 prj1 source file prj1100 cpp contains display include prj1a h include prj1b h display records in the list void display void clrscr Add real functions here 学生在此填入适当内容 从而实现函数的正常功能 printf nI am display n will be deleted pause 三 三 mainmain 函数流程图 程序框架 函数流程图 程序框架 开始 结束 保存记录 帮助信息 进行排序 修改记录 查找记录 删除记录 添加记录 显示记录 012345678 显示和选择主菜单 显示系统版本信息 用户管理和登录 系统初始化 附录附录 3 模拟电梯控制设计任务说明书模拟电梯控制设计任务说明书 根据下面的功能描述 编程 调试模拟电梯控制软件 一 电梯配置 共有 1 个电梯 共有 maxfloor 层楼层 这里 maxfloor 暂时取做 9 范围是 5 9 层 中间层每层有上下两个按钮 最下层只有上行按钮 最上层只有上行 按钮 每层都有相应的指示灯 灯亮表示该按钮已经被按下 如果该 层的上行或者下行请求已经被响应 则指示灯灭 电梯内共有 maxfloor 个目标按钮 表示有乘客在该层下电梯 有指 示灯指示按钮是否被按下 乘客按按钮导致按钮指示灯亮 如果电梯 已经在该层停靠则该按钮指示灯灭 另有一启动按钮 GO 当电梯停在某一楼层后 接受到 GO 信息 就继续运行 如果得不到 GO 信息 等待一段时间也自动继续运行 电梯内设有方向指示灯表示当前电梯运行方向 二 电梯的运行控制要求 电梯的初始状态是电梯位于第一层处 所有按钮都没有按下 乘客可以在任意时刻按任何一个目标钮和呼叫钮 呼叫和目标对应的 楼层可能不是电梯当前运行方向可达的楼层 如果电梯正在向 I 层驶来 并且位于 I 层与相邻层 向上运行时是 I 1 层或者向下运行时是 I 1 层 之间 则因为安全考虑不响应此时出现 的 I 层目标或者请求 如果电梯正好经过了 I 楼层 运行在 I 楼层和下 一楼层之间 则为了直接响应此时出现的 I 层目标或者请求 必须至 少到达运行方向上的下一楼层然后才能掉头到达 I 楼层 假设掉头无 须其它额外时间 如果 I 楼层不是刚刚经过的楼层则可以在任意位 置掉头 此时掉头后经过的第一个楼层不可停 电梯系统依照某种预先定义好的策略对随机出现的呼叫和目标进行分 析和响应 乘客数量等外界因素 可能导致停靠时间的长短变化 不予考虑 假 设电梯正常运行一层的时间是 5S 停靠目标楼层 上下乘客和电梯继 续运行的时间是 5S 当电梯停靠某层时 该层的乘客如果错误的按目标或呼叫按钮都不予 响应 电梯停靠某一层后 苦无目标和呼叫 则电梯处于无方向状态 方向 指示灯全灭 否则电梯内某个方向的指示灯亮 表示电梯将向该方向 运行 等接到 GO 信号后电梯立即继续运行 若无 GO 信号 则电梯 在等了上下乘客和电梯继续运行时间后也将继续运行 当一个目标 呼叫 已经被服务后 应将对应的指示灯熄灭 三 电梯运行的控制策略 以下是几个候选策略 仅供参考 1 先来先服务策略 将所有呼叫和目标按到达时间排队 然后一一完成 这是相当简单的策略 只需要设计一个将呼叫和目标排队的数据结构 因为该策略效率也很低 所以 没有实际的电梯采用这种策略 2 顺便服务策略 顺便服务是一种最常见的简单策略 这种策略在运行控制中所规定的安全前 提下 一次将一个方向上的所有呼叫和目标全部完成 然后掉转运行方向完成 另外一个方向上的所有呼叫和目标 可以采用设定目标楼层的办法来实现这个策略 即电梯向一个目标楼层运 行 但这个楼层可以修改 具体策略如下 1 修改目标楼层的策略 a 如果电梯运行方向向上 那么如果新到一个介于当前电梯所处楼层和目标 楼层之间 又可以安全到达的向上呼叫或者目标 将目标楼层修改为这个新的 楼层 b 如果电梯运行方向向下 那么如果新到一个介于当前电梯所处楼层和目标 楼层之间 又可以安全到达的向下呼叫或者目标 将目标楼层修改为这个新的 楼层 2 确定新的目标楼层的策略 如果电梯向上运行 当它到达某个目标楼层后 则依照以下顺序确定下一个 目标楼层 a 如果比当前层高的楼层有向上呼叫或者目标 那么以最低的高于当前楼层 的有向上呼叫或者目标的楼层为目标 b 如果无法确定目标楼层 那么以最高的向下呼叫或者目标所在楼层为电梯 当前目标楼层 c 如果无法确定目标楼层 那么以最低的向上呼叫所在楼层为电梯当前的目 标楼层 d 如果仍然不能确定目标楼层 此时实际上没有任何呼叫和目标 那么电 梯无目标 运行暂停 如果电梯向下运行 依照以下顺序确定下一目标楼层 a 如果比当前层低的楼层有向下呼叫或者目标 那么以最高的低于当前楼层 的有向下呼叫或者目标的楼层为目标 b 如果无法确定目标楼层 那么以最低的向上呼叫或者目标所在楼层为电梯 当前目标楼层 c 如果无法确定目标楼层 那么以最高的向下呼叫楼层为目标楼层 d 如果仍然不能确定目标楼层 此时实际上没有任何呼叫和目标 那么电 梯无目标 运行暂停 3 最快响应策略 响应所有的现在存在的所有呼叫和目标所需时间 采用不同方案电梯停靠 时间相同 所以不必考虑 最短的策略 可选方案一是电梯先向上运行响应经过各层的目标和向上呼叫 再向下运 行响应所有向下呼叫以及途经各层的目标 最后再向上响应剩余的向上呼叫 二是恰好相反 先向下 再向上 最后再向下运行 由于呼叫和目标会随时增加 所以实际上有时这种策略并不好 另外有时 这将导致电梯突然向相反的方向运行 为了防止经常性的改变方向 我们可以 采用设定只有当原来的运行方向比相反方向的代价高 20 的时候才切换方向 4 最短平均等待时间策略 假设每一呼叫楼层等待的人数和每一目标楼层走出电梯的人数相等 计算 响应当前所有呼叫和目标全部乘客所需时间的总和 包括等待时间和电梯运行 时间 对于提出呼叫而尚未进入电梯的乘客则只计算等待时间 对于这种策 略 基本上也是只有策略 3 一样的两种选择方案 由于呼叫和目标会随时增加 所以实际上这种策略有时并不好 但它比最快响应时间策略较为稳定和高效 另外有时这将导致电梯突然向相反的方向运行 为了防止经常性的改变方向 我们可以采用设定只有当原来的方向比替代方向的代价高 20 的时候才切换运 行方向 注意 除了先来先服务以外 我们不能预先设定固定不变电梯运行的目标楼 层 5 创新控制策略 要求重点要实现上述任何一种控制策略 如 顺便服务策略 应在一个相对 独立的程序块中实现控制策略 这样能方便地对其进行修改而不影响程序的其 他部分 四 输入输出 1 输入 就是一系列的呼叫和目标 输入可以采用两种方法 a 以键盘输入呼叫和目标 例如我们可以设定如下 当敲击键 1 2 3 4 5 6 7 8 9 时表示电梯内有乘客按目标按钮 指定相应目标 楼层 当敲击键 Q W E R T Y U I 时表示 8 层到 1 层有上行呼叫请 求 当敲击键 A S D F G H J K 时表示 9 层到 2 层有下行呼叫请 求 b 将呼叫和目标写入一个正文文件 然后程序读取这些呼叫和目标数据 后可以在没有人工干预的情况下模拟电梯运行情况 其中一个呼叫 目标占一行 包括如下内容 呼叫和目标的编号 统一编号 从 0001 开始 占 4 个字节 该输入的时间 以整数表示 从小到大排列 占 4 个字节 从 0000 开始 单位秒 呼叫 目标 GO 结束 表明该行是什么 0 表示呼叫 1 表示目标 2 表示 GO 3 表示输入到此结束 占一个字节 目的楼层 仅用与呼叫或者目标 呼叫所在楼层或者目标楼层 占一个字 节 呼叫方向 仅用于呼叫 0 表示上行 1 表示下行 占一个字节 每个数据项之间用一个空白字符隔开 不必考虑检查数据的正确性 2 输出 a 电梯运行的动画显示 包括显示各按钮指示灯的亮灭情况 电梯方向指 示灯和电梯位置及运行情况 b 电梯运行情况的记录 结果 文件 记录文件也是文本文件 每一行表示一次停靠 包括以下内容 停靠时间 开始停靠某楼层的时间 以整数表示 从小到大排列 占 4 个 字节 从 0 开始 单位秒 楼层 停靠的楼层 占一个字节 1 9 每个数据项之间用一个空白字符隔开 程序中不必考虑检查数据的正确性 五 基本要求和较高的要求 以下内容仅供有余力的同学参考实现 1 程序的运行方式 如果输入从数据文件中取得 则程序的运行应该有两种方式 动画方式 快 速方式和完全方式 如果输入从键盘输入 那么必须采用动画方式 否则因为 我们来不及输入呼叫和目标而没有意义 a 动画方式花费较长的时间来直观地模拟电梯运行 b 快速方式则没有动画 只是生成记录文件 c 完全方式花费较长的时间来直观地模拟电梯运行 同时生成记录文件 基本要求只实现动画方式 2 控制策略 基本要求实现先来先服务和顺便服务策略 可以指定电梯模拟系统使用不同 的策略 较高的要求是可以在多个策略之间由我们控制进行切换 3 输入输出 基本要求实现键盘输入 动画输出 4 统计分析 统计分析每个乘客乘电梯花费的平均时间 如果实现了多个策略 则可以对不同策略加以比较 5 程序的适应性考虑 例如如何不要作很多修改就可以适应楼层数改变 例如增加到 30 层 等 等 六 程序设计步骤 1 人员组织准备 5 6 人自由组合成一个小组来完成本大型作业 要求每组有一个组长 负 责组织工作和程序总体结构与模块接口的协调 负责分配任务以及做出决策 每组还要有一个文档员 文档员负责小组正式会议的记录工作以及其它文 档的最后的整理定稿工作 要求每小组至少举行一次正式会议 请同学们考虑如何才能使会议有效率 在软件开发全过程中 该阶段大约占用 5 以下的时间 2 明确任务 学习任务说明书 对它进行必要的补充 在软件开发全过程中 该阶段大约占用 15 25 的时间 3 总体设计与任务划分 将系统划分为若干个功能模块 要求首先要明确定义功能模块的接口 包 括各模块之间的调用关系 功能模块名和调用它的参数 另外还要明确高层次 的算法和重要的数据结构 然后将任务并分配到人 各个同学的工作量不应相 差太大 要注意到组长负责小组工作的协调需要一定的工作量 文档工作也有 一定工作量 以后的详细设计中功能模块的接口除非发生无解的情况 不应该 被轻易修改 在软件开发全过程中 该阶段大约占用 10 15 的时间 4 详细设计 对分给自己的模块的分析设计 包括局部数据结构和算法 要求使用某一 种详细设计辅助工具 例如伪代码 N S 图等 写出详细设计的文档 在软件开发全过程中 该阶段大约占用 15 25 的时间 5 编程 在设计比较大的程序时尤其要注意程序设计风格 在软件开发全过程中 该阶段大约占用 10 20 的时间 6 调试 调试的要点在于定位错误 所以请考虑如何才能高效率做到这一点 特别 的 要知道是谁的那部分程序有错误 然后让他来改正自己的错误 作业完成后需要 演示模拟控制软件的运行情况 提交完整的作业报告文档 七 需要提交的文档 要求提交的阶段性文档是完善的任务书 总体设计说明书 含任务划分说 明 详细设计说明书和程序清单 另外还要求提交会议纪要 既可以提交书 面的文档 也可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论