数据结构课程设计教学任务书
- 格式:doc
- 大小:66.50 KB
- 文档页数:7
《数据结构》课程设计任务书一、设计题目1、约瑟夫环2、集合的并、交和差运算3、一元稀疏多项式计算器4、停车场管理5、车厢调度6、文学研究助手7、哈夫曼编/译码器8、图遍历的演示9、最小生成树问题10、哈希表设计二、设计目的数据结构课程设计是计算机专业的集中实践性环节之一,是学习完《数据结构》课程后进行的一次全面的综合练习。
其目的在于加深对数据结构的理解和掌握,使学生更好地掌握数据结构的特点、存储表示、运算方法及其应用,训练学生选用合适的数据结构编写质量高、风格好的应用程序的能力。
三、设计任务每班每人按照学号的顺序依次选择1-10号设计题目,独立完成课题。
(即1、11、21号学生完成1号课题,2、12、22号学生完成2号题,以此类推)四、时间安排五、设计内容1. 约瑟夫环【问题描述】约瑟夫(Joseph) 问题的一种描述是:编号为1,2,… ,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。
一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。
报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。
试设计一个程序求出出列顺序。
【基本要求】利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。
【测试数据】m的初值为20;n=7,7 个人的密码依次为:3,1,7,2,4,8,4,首先m值为6( 正确的出列顺序应为6,1,4,7,2,3,5) 。
【实现提示】程序运行后,首先要求用户指定初始报数上限值,然后读取各人的密码。
可设n≤30。
此题所用的循环链表中不需要“头结点”,请注意空表和非空表的界限。
【选作内容】向上述程序中添加在顺序结构上实现的部分。
2. 集合的并、交和差运算【问题描述】编制一个能演示执行集合的并、交和差运算的程序。
【基本要求】(1) 集合的元素限定为小写字母字符[‘a’..’z’] 。
《数据结构与算法》课程设计教学任务书一、课程设计的目的数据结构与算法课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构与算法是为了将实际问题中涉及的对象在计算机中表示出来并对它们进行处理。
通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。
通过此次课程设计主要达到以下目的:了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的基本要求1. 独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2. 做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3. 按照课程设计的具体要求建立功能模块,要求按照如下几个内容认真完成:1)需求分析:在该部分中叙述,所选课题的功能要求。
2)概要设计:在此说明所选课题的功能模块,以及每个功能模块的算法设计(可以是描述算法的功能模块图),所选课题的的数据结构以及其存储结构设计说明等。
(如果指定存储结构请写出该存储结构的定义)3)详细设计:针对2)中的主要功能模块,画出流程图,给出主要功能模块的流程图、算法及必要的文字说明)4)编码实现:给出3)中主要功能模块的函数实现,重点是函数的声明,变量或参数的说明,以及程序的功能说明与注释,不必把所有代码都写上,主要写出其声明与注释等。
《数据结构》课程设计任务书学期:13-14-1班级:软件12一、设计目地《数据结构》是一门实践性较强地专业基础课程,为了学好这门课程,必须在掌握理论知识地同时,加强上机实践.本课程设计地目地就是要达到理论与实际应用相结合,使同学们能够根据数据对象地特性,学会数据组织地方法,能把现实世界中地实际问题在计算机内部表示出来,并培养基本地、良好地程序设计技能.二、设计要求1、通过这次设计,要求在数据结构地逻辑特性和物理表示、数据结构地选择应用、算法地设计及其实现等方面加深对课程基本内容地理解.同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格地训练.2、学生必须仔细研读《数据结构》课程设计要求,以学生自学为主、指导教师指导为辅,认真、独立地完成课程设计地任务,有问题及时主动与指导教师沟通.3、本次课程设计按照教学要求需要在三周时间内独立完成,学生要发挥自主学习地能力,充分利用时间,安排好课设地时间计划,并在课设过程中不断检测自己地计划完成情况,及时地向指导教师汇报.4、编程语言任选.三、设计选题选题说明:一个*地题代表15分,两个*地代表30分,三个*地题代表60分,四个*地题代表90分.根据实际选做题目地分值和数量以及实现程序地完善性可以适当加减分;同学们在选题时,要结合个人实际情况,保障及格,力争多做.1、迷宫求解(*)任务:可以输入一个任意大小地迷宫数据,用非递归地方法求出一条走出迷宫地路径,并将路径输出;要求:在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法地时间复杂度、另外可以提出算法地改进方法;2、文章编辑(*)任务:输入一页文字,程序可以统计出文字、数字、空格地个数.静态存储一页文章,每行最多不超过80个字符,共N行;要求:(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现地次数,并输出该次数;(3)删除某一子串,并将后面地字符前移.存储结构使用线性表,分别用几个子函数实现相应地功能;输入数据地形式和范围:可以输入大写、小写地英文字母、任何数字及标点符号.输出形式:(1)分行输出用户输入地各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后地文章;3、单位员工通讯录管理系统(*)任务:为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工地办公室电话、手机号、及电子邮箱.要求:其功能包括通讯录链表地建立、员工通讯信息地查询、修改、插入与删除、以及整个通讯录表地输出.4、停车场管理(*)[问题描述]设停车场是一个可以停放n辆汽车地狭长通道,且只有一个大门可供汽车进出.汽车在停车场内按车辆到达时间地先后顺序,依次有北向南排列(大门在最南端,最先到达地第一车停放在车场地最北端),若车场内已停满n辆车,那么后来地车只能在门外地便道上等候,一旦有车开走,则排在便道上地第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入地车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场地车在它离开停车场时必须按它停留地时间长短交纳费用.试为停车场编制按上述要求进行管理地模拟程序.[实现提示]以栈模拟停车场,以队列模拟车场外地便道.每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去地时刻.对每一组输入数据进行操作后地输出信息为:若是车辆到达,则输出汽车在停车场内或便道上地停车位置;若是车辆离去,则输出汽车在停车场内停留地时间和应交纳地费用(在便道上停车不收费).栈以顺序存储结构实现,队列以链表结构实现.5、排序综合(**)任务:利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序.要求:(1)至少采用三种方法实现上述问题求解(提示,可采用地方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序).并把排序后地结果保存在不同地文件中;(2)统计每一种排序方法地性能(以上机运行程序所花费地时间为准进行对比),找出其中两种较快地方法;(3)统计每种算法所用地比较次数和交换次数,最后列表显示;(4)如果采用4种或4种以上地方法者,可适当加分.6、散列表地设计与实现(**)任务:设计散列表实现电话号码查找系统.要求:(1) 设每个记录有下列数据项:用户名、电话号码、地址;(2) 从键盘输入各记录,以用户名(汉语拼音形式)为关键字建立散列表;(3) 采用一定地方法解决冲突;(4) 查找并显示给定电话号码地记录;选作内容:(1) 系统功能地完善;(2) 设计不同地散列函数,比较冲突率;(3) 在散列函数确定地前提下,尝试各种不同类型处理冲突地方法,考察平均查找长度地变化.7、线索二叉树(**)任务:1.建立中序线索二叉树,并且中序遍历;2. 求中序线索二叉树上已知结点中序地前驱和后继;8、运动会分数统计(**)任务:参加运动会有n个学校,学校编号为1……n.比赛分成m个男子项目,和w个女子项目.项目编号为男子1……m,女子m+1……m+w.不同地项目取前五名或前三名积分;取前五名地积分分别为:7、5、3、2、1,前三名地积分分别为:5、3、2;哪些项目取前五名或前三名由学生自己设定.(m<=20,n<=20)功能要求:(1)可以输入各个项目地前三名或前五名地成绩;(2)能统计各学校总分,(3)可以按学校编号、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目地情况;可以按项目编号查询取得前三或前五名地学校.规定:输入数据形式和范围:20以内地整数(如果做得更好可以输入学校地名称,运动项目地名称)输出形式:有中文提示,各学校分数为整形界面要求:有合理地提示,每个功能可以设立菜单,根据提示,可以完成相关地功能要求.存储结构:学生自己根据系统功能要求自己设计,但是要求运动会地相关数据要存储在数据文件中.(数据文件地数据读写方法等相关内容在c语言程序设计地书上,请自学解决)请在最后地上交资料中指明你用到地存储结构;相关数据结构(参考):项目名次及分值:用二位数组Score[m+w][5];单项获奖情况登记表(项目编号,获奖名次、获奖学校,得分(自动得分))学校获奖名次表(学校编号,团体总分,名次)测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据.进行程序测试,以保证程序地稳定.测试数据及测试结果请在上交地资料中写明;9、宿舍管理查询软件(**)任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:(1)采用交互工作方式(2)可以增加、删除、修改信息(3)建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(选择、快速排序、堆排序等任选一种)(4) 查询 : a.按姓名查询 ;b.按学号查询 ;c按房号查询(5) 打印任一查询结果(可以连续操作)要求:上述查询功能中,学号、房号用折半查找,姓名查找用哈希查找.10、最小生成树问题(***)【问题描述】若要在n个城市之间建设通信网络,只需要假设n-1条线路即可.如何以最低地经济代价建设这个通信网,是一个网地最小生成树问题.【系统要求】1.利用克鲁斯卡尔算法求网地最小生成树.2.利用普里姆算法求网地最小生成树.3.要求输出各条边及它们地权值.【测试数据】由学生任意指定,但报告上要求写出多批数据测试结果.【实现提示】通信线路一旦建成,必然是双向地.因此,构造最小生成树地网一定是无向网.设图地顶点数不超过30个,并为简单起见,网中边地权值设成小于100地整数,可利用C语言提供地随机函数产生.图地存储结构地选取应和所作操作相适应.为了便于选择权值最小地边,此题地存储结构既不选用邻接矩阵地数组表示法,也不选用邻接表,而是以存储边(带权)地数组表示图.【选作内容】利用堆排序实现选择权值最小地边.11、校园导游咨询(***)任务:设计一个校园导游程序,为来访地客人提供各种信息查询服务.要求:(1)设计学校地校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息.(2)为来访客人提供图中任意景点相关信息地查询.(3)为来访客人提供景点地问路查询,即已知一个景点,查询到某景点之间地一条最短路径及长度.12、单循环赛成绩给定(***)【问题描述】在有n个选手P1,P2,P3,…,Pn参加地单循环赛中,每对选手之间非胜即负.要求给出一个选手序列P1’,P2’,P3’,…,Pn’,使其满足Pi’胜Pi+1’(i=1,2,…,n-1).12、售票处地服务系统(***)【问题描述】航空客运订票地业务活动包括:查询航线、客票预订和办理退票等.试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成.【系统要求】设民航售票处地计算机系统可以为客户提供下列各项服务:查询航线:根据旅客提出地终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班地日期和余票额;承办订票业务:根据客户提出地要求(日期、航班号、订票数额)查询该航班票额情况,若尚有余额,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需要重新询问客户要求.若需要,可预约登记排队等候.3.承办退票业务:根据客户提供地情况(日期、航班、退票数额),为客户办理退票手续,然后查询该航班是否有人预约登记,首先询问排在第一地客户,若所退票额能满足他地要求,则为他办理订票手续,否则依次询问其他排队预约地客户.【测试数据】由学生任意指定,但报告上要求写出多批数据测试结果.【实现提示】每条航线应包含地信息有:终点站名、航班号、飞机号、飞行日期(星期几)、乘员定额、余票额、已订票地客户名单(包括姓名、订票额、座位号)和预约登记地客户名单(包括日期、姓名、所需票额).这最后两项显然是一个线性表和一个队列.为查找方便、已订票客户地线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构.由于预约人数无法预料,队列也应以链表作存储结构.整个系统需汇总各条航线地情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序.每条航线是这张表上地一个记录,包含上述八个域,其中乘员名单域为指向乘员名单链表地头指针,预约登记客户名单域为分别指向队头和队尾地指针.【选做内容】当客户订票要求不能满足时,系统可向客户提供到达同一目地地地其它航线情况.大家还可以充分发挥自己地想象力,增加你地系统地功能和其它服务项目.13、中国道路交通网络信息查询系统(****)【问题描述】出于不同地目地地旅客对交通工具有不同地要求.例如,因公出差地旅客希望在旅途中地时间尽可能短,出门旅游地游客则期望旅费尽可能省,而老年旅客则要求中转次数最少.编制一个全国城市间地交通咨询程序,为旅客提供两种或三种最优决策地交通咨询.【基本要求】(1)提供对城市信息进行编辑(如:添加或删除)地功能.(2)城市之间有两种交通工具:火车和飞机.提供对列车时刻表和飞机航班进行编辑(增设或删除)地功能.(3)提供两种最优决策:最快到达或最省钱到达.全程只考虑一种交通工具;(4)旅途中耗费地总时间应该包括中转站地等候时间;咨询以用户和计算机地对话方式进行.由用户输入起始站、终点站、最优决策原则和交通工具,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地.【测试数据】参考《数据结构》清华版7.6节图7.33地全国交通图,自行设计列车时刻表和飞机航班.【实现提示】(1)对时刻表和飞机航班进行编辑,应提供文件输入和键盘输入两种形式.飞机航班信息包括:起始站地出发时间,终点站地到达时间和票价;列车时刻表则需根据交通图给出各个路段地详细信息,如:对从北京到上海地火车,给出北京至天津,天津至徐州及徐州至上海各段地出发时间,到达时间及票价等信息.(2)以邻接表作交通图地存储结构,表示边地结构内除含有邻接点地信息外,还包括交通工具,路途中耗费地时间和花费以及出发和到达时间等多种属性.【选做内容】增加旅途中中转次数最少地最优决策.四、学生自选课题学生原则上可以结合个人爱好自选课题,要求自选课题必须覆盖数据结构地主要内容,有一定地深度与难度,有一定地算法复杂性,能明确体现数据抽象与组织、算法设计与性能分析以及编码实现等过程.学生自选课题需提前报课程设计指导教师批准方可生效.五、成绩考核根据完成任务地情况(必须进行系统验收 +答辩)、课程设计报告书地质量和课程设计过程中地工作态度等按照50%、30%、20%加权综合打分.成绩评定实行优秀、良好、中等、及格和不及格五个等级.上机程序检查未通过者、无设计报告者以及严重抄袭他人设计者,成绩为不及格.六、课程设计报告课程设计报告书封面用学校地统一封面,报告格式:基础类题:设计报告内容可参照《数据结构题集》中地实习报告示例,包含:设计题目、需求分析、概要设计、详细设计、调试分析、测试结果和设计心得体会等.(附录:源代码)版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.AVktR43bpw用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.Users may use the contents or services of this article for personal study, research or appreciation, and othernon-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall notmisinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.。
《数据结构》课程设计任务书计算机与通信学院2018-5湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院湖南工业大学计算机与通信学院湖南工业大学计算机与通信学院湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书湖南工业大学计算机与通信学院《数据结构》课程设计任务书。
数据结构课程设计(5篇)第一篇:数据结构课程设计课程设计说明书设计名称:数据结构课程设计题目:设计五:二叉树的相关操作学生姓名:专业:计算机科学与技术班级:学号:指导教师:日期: 2012 年 3 月 5 日课程设计任务书计算机科学与技术专业年级班一、设计题目设计五二叉树的相关操作二、主要内容建立二叉树,并对树进行相关操作。
三、具体要求1)利用完全二叉树的性质建立一棵二叉树。
(层数不小于4层)2)统计树叶子结点的个数。
3)求二叉树的深度。
4)能够输出用前序,中序,后序对二叉树进行遍历的遍历序列。
四、进度安排依照教学计划,课程设计时间为:2周。
本设计要求按照软件工程的基本过程完成设计。
建议将时间分为三个阶段:第一阶段,根据题目要求,确定系统的总体设计方案:即系统包括哪些功能模块,每个模块的实现算法,并画出相应的流程图.同时编写相应的设计文档;第二阶段,根据流程图编写程序代码并调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。
三个阶段时间分配的大概比例是:35: 45: 20。
五、完成后应上交的材料本课程设计要求按照学校有关规范的要求完成,在课程设计完成后需要提交的成果和有关文档资料包括课程设计的说明书,课程设计有关源程序及可运行程序(含运行环境)。
其中课程设计说明书的格式按学校规范(见附件),其内容不能过于简单,必须包括的内容有:1、课程设计的基本思想,系统的总功能和各子模块的功能说明;2、课程设计有关算法的描述,并画出有关算法流程图;3、源程序中核心代码的说明。
4、本课程设计的个人总结,主要包括以下内容:(1)课程设计中遇到的主要问题和解决方法;(2)你的创新和得意之处;(3)设计中存在的不足及改进的设想;(4)本次课程设计的感想和心得体会。
5、源代码要求在关键的位置有注释,增加程序的可读性。
程序结构和变量等命名必须符合有关软件开发的技术规范(参见有关文献)。
平顶山工学院《数据结构》课程设计任务书班级0814101/2专业计算机科学与技术课程名称数据结构指导教师张芳芳、杨斌、张延红计算机科学与工程系2018年2月《数据结构》课程设计任务书一、设计时间及地点1、设计时间:第1周2、设计地点:计算机系机房205、212二、设计目的和要求数据结构课程设计是在学完数据结构课程之后的实践教案环节。
该实践教案是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。
要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。
学生通过数据结构课程设计在下述各方面得到锻炼:1、能根据实际问题的具体情况,结合数据结构课程中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。
2、提高程序设计和调试能力。
学生通过上机实习,验证自己设计的算法的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。
3、培养算法分析能力。
分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。
学生认真主动完成课程设计的要求,发挥自主学习的能力,充分利用时间,安排好课程设计,并在课程设计过程中不断检测自己的计划完成情况,及时向教师汇报。
三、设计题目和内容1、运动会分数统计任务:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子工程,和w 个女子工程。
工程编号为男子1……m,女子m+1……m+w。
不同的工程取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
<m<=20,n<=20)功能要求:<1)可以输入各个工程的前三名或前五名的成绩;<2)能统计各学校总分;<3)可以按学校编号或名称、学校总分、男女团体总分排序输出;<4)可以按学校编号查询学校某个工程的情况;可以按工程编号查询取得前三或前五名的学校。
-第二学期《数据构造》课程设计任务书课程设计名称:数据构造课程设计课程设计学分:1 课程设计周(时)数:1周课程设计授课单位:计算机专业教研室指引方式:集体辅导与个别辅导相结合课程设计合用专业:计算机科学与技术、软件工程、网络工程课程设计教材及重要参照资料:《数据构造C++版》王红梅、胡明、王涛编著清华大学出版社《数据构造》,严蔚敏编著,清华大学出版社,服务课程名称:数据构造服务课程授课学时:56 服务课程学分:3.5一、课程设计教学目及基本规定1.理解并掌握数据构造与算法设计办法,具备初步独立分析和设计能力;2.初步掌握软件开发过程问题分析、数据构造定义、算法流程分析、程序编码、测试等基本办法和技能;3.提高综合运用所学理论知识和办法独立分析和解决问题能力;4.训练用系统观点和软件开发规范完毕课程设计内容,培养软件工作者所应具备科学工作办法和作风。
二、课程设计内容及安排1. 分析题目,设计解题思路:依照设计题目规定,充分地分析和理解问题,明确问题规定做什么?(而不是怎么做?)限制条件是什么?2.数据构造定义:对问题描述中涉及操作对象定义相应数据类型,并按照以数据构造为中心原则划分模块,定义主程序模块和各抽象数据类型。
写出每个抽象数据类型定义(涉及数据构造描述和每个基本操作功能阐明),各个重要模块算法,并画出模块之间调用关系图;3.算法流程分析:在这个过程中,要综合考虑题目详细规定,使得解决算法流程清晰、合理、简朴和易于调试,抽象数据类型实现尽量做到数据封装,基本操作规格阐明尽量明确详细。
算法流程分析成果是对数据构造和基本操作进一步求精,写出数据存储构造类型定义,写出函数形式算法框架;4. 编写代码:把详细设计成果进一步求精为程序设计语言程序。
同步加入某些注解和断言,使程序中逻辑概念清晰;5.程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。
可以纯熟掌握调试工具各种功能,设计测试数据拟定疑点,通过修改程序来证明它或绕过它。
《数据结构》课程设计任务书《数据结构》课程设计任务说明一、题目及选题规定1、课程设计题目1)航空客运订票系统2)用二叉树实现家谱的相关运算3)电话客户服务模拟2、选题规定数据结构课程设计需独立完成1个选题内容。
1)~3)选题中任选一个。
二、课程设计进度安排1.问题分析和任务定义(3学时)内容:根据设计题目的要求,充分分析和理解问题,明确问题要求做什么(不是怎么做?),限制条件是什么。
要求:掌握问题分析的方法,以无歧义的陈述说明程序设计的任务;了解以用例图来明确系统功能的方法。
重难点:以无歧义的陈述说明程序设计的任务;对问题作透彻分析,避免出现需求分析错误。
说明:本阶段是解决“做什么”的问题,就是要全面理解用户的各项要求,并准确表达所接受的用户需求。
2.逻辑设计和数据结构的选择(3学时)内容:为操作对象定义相应的数据结构,以结构化程序设计的思想方法为原则划分各个模块,定义数据的抽象数据类型。
要求:掌握逻辑设计和数据结构选择的方法。
重难点:逻辑设计和数据结构选择。
说明:本阶段的主要任务是把需求分析得到得数据流图转换为软件结构和数据结构。
设计软件结构的具体任务是:将一个负责系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。
数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。
总体设计建立的是目标系统的逻辑模型,与计算机无关。
3.详细设计和编码(5个学时)内容:算法的具体描述和代码的书写要求:掌握在逻辑设计基础上作详细设计的方法把详细设计的结果进一步求精为程序设计语言程序。
同时加入一些注解和断言,使程序中逻辑概念清楚。
重难点:在逻辑设计基础上作详细设计并编码实现。
说明:本阶段主要任务是设计每个模块的实现算法、所需的局部数据结构。
详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
4.上机调试(4个学时)内容:源程序的输入和代码的调试要求:能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。
《数据结构》课程设计任务书一、课程设计教学目的及基本要求1. 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;5. 独立完成或分组完成;6. 题材不限,或从参考题目中任选一题;7. 仅限用C语言编写程序;8. 7月3日前完成。
9./jsjxy/jpkc/中课程资源有五份课程设计样例,格式可以参照,不能抄袭!10.允许分小组完成,每组最多3人组成,每人分别都要提交自己的课程设计报告,并填写附录文件“09软工数据结构课程设计分组情况.xls”。
11.同一个题目不能超过6个小组选作,“整个专业分组表”请2个班班长一起汇总,6月15日前发我信箱huangsix@。
12.每个同学设计报告命名“学号姓名.doc”,7月3日前“按班级”打一个压缩包发我信箱。
二、课程设计步骤1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。
课程设计任务书《数据结构》课程设计一、课程设计的目的课程设计是《数据结构》课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的理解与巩固,是将计算机课程与实际问题相联接的关键步骤。
通过课程设计,能够提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。
二、课程设计的要求1.明确课设任务,复习与查阅有关资料。
2.按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。
3.应用程序应具有一定的可用性。
凡用户输入时,给出足够的提示信息。
格式明显易懂,使用户感到方便使用。
4.程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行:对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入。
三、课程设计报告内容课程设计报告中应包括封面、内容摘要、关键词、目录、正文、参考文献、附录、致谢等几部分。
正文包括绪论、需求分析、概要设计、详细设计、调试分析、测试结果、总结等。
具体:(1)封面包括设计题目、所在系、专业、班级、姓名、指导教师姓名和完成日期。
(2)内容摘要应扼要叙述课设的主要内容、特点,文字要精练,是一篇具有独立性和完整性的短文,包括基本研究方法、理论与实际意义。
关键词是供检索用的主题词条,应采用能够覆盖课程设计报告主要内容的通用专业术语。
(3)绪论一般作为第1章,综述课程设计选题的目的、背景和意义,所要研究的主要内容。
(4)需求分析陈述说明课程设计的任务。
明确规定:输入/输出形式和输出值的范围;程序所能达到的功能;测试的数据:包括正确的输入和错误的输入及其相应的输出结果。
(5)概要设计包括设计思想、实现方法、系统中主要函数及各函数间的关系描述。
(6)详细设计包括实现概要设计中定义的所有数据类型,对每个操作需要写出伪代码算法。
(7)调试分析包括:调试过程中遇到的问题,如何解决的以及对设计实现的回顾讨论和分析;对算法的分析和改进设想;经验和体会等。
《数据结构分析》课程设计教学任务书一、课程设计的目的数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中涉及的对象在计算机中表示出来并对它们进行处理。
通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。
通过此次课程设计主要达到以下目的:了解并掌握数据结构的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的基本要求1. 独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2. 做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3. 按照课程设计的具体要求建立功能模块,每个模块要求按照如下几个内容认真完成:a)需求分析:在该部分中叙述,每个模块的功能要求b)概要设计:在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)c)详细设计:各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组程序,每个功能模块采用不同的函数实现)源程序要按照写程序的规则来编写。
要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释d)调试分析:测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些,问题如何解决?),算法的改进设想课程设计总结:(保存在word文档中)总结可以包括:课程设计过程的收获、遇到的问题、解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容4. 实现的结果必须进行检查和演示,程序源代码和程序的说明文件必须上交,作为考核内容的一部分。
数据结构与算法课程设计任务书目录1.课程设计目标 (2)课程目标 (2)课程任务 (2)开发环境 (2)2.课题内容要求 (2)课题一词频分析系统 (2)课题二哈夫曼编码系统 (2)课题三文档集合查询 (3)课题四基于XML的网站生成器 (3)课题五简单数字图像处理 (4)课题六DES算法实现 (5)课题七传感网模拟器 (5)3.课程设计考核要求 (6)设计要求 (6)考核方法 (6)4.课程设计进度表 (6)附1 对课程设计提交内容的要求 (8)附2课程设计上机安排表 (8)附3成绩的评定 (8)附4 课程设计报告封面 (9)附5课程设计报告模板 (11)1.课程设计目标课程目标深化对《数据结构》课程中基本概念、理论和方法的理解,训练综合运用所学知识处理实际问题的能力。
课程任务根据实际问题,结合《数据结构》课程中的基本理论和基本算法,分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法,完成总体结构设计、输入输出设计,解决实际的应用问题。
开发环境硬件:微型计算机,计算机局域网络。
软件:Visual C++,Java2.课题内容要求课题一词频分析系统[问题描述]文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。
试写一个实现这一目标的词频统计系统。
[基本要求] 英文小说存于一个文本文件中。
待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。
程序的输出结果是每个词的出现次数和出现位置所在行的行号,格式自行设计。
[测试数据] 以你的源程序模拟英文小说,程序语言保留字集作为待统计的词汇集。
[实现提示] 设小说中的词汇一律不跨行。
这样,每读入一行,就统计每个词在这行中的出现次数。
出现位置所在行的行号可以用链表存储。
若某行中出现了不止一次,不必存多个相同的行号。
课题二哈夫曼编码系统[问题描述]利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信息的传输时间,还有一定的保密性。
一.课程设计的任务每位同学做两题:一题在设计题中每人相对应一题号另一题必选题(每个班级有一必选题)二. 要求:1、对相应的题目进行算法设计2、编写源代码3、上机调试4、显示调试结果5、写出实验总结三.课程设计进度安排设计总学时为2周课程设计每周大体分五个阶段:1、选题与搜集资料:每人选择相应题目,进行课程设计课题的资料搜集.2、分析与概要设计:根据搜集的资料,进行程序功能与数据结构分析,并选择合适的数据结构,并在此基础上进行实现程序功能的算法设计.3、程序设计:运用掌握C语言编写程序,实现所程序的各个模块功能.4、调试与测试:自行调试程序,成员交叉测试程序,并记录测试情况.5、实习报告:编写实习报告6、验收与评分:指导教师对每个小组的开发的系统,及每个成员开发的模块进行综合验收.结合设计报告,根据课程设计成绩的评定方法,评出成绩.四.课程设计考核标准考核时主要有如下几项参考:1、初步设计内容的考核:是否有查阅资料能力?是否有设计思想?2、程序编码能力调试能力的考核:程序是否清晰、易读?在技算计上是否可独立完成程序的调试,是否熟练?3、说明书质量的考核:设计结构是否合理?叙述是否正确?方案是否可行?4、答辩:设计结果的调试能力,对自己设计是否熟练?5、出勤率极平时表现的考核:出勤超过2次不到者成绩为不及格。
五.课程设计报告的内容设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料.设计报告以规定格式的电子文档书写,打印并装订,排版及图,表要清楚,工整.装订顺序如下:封面、目录、正文.正文包括以下7个内容:1.需求分析陈述说明程序设计的任务,强调的是程序要做什么,需要什么结果、所能达到的功能.2.概要设计说明本程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系.3.详细设计实现概要设计中定义的所有数据类型,对每个操作只需要写出伪码算法;对主程序和其他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序);可采用流程图、N S 图进行描述,画出函数和过程的调用关系图.4.调试分析内容包括:a.调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;b.算法的时空分析(包括基本操作和其他算法的时间复杂度和空间复杂度的分析)和改进设想;c.经验和体会等.5.测试结果列出你的测试结果,包括输入和输出.这里的测试数据应该完整和严格,最好多于需求分析中所列.6.参考文献列出参考的相关资料和书籍.封面格式如下:数据结构课程设计报告题目——采用的方法班级:_________________________姓名:__________________________ 指导教师:__________________________ 成绩:__________________________信息工程学院年月日。
《数据结构》课程设计任务书一、设计目的《数据结构》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。
二、设计要求1.通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解。
同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
2.学生必须仔细研读《数据结构》课程设计要求,以学生自学为主、指导教师指导为辅,认真、独立地完成课程设计的任务,有问题及时主动与指导教师沟通。
3.本次课程设计按照教学要求需要在一周时间内独立完成,学生要发挥自主学习的能力,充分利用时间,安排好课程设计的时间计划,并在课程设计过程中不断检测自己的计划完成情况,及时地向指导教师汇报。
4.编程语言任选。
三、设计选题选题说明:前面6个为基础题(必选一题,可达60分),后面题目*越多难度越大,根据实际选做题目的难度和数量以及实现程序的完善性可以适当加减分;同学们在选题时,要结合个人实际情况,确保及格,力争多做。
1.集合的并、交和差运算任务:编制一个能演示执行集合的并、交和差运算的程序。
要求:(1) 集合的元素限定为小写字母字符[‘a’..’z’] 。
(2) 演示程序以用户和计算机的对话方式执行。
实现提示:以链表表示集合。
选作内容:(1) 集合的元素判定和子集判定运算。
(2) 求集合的补集。
(3) 集合的混合运算表达式求值。
(4) 集合的元素类型推广到其他类型,甚至任意类型。
2.停车场管理任务:设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
数据结构与算法课程设计任务书一、课程设计目的数据结构与算法课程设计是一门重要的实践教学环节,其目的在于加深学生对数据结构和算法基本概念的理解,培养学生运用所学知识解决实际问题的能力,提高学生的编程技能和创新思维。
通过课程设计,学生将能够更加熟练地掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、查找、递归、贪心、动态规划等),并将其应用到实际的程序设计中。
二、课程设计要求1、学生需独立完成课程设计任务,不得抄袭他人成果。
2、课程设计的题目应具有一定的综合性和挑战性,能够涵盖所学的数据结构和算法知识。
3、学生在设计过程中应注重程序的正确性、可读性和可维护性,合理选择数据结构和算法,优化程序性能。
4、学生需按照规定的格式撰写课程设计报告,报告内容应包括问题描述、算法设计、程序实现、测试结果及分析等。
三、课程设计题目题目 1:学生成绩管理系统设计一个学生成绩管理系统,能够实现以下功能:1、录入学生的基本信息(学号、姓名、课程名称、成绩)。
2、按照学号、课程名称等关键字进行查找和排序。
3、计算每个学生的平均成绩,并按照平均成绩进行排序。
4、统计每门课程的不及格人数和优秀人数(85 分及以上为优秀)。
题目 2:公交线路查询系统设计一个公交线路查询系统,能够实现以下功能:1、录入公交线路的起点、终点、途经站点等信息。
2、根据用户输入的起点和终点,查询可行的公交线路。
3、考虑换乘情况,给出最优的公交线路方案(换乘次数最少、行程时间最短等)。
题目 3:文本文件处理系统设计一个文本文件处理系统,能够实现以下功能:1、读取文本文件,并将文件中的内容存储到合适的数据结构中。
2、统计文件中单词的出现频率,并按照频率降序排列。
3、查找指定的单词或字符串在文件中的位置。
4、对文件内容进行加密和解密操作。
题目 4:迷宫求解系统设计一个迷宫求解系统,能够实现以下功能:1、生成一个随机的迷宫。
2、采用深度优先搜索或广度优先搜索算法求解迷宫的路径。
《数据结构》课程设计任务书结构设计一、设计目的《数据结构》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。
二、设计要求1、通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解。
同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
2、学生必须仔细研读《数据结构》课程设计(实习)要求,以学生自学为主、指导教师指导为辅,认真、独立地完成课程设计的任务,有问题及时主动与指导教师沟通。
3、本次课程设计按照教学要求需要在2周时间内独立完成,学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时地向指导教师汇报。
4、编程语言任选。
三、设计选题选题说明:本次任务共提供若干个不同难易程度的题目,其中前面5个为必做题,满分100分(系统功能完善、人机交互界面简单、直观、便捷,否则逐项减分);后面为选做题,题目难度层度不等,完成部分选做题目者可以适当给予加分;同学们在选题时,要结合个人实际情况,确保及格,力争多做。
1、单位员工通讯录管理系统(线性表的应用)[问题描述]为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。
其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。
[实现提示]可以采用单链表的存储结构,如可定义如下的存储结构:typedef struct { /*员工通讯信息的结构类型定义*/ char num[5]; /*员工编号*/char name[10]; /*员工姓名*/char phone[15]; /*办公室电话号码*/ char call[15]; /*手机号码*/char mail[25]; /*邮箱*/}DataType;/*通讯录单链表的结点类型*/typedef struct node{ DataType data; /*结点的数据域*/struct node *next; /*结点的指针域*/}ListNode,*LinkList;typedef struct { /*员工通讯信息的结构类型定义*/ char num[5]; /*员工编号*/char name[10]; /*员工姓名*/char phone[15]; /*办公室电话号码*/char call[15]; /*手机号码*/char mail[25]; /*邮箱*/}DataType;/*通讯录单链表的结点类型*/typedef struct node{ DataType data; /*结点的数据域*/struct node *next; /*结点的指针域*/}ListNode,*LinkList;#include"iostream"using namespace std;struct contaxt{char name[10];char sex[5];char Adrre[50];char Class[20];char Mobi[20];char qq[10];struct contaxt *next;};//声明函数typedef struct contaxt CONT;CONT *InsertCon(CONT *head);////插入联系人的基本信息CONT *AddContaxt(int n); ////初始化联系人的基本信息CONT *FindCon(CONT *head); ////查找联系人的基本信息CONT *AmendMessage(CONT *head);//修改联系人的基本信息CONT *DeleteMessage(CONT *head);//删除联系人的基本信息void showmessage(CONT *head); ////显示联系人的基本信息int menu(CONT *head); //主菜单CONT *saveFileCONT(CONT *head );//保存联系人的基本信息CONT *readFileCONT(CONT *head);//读取联系人的基本信息int choose;//系统入口void main(){CONT *head;head = NULL;menu(head);}//系统主菜单int menu(CONT *head){cout << "请选择操作菜单!!!" << endl ;do{cout << "---------------------------欢迎进入员工管理系统-------------------------------"<< "---------------------------------操作菜单---------------------------------------";cout <<"--------------------------------------------------------------------------------"<< "************************1 添加联系人信息************************" <<endl<< "************************2 插入联系人信息************************ " << endl<< "************************3 查找联系人信息************************ " <<endl<< "************************4 修改联系人信息************************" << endl<< "************************5 删除联系人信息************************" << endl<< "************************6 显示联系人信息************************" << endl<< "************************7 退出本系统************************" << endl<< "************************8 保存文件************************ " << endl<< "************************9 读取文件************************" << endl<<"--------------------------------------------------------------------------" << endl;cout << "请选择操作菜单!!!" << endl ;int choose;//choose = getchar();fflush(stdin);//return choose;************************cin >> choose;if(choose != 1&& choose != 2 && choose != 3 && choose !=4 && choose != 5 && choose !=6 && choose !=7&&choose != 8){cout << "输入错误:"<<endl;}else{switch(choose){case 1:int n;do{fflush(stdin);cout << "请确定要添加几个联系人:";cin >> n;}while(n <= 0);head = AddContaxt(n);break;case 2:system("CLS");head = InsertCon(head);break;case 3:head = FindCon(head);break;case 6:system("CLS");showmessage(head);break;case 7:exit(0);break;case 4:system("CLS");AmendMessage(head);break;case 5:system("CLS");DeleteMessage(head);break;case 8:system("CLS");head = saveFileCONT(head );break;case 9:// head = readFileCONT(head);default:system("CLS");cout << "你输入错误,请重新选择!!!" << endl;break;}}}while(choose != 1&& choose != 2 && choose != 3 && choose !=4 && choose != 5 && choose !=6 && choose !=7);return choose;}//初始化联系人的基本信息CONT *AddContaxt(int n){CONT *p,*q,*head;int i;system("CLS");p = (CONT *)malloc(sizeof(CONT));cout << "开始添加联系人信息:"<< endl;cout << "输入姓名:";cin >> p->name;cout << "输入姓别:";cin >> p->sex ;cout << "输入班级:";cin >> p->Class ;cout << "输入住址:";cin >> p->Adrre ;cout << "输入手机号:";cin >> p->Mobi ;cout << "输入qq号:";cin >> p->qq ;head = p;for(i = 2;i <= n;i++){q = (CONT *)malloc(sizeof(CONT));p->next = q ;p = q;system("CLS");cout<< "总共需要输入"<< n << "个联系人的信息,"<<"现在你已输入" << i-1<< "个联系人信息."<< endl<< "请继续输入第"<<i << "个人的信息!!"<< endl;cout << "输入姓名:";cin >> p->name;cout << "输入姓别:";cin >> p->sex ;cout << "输入班级:";cin >> p->Class ;cout << "输入住址:";cin >> p->Adrre ;cout << "输入手机号:";cin >> p->Mobi ;cout << "输入qq号:";cin >> p->qq ;}p->next = NULL;return head;}//按照不同的要求插入联系人的基本信息CONT *InsertCon(CONT *head){CONT *pc,*p,*q;int choose ;char name[10];if(head ==NULL){cout << "还没有添加任何联系人,请先添加联系人!!"<< endl;return head;}pc = (CONT *)malloc(sizeof(CONT));cout << "请依次输入被插入人的信息:姓名 /性别/班级/住址/手机号/qq 号"<< endl;cin >> pc->name >> pc->sex >> pc->Class >> pc->Adrre >> pc->Mobi >> pc->qq ;pc ->next = NULL;cout << "请选择自己喜欢的插入方式: "<< endl<< "1 插入在自己喜欢的人之前"<< endl << "2 插入在最后" << endl << "3 插入在开头" << endl;do {cin >> choose;switch(choose){case 1:cout << "请输入自己喜欢的人的名字:";cin >> name ;if(strcmp(head->name ,name)==0){pc->next = head;head = pc;return head;}else{q = head;p = head->next ;while(strcmp(p->name,name)!=0 && p->next !=NULL){q = p;p = p->next ;}if(strcmp(p->name ,name)==0){pc->next = p ;q = pc;return head;}else{p->next = pc;return head;}}break;case 2://cout << "请输入自己喜欢的人的名字:";//cin >> name ;p = head;while(p->next != NULL)p = p->next ;p->next = pc;return head;break;case 3://cout << "请输入自己喜欢的人的名字:";//cin >> name ;pc->next = head;head = pc;return head;break;default :cout<<"error"<< endl;break;}}while(choose!=1 &&choose != 2 && choose != 3); }//查找联系人的基本信息CONT *FindCon(CONT *head){system("CLS");char na[20];CONT *p,*q;if(head == NULL){cout << "没有任何信息可查找,请先添加信息!!"<< endl;return head;}cout << "请您输入要查找人的姓名:"<< endl;cin >> na;p = head;while(p!= NULL){if(strcmp(p->name ,na)==0){q = p;cout << "找到联系人,信息如下!!"<< endl;cout << "姓名:" << q->name <<" 性别: " << q->sex << q->Class <<" 住址: " <<q->Adrre <<" 手机号: " <<q->Mobi <<" qq号: "<< q->qq << endl;break;}elsep = p->next ;}return head;}//修改联系人的基本信息CONT *AmendMessage(CONT *head){CONT *p;char nam[10];char sex[5];char Adrre[50];char Class[20];char Mobi[20];char qq[10];if(head == NULL){cout<< "没有任何信息,请返回添加信息!!!"<< endl;return head;}elsep = head;cout << "请你输入要修改人的名字:";cin >> nam;while(p != NULL && p->name != nam){if(strcmp(p->name ,nam)==0){strcpy(p->name ,nam);int choose;do{cout << "请选择要修改哪一项的信息!!!"<< endl;cout << "1 修改性别 2 修改班别 3 修改地址 4 修改手机号码 5 修改qq号 " << endl;cin >> choose;switch(choose){case 1:cout << "请输入要修改后的性别:";cin >> sex;strcpy(p->sex , sex);cout << "修改成功!!!"<< endl; system("CLS");return head;break;case 2:cout << "请输入修改后的班别:"; cin >> Class;strcpy(p->Class ,Class);system("CLS");cout << "修改成功!!!"<< endl; return head;break;case 3:cout << " 请输入修改后的地址:"; cin >> Adrre;strcpy(p->Adrre ,Adrre);system("CLS");cout << "修改成功!!!"<< endl;return head;break;case 4:cout << "请输入修改后的手机号码:"; cin >> Mobi;strcpy(p->Mobi ,Mobi);system("CLS");cout << "修改成功!!!"<< endl;return head;break;case 5:cout << "请输入修改后的qq号:"; cin >> qq;strcpy(p->qq ,qq);system("CLS");cout << "修改成功!!!"<< endl;return head;break;default:cout << "输入错误,重新选择!!" << endl;break;}}while(choose != 0);}else if(p->next != NULL && p->name != nam){p = p->next ;}else{cout << "输入名字错误,请重新选择4修改!!!" << endl;return head;}}//return head;}//删除联系人的基本信息CONT *DeleteMessage(CONT *head){CONT *p,*q,*t;char name[20];char elem[10];cout << "请输入要删除联系人的姓名:";cin >> name;if(head == NULL){cout << "没有任何信息可删除,请添加信息!!"<< endl;return head;}else if(strcmp(head->name,name)==0 ){t = head;head = head->next ;return head;}else{p = head->next ;q = head;}while(p !=NULL && p->name != name) {q = p;p = p->next ;}if(strcmp(p->name ,name)==0){q->next = p->next ;free(p);//t = p;}else{cout<< "表中无该元素!" << endl;return head;}if(t){// elem = t->name ;free(t);}return head;}//保存文件CONT *saveFileCONT(CONT *head ){char *fileName;FILE *fp;CONT *p;p = (CONT *)malloc(sizeof(CONT));if(p=NULL)cout <<"分配内存失败"<< endl;// exit(0);}if(head ==NULL){cout <<"没有任何信息,请先添加信息!!"<< endl;return head;}else{p = head;fileName = (char *)malloc(sizeof(char));cout << "请输入文件名:" << endl;cin >> fileName;fileName = strcat(fileName,".txt");if( (fp = fopen(fileName,"a")) == NULL)cout << "can't open file" << endl;{//fwrite(head,sizeof(CONT),1,fp);//fprintf(fp,p->name,p->sex,p->Class,p->Adrre,p->Mobi,p->qq );fprintf(fp," 姓名:");fprintf(fp, p->name );fprintf(fp," 性别:");fprintf(fp, p->sex);fprintf(fp," 班别:");fprintf(fp, p->Class);fprintf(fp," 地址:");fprintf(fp, p->Adrre);fprintf(fp," 手机号:");fprintf(fp, p->Mobi);fprintf(fp," qq号:");fprintf(fp, p->qq);fprintf(fp,"\n");cout << endl;cout <<"--------------------------------------------------------------------------------";cout << " "<<"姓名:" <<p->name <<" 性别:" <<p->sex << " 班别:" <<p->Class <<" 住址:" <<p->Adrre <<"手机号:"<< p->Mobi <<" qq号:" << p->qq << endl;cout <<"--------------------------------------------------------------------------------";p=p->next ;}while(p!=NULL);}fclose(fp);return head;}//读取文件内容CONT *readFileCONT(CONT *head){char *fileName;CONT *p;FILE *fp;fileName = (char *)malloc(sizeof(char));cout << "请输入要打开的文件名:";cin >> fileName;fileName = strcat(fileName,".txt");fp = fopen(fileName,"r");if(fp == NULL){cout << "文件没有任何信息,请先输入信息!!"<< endl; }else{while(!feof(fp)){p = (CONT *)malloc(sizeof(CONT));if(p == NULL){cout << "分配内存失败!!"<< endl;return head;}fscanf(fp,p->name );fscanf(fp,p->sex );fscanf(fp,p->Class );fscanf(fp,p->Adrre );fscanf(fp,p->Mobi );fscanf(fp,p->qq );cout <<"--------------------------------------------------------------------------------";cout << " "<<"姓名:" <<p->name <<" 性别:" <<p->sex << " 班别:" <<p->Class <<" 住址:" <<p->Adrre <<"手机号:"<< p->Mobi <<" qq号:" << p->qq << endl;cout <<"--------------------------------------------------------------------------------";p->next = head;head = p;p = p->next ;}fclose(fp);cout<< "读取信息成功!!!"<< endl;}fclose(fp);return head;}//显示信息void showmessage(CONT *head){CONT *p;int i=0;if(head == NULL ){cout << "没有任何信息可输出,请添加信息!!!"<< endl;}else{p = head;cout << "*******************************联系表如下***************************************";do{i++;cout <<"--------------------------------------------------------------------------------";cout << i << " "<<"姓名:" <<p->name <<" 性别:" <<p->sex << " 班别:" <<p->Class <<" 住址:" <<p->Adrre <<"手机号:"<< p->Mobi <<" qq号:" << p->qq << endl;cout <<"--------------------------------------------------------------------------------";p = p->next ;}while(p!=NULL);}cout << "*********************************联系表***************************************";cout << endl;}2、停车场管理(栈和队列的应用)[问题描述]设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。
数据结构课程设计任务书一、选题选题标准是数据结构算法实现及在具体问题中应用。
可选择下列和实际应用紧密结合较综合性题目,也可自选(自选题必需经过任课老师认可)。
要求经过课程设计实践,在数据结构表示、数据结构选择及应用、算法设计和实现等方面加深对数据结构课程基础内容了解和综合利用能力提升。
对下列题目每个同学课设任务按下式确定:按宿舍,每两个宿舍同学组成一小组,共同完成一个任务数据结构课程设计任务书1题目:学生运动会成绩数据库功效:学生运动会成绩数据库系统统计某校运动会上全部运动项目,各系取得分数及排名情况,包含50、100、200,400,1500米,跳高,跳远,标枪,铅球铁饼等。
进入系统后能够输入和修改某个项目标结果情况,能够按各系院编号输出总分;按总分排序;按男团体总分排序;按系院编号查询;按项目编号查询;按女团体总分排序。
分步实施:1)初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;2)完成最低要求:建立一个文件,包含某个系,5个项目标得分情况,能对文件中信息进行扩充(追加),修改和删除;3)深入要求:完成对多个系,多个项目标得分排序,和完成系统查询功效。
有爱好同学能够自己扩充系统功效。
键盘输入:系院数目,男子项目数女子项目数,(每项目取前三名,分别为10,5,2分)要求:1)界面友好,函数功效要划分好2)总体设计应画一步骤图3)程序要加必需注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功效少部分,也要能运行起来,不能运行程序是没有价值。
数据结构课程设计任务书2题目:哈夫曼树应用功效:1.从终端读入字符集大小n,和n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中.将已在内存中哈夫曼树以直观方法(比如树)显示在终端上;2.利用已经建好哈夫曼树(如不在内存,则从文件htmTree中读入),对文件ToBeTran中正文进行编码,然后将结果存入文件CodeFile中,并输出结果,将文件CodeFile以紧凑格式先是在终端上,每行50个代码。
《数据结构》课程设计教学任务书计算机2007-1课程设计周数:第20周指导老师:刘文娟一、课程设计的目的数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。
通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。
通过此次课程设计主要达到以下目的:⏹了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;⏹初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;⏹提高综合运用所学的理论知识和方法独立分析和解决问题的能力;⏹训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的基本要求1、独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3、按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;其中包括:a)需求分析:在该部分中叙述,每个模块的功能要求b)概要设计在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。
c)详细设计各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)源程序要按照写程序的规则来编写。
要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
d)调试分析测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。
e)课程设计总结:(保存在word文档中)总结可以包括:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容;4、每组实现的结果必须进行检查和演示;程序源代码和程序的说明文件必须上交,作为考核内容的一部分;(上交时每人交一份,文件夹的取名规则为:“学号姓名”,如“200413498 高魁”。
该文件夹下至少包括:“源代码”、“课程设计报告”、“可执行文件”。
由学习委员收集刻盘按规定时间统一上交)。
5、报告提交时间:第20周星期五检查,第20周星期五下午5点之前由学习委员收集上交,迟交无成绩。
形式:课程设计报告(要求打印)和电子文档(统一刻盘)。
三、课程设计内容:1、排序算法演示系统【问题描述】设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。
【基本要求】(1)实现各种内部排序。
包括冒泡排序,直接选择排序,希尔排序,快速排序,堆排序。
(2) 待排序的元素的关键字为整数。
其中的数据要用随机数产生(如10000个),至少用5组不同的数据做比较,再使用各种算法对其进行排序,记录其排序时间,再汇总比较。
(3) 演示程序以人机对话的形式进行。
每次测试完毕显示各种比较指标值的列表,用饼图或条形图进行表示,以便比较各种排序的优劣。
(4) 界面友好,易与操作。
采用菜单方式进行选择。
【选做内容】(1) 对不同表长进行比较;(2) 验证各算法的稳定性;(3) 输出界面的优化。
(4) 使用汉字显示。
2、校园导游咨询系统【问题描述】设计一个校园导游程序,为来访的客人提供各种信息查询服务。
【基本要求】(1) 设计安徽理工大学的校园平面图,所含景点不少于10个。
以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2) 为来访客人提供图中任意景点相关信息的查询。
(3) 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
【选做内容】(1) 系统功能的完善;(2) 提供求任意两个景点之间的所有路径的功能;(3) 提供校园图中多个景点的最佳访问路线查询,即求途经这多个景点的最佳(短)路径。
(4) 使用汉字显示。
3、通讯录【问题描述】设计散列表实现通讯录查找系统。
【基本要求】(1) 设每个记录有下列数据项:电话号码、用户名、地址;(2) 从键盘输入各记录,分别以电话号码为关键字建立散列表;(3) 采用线性探测再散列法解决冲突;(4) 查找并显示给定电话号码的记录;(5) 通讯录信息文件保存;(6) 要求人机界面友好,使用图形化界面;【选做内容】(1) 系统功能的完善;(2) 设计不同的散列函数,比较冲突率;(3) 在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。
(4) 使用汉字显示。
【实现提示】如果不用界面编程,可用以下函数实现:主函数:根据选单的选项调用各函数,并完成相应的功能。
Menu()的功能:显示英文提示选单。
Quit()的功能:退出选单。
Create()的功能:创建新的通讯录。
Append()的功能:在通讯录的末尾写入新的信息,并返回选单。
Find():查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息,并返回选单。
Alter()的功能:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。
Delete()的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。
List()的功能:显示通讯录中的所有记录。
Save()的功能:保存通讯录中的所有记录到指定文件中。
Load()的功能:从指定文件中读取通讯录中的记录。
4、哈夫曼编码/译码器【问题描述】设计一个哈夫曼编码/译码系统,对一个文本文件中的字符进行哈夫曼编码,生成编码文件(压缩文件,后缀名.cod);反过来,可将一个压缩文件译码还原为一个文本文件(.txt)。
【基本要求】(1) 输入一个待压缩的文本文件名,统计文本文件中各字符的个数作为权值,生成哈夫曼树;(2) 将文本文件利用哈夫曼树进行编码,生成压缩文件(后缀名cod),(3) 输入一个待解压的压缩文件名称,并利用相应的哈夫曼树将编码序列译码;(4) 显示指定的压缩文件和文本文件;(5) 界面友好,易与操作。
采用菜单方式进行选择。
【选做内容】(1) 把哈夫曼编码用二进制位紧缩到一个变量中,利用位运算进行真正的数据压缩,并求压缩比。
(2) 显示哈夫曼树;(3) 使用汉字显示。
5、二叉树遍历算法集成功能要求:(1)界面友好,易于操作。
可采用菜单或其它人机对话方式进行选择。
(2)实现各种二叉树的遍历。
包括先序遍历、中序遍历、后序遍历的递归或非递归算法。
(3)要求能查找任一结点在某种遍历序列中的前驱和后继。
(4)演示程序以人机对话的形式进行。
每次测试完毕正确显示各种遍历序列。
在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;6、航班信息的查询与检索功能要求:(1)界面友好,易于操作。
可采用菜单或其它人机对话方式进行选择。
(2)实现对飞机航班信息进行排序与查找。
可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。
每个航班记录包括八项:航班号、起点站、到达站、班期、7、学生成绩管理系统(图书管理系统、个人账簿管理系统)功能要求:(1)界面友好,易于操作。
可采用菜单或其它人机对话方式进行选择。
(2)实现对学生成绩信息进行排序与查找。
可按学生学号、姓名等信息进行查询。
每个学生信息包含:学号,姓名,班级,语文,数学,英语,物理,化学等项。
学生信息的存储结构可以选择顺序结构,也可以选择链式结构。
8、表达式求值功能要求:当用户输入一个合法的表达式后,能够返回正确的结果。
能够计算的运算符包括:加、减、乘、除、括号;能够计算的数要求在实数范围内。
能执行多重括号嵌套运算。
对于异常表达式给出错误提示。
(要求使用静态栈数据结构。
)9、飞机订票系统功能要求:(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;(3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;(4)退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
(5)修改航班信息:当航班信息改变可以修改航班数据文件10、多项式运算功能要求:(1)输入并建立多项式;(2)输出多项式,输出形式为整数序列n,c1,e1,c2,e2,……,cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列;(3)多项式a和b相加,建立多项式a+b;输出相加的多项式(4)多项式a和b相减,建立多项式a-b。
输出相加的多项式(5)用带表头结点的单链表存储多项式。
11、猴子选大王问题描述:n只猴子要选大王,选举方法是:所有猴子按1,2,…,n编号围坐一圈,从第1号开始按1,2,…,m报数,凡报到m号的退出圈外,如此循环报数,直到圈内剩下一只猴子时,这只猴子就是大王。
基本要求:分别选择顺序表和单向循环链表作为存储结构模拟整个过程,并依次输出出列的各猴子的编号和最终所选出猴王的编号。
12、停车场管理问题描述:设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆次序。
编制一程序模拟该停车场的管理。
提示:停车场采用栈式结构,停车场外的便道采用队列结构(即便道就是等候队列)。
13、文本编辑器功能要求:运用链表与数组来处理字符串的各项操作。