《面向对象程序设计》任务书
级《面向对象程序设计方案课程设计方案》任务书
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优化函数在创建有理数对象时应执行,在执行其它各种运算之后也需执行它,这样可保证所存储的有理数随时都是最优的。
面向对象程序设计任务书
四、设计课题:
1、文本编辑器的设计与实现
设计一个类似于Windows记事本(Not种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。
2)用户也可以选择让程序自动演示。选择自动演示后,程序将以动画形式演示把A塔上的盘子全部移到C塔的过程,并将移动过程以文本形式显示在一个文本区中。
5、俄罗斯方块
要实现的功能如下:
(1)游戏区:玩家可以在游戏区中堆积方块,并能够在游戏过程中随时了解得分情况。
(2)游戏控制:玩家可以通过游戏控制功能来选择开始新的一局游戏,暂停或退出游戏。
一、设计目的:
Java课程设计是对所学面向对象课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。要求同学们对理论课中所学习到的知识综合运用,实现有一定规模的Java应用。
二、 设计要求:
1、课程设计以每位同学学号末尾数据所对应题目编号即为设计的题目。
2、学生必须独立完成设计任务,严禁抄袭,一经发现,成绩以不及格计。
3、课程设计期间要严格遵守学校纪律,按时上机,服务机房管理人员管理,不得无故旷课、迟到与早退,课程设计期间缺勤1/3以上者,成绩以不及格记。
三、成绩评定:
通过设计答辩等方式,结合学生的动手能力、独立分析解决问题的能力和创新精神,由验收教师根据考勤、设计说明书质量、答辩表现以及学习态度等综合评定设计成绩。
(4)m*n个方块组成的测试区中有m个图标,每个图标重复出现n次,并且随机分布在测试区中的m*n各方块上。用户必须用鼠标连续单击出n个图表相同的方块,也就是说,如果用户已经用鼠标连续单击出p(p<n)个图标相同的方块,当再单击另一个方块时,如果该方块的图标和上一个的相同,那么该方块的图标和前p次单击出的方块的图标仍然可见;否则前p次单击出来的方块的图标全都变得不可见,只有当前单击的方块的图标可现。
面向对象程序设计项目设计任务书
《面向对象程序设计》课程设计指导书一、课程设计目的课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
本课程设计旨在培养学生的动手能力和学习能力。
二、课程设计题目及要求1. 图书馆图书管理系统2. 人事档案管理系统3. 工资管理系统4. 学生学籍管理系统5. 教务管理系统6. 教材课程系统7. 猜数游戏的程序设计8. 学生信息管理系统9. 投票管理系统10. 图形打印系统11. 简单时钟程序设计12. 四则运算练习程序13. MP3音乐播放器14. 个人通讯录教师须根据教学要求、学生实际水平、能完成的工作量和本地的条件,选择合适的课程设计题目。
争取让不同程度的学生,经过努力能完成课程任务,在巩固所学知识,提高基本技能和能力等方面有所收获。
题目尽可能结合实际应用,应具有一定的综合性、设计性,难度和份量要适当,鼓励动手能力较强的同学,选择难度大的题目。
三、课程设计内容:本课程设计学生可以,并完成相应的课程设计报告,通过实践环节使学生更进一步理解和掌握高级语言程序设计的基础知识,达到锻炼学生理论与实践相结合的能力,培养学生编写质量高、风格好的程序代码,为后续的专业课程的学习以及软件开发打下一定的理论基础和实践基础。
课程设计应按统一教学计划安排进行,学生一人一组。
课程设计开始后,指导教师要向学生下达任务书,提出设计的具体要求,实验室对学生开放。
课程设计过程中,指导教师应随时检查并掌握学生的设计情况,解答疑难问题,指导学生完成设计内容。
通过本课程的学习,应完成如下任务:(1)问题分析和任务定义在进行设计之前,首先应该充分地分析和理解问题,明确问题要求做什么,限制条件是什么。
对问题的描述应避开算法和所涉及的数据类型,而是对所需完成的任务作出明确的回答。
例如:输入数据的类型、值的范围以及输入的形式;输出数据的类型、值的范围及输出的形式;若是会话式的输入,则结束标志是什么,是否接受非法的输入,对非法输入的回答方式是什么等等。
面向对象程序课程设计任务书
面向对象程序设计课程设计任务书课程性质:设计总学时数: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)使用文件存储数据。
《面向对象程序设计》课程设计任务书
《面向对象程序设计》课程设计任务书《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者,可以给定不及格。
《VC++面向对象程序设计》课程设计任务书
《VC++面向对象程序设计》课程设计任务书一、课程设计目的《VC++面向对象程序设计》是计算机相关专业的一门重要专业基础课。
其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
VC++程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
通过课程设计,可以使学生更进一步地理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题,从而达到锻炼学生理论与实践相结合的能力。
本课程设计以设计综合性实验为主,培养学生灵活利用所学综合知识,提高程序设计的能力;同时,也培养学生利用C++语言进行编程和调试程序的能力,使学生能够具有编写较复杂程序的能力。
通过此次课程设计,主要达到以下目的:(1)巩固和加深对VC++面向对象程序设计基本知识的理解,提高综合运用VC++理论的能力。
(2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。
(3)使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。
二、VC++课程设计要求(一)基本要求1、每组1人完成课程设计。
每人完成不同的功能模块,对于关键代码或者关键模块不允许出现重复内容。
2、独立思考,独立完成课程设计。
课程设计中各任务的设计和调试要求独立完成,遇到问题可以相互讨论,但不可以拷贝。
3、做好上机准备。
每次上机实验之前,要事先编制好准备调试的程序,认真想好调试步骤和相关环境的设置方法,准备好有关文档。
4.按照课程设计的具体要求建立功能模块。
对于具体模块要求按照如下几个方面内容认真完成:需求分析:在该部分描述清楚模块的具体功能。
如果存在多个模块,则需要描述清楚每个模块的具体功能及相互之间的关联关系。
②概要设计:在此部分对模块的算法设计进行说明(可以采用算法流程图进行描述,并附上该图的相关文字说明),每个程序中使用的存储结构设计说明(如果指定存储结构,请描述清楚该存储结构的定义)。
《面向对象程序设计课程设计》任务书
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)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
面向对象程序设计课程实习任务书
面向对象程序设计课程实习任务书一、课程实习目的:面向对象程序设计课程实习是集中实践性环节之一, 是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
要求学生达到熟练掌握C++语言的基本知识和技能; 基本掌握面向对象程序设计的思想和方法; 能够利用所学的基本知识和技能, 解决简单的面向对象程序设计问题, 从而提高动手编程解决实际问题的能力。
二、课程实习题目1) 高校人事管理系统2) 图书管理系统3) 高校工资管理系统4) 公司人员管理系统5) 高校学籍管理系统三、课程实习要求:⑴选题: 每位同学根据自己学号除以5所得的余数选择相应题号的课题, 余数为0则选择第5题。
换题者不记成绩。
⑵根据自己对应的课题完成以下主要工作: ①完成系统需求分析: 包括系统设计目的与意义; 系统功能需求( 系统流程图) ;输入输出的要求。
②完成系统总体设计: 包括系统功能分析; 系统功能模块划分与设计( 系统功能模块图) 。
③完成系统详细设计: 包括数据库需求分析; 类层次图; 界面设计与各功能模块实现。
④系统实现: 系统运行后的测试及使用说明。
⑶按规定格式完成课程实习报告, 将其打印稿(A4纸)上交给老师存档。
⑷不得抄袭她人程序、课程实习报告, 每个人应体现自己的个性设计。
四、实习时间实习时间一周( 第12周) , 周一到周四调试程序, 周五集中检查。
五、考核方式与标准采用实习表现情况、程序质量、实习报告相结合的考核形式:1、实习表现( 20%)实习出勤情况及实习态度2、程序质量与创新能力( 50%)最终完成的程序设计的工作量、质量、难易程度。
3、课程实习报告( 30%)报告的格式与内容。
六、课程实习报告内容:封面内容摘要目录文档正文1、系统需求分析2、总体设计包括系统功能分析; 系统功能模块划分与设计( 系统功能模块图) 。
3、详细设计类层次图; 各功能模块实现等4、系统实现系统运行后的测试及使用说明。
5、实习总结与体会6、附录: 源程序清单参考资料实习报告封面附后格式要求:1、纸张: 用A4纸张, 页边距一律为上、下2.5cm, 左2.5cm、右1.5cm, 装订线在左0.5cm, 行间距取固定值20磅, 字符间距为默认值。
面向对象程序设计(C++)大作业任务书
《面向对象程序设计(C++)》大作业任务书一、题目每组同学(3人一组)可从下列给出的参考题目中任选一题完成,不可以重复。
(1)消费卡支付管理系统(2)驾校学员管理系统(3)网吧上网管理系统(4)超市管理系统(5)网上购物管理系统(6)校园一卡通管理系统(7)家族族谱管理系统(8)银行管理系统(9)个人财务管理系统(10)图书馆管理系统(11)学生成绩管理系统(12)药店进销存管理系统(13) 学生选课管理系统(14)高校招生管理系统(15)公交一卡通管理系统(16)食品安全管理系统(17)机场汽车出入管理系统(18)个人电话簿管理系统(19)建筑公司承包管理系统(20)餐馆营业管理系统其余题目略。
二、对象本学期“面向对象程序设计(C++)”选课班全体同学。
三、目的(1)掌握面向对象程序设计(OOP)的思想,区别传统的过程式程序设计思想,能够使用面向对象的程序设计思想解决实际问题;(2)掌握在Visual C++集成开发环境下编辑、编译、链接和运行一个C++程序的基本方法;(3)独立完成每个程序设计和编码,能够灵活运用各种调试命令修改源程序中可能出现的错误,并能根据问题进行学习、拓广、深化。
(4)学会科学地撰写总结报告,加深对所学知识的理解和掌握,答辩中考察学生的技能,并培养学生的表达和思辨能力。
四、要求(1)根据学生人数分成原则上3人(少量4人)一组,各小组选择感兴趣的题目,在课外完成查找资料、选题、拟大纲、小组讨论、研究写作等各环节;每一环节完成后,在课堂上进行小组之间的讨论、教师点评,最后确定解决问题的方案。
(2)问题规模:体现面向对象程序设计语言的特点,程序代码不少于400行;使用技术:体现OOP的抽象、封装、继承、多态等4种关键技术中的两种或多种;程序结构良好,没有明显错误;按照大作业格式,在课程结束前一周交电子稿和打印稿。
五、内容(1)系统说明书内容包括:①问题描述②类体系设计和程序流程图③各类定义的基本功能,即主要数据和函数功能描述④拟采用开发平台(Visual C++,Borland C++等)(2)大作业报告根据原有的系统设计,编码阶段的工作,整理书写实验报告,内容包括:①系统说明②实验分析与结论③收获与体会④附程序代码(3)最后提交材料:①大作业报告(打印稿和电子稿)②源程序代码(CPP文件),执行文件(EXE)六、评分本次大作业占期末考试总成绩的20%,满分20分。
《面向对象程序设计》课程设计任务书
《面向对象程序设计》课程设计任务书一、课程设计目的《面向对象程序设计》是一门重要的计算机专业课程,通过本课程设计,旨在让学生更深入地理解和掌握面向对象程序设计的基本概念、原理和方法,提高学生运用面向对象技术解决实际问题的能力。
具体而言,课程设计的目的包括以下几个方面:1、巩固和加深学生对面向对象程序设计中类、对象、继承、多态等核心概念的理解,培养学生的抽象思维和逻辑思维能力。
2、让学生熟悉面向对象程序设计的开发流程,包括需求分析、设计、编码、测试和维护等阶段,提高学生的软件开发能力。
3、培养学生运用面向对象编程语言(如 C++、Java 等)进行实际编程的能力,提高学生的代码编写规范和调试能力。
4、培养学生的团队合作精神和沟通能力,让学生在团队中共同完成一个较为复杂的项目,学会分工协作和相互交流。
5、激发学生的创新意识和解决实际问题的能力,让学生能够将所学知识应用到实际场景中,开发出具有一定实用价值的软件系统。
二、课程设计要求1、学生需独立完成课程设计任务,不得抄袭他人成果。
2、课程设计题目应具有一定的实用性和挑战性,能够涵盖面向对象程序设计的主要知识点。
3、学生在进行课程设计时,应严格按照面向对象的方法进行分析、设计和实现,确保程序的结构清晰、可读性强、可维护性好。
4、学生需提交课程设计报告,报告内容应包括需求分析、总体设计、详细设计、编码实现、测试结果以及总结等部分。
5、课程设计报告应书写规范、条理清晰、图表完整、数据准确。
三、课程设计题目以下是几个可供选择的课程设计题目,学生可根据自己的兴趣和实际情况选择其中一个进行设计:题目 1:学生成绩管理系统设计一个学生成绩管理系统,能够实现对学生成绩的录入、查询、修改、统计等功能。
系统应具备良好的用户界面,方便用户操作。
题目 2:图书管理系统设计一个图书管理系统,能够实现对图书的入库、借阅、归还、查询等功能。
系统应能够记录图书的基本信息、借阅记录以及读者信息等。
面向对象程序设计--实验任务书
题目:如实验一:C++基本语法实验二:c++函数和作用域姓名: 丁雪华学号: 200911901 班级: 2009119 专业: 计算机科学与技术指导老师: 朱国仲日期:面向对象程序设计C++--实验任务书第一次:C++基本知识实验简介:c++基本知识是学好c++的必要储备,是OOP编程的导引,本次试验从C++的基本语法的各个层面如数据的表示,数据的类型,以及基本的运算符等,另外一点,如何用好VisualC++6.0的C&C++调试环境也会在程序编码的过程中得到体现,进一步锻炼学生的动手能力和知识把握能力。
实验目的:1、复习c语言基础语法2、掌握C++与C语言不同之处3、熟悉VisualC++6.0或BC3.1编辑器,程序调试环境实验要求:程序实现,独立完成实验内容:1、比较两个int型数的大小,并输出较小的那个数;#include<iostream.h>void main(){int a,b;cout<<"输入两个数"<<endl;cin>>a>>b;int *p,*q;p=&a;q=&b;if(a>b)cout<<"max="<<*p<<endl;elsecout<<"max="<<*q<<endl;}2、比较一个int型数与一个float型数的大小,并输出较大的那个数;#include<iostream.h>float max(int i,float j){if(i>j)return i;elsereturn j;}void main(){int n_i;float n_j,x;cin>>n_i>>n_j;x=max(n_i,n_j);cout<<"x="<<x<<endl;}3、输入一个摄氏温度,输出对应的华氏温度;#include<iostream.h>void main(){float kil,mit;cin>>kil;mit=kil*1.60934;cout<<mit<<endl;}4、输入公里数,输出对应的英里数;#include<iostream.h>void main(){float kil,mit;cin>>kil;mit=kil*1.60934;cout<<mit<<endl;}5、输入一个int数,将其低四位置1#include<iostream.h>void main(){int n;cin>>n;n=n|15;cout<<n<<endl;}第二次:C++函数和作用域实验简介:这次试验主要集中在设计模块和数据封装上,函数是这一主要体现,从函数的各个侧面锻炼学生的模块设计能力。
面向对象程序设计(C++)-2013实验7-任务书
实验7 多态性专业:计算机科学与技术班级学号:姓名:实验地点:工A208 实验时间:2013-11-27 指导教师:李佐勇一、实验目的1.掌握用函数成员实现运算符重载的方法;2.掌握用友元函数实现运算符重载的方法;3.掌握纯虚函数的概念及应用。
二、实验环境一台PC机,Windows XP操作系统,Visual C++ 6.0开发环境。
三、实验内容1、三维坐标类对象之间的直接运算。
三维坐标类有数据成员x、y、z,对象间运算时要求通过函数成员实现“+”、前置“--”、“= =”运算符的重载,通过友元函数实现后置“--”、“+=”、“>>”和“<<”运算符的重载,实现三维坐标类对象间的直接运算。
main()完成对象的定义和有关运算符重载函数的测试。
2、由二维坐标点类(含有带默认形参值的构造函数、getX、getY、show函数)作为基类派生出圆类(含有带默认形参值的构造函数、getR、getarea、show函数);再由圆类作为基类派生出圆柱体类(含有带默认形参值的构造函数、getH、getV、show函数);考虑将show作为虚函数。
3、将实验内容2改为通过纯虚函数show完成数据成员的输出。
四、实验记录1.#include<iostream>using namespace std;class point{public:point(int xx=0,int yy=0,int zz=0):x(xx),y(yy),z(zz){}int getx() {return x;}int gety() {return y;}int getz() {return z;}point operator+(point &p1);point operator--();bool operator==(point &p1)const;friend point operator--(point&p1,int);friend void operator+=(point&p1,point&p2);friend ostream operator<<(ostream & out,const point &p){return out;}friend istream operator>>(istream &in,point &p) {in>>p.x>>p.y>>p.z;return in;}private:int x,y,z;};point point::operator+(point &p1){return point(x+p1.x,y+p1.y,z+p1.z);}point point::operator--(){x--;y--;z--;return *this;}bool point::operator==(point &p1)const{if(x==p1.x&&y==p1.y&&z==p1.z)return true;else return false;}point operator--(point&p,int){point temp=p;--p;return temp;}void operator+=(point &p1,point &p2){p1.x=p1.x+p2.x;p1.y=p1.y+p2.y;p1.z=p1.z+p2.z;}int main(){point p1(3,4,5),p2(5,6,7),p3;cout<<"p1="<<p1<<endl;cout<<"p2="<<p2<<endl;p3=p1+p2;cout<<"p1+p2="<<p3<<endl;p3=--p2;cout<<"p2="<<p2<<endl;cout<<"p3="<<p3<<endl;cout<<"p2==p3?: ";else cout<<"No"<<endl;p3=p2--;cout<<"p2="<<p2<<endl;cout<<"p3="<<p3<<endl;p3+=p2;cout<<"p2="<<p2<<endl;cout<<"p3="<<p3<<endl;return 0;}2.#include<iostream>#define pi 3.1415using namespace std;class point{public:point(int xx=0,int yy=0):x(xx),y(yy){}int getX() {return x;}int getY() {return y;}virtual void show(){cout<<"point.show!"<<endl;cout<<"("<<x<<","<<y<<")"<<endl;}protected:int x,y;};class circle:public point{public:circle(int xx=0,int yy=0,float r=1):point(xx,yy){ radius=r;}float getR() {return radius;}float getarea() {return pi*radius*radius;}void show(){cout<<"圆心坐标:";point::show();cout<<"圆半径:"<<radius<<endl;}protected:float radius;};class cylinder:public circle{public:cylinder(int xx=0,int yy=0,float r=1,float h=1):circle(xx,yy,r){ high=h;}float getH() {return high;}float getV() {return getarea()*high;}void show(){cout<<"cylinder.show:"<<endl;circle::show();cout<<"圆柱高度:"<<high<<endl;}private:float high;};int main(){point p1(1,3),*pp;pp=&p1;pp->show();circle c1(3,3,6);pp=&c1;pp->show();cout<<"circle area is :"<<c1.getarea()<<endl;cylinder cy1;pp=&cy1;pp->show();cout<<"cylinder volume is :"<<cy1.getV()<<endl;return 0;}3.#include<iostream>#define pi 3.1415using namespace std;class point{public:point(int xx=0,int yy=0):x(xx),y(yy){}int getX() {return x;}int getY() {return y;}virtual void show()=0;protected:int x,y;};class circle:public point{public:circle(int xx=0,int yy=0,float r=1):point(xx,yy){radius=r;}float getR() {return radius;}float getarea() {return pi*radius*radius;}void show(){cout<<"circle.show:"<<endl;cout<<"圆心坐标:("<<getX()<<","<<getY()<<")"<<endl;cout<<"圆半径:"<<radius<<endl;cout<<"圆面积:"<<getarea()<<endl;}protected:float radius;};class cylinder:public circle{cylinder(int xx=0,int yy=0,float r=1,float h=1):circle(xx,yy,r){high=h;}float getH() {return high;}float getV() {return getarea()*high;}void show(){cout<<"cylinder.show:"<<endl;circle::show();cout<<"圆柱高度:"<<high<<endl;cout<<"圆柱体体积:"<<getV()<<endl;}private:float high;};int main(){point *pp;circle c1(3,3,6);pp=&c1;pp->show();cylinder cy1;pp=&cy1;pp->show();return 0;}五、思考题虚函数和纯虚函数的应用场合?虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数实现的时候;纯虚函数是一个在基类中声明的虚函数,它在该基类中没有定义具体的操作内容,要求个派生类根据实际需求给出各自的定义。
《面向对象程序设计课程设计》任务书.
安徽建筑工业学院《面向对象程序设计》课程设计任务书张家精编写适用专业:信息与计算科学与计算机科学与技术安徽建筑工业学院数理系 2007年 8月 10日任务一:用户登录系统一、功能:该系统对用户输入的用户名和密码进行验证, 只有确保用户名和密码都正确才能进入系统, 在登录过程中给出是否为合法用户的反馈信息。
系统登录成功后, 用户可对自己的密码进行修改,并确定是否保存修改结果。
二、设计:1.数据库设计:采用本地数据库,数据库形式可自行选择,数据库中包括一个数据表, 数据表中包含以下字段:用户编号、用户姓名、登录密码。
其中用户编号为关键字段。
数据库和数据表的名称自定。
2.程序界面设计:建立两个用户界面:系统登录界面,修改密码界面。
(1 用户登录界面该界面中主要包含用户姓名、用户密码输入框,登录、退出命令按钮,点击登录时验证用户姓名和用户密码的合法性,并给出验证结果。
如果用户输入正确,然后进入密码修改界面。
(2 密码修改界面该界面主要包含用户的旧密码、新密码、确认密码输入框,保存和放弃命令按钮。
点击保存则修改用户密码,点击放弃则不修改原来的密码。
三、要求:1.用户登录时对用户的合法性结果以消息框的形式给出,如果用户三次登录不成功,则系统自动退出。
2.修改用户密码时,应以消息框的形式提示用户是否保存修改内容。
3.退出系统时,应得到用户的确认之后方可退出。
注:该设计的最高评分等级为良好。
任务二:图书查询系统设计一、功能:通过该系统可以对书库中的图书进行查询,查询结果显示的主要内容包括:书号、书名、作者、出版社、图书的借阅状态(是否可借。
二、设计1. 数据库设计:采用本地数据库, 数据库形式可自行选择, 数据库中包括一个数据表, 数据表中包含以下字段:书号、书名、作者、出版社、借阅状态。
其中书号为关键字段。
数据库和数据表的名称自定。
2. 用户界面设计:建立四个用户界面:系统登录界面、查询条件选择界面、查询条件录入界面、查询结果显示界面。
c++课程设计任务书
《面向对象程序设计课程设计》任务书一、课程设计的目的与要求1、教学目的综合运用所学过的知识进行实际程序设计。
2、教学要求从课程设计的目的出发,用C++编写简单的的程序,程序要求如下:(1)算法正确,容错性能好;(2)完成从用户需求分析、到上机编程、调试和应用等全过程。
二、课程设计的题目、内容及要求(1221806班每人一题)1通信录的设计基本要求:定义人员(person)类,其中至少包括姓名、性别、电话、地址、邮政编码、邮箱、QQ号和类别(例如:同学、朋友等)。
功能要求:1、设计菜单实现功能选择;2、输入功能:输入人员信息,并保存到文件中;3、查询功能:1)能够根据姓名、电话精确查询人员信息;2)能够根据地址进行模糊查询人员信息;3)根据人员类别查询人员信息4、根据姓名对人员信息排序输出5、能根据姓名、电话修改人员信息6、能根据姓名、电话删除人员信息2职工工资管理基本要求:定义职工(employee )类,其中至少包括姓名、性别、工号、电话、所在科室和工资。
功能要求:1、设计菜单实现功能选择;2、输入功能:输入职工信息,并保存到文件中;3、查询功能:1)能够根据工号精确查询职工信息;2)能够根据姓名、科室查询职工信息3)分科室进行工资统计,计算各科室的平均工资4、根据职工的工资排序输出5、根据工号修改职工信息6、根据工号删除职工信息3公司员工管理系统基本要求:设计一个虚基类Staff(员工),包括编号、姓名和年龄保护数据成员以及相关的成员函数;由Staff派生出工程师类Engineer包含专业和职称保护数据成员以及相关的成员函数,再由Staff派生出领导类Leader,包括职务和部门保护数据成员以及相关的成员函数;然后由Engineer和Leader类派生出主任工程师类Chairman。
功能要求:1、增加员工数据信息2、更新员工数据信息3、查询员工数据信息4、删除员工数据信息5、良好的人际交互界面、方便操作4三角形的种类与面积基本要求:定义点(point)类,包含点的坐标x和y;通过继承点类派生出线段(line)类;通过线段(line)类的组合定义三角形(triangle )类。
《面向对象程序设计》课程设计要求和任务书
《面向对象程序设计》课程设计任务书课程设计名称:面向对象程序设计指导老师:王淮亭课程设计周(时)数:2周课程设计授课单位:计算机基础教学部指导方式:集体辅导与个别辅导相结合课程设计适用专业:计算机科学与技术课程设计教材及主要参考资料:《C++程序设计》谭浩强编著,清华大学出版社《C++程序设计教程学习辅导》谭浩强编著,清华大学出版社服务课程名称:面向对象程序设计一、课程设计的目的要求《面向对象程序设计课程设计》是计算机专业及相关专业学生的一门实践课程。
本课程对于检验学生学习面向对象程序设计课程后的学习成果,对于软件开发主流方法和思想——面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。
本课程设计要求学生综合应用已学的计算机相关知识,例如程序设计基本思想和方法、C++语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。
课程要求学生针对一个比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。
二、课程设计内容及安排1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。
完整word版,c++课程设计任务书1421813-15
《面向对象程序设计课程设计》任务书一、课程设计的目的与要求1、教学目的综合运用所学过的知识进行实际程序设计。
2、教学要求从课程设计的目的出发,用C++编写简单的的程序,程序要求如下:(1)算法正确,容错性能好;(2)完成从用户需求分析、到上机编程、调试和应用等全过程。
二、课程设计的题目、内容及要求Part 1: 小程序练习(必须全部完成)1 函数重载定义重载函数max3用于计算三个数的最大值(参数类型分别为int和double)。
#include <iostream>using namespace std;int max3(int a,int b,int c){if(b>a) a=b;if(c>a) a=c;return a;}double max3(double a,double b,double c){if(b>a) a=b;if(c>a) a=c;return a;}int main( ){int max3(int a,int b,int c);double max3(double a,double b,double c);int i1,i2,i3,i;cout<<”请输入三个数:”<<endl;cin>>i1>>i2>>i3;i=max3(i1,i2,i3);cout<<"i.max3="<<i<<endl;double d1,d2,d3,d;cin>>d1>>d2>>d3;d=max3(d1,d2,d3);cout<<"d.max3="<<d<<endl;}2 类的组合定义point类,数据成员包括x,y,成员函数包括构造函数,拷贝构造函数和析构函数,以及setx,getx,sety,gety四个属性函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》课程设计任务书
一、课程设计总体要求
本次课程设计是对前面学过的C语言程序设计的编程思想以及编程方法的一个回顾和延伸,学生确定设计题目后,要明确本次课程设计所要用到的技术点,回顾之前学习的C语言并进一步学习C++程序设计语言,或者到网上搜索以及查阅相关的书籍来搜集资料。
通过编写一个基于C++的应用系统综合实例,来掌握C++语言编程技巧。
二、设计任务与要求
本次课程设计的题目均采用VC++ 6.0来开发。
避免抄袭,让学生真正锻炼自我。
要求每个学生必须参加,并完成如下各项课程设计任务:
1. 要求每个学生认真阅读本面向对象的程序设计任务书,理解课程设计的目的和任务;
2. 要求每个学生根据自己的实际情况选择一个题目,实际动手完成这个题目,编写出程序代码,并调试通过;
3. 每个同学选择一个题目,多名同学选择同样题目时,独立完成,程序代码不可相同。
部分难度较大题目,最多可由两名学生共同完成;
4. 要求每个学生完成课程设计后撰写《面向对象的程序设计报告》,可以按照任务书后面附带的课程设计报告模版的格式实际撰写。
5. 要求每位学生必须在上机前做好充分准备,每次上机必须目的明确,必须事先编写好程序代码,然后在规定的时间和地点上机调试。
由于机房电脑重启后进行恢复,每位学生要对自己的程序进行备份。
6. 允许学生在给出可供选择题目之外自己选择题目,但要经指导教师同意。
三、课程设计实施步骤
1.在课程设计开始时,公布此课程设计任务书,由学生进行选题。
2.教师根据需要安排合适的时间、地点进行答疑。
3.教师要认真检查学生完成的程序进展情况。
4 教师要指导学生撰写符合规范的《面向对象的程序设计报告书》。
5.每个学生必须参加课程设计答辩,针对课程设计的内容回答提问。
四、考核办法
首先检查完成后的程序能否正常运行和得出希望的结果,程序检查通过后再检查所撰写的《面向对象的程序设计报告书》,最后参加课程设计答辩,根据报告的质量及面试的结果给出学生课程设计的成绩。
五、考核评分标准:
1. 程序功能的实现(要求演示及答辩)进行考核:
无任何论文,无程序,得0分;
论文混乱,没有思路,程序不能运行,不及格;
论文描述清晰,程序实现了基本功能,中(60-75分);
论文描述清晰准确,思路清晰,程序实现了要求的所有功能,良好(75-90分);
论文完备,设计合理有创新,报告清晰明确,深入分析了自己进行实验的体会感想,程序实现了全部功能,功能完善,并有其它的创新实现,优秀(90-100分)。
2. 如果发现两名或更多同学的课程设计相同部分过多,特别是程序的源代码相同部分达到或超过90%,则认定为抄袭,成绩评定为不及格。
如果发现与现有技术书籍或网上资料相同部分过多,特别是程序的源代码相同部分达到或超过80%,也认定为抄袭,成绩评定为不及格。
允许参考同学的工作,允许参考现有技术书籍或网上的资料,但要有自己的不同或改进之处,可以利用已有程序的代码,但要自己重新组织,调试通过并对程序理解正确。
六、参考题目及要求:
1、编写一个计算器程序
要求:
使用图形用户界面,由1名学生独立完成;
界面模拟Windows中的计算器程序;
实现基本数学运算、函数等功能:加、减、乘、除、正弦和余弦运算;
实现要点:添加相关组件并进行按钮事件处理和键盘事件处理。
4、万年历系统
要求:
使用图形用户界面,由1学生独立完成;
万年历功能:
(1)日历显示功能。
能根据系统日期进行初始化,如果没有任何输
入,则显示系统日期所在月份的月历。
(2)日历查询、闰年判断功能。
输入日期进行查询,显示查询日期所在月份的月历,还将显示所在年份是否为闰年;
(3)参数检查功能。
如果输入日期不合法,查询将被拒绝,并显示提示信息。
5、电子时钟
使用图形用户界面,由1学生独立完成;
电子时钟要求:
(1)时间显示功能。
能根据系统时间进行初始化,显示当前时钟;
(2)设置时间,可以更改小时、分、秒;
(3)参数检查功能。
如果输入数据为非法时间数据,应给出提示。
6、通讯录管理
使用图形用户界面,可由1~2名学生共同完成;
编写一个简单的通讯录管理程序。
通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。
程序应提供的基本基本管理功能有:
添加:即增加一个人的记录到通信录中
显示:即在屏幕上显示所有通信录中的人员信息,应能分屏显示。
存储:即将通讯录信息保存在一个文件中。
修改:可修改一个人的除姓名外其它信息。
7、研究生初试录取
要求:使用图形用户界面,可由1~2名学生共同完成;
问题描述
研究生考试课程为4门,其中数学、外语、政治为统一命题,而专业基础课则根据不同的专业由招生学校自行命题。
国家对初试录取分数有总分要求(如某一年要求4门课总分应达到310分),另外还有对每门课的最低分数要求(如总分为100的试卷最低应达到40分,总分为150的试卷最低应达到65分)。
编程统计初试合格的人数,并按总分由高到低的顺序输出合格考生的信息。
基本要求
程序运行时首先要求输入:考生姓名,准考证号,报考专业,是否应届生,4门课程(政治、数学、外语、专业基础课)成绩。
这些原始数据应保存到一个文件中。
然后输入:录取的总分要求,各课程的最低分数要求。
输出要求:过线考生的姓名,准考证号,报考专业,是否应届生,4门课程(政治、数学、外语、专业基础课)成绩及总分,这些信息应存放到另一个文件中。
实现提示
可定义一个考生类存放有关信息和实现相应的操作。
分数线数据(总分要求和各门课程的要求)可定义另外的类来存放,但应能被考生类及其派生类直接访问。
8、足球联赛积分
要求:使用图形用户界面,可由1~2名学生共同完成;
问题描述
足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。
试编一程序统计最近一轮比赛后,各队积分及排名。
基本要求
设积分表结构如下:队名(不超过15个字符),已比赛的场数,赢的场数,平的场数,负的场数,进球数,失球数,积分。
积分表放在正文文件中。
最近一轮的结果从键盘输入,其形式为:主队名(可用代码),客队名(可用代码),主队得分(即进球数),客队得分(即进球数)。
程序应根据此轮结果修改各队的积分和名次,所得的最新记分表仍在原积分文件中并同时在屏幕上显示。
实现提示
定义一个球队类,每个球队是均是此类的对象。
由于联赛中参赛的队伍数是固定的,因此可用对象数组来实现。
每输入两个队的比赛成绩,则相应的队的有关数据即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数)排出名次并输出。
七、附录
石家庄铁道大学
面向对象程序设计报告
学院:
专业名称:
课设科目:
学生姓名:
指导教师:
完成时间:
(课程设计报告正文部分)
题目(三号,黑体,居中)
(空一行)
一、设计任务与目标(标题均为小三号,宋体)
(正文均为小四号,宋体,行距1.5倍)
(对所选择题目进行分析论证,简要说明此类问题的已有类似工作,我要完成时准备做那些改进,既说明完成此设计的目的意义。
列出各项本设计要达到的具体的目标。
)
二、方案设计与论证
(对设计目标进行总体分析,说明要采用的基本思路,说明遇到的问题和解决方法。
说明完成本次课程设计的完整过程。
要描述程序的设计思想,重点描述你自己提出的与已有工作不同的程序设计思想。
)
三、程序框图或流程图,程序清单与调用关系
(画出本次课程设计完整的程序框图或流程图,程序基本框架结构图可以采用WORD中的自选图形绘制,用表格的形式列出所有编写的程序清单,划出程序的调用关系图。
)
四、全部源程序清单
(给出本次课程设计所编写全部源程序已经调试好的可运行代码清单,字体可以用宋体五号,页数可增加,每个程序开头用注释文字说明此程序的用途和大体工作过程,,程序中必要部分也要加入足够多的注释行。
)
五、程序运行的测试与分析
(要围绕设计任务和目标中的各项指标进行。
)
六、结论与心得
(主要说明程序调试中发现的问题和解决办法,包括你学到了什么,哪里遇到了困难,解决的办法,可能但因时间关系没有来得及完成的想法,今后的目标等。
)
七、参考资料
(用五号,宋体,按照规范格式列出。
)
(要列出在完成设计中查看过并有所利用的所有参考资料,包括各类技术书籍、期刊论文和相关网页的网址。
注意你看过但没有利用的资料不要列入,要能够回答你列出资料中的相关问题。
)
八、致谢
(如果你参考了同学的程序,要真诚地表示感谢。
如果你参考了一些书籍上或网页上的程序,也要真诚地向作者表示感谢。
)。