《VC++面向对象程序设计》课程设计任务书.docx

上传人:b****6 文档编号:13132182 上传时间:2023-06-11 格式:DOCX 页数:15 大小:23.61KB
下载 相关 举报
《VC++面向对象程序设计》课程设计任务书.docx_第1页
第1页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第2页
第2页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第3页
第3页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第4页
第4页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第5页
第5页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第6页
第6页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第7页
第7页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第8页
第8页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第9页
第9页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第10页
第10页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第11页
第11页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第12页
第12页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第13页
第13页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第14页
第14页 / 共15页
《VC++面向对象程序设计》课程设计任务书.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《VC++面向对象程序设计》课程设计任务书.docx

《《VC++面向对象程序设计》课程设计任务书.docx》由会员分享,可在线阅读,更多相关《《VC++面向对象程序设计》课程设计任务书.docx(15页珍藏版)》请在冰点文库上搜索。

《VC++面向对象程序设计》课程设计任务书.docx

《VC++面向对象程序设计》课程设计任务书

《VC++面向对象程序设计》课程设计任务书

一、课程设计目的

《VC++面向对象程序设计》是计算机相关专业的一门重要专业基础课。

其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

VC++程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

通过课程设计,可以使学生更进一步地理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题,从而达到锻炼学生理论与实践相结合的能力。

本课程设计以设计综合性实验为主,培养学生灵活利用所学综合知识,提高程序设计的能力;同时,也培养学生利用C++语言进行编程和调试程序的能力,使学生能够具有编写较复杂程序的能力。

通过此次课程设计,主要达到以下目的:

(1)巩固和加深对VC++面向对象程序设计基本知识的理解,提高综合运用VC++理论的能力。

(2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。

(3)使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。

二、VC++课程设计要求

(一)基本要求

1、每组2人完成课程设计。

(可以选择前10题中任意2题(每人1题)或者2人共同完成10-20题中任意1题)。

其中,设计报告中要能体现明确分工,并每人完成不同的功能模块,对于关键代码或者关键模块不允许出现重复内容。

2、独立思考,独立完成课程设计。

课程设计中各任务的设计和调试要求独立完成,遇到问题可以相互讨论,但不可以拷贝。

3、做好上机准备。

每次上机实验之前,要事先编制好准备调试的程序,认真想好调试步骤和相关环境的设置方法,准备好有关文档。

4.按照课程设计的具体要求建立功能模块。

对于具体模块要求按照如下几个方面内容认真完成:

需求分析:

在该部分描述清楚模块的具体功能。

如果存在多个模块,则需要描述清楚每个模块的具体功能及相互之间的关联关系。

概要设计:

在此部分对模块的算法设计进行说明(可以采用算法流程图进行描述,并附上该图的相关文字说明),每个程序中使用的存储结构设计说明(如果指定存储结构,请描述清楚该存储结构的定义)。

详细设计:

该部分要求给出各个算法具体实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)说明。

源程序要按照程序编写规则编写。

其中,针对变量、函数名称定义及关键代码需要有详细的注释说明,对于重点功能模块要附加上清晰的功能描述及具体注释说明。

调试分析

采用面向对象程序设计思想进行代码实现与调试。

能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。

调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果。

测试数据及实验结果,并对实验结果的正确性进行说明。

在此基础上,需对算法的时间复杂度和空间复杂的进行简要分析,并对每个模块设计和调试时存在的问题进行思考,并提出解决方法或者改进设想。

⑤课程设计总结

在完成VC++课程设计之后,需要提交课程设计总结。

该总结报告除了包含上述-的设计内容之外,还需要包括以下内容:

课程设计过程中遇到的问题说明,解决问题过程中的思考内容,程序调试能力的思考情况,最后对VC++面向对象程序设计这门课程的思考和认识等内容。

针对每个学生需要进行实验结果检查。

对于程序源代码和程课程设计总结文件必须上交,作为考核内容的一部分。

(上交时每人交一份文件夹,文件夹具体命名规则为:

“学号_姓名_课程设计名称”)。

(二)技术要求

1、用C++语言实现设计任务;

2、程序可读性好,执行效率高;

3、具有良好的操作界面和用户体验;

4、课程设计总结能够很好地反映设计内容。

三、设计任务

要求完成的主要设计任务包括以下几个方面:

1、系统应紧扣题目,实现具体功能及相关操作(例如查找、删除、排序等操作);

2、数据结构等相关设计;

3、主要算法设计;

4、编程及上机实现;

5、撰写课程设计报告,主要包括:

设计题目;正文,包括引言、需求分析、模块设计(算法设计)、程序实现及测试、设计总结等;结束语;参考文献。

四、时间安排

课程名称

班级

周次

上机时间(10学时)

实验室

VC++课设

计科1301-1303

18周-18周

周一1-4节

计算中心机房

VC++课设

计科1301-1303

18周-18周

周三1-4节

计算中心机房

VC++课设

计科1301-1303

18周-18周

周五3-4节

计算中心机房

五、课程设计题目及内容(均采用面向对象程序设计方法)

题目1:

设计一元多项式计算

【任务要求】

(1)能够按照指数降序排列建立并输出多项式;

(2)能够完成两个多项式的相加、相减,并将结果输入;

实现提示:

可选择带头结点的单向循环链表 或单链表存储多项式,头结点可存放多项式的参数,如项数等。

要求:

在上交资料中请写明:

存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;

【测试数据】

自行选择

题目2:

链表应用1

【任务要求】

实现两个链表的合并。

基本功能要求:

(1)建立两个链表A和B,链表元素个数分别为m和n个。

(2)假设元素分别为(x1,x2,…xm),和(y1,y2,…yn)。

把它们合并成一个线形表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,并输出链表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个结点。

【任务要求】

设计一组输入数据并编写完整的程序。

调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果。

【提示】

1)逆转一个链表是指在不增加新结点的前提下,依次改变链表中结点的连接方向。

2)删除数据结点时,首先判断链表是否为空,若非空,先判断第一个结点是否满足条件,若是则删除;否则从第二个结点开始顺序查找,直到找到为止,然后删除;对任何不满足条件的情况都报告相应提示信息。

3)从第I个结点开始连续删除k个结点时,考虑以下两种情况:

当I=1时,从第一个开始删除即可;当I>1时,先找到前一个结点然后再连续删除K个结点。

最后释放各个结点空间。

【测试数据】

自行设定

题目4:

二叉树的基本操作(建立、求二叉树树深度、遍历)

【任务要求】

要求输入二树的各个结点,求二叉树的树深度,并能够输出指定遍历方式(层序、先序、中序、后序)的遍历序列;分别建立;建立二叉树存储结构的的输入函数、求二叉树的树深度的函数、遍历序列的函数

层序遍历(用队列的方法实现)

中序遍历(用递归和非递归的方法一起都实现)

先序遍历(用递归和非递归的方法一起都实现)

后序遍历(用递归和非递归的方法一起都实现)

题目5:

算术表达式求值

【问题描述】

在计算机中,算术表达式由常量、变量、运算符和括号组成。

由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。

因而在程序设计时,借助栈实现。

【任务要求】

算法输入:

一个算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)。

为简化,规定操作数只能为正整数,操作符为+、-*、/,用#表示结束。

算法输出:

表达式运算结果。

算法要点:

设置运算符栈和运算数栈辅助分析算符优先关系。

在读入表达式的字符序列的同时,完成运算符和运算数的识别处理,以及相应运算。

题目6:

内部排序算法比较

【问题描述】

编制一个演示内部排序算法比较的程序。

利用随机函数产生30000个随机整数,利用冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序等排序方法进行排序,并统计每一种排序上机所花费的时间。

【任务要求】

算法输入:

以菜单的形式选择排序方法

算法输出:

不同情况下关键字参加的比较次数和关键字的移动次数,每一种排序上机所花费的时间。

算法要点:

(1)利用随机函数产生30000个随机整数。

(2)利用不同排序方法排序并统计两类次数,列表显示

(3)程序以对话方式执行。

题目7:

构造可以使n个城市连接的最小生成树

【问题描述】

给定一个地区的n个城市间的距离网,用Prim算法和Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。

【任务要求】

输入:

表示城市间距离网的邻接矩阵(要求至少6个城市,10条边)城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。

要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。

输出:

最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。

题目8:

交通咨询系统中的最短路径

【问题描述】

建立交通图的存储结构、解决单源最短路径问题、再实现两个地点最短路径问题,也就是实现迪杰斯特拉和弗洛伊德方法

【测试数据】

自行设定交通图,交通站点不少于6个

题目9:

集合的交、并、差运算

【问题描述】

编制一个能演示执行集合的交、并和差运算的程序。

【任务要求】

基本要求:

集合元素用小写英文字母,执行各种操作应以对话方式执行。

算法要点:

利用单链表表示集合;理解好三种运算的含义

题目10:

哈希表应用

【问题描述】

利用哈希表进行存储。

【任务要求】

任务要求:

针对一组数据进行初始化哈希表,可以进行显示哈希表,查找元素,插入元素,删除元素,退出程序操作。

设计思想:

哈希函数用除留余数法构造,用线性探测再散列处理冲突。

设计目的:

实现哈希表的综合操作

简体中文控制台界面:

用户可以进行创建哈希表,显示哈希表,查找元素,插入元素,删除元素。

显示元素:

显示已经创建的哈希表。

查找元素:

查找哈希表中的元素,分为查找成功和查找不成功。

插入元素:

在哈希表中,插入一个元素,分为插入成功和失败。

删除元素:

在已有的数据中,删除一个元素。

退出系统:

退出程序。

【测试数据】

自行设定,注意边界等特殊情况。

题目11:

地图着色问题

【问题描述】

已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最少提示

【任务要求】

(1)数据结构的设计:

地图可以采用图的数据结构,每个省为一个节点,边表示对应的两个省相邻。

(2)算法设计:

设计着色算法,保证邻接点不是同一种颜色。

(3)地图数据的输入采取从文件中读取。

(4)结果输出方式可以采用图形方式或文本方式。

题目12:

 通讯录

【问题描述】

该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺序,控制语句是实现结构化程序设计的基础。

该设计的任务是利用一个简单实用的菜单,通过菜单单项进行选择,实现和完成通讯录管理中常用的几个不同的功能。

通讯者所包含信息请自行设定

【任务要求】

菜单内容:

(0)通讯录链表的建立

(1)通讯者结点的插入

(2)通讯者结点的查询

(3)通讯者结点的删除

(4)通讯录链表的输出

(5)退出管理系统

设计要求:

使用0-5来选择菜单项,其他输入则不起作用。

功能函数设计

5个不同功能的算法实现编程题,目的是练习利用链表结构来解决实际应用问题的能力,进一步理解和熟悉线形表的链式存储结构

题目13:

运动会分数统计

【问题描述】

参加运动会有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语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

【测试数据】

1、全部合法数据;

2、整体非法数据;

3、局部非法数据。

进行程序测试,以保证程序的稳定。

测试数据及测试结果请在上交的资料中写明。

题目14:

纸牌游戏任务

【问题描述】

编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:

这时正面向上的牌有哪些?

【任务要求】

采用合适的方式输出最后正面向上的牌,并将以2…52奇数翻牌的过程显示出来

【测试数据】

自行选择

题目15:

迷宫最短路径查找

【问题描述】

设计一个迷宫,从迷宫入口点(1,1)出发,向四周搜索,记下所有一步能到达的坐标点;然后依次再从这些点出发,再记下所有一步能到达的坐标点,……,依此类推,直到到达迷宫的出口点(m,n)为止,然后从出口点沿搜索路径回溯直至入口。

这样就能找到一条迷宫的最短路径,否则迷宫无路径。

【任务要求】

采用合适的数据结构和算法找到一条从迷宫入口到出口的最短路径。

【测试数据】

自行选择

题目16:

公园导游图

【问题描述】

设计某公园的导游图,游客通过终端询问可知:

从某一景点到另一景点的最短路径。

游客从公园大门进入,选一条最佳路线,使游客可以不重复地游览各景点,最后回到出口(出口就在入口旁边)。

【任务要求】

用图示展示从公园入口到公园出口的最佳路径。

【测试数据】

自行选择

题目17:

银行业务模拟与离散事件模拟

【问题描述】

假设某银行有4个窗口对外接待客户,从早晨银行开门(开门9:

00am,关门5:

00pm)起不断有客户进入银行。

由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户(建议:

客户进入时间使用随机函数产生),如果某个窗口的业务员正空闲,则可上前办理业务;反之,若4个窗口均有窗户所占,他便会排在人数最少的队伍后面。

【任务要求】

编制一个程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间。

【测试数据】

建议有如下设置:

客户到达时间随机产生,一天客户的人数设定为100人。

银行业务员处理时间随机产生,平均处理时间10分钟。

将一天的数据(包括业务员和客户)以文件方式输出。

题目18:

舞伴问题

【问题描述】

一班有m个女生、n个男生(m不等于n),举办一场舞会.男女生分别编号坐在舞池两边的椅子上,每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴,设计一个程序模拟舞伴配对过程。

【任务要求】

用队列表示男、女学生,能够从文件中读取数据,文件中至少包括三组测试数据,分别为男生多于女生、女生多于男生、男女生人数相等。

顺序输入舞曲的编号,对于每支舞曲,输入配对跳舞的男、女学生信息,并把本支舞曲的配对情况保存到文件中。

在此基础上,直接输出第K支舞曲的配对情况。

程序能够处理异常情况,如文件空、只有男生或只有女生等。

【测试数据】

分别选择男生多于女生、女生多于男生、男女生相等的三组测试数据。

输入男、女学生的姓名、性别,由程序自动为男女生编号,可以顺序编号,也可以随机编号,输出每曲配对情况(包括男、女生的姓名、性别和编号)。

原始数据和结果数据要保存到文件中。

题目19:

学生信息管理系统任务

【问题描述】

本例对学生信息管理做一个简单的模拟,用菜单选择方式完成下列功能:

通过此系统可以实现如下功能:

录入:

可以录入学生情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);

查询:

可以查询某个的情况(如,输入学生号,查询学生时间,学生数量);

插入:

可以插入某个学生的信息;

删除:

可以删除满足指定条件的学生信息;

修改:

可以修改某个学生细心

【任务要求】

根据以上功能说明,设计具体的存储结构,要求程序要有一个可供用户选择的简单操作界面(如菜单的方式)。

操作前要有简单的提示,设计程序完成上述功能。

算法输入:

操作要求,学生信息

算法输出:

操作结果

算法要点:

把问题看成是对线性表的操作。

将学生成绩组织成顺序表,则登记学生成绩即是建立顺序表操作;查询学生成绩、插入学生成绩、删除学生成绩即是在顺序表中进行查找、插入和删除操作。

【测试数据】

自行选择

题目20:

扫雷

【问题描述】

做一个NxM的扫雷游戏,每个方格包含两种状态:

关闭(closed)和打开(opened),初始化时每个方格都是关闭的,一个打开的方格也会包含两种状态:

一个数字(clue)和一个雷(bomb)。

你可以打开(open)一个方格,如果你打开的是一个bomb,那么就失败;否则就会打开一个数字,该数字是位于[0,8]的一个整数,该数字表示其所有邻居方格(neighboringsquares)所包含的雷数。

【任务要求】

1.能够打开一个方格,一个已打开的方格不能再关闭。

2.能够标记一个方格,标记方格的含义是对该方格有雷的预测(并不表示真的一定有雷),当一个方格标记后该方格不能被打开,只能执行取消标记的操作,只能在取消后才能打开一个方格。

3.能够给出游戏结果(输、赢、剩余的雷数、用掉的时间按秒计)。

在一个10*10的方格中,随机分布10个地雷,并在其它没有地雷的格中显示该方格周围相邻的方格中共有几枚地雷。

【测试数据】

自行选择

 

六、成绩评定

1、完成质量较好,即可评定为优秀;完成质量尚可,但有明显不足,可以评为良好;完成质量一般,成绩为中等;完成质量较差,成绩为及格;没有完成,成绩为不及格。

2、成绩评定由指导教师验收程序,并通过统一答辩给出最后成绩。

3、如果发现两名或更多同学的课程设计相同部分过多,特别是程序的源代码相同部分达到或超过60%,则认定为抄袭,成绩评定为不及格。

如果发现与现有技术书籍或网上资料相同部分过多,特别是程序的源代码相同部分达到或超过80%,也认定为抄袭,成绩评定为不及格。

允许参考同学的工作,允许参考现有技术书籍或网上的资料,但要有自己的不同或改进之处,可以利用已有程序的代码,但要自己重新组织,调试通过并对程序理解正确。

4、程序验收成绩占70%,答辩成绩占30%。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2