面向对象程序设计语言实训计划书

上传人:1888****888 文档编号:37442537 上传时间:2021-11-03 格式:DOC 页数:19 大小:111.50KB
收藏 版权申诉 举报 下载
面向对象程序设计语言实训计划书_第1页
第1页 / 共19页
面向对象程序设计语言实训计划书_第2页
第2页 / 共19页
面向对象程序设计语言实训计划书_第3页
第3页 / 共19页
资源描述:

《面向对象程序设计语言实训计划书》由会员分享,可在线阅读,更多相关《面向对象程序设计语言实训计划书(19页珍藏版)》请在装配图网上搜索。

1、南昌理工学院Nanchang Institute of Technology课程实训计划书系 部: 计算机信息工程 适应专业: 计算机科学与技术、软件工程、网络工程适应班级: 12级软件工程1、2班、实训课程: 面向对象程序设计语言计划制定人:宋庆忠实训地点: 实验楼306实训日期: 2013年12月9日2013年12月20日计算机信息工程学院2013年12月目 录一、课程实训目的1二、基本要求1三、指导教师安排1四、课程实训环节安排1五、课程实训任务2(一)课程实训要求及内容2(二)课程实训考核指标及方法2(三)课程实训题目3题目一:计算几何图形3题目二 :学生的各门成绩和专业成绩4题目三:

2、用虚函数求几何面积4题目四:邮寄物品费用5题目五:继承下的几何面积6题目六:雇员工资6题目七:日期时间,时钟类的编制 ( 电子钟程序 )题目八:日期类的编制 (万年历程序)题目九:设计一个点类Point,实现点对象之间的各种运算 ( 平面直角座标系中点的运算)题目十:设计一个复数类complex,实现点复数对象之间的加、减、乘运算 ( 复数的运算 )题目十一:虚基类的使用:(职工管理系统中的类的模型)题目十二:模板的使用: ( 通用排序程序的实现 )题目十三:设计字符串类 MyString:(基本类型扩展字符串类)题目十四:抽象类与纯虚函数的使用:( 各种图形的周长及面积计算程序实现 )题目十

3、五:队列的实现:(队列的实现)题目十六:学生成绩管理系统:题目十七: 银行账户管理系统(单个账户的处理):题目十八:通信录(最大记录1000条):题目十九:人员信息管理系统:题目二十:链表类的实现:题目二十一:栈类的实现(计算器程序):16面向对象程序设计语言课程实训计划书一、课程实训目的根据所学C+ “基类”、“派生类”、“虚基类”、“多态继承”、“虚函数”等面向对象程序设计的相关知识和多重继承关系、继承权限、赋值兼容的定义与使用规则,进行相应的程序设计训练,在实训编题过程中要尽量把已学的C+知识应用到编程的实际使用中去,熟悉、掌握这些知识在程序中的运行、调用机理和实现方法。通过训练对如何进

4、行面向对象程序设计的方式方法有一个更深入的理解和认识,进一步巩固C+程序设计的基本知识和实现方法。二、基本要求要求学生认真对待本次课程实训,积极利用机房、网络资源,熟练掌握程序设计的方法和C+语言基本技能进行实训操作,具备一定的程序设计能力。在课程实训中听从指导教师的安排,认真完成老师布置的各项任务,并以小组为单位,上交课程实训报告。三、指导教师安排指导教师:宋庆忠四、课程实训环节安排班级 时间 指导教师 12软件工程1班 第15周 宋庆忠 12软件工程2班 第16周 宋庆忠五、课程实训任务(一)课程实训要求及内容设计要求:1、可自己选定一题目,可以自由搭配,最多4人一组。2、模块化程序设计。

5、3、锯齿型书写格式。4、本次实训各题都有可能不同程度地使用到虚基类、虚函数、纯虚函数和抽象类等相关技术。5、每一种计算和输出都应分成两个不同的函数进行处理(不能因简单而合成一个函数)。6、每个题目在设计类的同时,都要设计相应的成员变量、函数、构造函数、析构函数(如有必要)。7、必须上机调试通过。报告要求:1、选题要求与目的2、算法分析、流程图模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)3、源程序清单要包括相应的注释4、调试结果与调试数据5、程序中遇到的问题及解决方案(二) 课程实训时间安排1.分析设计准备阶段周一:上午:分组,分析题目,查阅资料;地点:教室、图书馆、机房。

6、 下午:需求分析:对给定的问题提出解决的办法和思路。运用抽象的方法设计类及实现算法。地点:机房。周二:设计题目:画出主要模块流程图,用UML图确定类之间的联系,用自顶向下的方法创建主程序和子程序,控制对象间的相互作用,编制源程序,形成分析报告。(指导教师将在第一次上机调试时抽查分析报告)(UML类图的描述参照有关资料,用类图描述程序中类与类之间的关系,模块图以传统流程图或NS流程图形式均可,这是课程实训报告书中主要内容之一)2.编程调试阶段周三:上机调试程序,不断完善程序及分析报告。课程实训中,每位同学一台微机进行上机调试。学生自备存储设备 :存储调试程序,最终调试程序及结果要求打印出来,附在

7、课程实训报告书相应位置处。3.总结报告和书写说明书阶段周四:编写课程实训报告(电子文档)课程实训报告书中:课程实训总结、参考文献,要独立一页。4.课程实训报告完成阶段周五:以组为单位上交课程实训报告,指导教师对每组课程实训报告给出评语及成绩(三)课程实训考核指标及方法考核方法1、 根据平时上机考勤;注重平时上机成绩,教师要不定期检查学生进度,学生不得以自己有私人电脑为借口而不来上机。2、 根据程序设计界面和运行结果。3、 根据C+语言课程实训报告描述和书写情况。4、 根据指导老师的指导情况和意见。以上四项缺一不可,否则不能到得相应学分。考核指标:优秀:严格遵守上机规则,独立完成作业;程序模块完

8、整,功能齐全,界面新颖独特;回答问题流利,有见解;上机报告认真、规范;程序代码要完整。良好:遵守上机规则,独立完成作业;程序模块完整,功能齐全;回答问题流利;上机报告认真、规范;程序代码要完整。中等:遵守上机规则,独立完成作业;程序模块完整,运行结果正确;回答问题流利;上机报告认真、规范;程序代码要完整。及格:遵守上机规则,独立完成作业;程序结果正确;答辩通过;上机报告认真规范。不及格:上机不认真;程序未调试完成或结果不正确;答辩未通过;上机报告不认真。(四)课程实训题目利用学到的编程知识和编程技巧,通过布置具有一定难度的程序设计题目,让学生自己到图书馆查阅资料或网上咨询独立完成程序的编写,并

9、能运用学过的技巧独立上机调试完成。 设计题目一:ShapeCircleDiamondSquare Cylinder设计一个基类Shape,派生出正方形Squar类,菱形Diamond类和圆形Circle类,再从圆形派生出圆柱体Cylinder类。使用相关编程方法求出各几何图形的周长、面积、体积。题目二 :设置一个学生成绩的基类Scor,该类中有学生的学号num、姓名nam和基础课数学math、语文chin成绩,并可算出基础课的最高成绩max_sco。设置一个计算机专业的派生类Comp,该类中有学生专业课的程序设计prog、数据库data成绩;设置一个建筑专业的派生类Buil,该类中有学生专业课

10、的建筑设计desi、材料学mater成绩;上述两个专业派生类都可算出各门专业课的成绩排序。 设置一个教务派生类Acad,该类中有不少于5人计算机专业学生的成绩和不少于5人建筑专业学生的成绩。 ScorCompBuil Acad设置一个专门计算成绩的类要求:输出每个学生的各门成绩,输出两个专业基础课的最高成绩, 输出两个专业各门专业课的平均成绩。(提示:可用虚基类、友元成员函数)题目三: ShapeTwoShapeThreeShape CircleRectangleBallRecVolume设计一个抽象图形类Shape(基类),提供两个纯虚函数;由Shape类派生出TwoShape二维图形类,增

11、加了两个数据成员(二维图形设有体积);再由Shape类派生出ThreeShape三维图形类,增加了三个数据成员;TwoShape类派生出Circle圆类和Rectangle矩形类;ThreeShape类派生出Ball球类和RecVolume长方体类。分别求出以上个图形的面积(或体积)。题目四:Post BookJourAuth Cul_pro1、设置一个邮局的基类Post,该类中有计算所寄印刷品prin的份数numb和计算所寄印刷品的邮寄费cost。2、设置一个书籍派生类Book,该类中有书名titl和出版社press, 该类通过邮局寄出书籍2本,输出邮寄费cost; 同时再设置一个作者派生类

12、Auth,该类中有姓名name和书号isbn,该类作为书籍派生类辅助类。3、设置一个期刊派生类Jour,该类中有期刊名称jou_na和期刊月份jou_mon, 该类通过邮局寄出期刊3本,输出输出邮寄费cost。4、设置一个文化品派生类Cul_pro,该类中要邮寄3本书和2本期刊, 在邮寄时要有寄出单位sen_un。 要求:输出每本书的作者名、书名、书号和出版社信息,输出每份期刊的名称和期刊月份信息,输出两种印刷品的各自的份数和邮寄费,输出两种印刷品的的总份数和总邮寄费。题目五:ShapeCircle BallTaperCylinder设计一个基类Shape,派生出圆形Circle类,再分别派生

13、出圆球类Ball,圆锥类Taper、圆柱类Cylinder使用相关编程方法求出圆的面积、其他几何图形的表面积和体积。题目六:employeetechniciansalesmanmanager salesmanager设计一个雇员类emplyee(基类),由基类派生出兼职技工类technician,再由基类派生出部门经理类manager、销售人员类salesman,由后两个类派生出销售经理salesmanager。1、technician的工资holy(工时费)woho(工时)2、manager的工资moly(月固定工资8000)3、salesman的工资sales(销售总额)com(绩效率0.

14、04)4、Salesmanager的工资moly(5000)salescom(0.005)求出各名雇员的工资。设计题目七:日期时间,时钟类的编制 ( 电子钟程序 )设计技术参数编写一个有关日期(年、月、日)和时间(时、分、秒)的程序。该程序建立三个类,其中一个是日期的类Date,一个是时间的类Time,另一个是日期和时间类DateTime,它是前面两个类为基类的派生类。 对每个类要分别编写默认构造函数与带有参数的构造函数以完成对象的初始化 设计好类中成员的访问控制属性 应提供相应函数能对类中数据成员进行设置与读取 在描述类的派生过程中,注意继承方式以下为类的主要结构(学生可以参考):(已知 t

15、ypedef char string8080;)Date类:包含数据成员 int Year,Month,Day; string80 Datestr ; / 利用年月日成员生成的字符串函数成员string80 & GetStringDate( ) / 取得一个字符串类型的日期void SetDate(int y,int m,int d) /设置日期函数Time类:包含数据成员int Hours,Minutes,Seconds; string80 Timestr;函数成员void SetTime(int h,int m,int s) / 设置当前时间string80 & GetStringTime

16、() / 取得一个字符串类型的时间日期和时间类DateTime string80 & GetStringDT() / 生成字符串 日期与时间设计题目八:日期类的编制 (万年历程序)设计技术参数设计一个日期类Date,包括年、月、日等私有数据成员。要求实现日期的基本运算,如一日期加上天数、一日期减去天数、两日期相差的天数等(假定输入日期数据是合法的,考虑闰年的情况)。 在Date类中设计如下重载运算符函数: Date operator+(int days); 返回一日期加一天数得到的日期 Date operator-(int days); 返回一日期减去天数得到的日期 int operator-

17、(Date &b); 返回两日期相差的天数 在实现这些重载运算符函数调用以下私有成员函数: leap(int); 判断指定的年份是否为闰年 dton(Date &); 将指定日期转换为从0年0月0日起的天数 ntod(int); 将指定的0年0月0日起的天数转换为对应的日期 数据成员为:int year,month,day;设计题目九:设计一个点类Point,实现点对象之间的各种运算 ( 平面直角座标系中点的运算)设计技术参数:Point类提供了4个运算符重载函数,以实现相应的运算。在Point类中设计如下重载运算符函数及相应成员函数: void offset(int,int); / 提供对点

18、的偏移 void offset(Point); / 重载,偏移量用Point类对象表示 bool operator=(Point); / 运算符重载,判断两个对象是否相同 bool operator!=(Point); / 运算符重载,判断两个对象是否不相同 void operator+=(Point); / 运算符重载,将两个点对象相加 void operator-=(Point); / 运算符重载,将两个点对象相减 int getx()return x; / 得到点座标x int gety()return y; / 得到点座标y void disp() / 显示点座标设计题目十:设计一个复

19、数类complex,实现点复数对象之间的加、减、乘运算 ( 复数的运算 )设计技术参数:complex类提供了3个运算符重载函数,以实现相应的运算u complex(double r=0.0,double i=0.0)/构造函数u complex operator + (complex c2);/运算符+重载成员函数u complex operator - (complex c2);/运算符-重载成员函数u complex operator * (complex c2);/运算符*重载成员函数u void display();/输出复数bool operator != (complex c2)

20、;/运算符!=重载成员函数bool operator = (complex c2);/运算符=重载成员函数 设计题目十一:虚基类的使用:(职工管理系统中的类的模型)设计技术参数设计一个虚基类base,包含姓名和年龄私有数据成员以及相关的成员函数,由它派生出领导类leader,包含职务和部门私有数据成员以及相关的成员函数。再由base派 生出工程师类engineer,包含职称和专业私有数据成员以及相关的成员函数。然后由ledaer和engineer类派生出主任工程师类chairman。采用一些数据进行测试。 由于chairman类从leader类和engineer类派生,而leader类和eng

21、ineer类都是从base类派生的,所以为了使base只存一个副本,必须采用虚拟派生的方法。 设计好类中成员的访问控制属性 应提供相应函数能对类中数据成员进行设置与读取 base 类结构 数据成员:char* name;/ 姓名 int age; / 年龄 函数成员:void setname(char na ) void setage(int a) char* getname( ) int getage() leader 类结构: 数据成员:char *job;/职务 char *dep;/部门 函数成员: void setjob(char jb )void setdep(char dp )

22、char *getjob( ) char *getdep( )engineer 类 与chairman类 学生按要求声明,类中应有对应成员函数对数据成员进行处理。设计题目十二:模板的使用: ( 通用排序程序的实现 )设计技术参数设计一个类模板Sample,包含具有Max个元素的任意类型一维数组的一维数组A。 其数据成员:T AMax; int n; / 数组A中现有n个元素已有值设计如下成员函数完成特定功能 Sample() / 构造函数 ,初始化A数组元素个数为0 void disp( ) ; / 输出A数组各元素的值 void SelectionSort ( ) ; / 选择排序算法对A数

23、组进行降序排序 void InsertionSort() ; / 插入排序算法对A数组进行升序排序 void getdata( ) ; / 用户输入数组A元素个数,并对各元素初始化设计题目十三:设计字符串类 MyString:(基本类型扩展字符串类)设计技术参数具有构造函数、析构函数、拷贝构造函数。重载运算符+、=、 、+=,尽可能地完善它,使之能满足各种需要设计题目十四:抽象类与纯虚函数的使用:( 各种图形的周长及面积计算程序实现 )设计技术参数shape 为抽象类函数。 其数据成员:double r;设计如下成员函数完成特定功能shape(double x) ; / 构造函数 virtua

24、l void area()=0; /纯虚函数 ,面积计算函数 virtual void peri()=0;/纯虚函数 ,周长计算函数要求:由类shape 派生出如下类 circle /声明一个圆派生类 square /声明一个正方形派生类ex_square /声明一个圆外切正方形派生类重新定义虚函数peri( )、area( )在上述三个类的版本,以实现在不同类中计算对应形状的周长与面积设计题目十五:队列的实现:(队列的实现)设计技术参数queue 为队列类模板。 其数据成员:Type size; Type start; Type end; Type *data;设计如下成员函数完成特定功能q

25、ueue( ); queue(Type n); / 构造函数 ,完成队列最大长度,初始队尾与队首指针,创建队列的操作 queue( ) / 析构函数,完成队列的清理工作,清理由堆内存分配的数据 void put(Type value); / 往队尾加入数据 Type get( ) ; / 从队首弹出数据 void clear(); / 清空队列 void ShowQueue(); / 显示队列中所有数据主函数的要以菜单形式,完成队列的各种操作设计题目十六:学生成绩管理系统:设计一个学生类,完成n个学生三门课成绩的录入,求平均分,及按平均分排序工作设计技术参数struct stud / 用于三门

26、课的结构体 int english ; int computer; int Chinese ; ; Student 类:数据成员 : stud cj; char name10; / 姓名 double average; / 平均分 static int count ; / 用于动态建立数组时,标志数组中元素个数 函数成员 : void getdata() ; / 用于当前对象的数据信息录入,并计算平均值 void disp() ; / 用于当前对象数据的显示 static void setcount(int x) count=x ; friend void sort( student a )

27、; /对于对象数组进行排序设计题目十七: 银行账户管理系统(单个账户的处理):设计一个账户类,能完成对单个账户的管理,包括存入,支取,显示历史交易记录(最多100条)设计技术参数类 Bank数据成员 :int top; / 最后交易记录指针char dateMax13; / 交易日期double moneyMax; / 交易金额double restMax; / 本次交易余额static double sum; / 最后余额函数成员:Bank() / 初始化个人账户记录 top=0void bankin(char d,double m) / 对应日期 存入金额void bankout(char

28、 d,double m) / 对应日期 支取金额void disp() / 个人账户历史交易记录 主函数应以菜单形式完成对一个账户的不同操作.设计题目十八:通信录(最大记录1000条):设计技术参数 类 txl数据成员 :int id; / 记录号 char name11; / 姓名char address50; / 住址 char tel13; / 电话char mail15;/ 邮箱 char qq12 ; / qq 号函数成员:txl( ) / 构造函数,初始化各项参数 / 设置各项数据 void setid( int id1) id=id1 ; void setadd( char *a

29、dd ) strcpy(address,add) ; void setname(char *na ) strcpy (name,na); void settel(char *tele) strcpy(tel,tele); void setmail(char * maill) strcpy(mail,maill); void setqqid(char *qqid) strcpy(qq,qqid); / 读取各项数据 int getid() return id ; char * getname( ) return name ; char * getaddr( ) return address ;c

30、har * gettel () return tel ; char * getmail() return mail ; char * getqq() return qq ; int static gettop() return top ; / 数据输入函数 friend void input(txl &p) ; / 用于本对象数据的输入 friend void disp(txl &p) ; / 用于本对象数据的显示主函数应以菜单形式完成对通信录的录入及显示操作,有能力的同学完善删除操作,本程序是用对象数组完成的,所以数据不能保存到下一次(如加上文件操作更好,从文件中读入数据至数组,将数组中数据

31、写入文件最好)设计题目十九:人员信息管理系统:设计技术参数 设计一个职员类 ,技术人员类,推销员类、经理类、销售经理类。仔细设计各类之间继承与派生的关系,设计各自的成员函数,注意虚函数的使用及类多态性。设计题目二十:链表类的实现:设计技术参数 从键盘输入10个整形数据,用这些数据作为结点数据,生成链表,按照顺序生成链表。然后从键盘输入一个待查询的值,如找到则删除该整数所在的结点(如果出现多次,全部删除),然后输出删除后的链表的值。(注:抽到本题目的学生,结合数据结构中关于链表的相关知识点,用c+模板建立链表类,来完成对链表的各种操作,主要工作在于分析程序,了解程序每一部分的含义)设计题目二十一:栈类的实现(计算器程序):设计技术参数 实现一个简单的计算器,能够进行加、减、乘、除及乘方运算。详细说明(注:抽到本题目的学生,结合数据结构与C+中关于栈的相关知识点,用c+模板建立栈类,来完成对栈的各种操作,主要工作在于分析程序,了解程序每一部分的含义)

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!