版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、«VC+痼向对象程序设计课程设计任务书一、课程设计目的VC+面向对象程序设计是计算机相关专业的一门重要专业基础课。其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。VC+程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。通过课程设计,可以使学生更进一步地理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题,从而达到锻炼学生理论与实践相结合的能力。本课程设计以设计综合性实验为主,培养学生灵活利用所学综合知识,提高程序设计的能力;同
2、时,也培养学生利用C+钻言进行编程和调试程序的能力,使学生能够具有编写较复杂程序的能力。通过此次课程设计,主要达到以下目的:(1)巩固和加深对VC+面向对象程序设计基本知识的理解,提高综合运用VC+理论的能力。(2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。(3)使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。二、VC+磔程设计要求(一)基本要求1、每组1人完成课程设计。每人完成不同的功能模块,对于关键代码或者关键模块不允许出现重复内容。2、独立思考,独立完成课程设计。课程设计中各任务的设计和调试要求独立完成,遇到问题可以相互讨论,
3、但不可以拷贝。3、做好上机准备。每次上机实验之前,要事先编制好准备调试的程序,认真想好调试步骤和相关环境的设置方法,准备好有关文档。4.按照课程设计的具体要求建立功能模块。对于具体模块要求按照如下几个方面内容认真完成:需求分析:在该部分描述清楚模块的具体功能。如果存在多个模块,则需要描述清楚每个模块的具体功能及相互之间的关联关系概要设计:在此部分对模块的算法设计进行说明(可以采用算法流程图进行描述,并附上该图的相关文字说明),每个程序中使用的存储结构设计说明(如果指定存储结构,请描述清楚该存储结构的定义)。详细设计:该部分要求给出各个算法具体实现的源程序,对每个题目要有相应的源程序(可以是一组
4、源程序,每个功能模块采用不同的函数实现)说明。源程序要按照程序编写规则编写。其中,针对变量、函数名称定义及关键代码需要有详细的注释说明,对于重点功能模块要附加上清晰的功能描述及具体注释说明。调试分析采用面向对象程序设计思想进行代码实现与调试。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果。测试数据及实验结果,并对实验结果的正确性进行说明。在此基础上,需对算法的时间复杂度和空间复杂的进行简要分析,并对每个模块设计和调试时存在的问题进行思考,并提出解决方法或者改进设想。课程设计总结在完成V
5、C+锦程设计之后,需要提交课程设计总结。该总结报告除了包含上述-的设计内容之外,还需要包括以下内容:课程设计过程中遇到的问题说明,解决问题过程中的思考内容,程序调试能力的思考情况,最后对VC+®向对象程序设计这门课程的思考和认识等内容。针对每个学生需要进行实验结果检查。对于程序源代码和程课程设计总结文件必须上交,作为考核内容的一部分。(上交时每人交一份文件夹,文件夹具体命名规则为:“学号_姓名_课程设计名称”)0(二)技术要求1、用C+转言实现设计任务;2、程序可读性好,执行效率高;3、具有良好的操作界面和用户体验;4、课程设计总结能够很好地反映设计内容。三、设计任务要求完成的主要设
6、计任务包括以下几个方面:1、系统应紧扣题目,实现具体功能及相关操作(例如查找、删除、排序等操作);2、数据结构等相关设计;3、主要算法设计;4、编程及上机实现;5、撰写课程设计报告,主要包括:设计题目;正文,包括引言、需求分析、模块设计(算法设计)、程序实现及测试、设计总结等;结束语;参考文献。四、课程设计题目及内容(均采用面向对象程序设计方法)题目1:设计一元多项式计算【任务要求】(1)能够按照指数降序排列建立并输出多项式;(2)能够完成两个多项式的相加、相减,并将结果输入;实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。要求:在上交资料中请写明
7、:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;【测试数据】自行选择题目2:链表应用1【任务要求】实现两个链表的合并。基本功能要求:(1)建立两个链表A和B,链表元素个数分别为m和n个。(2)假设元素分别为(x1,x2,xm),和(y1,y2,-yn)0把它们合并成一个线形表C,使得:当m>=n时,C=x1,y1,x2,y2,-xn.yn,xm当n>m时,C=y1,x1,y2,x2,ym,xm,yn输出线性表C(3)用直接插入排序法对C进行升序排序,生成链表D,并输出链表Db【测试数据】1) A表(
8、30,41,15,12,56,80)B表(23,56,78,23,12,33,79,90,55)2) A表(30,41,15,12,56,80,23,12,34)B表(23,56,78,23,12)题目3:链表应用2【问题描述】已知非空线性链表第一个链结点的指针为list,写出下列各项操作的算法程序。(1)逆转该线性链表;(2)删除线性链表中从左往右第一个数据为data的链结点;(3)删除从第I个链结点开始的连续k个结点。【任务要求】设计一组输入数据并编写完整的程序。调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果。【提示】1)逆转一个链表是指在不增加新结点的前提下,依次
9、改变链表中结点的连接方向。2)删除数据结点时,首先判断链表是否为空,若非空,先判断第一个结点是否满足条件,若是则删除;否则从第二个结点开始顺序查找,直到找到为止,然后删除;对任何不满足条件的情况都报告相应提示信息。3)从第I个结点开始连续删除k个结点时,考虑以下两种情况:当I=1时,从第一个开始删除即可;当I>1时,先找到前一个结点然后再连续删除K个结点。最后释放各个结点空间。【测试数据】自行设定题目4:二叉树的基本操作(建立、求二叉树树深度、遍历)【任务要求】要求输入二树的各个结点,求二叉树的树深度,并能够输出指定遍历方式(层序、先序、中序、后序)的遍历序列;分别建立;建立二叉树存储结
10、构的的输入函数、求二叉树的树深度的函数、遍历序列的函数层序遍历(用队列的方法实现)中序遍历(用递归和非递归的方法一起都实现)先序遍历(用递归和非递归的方法一起都实现)后序遍历(用递归和非递归的方法一起都实现)题目5:算术表达式求值【问题描述】在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。【任务要求】算法输入:一个算术表达式,由常量、变量、运算符和括号组成(以字符申形式输入)。为简化,规定操作数只能为正整数,操作符为+、-*、/,用#表示结束。算法输出:表达式运算
11、结果。算法要点:设置运算符栈和运算数栈辅助分析算符优先关系。在读入表达式的字符序列的同时,完成运算符和运算数的识别处理,以及相应运算。题目6:内部排序算法比较【问题描述】编制一个演示内部排序算法比较的程序。利用随机函数产生30000个随机整数,利用冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序等排序方法进行排序,并统计每一种排序上机所花费的时间。【任务要求】算法输入:以菜单的形式选择排序方法算法输出:不同情况下关键字参加的比较次数和关键字的移动次数,每一种排序上机所花费的时间。算法要点:(1)利用随机函数产生30000个随机整数。(2)利用不同排序方法排序并统计两类
12、次数,列表显示(3)程序以对话方式执行。题目7:构造可以使n个城市连接的最小生成树【问题描述】给定一个地区的n个城市间的距离网,用Prim算法和Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。【任务要求】输入:表示城市间距离网白邻接矩阵(要求至少6个城市,10条边)城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。输出:最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。题目8:交通咨询系统中
13、的最短路径【问题描述】建立交通图的存储结构、解决单源最短路径问题、再实现两个地点最短路径问题,也就是实现迪杰斯特拉和弗洛伊德方法【测试数据】自行设定交通图,交通站点不少于6个题目9:集合的交、并、差运算【问题描述】编制一个能演示执行集合的交、并和差运算的程序。【任务要求】基本要求:集合元素用小写英文字母,执行各种操作应以对话方式执行。算法要点:利用单链表表示集合;理解好三种运算的含义题目10:哈希表应用【问题描述】利用哈希表进行存储。【任务要求】任务要求:针对一组数据进行初始化哈希表,可以进行显示哈希表,查找元素,插入元素,删除元素,退出程序操作。设计思想:哈希函数用除留余数法构造,用线性探测
14、再散列处理冲突。设计目的:实现哈希表的综合操作简体中文控制台界面:用户可以进行创建哈希表,显示哈希表,查找元素,插入元素,删除元素。显示元素:显示已经创建的哈希表。查找元素:查找哈希表中的元素,分为查找成功和查找不成功。插入元素:在哈希表中,插入一个元素,分为插入成功和失败。删除元素:在已有的数据中,删除一个元素。退出系统:退出程序。【测试数据】自行设定,注意边界等特殊情况。题目11:地图着色问题【问题描述】已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最少提示【任务要求】(1)数据结构的设计:地图可以采用图的数据结构,每个省为一个节点,边表示对应的两个省相邻。
15、(2)算法设计:设计着色算法,保证邻接点不是同一种颜色。(3)地图数据的输入采取从文件中读取。(4)结果输出方式可以采用图形方式或文本方式。题目12:通讯录【问题描述】该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺序,控制语句是实现结构化程序设计的基础。该设计的任务是利用一个简单实用的菜单,通过菜单单项进行选择,实现和完成通讯录管理中常用的几个不同的功能。通讯者所包含信息请自行设定【任务要求】菜单内容:(0)通讯录链表的建立(1)通讯者结点的插入(2)通讯者结点的查询(3)通讯者结点的删除(4)通讯录链表的输出(5)退出管理系统设计要求:使用0-5来选择菜单项,其他输入则不
16、起作用。功能函数设计5个不同功能的算法实现编程题,目的是练习利用链表结构来解决实际应用问题的能力,进一步理解和熟悉线形表的链式存储结构题目13:运动会分数统计【问题描述】参加运动会有n个学校,学校编号为1n0比赛分成m个男子项目,和w个女子项目。项目编号为男子1m女子m+1m+w不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20【任务要求】功能要求:1),可以输入各个项目的前三名或前五名的成绩;2),能统计各学校总分,3).可以按学校编号、学校总分、男女团体总分排序输
17、出;4),可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整型界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;【测试数据】1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试
18、数据及测试结果请在上交的资料中写明。题目14:纸牌游戏任务【问题描述】编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;.再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些?【任务要求】采用合适的方式输出最后正面向上的牌,并将以252奇数翻牌的过程显示出来【测试数据】自行选择题目15:迷宫最短路径查找【问题描述】设计一个迷宫,从迷宫入口点(1,1)出发,向四周搜索,记下所有一步
19、能到达的坐标点;然后依次再从这些点出发,再记下所有一步能到达的坐标点,依此类推,直到到达迷宫的出口点(m,n)为止,然后从出口点沿搜索路径回溯直至入口。这样就能找到一条迷宫的最短路径,否则迷宫无路径。【任务要求】采用合适的数据结构和算法找到一条从迷宫入口到出口的最短路径。【测试数据】自行选择题目16:公园导游图【问题描述】设计某公园的导游图,游客通过终端询问可知:从某一景点到另一景点的最短路径。游客从公园大门进入,选一条最佳路线,使游客可以不重复地游览各景点,最后回到出口(出口就在入口旁边)。【任务要求】用图示展示从公园入口到公园出口的最佳路径。【测试数据】自行选择题目17:银行业务模拟与离散
20、事件模拟【问题描述】假设某银行有4个窗口对外接待客户,从早晨银行开门(开门9:00am关门5:00Pm起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户(建议:客户进入时间使用随机函数产生),如果某个窗口的业务员正空闲,则可上前办理业务;反之,若4个窗口均有窗户所占,他便会排在人数最少的队伍后面。【任务要求】编制一个程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间。【测试数据】建议有如下设置:客户到达时间随机产生,一天客户的人数设定为100人。银行业务员处理时间随机产生,平均处理时间10分钟。将一天的
21、数据(包括业务员和客户)以文件方式输出。题目18:舞伴问题【问题描述】一班有m个女生、n个男生(m不等于n),举办一场舞会.男女生分别编号坐在舞池两边的椅子上,每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴,设计一个程序模拟舞伴配对过程。【任务要求】用队列表示男、女学生,能够从文件中读取数据,文件中至少包括三组测试数据,分别为男生多于女生、女生多于男生、男女生人数相等。顺序输入舞曲的编号,对于每支舞曲,输入配对跳舞的男、女学生信息,并把本支舞曲的配对情况保存到文件中。在此基础上,直接输出第K支舞曲的配对情况。程序能够处理异常情况,如文件空、只有男生或只有女
22、生等。【测试数据】分别选择男生多于女生、女生多于男生、男女生相等的三组测试数据。输入男、女学生的姓名、性别,由程序自动为男女生编号,可以顺序编号,也可以随机编号,输出每曲配对情况(包括男、女生的姓名、性别和编号)。原始数据和结果数据要保存到文件中。题目19:学生信息管理系统任务【问题描述】本例对学生信息管理做一个简单的模拟,用菜单选择方式完成下列功能:通过此系统可以实现如下功能:录入:可以录入学生情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);查询:可以查询某个的情况(如,输入学生号,查询学生时间,学生数量);插入:可以插入某个学生的信息;删除:可以删除满足指定条件的学生信息;修改:可以修改某个学生细心【任务要求】根据以上功能说明,设计具体的存储结构,要求程序要有一个可供用户选择的简单操作界面(如菜单的方式)。操作前要有简单的提示,设计程序完成上述功能。算法输入:操作要求,学生信息算法输出:操作结果算法要点:把问题看成是对线性表的操作。将学生成绩组织成顺序表,则登记学生成绩即是建立顺序表操作;查询学生成绩、插入学生成绩、删除学生成绩即是在顺序表中进行查
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年修订版:技术转让合同标的及技术交付
- 二零二四年度房产租赁管理与物业服务合同5篇
- 二零二四年度智能交通系统研发与合作合同2篇
- 2024体育赛事冠名赞助合同
- 年度教学工作安排年度计划
- 班主任职业素养的提升方案计划
- 会议记录与安排计划
- 2024年度技术转让合同:生物制药技术专利权交易
- 二零二四年度购物中心股权投资合同3篇
- 2024年度汽车融资租赁合同范本(2024版)3篇
- 多层喷射沉积技术
- 四级汉译英段落翻译技巧(课堂PPT)
- 《月迹》课堂实录全面版
- 法语常用动词变位(完整版)
- 测量放大器设计
- 尔雅超星语言与文化
- 医疗器械质量体系不合格品处理单模板
- 工程量确认单格式
- 魅力中药花茶养生
- 模电课程设计题目
- 中班10以内的倒数课件
评论
0/150
提交评论