算法与数据结构课程设计任务书
- 格式:docx
- 大小:42.46 KB
- 文档页数:11
算法与数据结构课程设计任务书(2014级软件工程本科专业)题目类型:软件工程(R)指导教师:李睿一.题目简介1.扫雷问题。
有些个人计算机会带有一个名为Minesweeper的游戏。
该游戏界面是一个网格,网格中的有些方块是雷。
编写一个程序以读取文件,该文件中存放着网格中的行数、列数以及网格本身。
网格会含有一些标记为o的方块,这些就是雷。
其他方块不是雷,将会标记上问号(?)。
程序的输出就是输出这个网格。
雷依然会标记成o,而那些不含雷的方块会替换成一个数字,以表明邻近雷的个数。
最大数字将是8。
(4)例如:1 5 52?o??? 2 2o2113o??o? 3 o33o24??o?o 4 34o4o5oo?o? 5 oo4o26?o??? 6 3o3112.求素数问题。
埃拉托色尼筛法(Sieve of Eratosthenes)是一种用来求所有小于N的素数的方法。
从建立一个整数2~N的表着手,寻找i˂错误!未找到引用源。
的整数,编程实现此算法,并讨论运算时间。
(1)3.方程求解问题。
方程A5+B5+C5+D5+E5=F5刚好有一个满足0≤A≤B≤C≤D≤E≤F≤75的整数解。
请编写一个求出该解的程序。
(3)4.最短字符串问题。
编写一个程序,从输入中读取字符串,并按长度顺序,最短字符串优先的原则输出它们。
如果有若干字符串具有相同的长度,就按字母顺序输出它们。
(3)5.计算1的个数问题。
编写递归程序,返回十进制数N的二进制表示中1的个数。
(2)6.排序重构问题。
令A为一个由N个已特殊排序数组成的数列:A1,A2,…,A N,其中A1=0。
令B为N(N-1)/2个数(定义为B ij=A i-A j(i>j))组成的数列。
例如,A=0,1,5,8,那么D=1,3,4,5,7,8。
请完成:1)编写程序,根据A构造D;2)编写程序,构造与D相对应的某一个数列A,注意A不是唯一的。
(4)7.占用网格计算问题。
考虑一个N*N的网格,其中某些方格已被占用。
算法与数据结构课程设计任务书(2011级计算机科学与技术本科专业)题目:1.表达式转换问题;2.跳马问题。
学生姓名:姚孟斌学号:11240230 班级:2011级计算机科学与技术题目类型:软件工程(R)指导教师:王燕一.题目简介1.表达式转换问题。
请编写一个读取中缀表达式并生成后缀表达式的程序。
2.跳马问题。
要求在64个国际象棋格子,任意位置放一个马,如何不重复地把格子走完。
二、各题目的设计与实现要求1、查阅文献资料,一般在3篇以上;2、建立数据的逻辑结构和物理结构;3、完成相应算法的设计;4、完成程序的实现;5、完成测试工作;5、撰写设计说明书;6、做好答辩工作。
三、提交的成果1. 设计说明书一份,内容包括:1) 中文摘要100字;关键词3-5个;2) 序言;3)采用类c语言定义相关的数据类型4)各模块流程图及伪码算法5)函数的调用关系图6)调试分析a、调试中遇到的问题及对问题的解决方法;b、算法的时间复杂度和空间复杂度。
7)测试结果8)源程序(带注释)9) 设计总结、参考文献、致谢等。
2. 刻制光盘一张。
四、主要参考文献1 严蔚敏,吴伟民.《数据结构(C语言版)》.清华大学出版社.2 严蔚敏,吴伟民.《数据结构题集(C语言版)》.清华大学出版社.3 《DATA STRUCTURE WITH C++》. William Ford,William Topp.清华大学出版社(影印版).4 谭浩强.《c语言程序设计》. 清华大学出版社.5.数据结构与算法分析(Java版), A Practical Introduction to Data Structures and Algorithm Analysis Java Edition Clifford A. Shaffer , 张铭,刘晓丹译电子工业出版社2001 年1月五、各阶段时间安排(共3周)2013年6月30日。
数据结构与算法课程设计任务书使用时间:2011-2012学年第2学期一、课程设计目的本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。
二、课程设计题目共10题,每个学生一题,单独完成。
(选法为根据学生所在班级名册的自然顺序,第1-12名同学分别做第1到第12题,然后循环,第13-24名同学分别做第1到第12题,依次类推。
)1、银行业务活动的模拟任务:假设某银行有4个窗口对外接待客户,从早晨银行开门起不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。
因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户。
如果某个窗口的业务员正空闲,则可上前输业务。
反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。
编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间。
功能要求:1).实现数据的输入;2).各个窗口数据的访问和输出;3)当前窗口的人员分布情况动态显示。
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计。
请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;2、航班订票系统任务:通过此系统可以实现如下功能:1)、录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)2)、查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;3)、订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;4)、退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
算法与数据结构课程设计任务书课程编号:2409080S 课程性质:专业实践课学时/学分:1周/1. 适用专业:计算机科学与技术(交通信息工程)教材:《数据结构》C语言版,严蔚敏、吴伟民编著,清华大学出版社课程设计目的:1.训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题的能力。
2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.培养学生在分析问题和解决问题过程严谨的科学态度和良好的工作作风课程设计要求:1.18周周1至周5完成选题、问题分析、算法设计、程序编写、程序测试和程序验收。
2.按照课设格式提交课程设计报告(7月10日)。
3.分数=80%程序+20%报告课程设计题目课程设计题一:学生成绩管理系统设计目的:1.掌握线性链表的建立。
2.掌握线性链表的基本操作。
3.加深对线性链表及其基本操作的理解。
利用线性链表实现学生成绩管理系统。
具体功能:输入、输出、插入、删除、查找、追加、显示、分类合计,并能在屏幕上输出操作前后的结果。
设计要求:1.初始化线性链表。
可以通过键盘输入,进行学生信息的录入。
并根据命令,进行插入、删除、追加、遍历、分类合计等操作。
2.输出操作前后的结果。
3.如果有时间,可以添加保存功能。
即将链表中的学生记录保存到一个文本文件中。
课程设计题二:停车场管理系统设计目的:1.掌握栈和队列的建立。
2.掌握栈和队列的基本操作。
3.深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。
4.加深对栈和队列的理解和认识。
设计内容:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
沈阳工程学院课程设计任务书课程设计题目:数据结构与算法课程设计系别信息工程系班级学生姓名学号指导教师职称课程设计进行地点:任务下达时间:年月日起止日期:年月日起——至年月日止教研室主任年月日批准一、课程设计的原始资料及依据数据结构与算法课程设计是在完成数据结构理论课程学习之后进行的一个综合性的实践教学环节,是对课程理论和课程实验的一个补充。
通过课程设计,培养学生综合运用已学过的理论和技能去分析和解决实际问题的能力,并使所学知识得到进一步巩固、深化和扩展。
二、课程设计主要内容及要求设计内容:1、设有一元素为整数的线性表L=(a1,a2,a3,…,an),存放在一维数组A[N]中,设计一个算法,以表中an作为参考元素,将该表分为左、右两部分,其中左半部分每个元素小于等于an,右半部分每个元素都大于an, an位于分界位置上(要求结果仍存放在A[N]中)。
2、设线性表存于A[1..size]的前num各分量中,且递增有序。
请设计一个算法,将x插入到线性表的适当位置上,以保持线性表的有序性。
3、线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。
要求设计一算法完成:4、用最少时间在表中查找数值为x的元素。
5、若找到将其与后继元素位置相交换。
6、若找不到将其插入表中并使表中元素仍递增有序。
7、已知数组A[0:n-1]的元素类型为int,试设计算法将其调整为左右两个部分,左边所有元素为奇数,右边所有元素为偶数。
8、设计一个算法从顺序表L中删除所有值为x的元素9、设计一个算法从顺序表L中删除所有值为x到y之间(x<=y)的元素10、假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。
请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。
11、已知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。
数据结构与算法课程设计任务书1.课程设计考核要求设计要求每位同学都必须独立完成课程设计内容。
支持借鉴和学习已有的优秀知识。
反对全盘拷贝,不求甚解。
吸收和消化他人经验,做自己的课程设计。
自学能力的培养:学会上网查资料、解决问题。
考核方法第一部分(20%):平时成绩第一部分(50%):实物演示演示完成的系统,并回答老师的问题。
第二部分(30%):报告提交1 课程设计报告,内容包括参考文献分析、方案设计、程序清单(附注释)、调试记录(碰到的问题和解决方案)以及课程设计心得。
报告封面和模板参见附录。
2.课程设计进度表附1 对课程设计提交内容的要求(1)请同学独立完成报告,若发现两份报告一模一样,则两人都记为不及格,请各位同学珍惜自己的版权。
(2)课程设计报告用A4纸打印,在左侧面装订,报告内容不得少于15页。
(3)提交材料:1、课程设计报告的打印件,装订好,第16周课题验收时提交;2、压缩文件起名为:学号.rar。
该压缩文件中包含下列几个文件:程序设计报告的电子文档、源程序文件、原始数据文件、编译链接后得到的可执行文件。
班长于第16周周日之前提交所有同学的压缩文件。
附2课程设计上机安排表2017年5月27日第二-五节课上午8:50-12:152015年6月1日第二-九节课上午8:50-12:15,下午1:45-5:102017年6月2日第六-九节课下午1:45-5:102017年6月3日第二-五节课上午8:50-12:15实物验收:6月13日下午附3成绩的评定根据上机出勤情况、为上机所作的准备情况、上机时的表现、程序的完成情况、报告的完成情况、验收答辩时的表现等综合打分。
等级为:优秀、良好、中等、及格、不及格。
附4 课程设计报告封面课程设计报告( / 学年第学期)题目:专业学生姓名班级学号指导教师指导单位日期附5课程设计报告模板课题题目(题目格式:宋体,3号,加粗,居中对齐)一、课题内容和要求(格式:宋体,4号,加粗,两端对齐)该部分可参考前面给出的问题描述再加以细化一些(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)二、需求分析(格式:宋体,4号,加粗,两端对齐)在该部分中叙述每个模块的功能要求(正文格式:宋体,小4号,不加粗,两端对齐,1.5倍行距)三、概要设计(格式:宋体,4号,加粗,两端对齐)在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义,如果用面向对象的方法,应该给出类中成员变量和成员函数原型声明)。
《数据结构与算法》课程设计教学任务书一、课程设计的目的数据结构与算法课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构与算法是为了将实际问题中涉及的对象在计算机中表示出来并对它们进行处理。
通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。
通过此次课程设计主要达到以下目的:了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的基本要求1. 独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2. 做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3. 按照课程设计的具体要求建立功能模块,要求按照如下几个内容认真完成:1)需求分析:在该部分中叙述,所选课题的功能要求。
2)概要设计:在此说明所选课题的功能模块,以及每个功能模块的算法设计(可以是描述算法的功能模块图),所选课题的的数据结构以及其存储结构设计说明等。
(如果指定存储结构请写出该存储结构的定义)3)详细设计:针对2)中的主要功能模块,画出流程图,给出主要功能模块的流程图、算法及必要的文字说明)4)编码实现:给出3)中主要功能模块的函数实现,重点是函数的声明,变量或参数的说明,以及程序的功能说明与注释,不必把所有代码都写上,主要写出其声明与注释等。
《算法与数据结构课程设计任务书》经济管理学院2012-12西安工业大学经济管理学院《算法与数据结构》课程设计任务书设计题目一元多项式计算器已知技术参数和设计要求基本功能定为(1) 输入并建立多项式(2) 输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,.....,Cn,en,其中n 是多项式的相数,Ci和Ei分别是第i项的系数和指数,序列按指数降序排列(3) 两个多项式相加,建立并输出和多项式(4) 两个多项式相减,建立并输出差多项式(5) 两个多项式相乘, 建立乘积多项式实现提示:用带表头结点的单链表存储多项式设计内容与步骤1、结点结构的设计2、算法设计与分析3、程序设计、实现、调试4、课程设计说明书设计工作计划与进度安排周1:资料查询与方案设计周2-周4:算法设计与调试1、周5:答辩并撰写课程设计说明书设计考核要求1、考勤20%2、课程设计说明书50%3、答辩30%西安工业大学经济管理学院《算法与数据结构》课程设计任务书设计题目排序综合已知技术参数和设计要求利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。
要求:1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。
并把排序后的结果保存在不同的文件中。
2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。
如果采用4种或4种以上的方法者,可适当加分。
设计内容与步骤1、数据结构的设计2、算法设计与分析3、程序设计、实现、调试4、课程设计说明书设计工作计划与进度安排周1:资料查询与方案设计周2-周4:算法设计与调试周5:答辩并撰写课程设计说明书设计考核要求1、考勤20%2、课程设计说明书50%3、答辩30%西安工业大学经济管理学院《算法与数据结构》课程设计任务书设计题目小型图书馆管理系统(链表的插入,排序,查询,删除)已知技术参数和设计要求创建一个图书馆管理系统,可进行还书(插入),排序,查找,借书(删除)操作。
数据结构与算法课程设计任务书一、目的和意义课程设计是课程教学中的一项重要内容,是完成教学计划达到教学目标的重要环节,是教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有重要的意义。
学好数据结构对掌握实际编程能力很有帮助。
为了学好《数据结构》,必须掌握编写一些在特定数据结构上的算法,并通过上机调试,更好地掌握各种数据结构及其特点,《数据结构》课程设计正是根据这种需要而设置的。
本课程设计应达到以下教学目的:1.使学生对于数据结构基本理论和存储结构及算法设计有更加深入的理解;2.提高学生在实际设计操作中系统分析、结构确定、算法选择、数学建模和信息加工的能力;3.训练综合运用所学知识处理实际问题的能力;使同学的程序设计与调试水平有一个明显的提高,提高学生的C/C++语言程序设计能力。
二、选题要求选题要符合本课程的教学要求,课程设计所安排的题目,在难度和深度方面都大于课内的上机训练,成果宜具有相对完整功能。
本课程设计要求学生完成典型问题的数据结构确立和程序实现。
整个数据结构的课设历时一周。
三、任务及要求1.任务------赫夫曼编码/译码器利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。
这要求在发送端通过一个编码系统对待传输预先编码,在接收端将传来的数据进行译码。
对于双工通道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。
本课程设计实现这样的信息收发站,编写一个哈夫曼码的编/译码系统。
2.要求一个完整的系统应具有以下功能:1)初始化。
从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree.txt中。
2)编码。
利用已建好的哈夫曼树,对文件ToBeTra.txt中的正文进行编码,然后将结果存入文件CodeFil.txt中。
3)译码。
利用已建好的哈夫曼树将文件CodeFile.txt中的代码进行译码,结果存入文件Textfile.txt中。
数据结构与算法课程设计任务书一.数据结构与算法课程设计的目的和要求(一)设计的目的数据结构与算法课程设计是在学完数据结构与算法课程之后的实践教学环节。
该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。
要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。
学生通过数据结构课程设计在下述各方面得到锻炼:1.能根据实际问题的具体情况,结合数据结构与算法课程中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。
2.提高程序设计和调试能力。
学生通过上机实习,验证自己设计的算法的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。
3.培养算法分析能力。
分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。
(二)设计要求1.学生必须仔细阅读《数据结构与算法》课程设计方案,认真主动完成课设的要求。
有问题及时主动通过各种方式与教师联系沟通。
2.学生要发挥自主学习的能力,充分利用时间,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。
3.课程设计按照教学要求需要一周时间完成,属教师安排上机时间学生不得缺席。
二.设计内容及步骤1.分析问题,给出数学模型,设计相应的数据结构。
(1)分析问题的特点,用数学表达式或其它形式描述其数学模型。
(2)选择能够体现问题本身特点的逻辑结构。
(3)在逻辑结构确定的情况下,为算法的设计选择相应的存储结构,顺序存储结构和非顺序存储结构的不同存储方式,其对应的算法也不相同。
2.算法设计在已经选择好数据结构的前提下,为解决问题设计算法。
(1)确定所需模块对于稍复杂的程序设计,要充分利用模块化程序设计方法,自顶向下,逐步细化,在整体思路确定的情况下,考虑所需模块数,各模块完成功能以及模块之间的数据联系和调用关系。
(2)各子模块功能描述给出主要模块的算法描述,用流程图或伪代码表示。
算法与数据结构课程设计任务书1、实训意义和目的使学生巩固和加强《C语言程序设计》和《数据结构与算法》课程的理论知识。
使学生掌握C语言的基本概念、语法、语义和数据类型的使用特点。
使学生掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。
进一步理解和运用结构化程设计的思想和方法;学会利用流程图或N-S图表示算法。
使学生掌握调试程序的基本方法及上机操作方法。
掌握书写程设计开发文档的能力,使学生学会撰写课程设计总结报告。
课学生做毕业设计打好基础。
初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。
通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。
培养学生的创新能力和创新思维。
学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。
培养学生良好的程序设计风格。
在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。
学生在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。
2、实训目标及要求参加本课程设计的学生,应当认真完成本课程设计的全部过程。
并以最终课程设计成果来证明其独立完成各种实际任务的能力。
从而,反映出理解和运用本课程知识的水平和能力。
A、分析问题。
各种简单的与计算机有关的案例中所需要的输出结果,把大问题分解成小问题,使用自顶向下或类似设计方法给出模块化或计划。
B、提出算法执行特定任务。
模块表示为算法,使用自顶向下或伪代码等设计手段将模块细化成更详细的成分,清楚地表明顺序、选择和重复等到控制结构。
C、把一个算法变为用C语言编写的结构化程序。
D、用合适的测试方法检查程序是否符合最初的要求,为不合适数据设计错误陷阱,并提供错误信息来帮助用户。
E、写出清晰的用户文档,确保用户或者通过遵循程序中的指示或者使用程序设计者编写的文档能成功地运行程序。
F、写出技术文档,对程序中主要标示符的含义或作用加以说明,并提供一个完整的程序流程图。
G、调试程序、测试数据过程成功。
3、实训内容及安排3.1设计环境硬件:PC机,目前机房都已具备开发C语言程序的条件软件:操作系统为Window系列,设计语言为ViualC++或TurboC。
3.2基本要求课程设计可采取每人一题,可任选一题进行设计,至少包含五个功能模块。
或者每组(4人)完成一个课题,每组成员分工合作完成一个课程设计,每个人的任务不同;可以选择老师提供的参考选题,也可以自选,如果自选,需要将自选题目的详细内容以及实现要求提供给老师,老师批准后方可采用。
要求利用结构化程序设计方法以及C的编程思想来完成系统的设计;要求有欢迎界面、菜单、文件操作,数据使用数组、结构体、链表等均可,键盘操作或鼠标操作均可;模块化程序设计:要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现;学生所选课题必须上机通过,并获得满意的结果;程序书写风格:锯齿型书写格式。
3.3实现步骤问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;详细设计:定义相应的存储结构并写出各函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;程序编码:把详细设计的结果进一步求精为程序设计语言程序。
同时加入一些注解和断言,使程序中逻辑概念清楚;程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。
调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;编写实训设计报告.3.4实训题目见附录4、实训报告应具有的内容1)、需求分析描述问题。
简述课题要解决的问题是什么,有什么要求和限制条件。
2)、总体设计(程序设计组成框图、流程图)3)、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等))4)、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施5)、测试结果,用几组测试数据进行测试算法设计的正确性。
6)、用户手册:即使用说明。
7)、附录。
源程序清单和结果:源程序要加注释。
结果要包括测试数据和运行结果。
要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释1)要提供程序测试方案2)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
附录、C语言项目(供参考)(一)、学生成绩管理系统【问题描述】学期考试结束,统计有N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。
输入、输出格式自定。
【实现提示】假设某班有:30人(姓名自定)考试课程有:高等数学、物理、外语、C语言、德育5门课程。
程序的功能主要包括:①输入成绩②输出成绩③输出不及格学生名单④成绩排序⑤修改记录⑥删除记录⑦插入记录等主函数中对多个功能选择(菜单),调用对应的函数完成。
(二)、设计一个航空客运定票系统。
基本要求如下:1、每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几)、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。
2、系统能实现的操作和功能如下:1)查询航线:根据客户提出的终点站名输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;2)承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少余订票额,则需重新询问客户要求。
若需要,可登记排队候补;3)承办退票业务:根据客户提出的情况(日期、航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。
3、实现提示:两个客户名单可分别由线性表和队列实现。
为查找方便,已订票客户的线性表应按客户姓名有序,并且,为了插入和删除方便,应以链表作为存储结构。
由于预约人数无法预计,队列也应以链表作为存储结构。
(三)、校园导游咨询(为来访的客人提供各种信息服务)1、基本要求:1)设计下沙校园平面图,在校园景点选10个左右景点。
以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。
2)为来访客人提供图中任意景点相关信息的查询。
3)为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。
2、实现提示:一般情况下,校园的道路是双向通行的,可设计校园平面图是一个无向网。
顶点和边均含有相关信息。
(四)、学生信息管理(1)问题描述一学生信息管理系统,使之能提供以下功能:系统以菜单方式工作学生信息录入功能---输入学生信息浏览功能---输出查询、排序功能---算法按学号查询、按姓名查询、学生信息的删除与修改(可选项)(2)功能要求界面比较美观;有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;最好用链表的方式实现。
(3)算法分析首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。
对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。
文件的读写操作大家参照书中的有关文件的章节。
(五)、仓库管理系统1.【功能需求】程序启动后显示主菜单,包括下面的选项:1.显示货物类型列表2.新增货物类型3.删除货物类型4.货物入库5.货物出库6.库存显示7.退出按下相应的按键后进入各自的子功能2.每个子功能执行完毕后,返回并显示主菜单3.【功能说明】1.显示货物类型列表:在屏幕显示已登记的货物类型。
(六)、个人帐簿管理系统设计个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。
进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。
(七)、简单的职工管理系统1.问题描述对单位的职工进行管理,包括插入、删除、查找、排序等功能。
2.要求(八)、建通讯录【问题描述】设计散列表实现通讯录查找系统。
【基本要求】(5)通讯录信息文件保存;(6)要求人机界面友好,使用图形化界面;【选做内容】(1)系统功能的完善;(2)设计不同的散列函数,比较冲突率;(3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。
(4)使用汉字显示。
【实现提示】主函数:根据选单的选项调用各函数,并完成相应的功能。
Menu()的功能:显示英文提示选单。
Quit()的功能:退出选单。
Create()的功能:创建新的通讯录。
Append()的功能:在通讯录的末尾写入新的信息,并返回选单。
Find():查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息,并返回选单。
Alter()的功能:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。
Delete()的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。
Lit()的功能:显示通讯录中的所有记录。
Save()的功能:保存通讯录中的所有记录到指定文件中。
Load()的功能:从指定文件中读取通讯录中的记录。
(九)、图书管理基本业务模拟2)建立索引表(线性表)以提高查找效率;3)主要功能如下:a)采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;b)借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;(十)、班委选举系统1、【功能需求】程序启动后显示主菜单,包括下面的选项:1.显示候选人列表2.新增候选人名单3.删除候选人名单4.投票5.选举结果显示7退出按下相应的按键后进入各自的子功能2.每个子功能执行完毕后,返回并显示主菜单。