《VC++面向对象程序设计》课程设计任务书
级《面向对象程序设计方案课程设计方案》任务书
11级C++语言程序设计课程设计任务书(适应于11级软件工程2011221805-8,2011221809-12)一、课程设计的目的与要求1.教学目的在《面向对象程序设计》课程理论与实验教学的基础上,根据软件工程的方法与流程,在相对集中的实训教学时间内,通过一个功能较完整的小型应用系统,复习与深入掌握面向对象的程序设计思想与技术方法。
同时,作为整个实践教学体系一部分,系统培养学生采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。
2.教学要求从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:1)根据实现的功能,划分出合理的对象类,明确对象类间的关系。
2) 为每个对象类设计正确的域和方法,为每个方法设计合理的方法体。
同时,为对象类及内部的域和方法运用正确的修饰符,如访问控制符等。
3)编程简练,程序功能齐全,能正确运行。
4)说明书、流程图要清楚,规范。
5)课题完成后必须按要求提交课程设计报告,格式规范,内容详实。
二、课程设计的内容与安排1、题目安排1.有理数运算问题描述2有理数是一个可以化为一个分数的数,例如2/3,533/920,-12/49都是有理数,而就为无理数。
在C++中,并没有预先定义有理数,需要时可以定义一个有理数类,将有理数的分子和分母分别存放在两个整型变量中。
对有理数的各种操作都可以用重载运算符来实现。
基本要求定义并实现一个有理数类,通过重载运算符+、-、*、/对有理数进行算术运算,通过重载运算符==实现判定两个有理数是否相等。
写一个优化函数,它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)。
此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输出函数。
测试数据在应用程序中,创建若干有理数对象,通过带参数的构造函数使得各有理数对象值各不相同,然后分别进行各类运算,输出运算结果,检验其正确性。
实现提示设有两个有理数a/b和c/d,则有:(1)有理数相加分子=a*d+b*c;分母=b*d(2)有理数相减分子=a*d-b*c;分母=b*d(3)有理数相乘分子=a*c;分母=b*d(4)有理数相除分子=a*d;分母=b*c优化函数在创建有理数对象时应执行,在执行其它各种运算之后也需执行它,这样可保证所存储的有理数随时都是最优的。
《面向对象程序设计》课程设计任务及指导书
《面向对象程序设计》课程设计任务与指导书绍兴文理学院计算机系《面向对象程序设计》课程设计指导书设计任务与目的《面向对象程序设计》是一门实践性较强的软件基础课程,在理论课的基础上,通过《面向对象程序设计》的课程设计,使学生学会在.net平台开发环境下编写综合型、设计型的程序;巩固学生的的基础知识;培养学生采用面向对象的方法设计并调试较大型程序的动手能力,并更好地理解和消化课本所学的知识,为今后的实际应用打下良好的基础,课程设计侧重培养一下几方面的能力:(1)培养对问题中分析以及归纳和抽象到数据结构的能力;⑵培养选择和应用数据存储结构的能力;⑶培养数据组织的能力和抽象数据类型设计的能力;⑷培养算法设计、程序设计和调试的能力;⑸培养综合知识、方法、技能的应用能力;⑹培养编制较综合性程序的能力。
设计内容与基本要求课程设计的题目应以综合性的题目为主,选择与实际应用结合较紧密的较综合性的题目,难度应大于课程实验的题目。
本次设计的主要内容是(1)开发一个简单的教务管理系统,基本功能如下:通过提供控制台的图形界面,允许用户以3种不同的身份登陆教务系统,分别进行相关的操作:(1)系统管理员:管理现有课程、学期课程、教师及学生信息等(2)教师:管理本人的学期课程,查询选修所任课程的学生列表,并给学生打分等(3)学生:查询学期课程情况,选课/退课,查询已修课程成绩等要求学生用面向对象的思想对系统进行分析,设计所需类并实现,调试通过,基本数据信息均存放在文件中。
(2)使用Windows Form开发简单的游戏,实现基本的连连看功能(也可以是类似的别的小游戏),要求采用面向对象思想,实现算法逻辑与界面分离.时间及指导教师安排备注:(1)指导教师:戴振中(2)上机地点:理工楼303(理论课地点另定)(3)周二(2-9周)下午1:30~4:30考核课程设计的成绩分为:优秀、良好、中等、及格,不及格五个等级,不及格者不得取得相应学分。
面向对象程序课程设计任务书
面向对象程序设计课程设计任务书课程性质:设计总学时数:1周适用专业:软件工程10 1-6嵌软10 1-2软件学院2012-6一、课程设计目的和任务《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。
其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。
二、设计内容和基本要求设计任务书提供设计题目供学生选择。
在指导教师同意的情况下,学生也可以自己选择感兴趣的设计题目,以调动学生参加创新设计的积极性和创造性,给学生充分的自主空间。
基本要求:•设计工作量为完成一个中小型规模的软件和1份软件设计报告书•设计必须根据进度计划按期完成三、课程设计参考题目以下题目列出的仅为完成的基本功能,可根据需要完善与课题相关的其他功能。
以下题目涉及窗体的设计、菜单设计、数据库设计、文件的读写等多种编程的实现,根据题目的要求自行进行编程设计。
1、设计一个GUI猜数字游戏程序该游戏可以由程序随机产生四个0到9之间的整数,且不重复。
玩游戏者通过由用户输入四个数字来匹配上面所产生的数字。
A表示位置正确且数字正确,B表示数字正确而位置不正确。
假设随机数据为3792 时,分析如下数据:3792输入:1234 0A2B输入:5678 0A1B输入:0867 0A1B输入:9786 1A1B输入:1794 2A0B输入:2793 2A2B输入:3792 4A0B2、编写一个记事本程序,要求如下:(1)用图形用户界面实现。
(2)能实现编辑、保存、另存为、查找替换等功能。
提示:使用文件输入输出流。
3、设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。
要求如下:(1)具有简单的录入,查询和修改功能。
(2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改;(3)使用文件存储数据。
面向对象程序课程设计任务书
面向对象程序设计课程设计任务书课程性质:设计总学时数:1周适用专业:软件工程、嵌入式软件、网络软件学院2014-6一、课程设计目的和任务《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。
其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。
二、设计内容和基本要求设计任务书提供设计题目供学生选择。
在指导教师同意的情况下,学生也可以自己选择感兴趣的设计题目,以调动学生参加创新设计的积极性和创造性,给学生充分的自主空间。
基本要求:•设计工作量为完成一个中小型规模的软件和1份软件设计报告书•设计必须根据进度计划按期完成三、课程设计参考题目以下题目列出的仅为完成的基本功能,可根据需要完善与课题相关的其他功能。
以下题目涉及窗体的设计、菜单设计、数据库设计、文件的读写等多种编程的实现,根据题目的要求自行进行编程设计。
每个同学根据自己的学号末两位进行%10+1的运算方法确定本次课程设计的题目。
1、个人通讯录管理要求如下:编程实现个人通讯录管理(用文件存储)。
主要提供如下功能:(1)增加记录(2)删除记录(3)显示所有记录(4)查询记录(5)文件备份(6)退出通讯录记录信息包括:姓名,电话,email等信息,可以采用数据库或文件进行存储。
2、打字训练测试软件要求:设计一个英文打字测试软件。
从文件中调入英文录入材料,最后可以给出错误率,平均录入速度。
3、设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。
要求如下:(1)具有简单的录入,查询和修改功能。
(2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改;(3)使用文件存储数据。
(4)学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专业、班级自我简介,其余可自行丰富。
《面向对象程序设计》课程设计任务书
《面向对象程序设计》课程设计任务书《C++面向对象程序设计》课程实习任务书一、课程设计目的使学生能够更好地掌握C++程序设计语言,更深地理解面向对象程序设计的基本概念与方法,加深对讲授内容的理解,累积经验、学会独立上机调试程序,并且逐步达到综合运用封装、继承和多态等C++难点知识,从而学会利用C++语言解决一般应用问题,并为后续专业课程的学习奠定程序设计基础。
二、课程设计的基本要求1、明确题目要求,进行具体分析;2、进行功能设计,编写设计说明;3、进行程序设计与调试; 4、完成设计报告三、课程设计内容本课程设计要求学生独立完成一个完整的用C++语言编写的面向对象的应用程序,以全面掌握C++面向对象程序设计的基本知识。
课程设计题目可以从下面题目中进行选择,经过老师同意也可以选择其他题目。
(一)通讯录管理程序(学号mod 3=1的同学做)功能要求:1)能建立、修改和增删(含清空)学生通讯录 2)能够按多种方式进行查询。
例如:输入姓名可以查询其本人的电话号码等内容。
要求:通讯信息至少要包括:学生姓名、通讯地址、邮政编码、电话号码、QQ号码(可以根据自己爱好增加其他通讯信息)。
(二)高校学生宿舍信息管理系统(学号mod 3=2的同学做)功能需求:1)系统应该提供学生住宿情况的基本登记。
2系统应提供查询功能,以方便用户对学生住宿情况的查询(要实现按多种条件的查询)。
3)系统还应具有添加、修改、删除学生基本信息的功能。
(三)职工信息管理系统(学号mod 3=0的同学做)功能要求:1)能够实现职工信息录入功能;2)实现删除职工信息的功能;3)实现修职工信息的功能;4)实现用文本文件保存职工的信息;5)按照职工编号或工资对职工信息排序;6)按照编号查找职工;四、课程设计考核方式与标准采用设计表现情况、程序质量、设计报告相结合的考核形式: 1、设计表现(30%)包括出勤情况、调试程序时表现。
缺勤超过1/3者,可以给定不及格。
《面向对象程序设计课程设计》任务书
09级C++语言程序设计课程设计任务书(适应于09级软件工程、网络工程专业)一、课程设计的目的与要求1.教案目的在《面向对象程序设计》课程理论与实验教案的基础上,根据软件工程的方法与流程,在相对集中的实训教案时间内,通过一个功能较完整的小型应用系统,复习与深入掌握面向对象的程序设计思想与技术方法。
同时,作为整个实践教案体系一部分,系统培养学生采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。
2.教案要求从课程设计的目的出发,通过设计工作的各个环节,达到以下教案要求:1)根据实现的功能,划分出合理的对象类,明确对象类间的关系。
2) 为每个对象类设计正确的域和方法,为每个方法设计合理的方法体。
同时,为对象类及内部的域和方法运用正确的修饰符,如访问控制符等。
3)编程简练,程序功能齐全,能正确运行。
4)说明书、流程图要清楚,规范(必须采用UML格式)5)课题完成后必须按要求提交课程设计报告,格式规范,内容详实。
二、课程设计的内容与安排1、题目安排1)动物园动物日常看管系统i)用类族来描述各类动物的关系ii)在派生类中描述各类动物的特性iii)各类动物对象的多样化构建模iv)能把动物的数据存入到文件中,系统初始化时可以读出已有的文件数据2)汽车家族展示系统i)用类族来描述各类汽车的关系,汽车类使用抽像类表示ii)在派生类中描述各类小汽车的特性iii)各类汽车对象的多样化构建模iv)能把汽车的数据存入到文件中,系统初始化时可以读出已有的文件数据3)学生选课系统i)描述学生类的层次结构,不同专业、不同年级的同学选择不同的课程ii)描述出课程类的结构iii)描述出教师与课程的关系iv)能完成基本数据的输入与学生的选课过程,具有数据保存与读取功能。
4) 列车时刻查询系统i) 具有不同类型的列车类的描述ii)有列表时刻表类的描述iii)能完成时刻表的输入、查询、保存等功能iv)多样化的对象建模方式5)个人约会管理系统i)具有不同约会类的层次结构ii)具有不同性质朋友的类层次结构iii)应用类的继承和派生机制来实现iv)具有约会的保存与查询功能6) 学生成绩管理系统i)具有不同课程类的层次结构ii)具有不同专业学生类的层次结构iii)描述出学生与课程之间的关系,应用组合类与派生机制iv)具有学生信息与成绩信息的保存与查询功能2、任务要求(一)目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
面向对象课程设计任务书3
河南城建学院《面向对象程序设计》课程设计任务书班级0844121专业软件工程课程名称面向对象程序设计指导教师苏靖枫周二强计算机科学与工程学院2013年6月《面向对象课程设计》任务书一、设计时间及地点1、时间:第17周2、地点:计算机系实验中心205机房、本班教室二、设计目的和要求本课程设计是在学习C++基本理论之后的实践教学环节。
该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。
要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。
学生通过课程设计在下述各方面得到锻炼:1.能根据实际问题的具体情况,结合C++的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。
2.提高程序设计和调试能力。
学生通过上机实习,验证自己设计的算法和程序的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。
三、设计题目和内容1. 有理数运算问题描述:有理数是一个可以化为一个分数的数,例如2/3,533/920,-12/49都是有理数,而就为无理数。
在C++中,并没有预先定义有理数,需要时可以定义一个有理数类,将有理数的分子和分母分别存放在两个整型变量中。
对有理数的各种操作都可以用重载运算符来实现。
基本要求:定义并实现一个有理数类,通过重载运算符+、-、*、/对有理数进行算术运算,通过重载运算符==实现判定两个有理数是否相等。
写一个优化函数,它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)。
此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输出函数。
测试数据:在应用程序中,创建若干有理数对象,通过带参数的构造函数使得各有理数对象值各不相同,然后分别进行各类运算,输出运算结果,检验其正确性。
实现提示:设有两个有理数a/b和c/d,则有:(1)有理数相加分子=a*d+b*c;分母=b*d(2)有理数相减分子=a*d-b*c;分母=b*d(3)有理数相乘分子=a*c;分母=b*d(4)有理数相除分子=a*d;分母=b*c优化函数在创建有理数对象时应执行,在执行其它各种运算之后也需执行它,这样可保证所存储的有理数随时都是最优的。
(课程设计教学任务书)面向对象程序设计
《面向对象程序设计》课程设计教学任务书课程设计周数:2周一、课程设计要求:1、独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2、做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3、按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;其中包括:a)需求分析:在该部分中叙述,每个模块的功能要求b)概要设计在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。
c)详细设计各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)源程序要按照写程序的规则来编写。
要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
d)调试分析测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。
课程设计总结:(保存在word文档中)总结可以包括:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对面向对象程序设计这门课程的思考、在课程设计过程中对《面向对象程序设计》课程的认识等内容;4、每人实现的结果必须进行检查和演示;程序源代码和程序的说明文件必须上交,作为考核内容的一部分;(上交时每人交一份,文件夹的取名规则为:“学号姓名”,如“200413498 张三”。
该文件夹下至少包括:“源代码”、“课程设计报告”、“可执行文件”。
由学习委员收集刻盘按规定时间统一上交)。
5、课程设计报告不要附源代码,可以对重点函数及结构进行说明。
报告格式见要求。
6、报告提交时间:最后一次课检查,并由学习委员收集上交课程设计报告,迟交无成绩。
形式:课程设计报告纸质和电子文档(按班级统一刻盘)。
《C 面向对象程序设计》课程设计_任务书
《C++面向对象程序设计》课程设计任务书学年学期:2018-2018学年第三学期专业班级:13计算机物联网工程指导教师:陈培芝设计时间:2018/06/08 ~ 2018/07/04学时周数:共2.0周.一、设计目的课程设计是学习C++程序设计的一个重要环节。
通过课程设计的综合训练,可以使学生在学习理论知识并在实验中进行了一系列基本训练的基础上,进一步加强学生对实际问题分析、编程和动手能力的提高,强化综合应用能力,扩充知识,开阔视野。
学生在熟练运用Visual C++ 6.0以后,通过使用Visual C++ 6.0的训练,扩展程序设计的知识面,提高综合应用C++知识能力的要求。
二、设计任务及要求任务一:学校人员信息管理系统设计任务:设计一个学校人员信息管理系统,可以实现对学校人事的信息管理。
基本功能要求:(1)建立人员信息数据包括学号(教工号)、姓名、性别、专业(工作系别部门)、出生时间、年龄。
其中,<1> 对学生,还包括3门课的成绩(Chinese, English, Mathematics)。
三门课的成绩为int型数据。
<2> 对教师,还包括职称(如教授/副教授/讲师),工资(如1432.50)。
工资为double型数据。
【英语命名提示】:姓名: name。
性别:sex。
专业:major。
工作系别:department教授:professor。
副教授:Associate Professor。
讲师:Lecturer工资:salary(2)使用继承的方法构造3个类,对相应的对象放置10个学生(教师)信息。
People类——虚基类Student类——派生类Teacher类——派生类(3)数据基本功能:增加数据:AddData()函数。
删除数据:DeleteData()函数。
根据学号(教工号),删除该人员的记录。
修改数据: UpdateData()函数。
对学生,根据学号,能够修改3门课的成绩;对教师,根据教工号,能够修改“职称”和“工资”。
《VC 面向对象程序设计》课程设计任务书
《VC++面向对象程序设计》课程设计任务书一、课程设计目的《VC++面向对象程序设计》是计算机相关专业的一门重要专业基础课。
其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
VC++程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
通过课程设计,可以使学生更进一步地理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题,从而达到锻炼学生理论与实践相结合的能力。
本课程设计以设计综合性实验为主,培养学生灵活利用所学综合知识,提高程序设计的能力;同时,也培养学生利用C++语言进行编程和调试程序的能力,使学生能够具有编写较复杂程序的能力。
通过此次课程设计,主要达到以下目的:巩固和加深对VC++面向对象程序设计基本知识的理解,提高综合运用VC++理论的能力。
使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。
使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。
二、VC++课程设计要求基本要求1、每组2人完成课程设计。
或者2人共同完成10-20题中任意1题)。
其中,设计报告中要能体现明确分工,并每人完成不同的功能模块,对于关键代码或者关键模块不允许出现重复内容。
2、独立思考,独立完成课程设计。
课程设计中各任务的设计和调试要求独立完成,遇到问题可以相互讨论,但不可以拷贝。
3、做好上机准备。
每次上机实验之前,要事先编制好准备调试的程序,认真想好调试步骤和相关环境的设置方法,准备好有关文档。
4.按照课程设计的具体要求建立功能模块。
对于具体模块要求按照如下几个方面内容认真完成:需求分析:在该部分描述清楚模块的具体功能。
如果存在多个模块,则需要描述清楚每个模块的具体功能及相互之间的关联关系。
概要设计:在此部分对模块的算法设计进行说明,每个程序中使用的存储结构设计说明。
《面向对象程序设计》课程设计任务书
《面向对象程序设计》课程设计任务书一、课程设计目的《面向对象程序设计》是一门重要的计算机专业课程,通过本课程设计,旨在让学生更深入地理解和掌握面向对象程序设计的基本概念、原理和方法,提高学生运用面向对象技术解决实际问题的能力。
具体而言,课程设计的目的包括以下几个方面:1、巩固和加深学生对面向对象程序设计中类、对象、继承、多态等核心概念的理解,培养学生的抽象思维和逻辑思维能力。
2、让学生熟悉面向对象程序设计的开发流程,包括需求分析、设计、编码、测试和维护等阶段,提高学生的软件开发能力。
3、培养学生运用面向对象编程语言(如 C++、Java 等)进行实际编程的能力,提高学生的代码编写规范和调试能力。
4、培养学生的团队合作精神和沟通能力,让学生在团队中共同完成一个较为复杂的项目,学会分工协作和相互交流。
5、激发学生的创新意识和解决实际问题的能力,让学生能够将所学知识应用到实际场景中,开发出具有一定实用价值的软件系统。
二、课程设计要求1、学生需独立完成课程设计任务,不得抄袭他人成果。
2、课程设计题目应具有一定的实用性和挑战性,能够涵盖面向对象程序设计的主要知识点。
3、学生在进行课程设计时,应严格按照面向对象的方法进行分析、设计和实现,确保程序的结构清晰、可读性强、可维护性好。
4、学生需提交课程设计报告,报告内容应包括需求分析、总体设计、详细设计、编码实现、测试结果以及总结等部分。
5、课程设计报告应书写规范、条理清晰、图表完整、数据准确。
三、课程设计题目以下是几个可供选择的课程设计题目,学生可根据自己的兴趣和实际情况选择其中一个进行设计:题目 1:学生成绩管理系统设计一个学生成绩管理系统,能够实现对学生成绩的录入、查询、修改、统计等功能。
系统应具备良好的用户界面,方便用户操作。
题目 2:图书管理系统设计一个图书管理系统,能够实现对图书的入库、借阅、归还、查询等功能。
系统应能够记录图书的基本信息、借阅记录以及读者信息等。
《面向对象程序设计》课程设计要求和任务书
《面向对象程序设计》课程设计任务书课程设计名称:面向对象程序设计指导老师:王淮亭课程设计周(时)数:2周课程设计授课单位:计算机基础教学部指导方式:集体辅导与个别辅导相结合课程设计适用专业:计算机科学与技术课程设计教材及主要参考资料:《C++程序设计》谭浩强编著,清华大学出版社《C++程序设计教程学习辅导》谭浩强编著,清华大学出版社服务课程名称:面向对象程序设计一、课程设计的目的要求《面向对象程序设计课程设计》是计算机专业及相关专业学生的一门实践课程。
本课程对于检验学生学习面向对象程序设计课程后的学习成果,对于软件开发主流方法和思想——面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。
本课程设计要求学生综合应用已学的计算机相关知识,例如程序设计基本思想和方法、C++语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。
课程要求学生针对一个比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。
二、课程设计内容及安排1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。
《面向对象程序设计》课程设计 指导书
《面向对象程序设计》课程设计指导书湖北理工学院计算机学院一.设计要求本课程设计是为了配合《面向对象程序设计》课程的开设,通过设计一个完整的程序,使学生掌握C++面向对象程序设计的基本特性:类、对象、继承与派生、多态、虚函数、模板、流类库等。
遵循软件过程的各个环节进行系统分析、设计、实现、集成、测试,并相应给出软件规格说明书等制品。
了解当前常用的软件开发工具(Visual C++),要求熟练掌握基于MFC的程序设计,培养解决实际问题的能力。
要求如下:1.要充分认识课程设计对自己的重要性,认真做好设计前的各项准备工作。
2.既要虚心接受老师的指导,又要充分发挥主观能动性。
结合课题,独立思考,努力钻研,勤于实践,勇于创新。
3.独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。
4.无论在校外,校内,都要严格遵守学校的学习纪律,规章制度,学生有事离校必须请假。
课程设计期间,无故缺席按旷课处理。
缺席时间达四分之一以上者,其成绩按不及格处理。
5.在设计过程中,要严格要求自己,树立严肃,严密,严谨的科学态度,必须按时,按质,按量完成课程设计。
6.小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。
二.适用专业适用于12软件工程专业。
三.课程设计的一般步骤课程设计大体分五个阶段:1.选题与搜集资料:每人选择一题(或4~5人为一小组进行选题),进行课程设计课题的资料搜集。
2.利用面向对象的方法对任务进行系统分析,形成功能规格说明书。
3.对各个功能模块分析设计抽象并实现对象类。
4.所有数据用文件存储,并通过流类与程序交换。
5.用户界面用基于MFC的设计,最后完成一个可运行的程序。
调试与测试:自行调试程序,成员交叉测试程序,并记录测试情况。
6.设计完成应提交的制品(打印文档):功能规格说明书(流程)、分析设计说明书(类)、代码实现说明(选择)、分工协作说明(具体说明每个人所做的工作)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《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、撰写课程设计报告,主要包括:①设计题目;②正文,包括引言、需求分析、模块设计(算法设计)、程序实现及测试、设计总结等;③结束语;④参考文献。
五、课程设计题目及内容(均采用面向对象程序设计方法)题目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, (x)当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:通讯录【问题描述】该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺序,控制语句是实现结构化程序设计的基础。