




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
“C语言程序设计实践”任务书信息科学与工程学院电气与自动化实验室2011年5月目 录一、指导老师安排二、课程设计要求三、结构化程序设计方法四、相关管理系统设计题的基本功能要求五、成绩评定要素六、课程设计报告基本内容要求七、设计题(共13题 )4八、上机时间安排表(第18周至第19周)6附录1:7附录2:14附录3:15“C语言程序设计实践”任务书一、指导老师安排二、课程设计要求本次“C语言程序设计实践”课程设计,是基于“C语言程序设计基础”课程学习内容的重要实践环节,其主要目的在于,通过综合程序课程设计,培养和提高学生的独立分析问题、解决实际问题的能力和计算机语言编程能力。本次课程设计时间为2周,要求每位同学在为期两周的时间段内,独立完成相关设计题所规定的任务(上机时数为20学时)。进度安排建议如下:1、阅读设计题目、任务内容,规划设计进度,并进行软件的各相关功能模块的规划设计(1天)。2、在Turbo C(或Visual C+6.0)环境下,用结构化程序设计思想进行C语言程序设计、功能模块调试(7-9天)。3、进行课程设计报告编写与整理(2天)。4、课程设计结束时,要求进行设计成果演示(由指导老师验收相关程序运行成果并打分);每人须对相关电子文档进行整理上交(包括:程序文件、帮助说明文档);交课程设计报告(纸质)一份(手工书写稿或打印稿)。三、结构化程序设计方法结构化技术是软件工程中最成熟的技术之一,它包括结构化分析方法(Structured Analysis)、结构化设计方法(Structured design)和结构化程序设计方法(Structured Programming),简称为SA-SD-SP方法。它的总的指导思想是自顶向下、逐步求精、单入口/单出口,基本原则是抽象和功能的分解。对于较为复杂问题的大型程序开发,应采取“自顶向下、逐步细化和模块化”的设计方法,模块化程序设计是结构化程序设计方法在开发大型程序中的应用。1、自顶向下、逐步细化、逐步求精所谓“自顶向下,逐步细化、逐步求精”就是在对于给定问题进行透彻的了解和详细的分析的基础上,把问题分解成若干个按顺序执行的逻辑部分,称为“模块”。每个子任务如果仍很复杂,还可以再分解为若干个子任务。如此逐层分解,对于每个模块的设计都采用这种“自顶向下、逐步细化”的方法,将它们分解成为基本结构为止,就如同写文章先拟出题目和中心内容,再确定分为几大部分,每一大部分又分哪几节,每一节分为几段,每一段包括哪几个意思,这就是“自顶向下,逐步细化”的方法。2、菜单技术当一个程序的规模比较庞大,层次和模块比较多时,不要每次都将所有模块按顺序执行一遍,最好在每一层,至少在最高几层都设一个“菜单”。为方便用户操作,“菜单”技术已广泛使用在计算机的系统软件中,具体做法是:程序首先把各功能说明及相应代号以菜单形式显示在屏幕上,然后由用户在键盘上输入所选的功能代号,程序自动转去调用相应的功能模块进行处理。四、相关管理系统设计题的基本功能要求1、数据文件管理功能:创建新文件、管理老文件(包括:Open、New)。2、输入添加/插入记录:能够完成对任意一条记录输入、添加或插入数据表中,并保存到数据文件中。3、显示、查询记录:能够打开已存在的数据表文件,根据用户要求按所给记录关键字显示、查询一个或多个相关联记录的各项信息。4、修改记录:能够打开已存在的数据表文件,并对确定的任意记录进行修改,在修改过程中,应显示记录信息,给出确认提示,并对更新的记录信息进行文件保存。5、删除记录:能够打开已存在的数据表文件,可以删除数据表中的任一记录,要求具备逻辑删除(具有恢复功能)和物理删除功能,并对新的数据表信息进行文件保存。6、统计功能:能够打开已存在的数据表文件,对数据表中与某关键字匹配的相关记录进行数据统计(包括:总数、平均值、分段信息),例如:按课程得分为100、9099、8089、7079、6069和不及格学生的人数,以及所占百分比。7、排序:对记录进行排序。例如:按某门课程的成绩排序,或按成绩总分进行排序等。在正确、合理的软件功能规划的基础上,进行各功能模块的设计。建议用文件包含或工程文件形式,进行逐个模块的功能调试与功能实现。切忌将多个功能模块混合一起进行调试。有关C语言程序设计参考,见附录1。五、成绩评定要素成绩分为优、良、中、及格、不及格五档,考核标准如下:1、 验收程序的可用性,实用性,通用性,可扩充性(程序设计源代码)(50%)2、 学生的动手能力,创新精神(10%) 3、 程序设计说明书(30%) 4、 平时成绩(10%)六、课程设计报告基本内容要求一、封面(封面格式见附录2)二、目录三、本次课题的基本内容和要求四、软件设计整体规划及方案五、程序功能简介六、主体内容(简要说明总体情况,详细介绍本人任务部分):1、设计分析2、程序结构(画总体模块图、本人设计部分的程序N-S或ANSI流程图)3、各模块的功能及程序说明4、相关模块源程序5、操作方法(流程)6、试验结果(包括输入数据和输出结果)7、设计体会8、参考文献23七、设计题(共13题 )1-12题为信息管理类型题目,13题为控制类型题目。每个题目有人数的限制,每位学生可以根据自己的情况独立选择一题作为设计任务,鼓励几个同学搭档分组,分工合作完成。以下题目的基本功能要求仅供参考,建议同学根据实际应用状况及要求,进行合理规划。选题1:销售信息管理系统(建议2-3人)调研、选择一个典型销售案例,实现按月进行销售员销售业绩信息管理。其中,每个销售员记录,包括编号,姓名,产品1销售额,产品2销售额,产品N销售额,总销售额等信息。选题2:职工工资信息管理系统:(建议2-3人)调研、选择一个典型职工信息管理案例,实现按月保存职工的工资数据。其中,每位职工记录,包括编号、姓名、职务基本工资、岗位津贴、其他补贴、应发工资、实发工资;扣除项目包括:所得税、住房公基金、养老金、医疗保险、失业保险、职务、基本工资、奖金,工资总额。具体功能要求参见P3。选题3:图书信息管理系统:(建议2-3人)调研、选择一个典型图书信息管理案例,实现图书库存、借阅信息管理。每本图书的记录信息包括:书号、书名、作者,单价、库存数量、出版时间、出版单位、价格等。选题4:材料管理系统:(建议2-3人)调研、选择一个典型仓库材料信息管理案例,实现材料库存、领用信息信息管理。每种材料的记录信息,包括:编号、名称、单价、入库数量、库存数量、出库数量、保管人、进货时间、出货时间和备注等。具体功能要求参见P3。选题5:学生成绩管理系统:(建议2-3人)调研、选择一个典型学生学籍(成绩)信息管理案例,实现以班为单位的学生成绩信息管理。学生成绩的基本信息包括:学号、姓名、五门以上课程成绩、成绩总分、平均成绩等。选题6:设备管理系统:(建议2-3人)调研、选择一个典型设备信息管理案例,实现各基层单位的设备资产信息管理。每个设备的记录信息,包括设备编号(8位数)、仪器名称、型号规格、单价、购入日期、领用人、使用状况和备注(50字)。选题7:通信录(建议1-2人)以班为单位进行通讯录信息管理。每个记录包括:序号、姓名、性别、年龄、电话,籍贯、现工作单位、家庭住址、通信地址及邮编等。选题8:人事信息管理系统(建议2-3人)调研、选择一个典型人事基本信息管理案例,实现某基层单位的人事基本信息管理。人事基本信息包括:职工号(职工号不重复)、姓名、性别、年龄、学历、职称、基本工资、岗位津贴、工资总额、在岗状况等。选题9:人员基本信息管理系统 (建议2-3人)调研、选择一个典型人员基本信息管理案例(例如:流动人口管理、小区楼栋居民管理等),实现分片或楼栋为数据库的人员基本信息管理。信息包括:序号,姓名,年龄,性别,出生年月,籍贯,电话,E-mail等。选题10:学生选修课程信息管理系统(建议2-3人)调研、选择一个典型学生选课基本信息管理案例,实现对多门课程的选课信息管理。每门课程的基本信息,包括:课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息。选题11:小学算术运算测试(建议1-2人)实现不同年级程度的算术运算能力测试(加、差、乘、除)。要求每套试卷共十题,能够根据练习水平和进度随机产生数据和不同运算要求,并建议制答题时间。能判断结果正确性,给出综合评分(包括:答题时间、正确率、总分、累记平均分等),并保存文件/打开文件。选题12:宿舍信息管理系统(建议2-3人)调研、选择一个典型学生宿舍楼的住房基本信息管理案例,实现学生区各个宿舍楼的宿舍信息管理。每个宿舍基本信息包括:楼层号、房间号、面积、可住宿人数、实际住宿人数、修缮状况(良好/待维修)、备注(记录入住人员姓名、性别、年龄、单位等)。选题13:基于C语言的模拟电梯系统程序设计(建议每组5-6人)根据“模拟电梯控制任务说明书”的规定,设计实现一个模拟电梯控制的仿真软件,方便进行相关控制策略验证和分析。这一任务可由包含5-6名同学的小组集体完成。通过该作业,希望同学们能够复习巩固结构化程序设计知识,培养良好的程序设计风格与习惯,了解软件开发的整个过程,学习书写简单文档,练习多人合作开发软件。“设计任务说明书”详见附录3。附录1:C语言程序设计实践课程设计参考及指导设计参考题目:通信录管理系统一、 程序组织方法 在Turbo C或VC+6.0中新建一个工程,再按下述方法创建各源程序文件。1将所有包含文件、符号常量定义、数据类型定义存放在头文件task1a.h中,此文件基本不用改动。将所有函数声明存放在头文件task1b.h中,每当定义一个新的函数时,就在此文件中增加一行此函数的声明,并在注释中标明定义此函数的文件。这样在每个源程序文件开头只需有2条包含命令:#include task1a.h#include task1b.h2将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。二、 部分参考程序1头文件task1a.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 100000 /* 符号常量定义 */* 全局变量的定义在prj1030.c文件中 */extern long count; /* 全局变量声明 */extern NODE * head; /* 全局变量声明 */extern NODE * tail; /* 全局变量声明 */extern NODE * npLIMIT; /* 全局变量声明 */struct comm_info /* 定义通信信息结构体类型 */long num; /* 编号 */char group16; /* 分组 */char name16; /* 姓名 */char hphone16; /* 固话home_phone */char mphone16; /* 手机号mobile_phone */char qq16; /* QQ号码 */char email20; /* e-mail地址 */char code10; /* 邮政编码 */int len; /* 家庭住址或通信地址长度 */char *addr; /* 家庭住址或通信地址 */struct comm_info *prev; /* 前向链表指针 */struct comm_info *next; /* 后向链表指针 */;#endif /* End of head file prj1a.h */2头文件task1b.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源程序文件task1000.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 & (*+argv)0 = - ) switch (*+argv0) case d: option = 1; 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源程序文件task1900.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 & r != y & r != N & r != n );if ( r = Y | r = y )return 1;elsereturn 0;5源程序文件task1100.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();三、main函数流程图(程序框架)结束保存记录帮助信息进行排序修改记录查找记录删除记录添加记录显示记录012345678显示和选择主菜单开始显示系统版本信息用户管理和登录系统初始化附录2:xx大学 课程设计报告题 目: 设 计 者: 专业班级: 学 号: 指导教师: 所属院系: 信息科学与工程学院 年 月 日附录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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创意手绘设计核心要点解析
- 医院物业管理服务方案
- 公共关系学社会责任评估试题及答案
- 房屋结构设计
- 方形公园景观设计案例
- 行政管理经济法知识提升方法试题及答案
- 社区农产品销售支持服务合同书
- 广告推广投放合作协议
- 水利水电工程环境保护试题及答案
- 环保型蔬菜种植基地建设协议
- 四年级下册课外阅读(含答案)
- 美术创作行业艺术品损坏免责协议
- 消费心理学-理论、案例与实践-综合练习题及答案
- 《深度解析张旭课程》课件
- 家装主材下单安装流程
- 供水管网漏损更新改造工程(一期)可行性研究报告
- 【重庆】2024年度重庆房地产市场研究报告正式版
- 课题申报参考:产教融合背景下护理专业技能人才“岗课赛证”融通路径研究
- 测绘设备投入计划
- 中药炮制工中级测试题+答案
- 房地产开发履约保证措施
评论
0/150
提交评论