VC++面向对象程序设计课程设计任务书_第1页
VC++面向对象程序设计课程设计任务书_第2页
VC++面向对象程序设计课程设计任务书_第3页
VC++面向对象程序设计课程设计任务书_第4页
VC++面向对象程序设计课程设计任务书_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、 VC+ 面向对象程序设计课程设计任务书一、课程设计目的VC+ 面向对象程序设计是计算机相关专业的一门重要专业基础课。其 实践性、应用性很强。实践教学环节是必不可少的一个重要环节。 VC+ 程序设 计的设计目的是加深对理论教学内容的理解和掌握, 使学生较系统地掌握程序设 计及广泛应用, 基本方法及技巧, 为学生综合运用所学知识, 利用软件工程为基 础进行软件开发、 并在实践应用方面打下一定基础。 通过课程设计, 可以使学生 更进一步地理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题, 从而达到锻炼学生理论与实践相结合的能力。本课程设计以设计综合性实验为主, 培养学生灵活利用所学综合知

2、识, 提高 程序设计的能力;同时,也培养学生利用 C+ 语言进行编程和调试程序的能力, 使学生能够具有编写较复杂程序的能力。 通过此次课程设计, 主要达到以下目的:(1)巩固和加深对 VC+ 面向对象程序设计基本知识的理解,提高综合运 用 VC+ 理论的能力。(2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化 软件设计的能力。(3)使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序 设计的基本能力。二、 VC+ 课程设计要求(一)基本要求1、每组 2 人完成课程设计。(可以选择前 10 题中任意 2 题(每人 1 题)或 者 2 人共同完成 10-20 题中任意 1

3、题)。其中,设计报告中要能体现明确分工, 并每人完成不同的功能模块,对于关键代码或者关键模块不允许出现重复内容。2、独立思考,独立完成课程设计。课程设计中各任务的设计和调试要求独 立完成,遇到问题可以相互讨论,但不可以拷贝。3、做好上机准备。每次上机实验之前,要事先编制好准备调试的程序,认 真想好调试步骤和相关环境的设置方法,准备好有关文档。4. 按照课程设计的具体要求建立功能模块。 对于具体模块要求按照如下几个 方面内容认真完成:需求分析:在该部分描述清楚模块的具体功能。 如果存在多个模块, 则需要描述清楚每 个模块的具体功能及相互之间的关联关系。概要设计:在此部分对模块的算法设计进行说明

4、(可以采用算法流程图进行描述, 并附 上该图的相关文字说明) ,每个程序中使用的存储结构设计说明(如果指定存储 结构,请描述清楚该存储结构的定义) 。详细设计:该部分要求给出各个算法具体实现的源程序, 对每个题目要有相应的源程序 (可以是一组源程序, 每个功能模块采用不同的函数实现) 说明。源程序要按照 程序编写规则编写。 其中,针对变量、 函数名称定义及关键代码需要有详细的注 释说明,对于重点功能模块要附加上清晰的功能描述及具体注释说明。调试分析采用面向对象程序设计思想进行代码实现与调试。 能够熟练掌握调试工具的 各种功能, 设计测试数据确定疑点, 通过修改程序来证实它或绕过它。 调试正确

5、后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果。测试数据及实验结果, 并对实验结果的正确性进行说明。 在此基础上, 需对 算法的时间复杂度和空间复杂的进行简要分析, 并对每个模块设计和调试时存在 的问题进行思考,并提出解决方法或者改进设想。课程设计总结在完成 VC+ 课程设计之后, 需要提交课程设计总结。 该总结报告除了包含 上述 - 的设计内容之外,还需要包括以下内容:课程设计过程中遇到的问题 说明,解决问题过程中的思考内容,程序调试能力的思考情况,最后对 VC+ 面向对象程序设计这门课程的思考和认识等内容。针对每个学生需要进行实验结果检查。 对于程序源代码和程课程设计总结

6、文 件必须上交,作为考核内容的一部分。 (上交时每人交一份文件夹,文件夹具体 命名规则为:“学号_姓名_课程设计名称”)。(二)技术要求1、用 C+ 语言实现设计任务;2、程序可读性好,执行效率高;3、具有良好的操作界面和用户体验;4、课程设计总结能够很好地反映设计内容二、设计任务要求完成的主要设计任务包括以下几个方面:1、系统应紧扣题目,实现具体功能及相关操作(例如查找、删除、排序等 操作);2、数据结构等相关设计;3、主要算法设计;4、编程及上机实现;5、 撰写课程设计报告,主要包括:设计题目; 正文,包括引言、需求分析、模块设计(算法设计)、程序实现及测试、设计总结等;结束语; 参考文献

7、。四、时间安排课程名称班级周次上机时间(10学时)实验室VC+ 课设计科1301-130318 周-18周周一 1-4节计算中心机房VC+ 课设计科1301-130318 周-18周周三1-4节计算中心机房VC+ 课设计科1301-130318 周-18周周五3-4节计算中心机房五、课程设计题目及内容(均采用面向对象程序设计方法)题目1 :设计一元多项式计算【任务要求】(1 )能够按照指数降序排列建立并输出多项式;(2)能够完成两个多项式的相加、相减,并将结果输入;实现提示:可选择带头结点的单向循环链表 或单链表存储多项式,头结点 可存放多项式的参数,如项数等。要求:在上交资料中请写明:存储结

8、构、多项式相加的基本过程的算法(可 以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可 以提出算法的改进方法;【测试数据】自行选择题目 2 :链表应用 1 【任务要求】 实现两个链表的合并。 基本功能要求:(1) 建立两个链表A和B,链表元素个数分别为 m和n个。(2) 假设元素分别为(x1,x2,xm),和(y1,y2, -yn)。把它们合并成一个线 形表C,使得:当 m=n 时,C=x1,y1,x2,y2,乂门孑门,,xm当 nm 时,C=y1,x1,y2,x2,ym,xm,yn 输出线性表 C( 3) 用直接插入排序法对 C 进行升序排序, 生成链表 D ,并输出链表

9、D 。 【测试数据】1) A 表(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 个结点。【任务要求】设计一组输入数据并编写完整的程序。调试程序并对相应的输出作出分析

10、; 修改输入数据,预期输出并验证输出的结果。【提示】1 )逆转一个链表是指在不增加新结点的前提下,依次改变链表中结点的连 接方向。2) 删除数据结点时,首先判断链表是否为空,若非空,先判断第一个结点是 否满足条件,若是则删除;否则从第二个结点开始顺序查找,直到找到为止,然 后删除;对任何不满足条件的情况都报告相应提示信息。3)从第I个结点开始连续删除k个结点时,考虑以下两种情况:当1=1时, 从第一个开始删除即可;当 I1 时,先找到前一个结点然后再连续删除 K 个结 点。最后释放各个结点空间。【测试数据】自行设定题目 4 :二叉树的基本操作(建立、求二叉树树深度、遍历)【任务要求】要求输入二

11、树的各个结点, 求二叉树的树深度, 并能够输出指定遍历方式 (层 序、先序、中序、后序)的遍历序列;分别建立;建立二叉树存储结构的的输入 函数、求二叉树的树深度的函数、遍历序列的函数层序遍历(用队列的方法实现)中序遍历( 用递归和非递归的方法一起都实现)先序遍历( 用递归和非递归的方法一起都实现)后序遍历( 用递归和非递归的方法一起都实现)题目 5 :算术表达式求值【问题描述】 在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运 算符具有不同的优先级, 又要考虑括号, 因此,算术表达式的求值不可能严格地 从左到右进行。因而在程序设计时,借助栈实现。【任务要求】 算法输入:一个算

12、术表达式,由常量、变量、运算符和括号组成(以字符串 形式输入)。为简化,规定操作数只能为正整数,操作符为 +、-* 、/,用#表示 结束。算法输出:表达式运算结果。 算法要点:设置运算符栈和运算数栈辅助分析算符优先关系。 在读入表达式 的字符序列的同时,完成运算符和运算数的识别处理,以及相应运算。题目 6 :内部排序算法比较【问题描述】 编制一个演示内部排序算法比较的程序。利用随机函数产生 30000 个随机 整数,利用冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归 并排序和堆排序等排序方法进行排序,并统计每一种排序上机所花费的时间。【任务要求】 算法输入:以菜单的形式选择排序方

13、法算法输出: 不同情况下关键字参加的比较次数和关键字的移动次数, 每一种 排序上机所花费的时间。算法要点:(1)利用随机函数产生 30000 个随机整数。(2)利用不同排序方法排序并统计两类次数,列表显示(3)程序以对话方式执行。题目 7 :构造可以使 n 个城市连接的最小生成树【问题描述】给定一个地区的 n 个城市间的距离网, 用 Prim 算法和 Kruskal 算法建立最 小生成树,并计算得到的最小生成树的代价。【任务要求】输入:表示城市间距离网的邻接矩阵(要求至少 6 个城市, 10 条边)城市 间的距离网采用邻接矩阵表示, 邻接矩阵的存储结构定义采用课本中给出的定义, 若两个城市之间

14、不存在道路, 则将相应边的权值设为自己定义的无穷大值。 要求 在屏幕上显示得到的最小生成树中包括了哪些城市间的道路, 并显示得到的最小 生成树的代价。输出:最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。题目 8 :交通咨询系统中的最短路径【问题描述】建立交通图的存储结构、 解决单源最短路径问题、 再实现两个地点最短路径 问题,也就是实现迪杰斯特拉和弗洛伊德方法【测试数据】自行设定交通图,交通站点不少于 6 个题目 9 :集合的交、并、差运算【问题描述】编制一个能演示执行集合的交、并和差运算的程序。【任务要求】 基本要求:集合元素用小写英文字母,执行各种操作应以对话方式执行。 算法

15、要点:利用单链表表示集合;理解好三种运算的含义题目 10 :哈希表应用【问题描述】利用哈希表进行存储。【任务要求】任务要求: 针对一组数据进行初始化哈希表, 可以进行显示哈希表, 查找元 素,插入元素,删除元素,退出程序操作。设计思想:哈希函数用除留余数法构造,用线性探测再散列处理冲突。 设计目的:实现哈希表的综合操作 简体中文控制台界面:用户可以进行创建哈希表,显示哈希表,查找元素, 插入元素,删除元素。显示元素:显示已经创建的哈希表。查找元素:查找哈希表中的元素,分为查找成功和查找不成功。插入元素:在哈希表中,插入一个元素,分为插入成功和失败。 删除元素:在已有的数据中,删除一个元素。退出

16、系统:退出程序。【测试数据】 自行设定,注意边界等特殊情况。题目 11 :地图着色问题【问题描述】已知中国地图 ,对各省进行着色 ,要求相邻省所使用的颜色不同 ,并保证使用 的颜色总数最少提示【任务要求】(1) 数据结构的设计:地图可以采用图的数据结构,每个省为一个节点, 边表示对应的两个省相邻。(2 ) 算法设计:设计着色算法,保证邻接点不是同一种颜色。(3)地图数据的输入采取从文件中读取。(4)结果输出方式可以采用图形方式或文本方式。题目 12 : 通讯录【问题描述】该设计采用菜单作为应用程序的主要界面, 用控制语句来改变程序执行的顺 序,控制语句是实现结构化程序设计的基础。 该设计的任务

17、是利用一个简单实用 的菜单,通过菜单单项进行选择, 实现和完成通讯录管理中常用的几个不同的功 能。通讯者所包含信息请自行设定【任务要求】菜单内容:(0)通讯录链表的建立(1)通讯者结点的插入(2)通讯者结点的查询(3)通讯者结点的删除(4)通讯录链表的输出(5)退出管理系统设计要求:使用 0-5 来选择菜单项,其他输入则不起作用。功能函数设计5 个不同功能的算法实现编程题, 目的是练习利用链表结构来解决实际应用 问题的能力,进一步理解和熟悉线形表的链式存储结构题目 13 :运动会分数统计【问题描述】参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和 w个女子项目。项目编号为男子1m

18、,女子m+1 m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为: 7、5、3、2、1 ,前三名的积分 分别为:5、3、2;哪些取前五名或前三名由学生自己设定。 (m=20,n=20)【任务要求】功能要求:1).可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分,3)可以按学校编号、学校总分、男女团体总分排序输出;4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前 三或前五名的学校。规定:输入数据形式和范围: 20 以内的整数(如果做得更好可以输入学校 的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整型界面要求:有合理的提示,每个功能可以设立菜

19、单,根据提示,可以完成相 关的功能要求。存储结构:学生自己根据系统功能要求自己设计, 但是要求运动会的相关数 据要存储在数据文件中。 (数据文件的数据读写方法等相关内容在 c 语言程序设 计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;【测试数据】1 、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。 测试数据及测试结果请在上交的资料中 写明。题目 14 :纸牌游戏任务【问题描述】编号为 1-52 张牌,正面向上,从第 2 张开始,以 2 为基数,是 2 的倍数的 牌翻一次,直到最后一张牌;然后,从第 3 张开始,以 3 为基数,是 3 的倍数

20、 的牌翻一次,直到最后一张牌;然后从第4张开始,以4为基数,是4的倍数 的牌翻一次, 直到最后一张牌; .再依次 5 的倍数的牌翻一次, 6 的, 7 的 直 到 以 52 为基数的 翻过,输出:这时正面向上的牌有哪些?【任务要求】采用合适的方式输出最后正面向上的牌,并将以 252奇数翻牌的过程显 示出来【测试数据】自行选择题目 15 :迷宫最短路径查找【问题描述】设计一个迷宫,从迷宫入口点( 1, 1)出发,向四周搜索,记下所有一步 能到达的坐标点;然后依次再从这些点出发,再记下所有一步能到达的坐标 点, ,依此类推,直到到达迷宫的出口点( m,n )为止,然后从出口点沿搜索 路径回溯直至入

21、口。这样就能找到一条迷宫的最短路径,否则迷宫无路径。【任务要求】采用合适的数据结构和算法找到一条从迷宫入口到出口的最短路径。【测试数据】自行选择题目 16 :公园导游图【问题描述】设计某公园的导游图, 游客通过终端询问可知: 从某一景点到另一景点的最 短路径。游客从公园大门进入, 选一条最佳路线, 使游客可以不重复地游览各景 点,最后回到出口(出口就在入口旁边)。【任务要求】用图示展示从公园入口到公园出口的最佳路径。【测试数据】自行选择题目 17 :银行业务模拟与离散事件模拟【问题描述】假设某银行有 4 个窗口对外接待客户,从早晨银行开门(开门 9 :00am , 关门 5 :00pm )起不

22、断有客户进入银行。由于每个窗口在某个时刻只能接待一 个客户,因此在客户人数众多时需要在每个窗口前顺次排队, 对于刚进入银行的 客户(建议:客户进入时间使用随机函数产生) ,如果某个窗口的业务员正空闲, 则可上前办理业务; 反之,若 4 个窗口均有窗户所占, 他便会排在人数最少的队 伍后面。【任务要求】 编制一个程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的 平均时间。【测试数据】建议有如下设置:客户到达时间随机产生,一天客户的人数设定为 100 人。 银行业务员处理时间随机产生,平均处理时间 10 分钟。 将一天的数据(包括业务员和客户)以文件方式输出。题目 18 :舞伴问题【问题描

23、述】一班有m个女生、n个男生(m不等于n),举办一场舞会.男女生分别编号 坐在舞池两边的椅子上,每曲开始时 , 依次从男生和女生中各出一人配对跳舞 , 本曲没成功配对者坐着等待下一曲找舞伴,设计一个程序模拟舞伴配对过程。【任务要求】用队列表示男、 女学生, 能够从文件中读取数据, 文件中至少包括三组测试 数据,分别为男生多于女生、女生多于男生、男女生人数相等。顺序输入舞曲的 编号,对于每支舞曲,输入配对跳舞的男、女学生信息,并把本支舞曲的配对情 况保存到文件中。在此基础上,直接输出第 K 支舞曲的配对情况。程序能够处 理异常情况,如文件空、只有男生或只有女生等。【测试数据】分别选择男生多于女生

24、、 女生多于男生、 男女生相等的三组测试数据。 输入 男、女学生的姓名、性别,由程序自动为男女生编号,可以顺序编号,也可以随 机编号,输出每曲配对情况(包括男、女生的姓名、性别和编号)。原始数据和 结果数据要保存到文件中。题目 19 : 学生信息管理系统任务【问题描述】 本例对学生信息管理做一个简单的模拟,用菜单选择方式完成下列功能:通过此系统可以实现如下功能: 录入:可以录入学生情况(数据可以存储在一个数据文件中,数据结构、具 体数据自定);查询:可以查询某个的情况 (如,输入学生号,查询学生时间, 学生数量); 插入:可以插入某个学生的信息; 删除:可以删除满足指定条件的学生信息;修改:可以修改某个学生细心【任务要求】根据以上功能说明, 设计具体的存储结构, 要求程序要有一个可供用户选择 的简单操作界面(如菜单的方式)。操作前要有简单的提示,设计程序完成上述 功能。算法输入:操作要求,学生信息算法输出:操作结果算法要点: 把问题看成是对线性表的操作。 将学生成绩组织成顺序表, 则登 记学生成绩即是建立顺序表操作; 查询学生成绩、 插入学生成绩、 删除学生成绩 即是在顺序表中进行查找、插入和删除操作。【测试数

温馨提示

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

评论

0/150

提交评论