c 实训计划书.doc_第1页
c 实训计划书.doc_第2页
c 实训计划书.doc_第3页
c 实训计划书.doc_第4页
c 实训计划书.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

c 实训计划书 南昌理工学院Nanchang Instituteof Technology课程实训计划书系部计算机信息工程适应专业计算机科学与技术、软件工程、网络工程适应班级级软件工程、班、实训课程面向对象程序设计语言计划制定人宋庆忠实训地点实验楼实训日期年月日年月日计算机信息工程学院年月I目录 一、课程实训目的 二、基本要求 三、指导教师安排 四、课程实训环节安排 五、课程实训任务(一)课程实训要求及内容(二)课程实训考核指标及方法(三)课程实训题目题目一计算几何图形题目二学生的各门成绩和专业成绩题目三用虚函数求几何面积题目四邮寄物品费用题目五继承下的几何面积题目六雇员工资题目七日期时间,时钟类的编制(电子钟程序)题目八日期类的编制(万年历程序)题目九设计一个点类Point,实现点对象之间的各种运算(平面直角座标系中点的运算)题目十设计一个复数类 plex,实现点复数对象之间的加、减、乘运算(复数的运算)题目十一虚基类的使用(职工管理系统中的类的模型)题目十二模板的使用(通用排序程序的实现)题目十三设计字符串类MyString(基本类型扩展字符串类)题目十四抽象类与纯虚函数的使用(各种图形的周长及面积计算程序实现)题目十五队列的实现(队列的实现)题目十六学生成绩管理系统题目十七银行账户管理系统(单个账户的处理)II题目十八通信录(最大记录1000条)题目十九人员信息管理系统题目二十链表类的实现题目二十一栈类的实现(计算器程序)1面向对象程序设计语言课程实训计划书 一、课程实训目的根据所学C+“基类”、“派生类”、“虚基类”、“多态继承”、“虚函数”等面向对象程序设计的相关知识和多重继承关系、继承权限、赋值兼容的定义与使用规则,进行相应的程序设计训练,在实训编题过程中要尽量把已学的C+知识应用到编程的实际使用中去,熟悉、掌握这些知识在程序中的运行、调用机理和实现方法。 通过训练对如何进行面向对象程序设计的方式方法有一个更深入的理解和认识,进一步巩固C+程序设计的基本知识和实现方法。 二、基本要求要求学生认真对待本次课程实训,积极利用机房、网络资源,熟练掌握程序设计的方法和C+语言基本技能进行实训操作,具备一定的程序设计能力。 在课程实训中听从指导教师的安排,认真完成老师布置的各项任务,并以小组为单位,上交课程实训报告。 三、指导教师安排指导教师宋庆忠 四、课程实训环节安排班级时间指导教师12软件工程1班第15周宋庆忠12软件工程2班第16周宋庆忠2 五、课程实训任务(一)课程实训要求及内容设计要求 1、可自己选定一题目,可以自由搭配,最多4人一组。 2、模块化程序设计。 3、锯齿型书写格式。 4、本次实训各题都有可能不同程度地使用到虚基类、虚函数、纯虚函数和抽象类等相关技术。 5、每一种计算和输出都应分成两个不同的函数进行处理(不能因简单而合成一个函数)。 6、每个题目在设计类的同时,都要设计相应的成员变量、函数、构造函数、析构函数(如有必要)。 7、必须上机调试通过。 报告要求 1、选题要求与目的 2、算法分析、流程图模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等) 3、源程序清单要包括相应的注释 4、调试结果与调试数据 5、程序中遇到的问题及解决方案(二)课程实训时间安排1.分析设计准备阶段周一上午分组,分析题目,查阅资料;地点教室、图书馆、机房。 下午需求分析:对给定的问题提出解决的办法和思路。 运用抽象的方法设计类及实现算法。 地点机房。 周二设计题目画出主要模块流程图,用UML图确定类之间的联系,用自顶向下的方法创建主程序和子程序,控制对象间的相互作用,编制源程序,形成分析报告。 (指导教师将在第一次上机调试时抽3查分析报告)(UML类图的描述参照有关资料,用类图描述程序中类与类之间的关系,模块图以传统流程图或NS流程图形式均可,这是课程实训报告书中主要内容之一)2.编程调试阶段周三上机调试程序,不断完善程序及分析报告。 课程实训中,每位同学一台微机进行上机调试。 学生自备存储设备存储调试程序,最终调试程序及结果要求打印出来,附在课程实训报告书相应位置处。 3.总结报告和书写说明书阶段周四编写课程实训报告(电子文档)课程实训报告书中课程实训总结、参考文献,要独立一页。 4.课程实训报告完成阶段周五以组为单位上交课程实训报告,指导教师对每组课程实训报告给出评语及成绩(三)课程实训考核指标及方法考核方法 1、根据平时上机考勤;注重平时上机成绩,教师要不定期检查学生进度,学生不得以自己有私人电脑为借口而不来上机。 2、根据程序设计界面和运行结果。 3、根据C+语言课程实训报告描述和书写情况。 4、根据指导老师的指导情况和意见。 以上四项缺一不可,否则不能到得相应学分。 考核指标优秀严格遵守上机规则,独立完成作业;程序模块完整,功能齐全,界面新颖独特;回答问题流利,有见解;上机报告认真、规范;程序代码要完整。 良好遵守上机规则,独立完成作业;程序模块完整,功能齐全;回答问题流利;上机报告认真、规范;程序代码要完整。 中等遵守上机规则,独立完成作业;程序模块完整,运行结果正确;回答问题流利;上机报告认真、规范;程序代码要完整。 4及格遵守上机规则,独立完成作业;程序结果正确;答辩通过;上机报告认真规范。 不及格上机不认真;程序未调试完成或结果不正确;答辩未通过;上机报告不认真。 (四)课程实训题目利用学到的编程知识和编程技巧,通过布置具有一定难度的程序设计题目,让学生自己到图书馆查阅资料或网上咨询独立完成程序的编写,并能运用学过的技巧独立上机调试完成。 设计题目一设计一个基类Shape,派生出正方形Squar类,菱形Diamond类和圆形Circle类,再从圆形派生出圆柱体Cylinder类。 使用相关编程方法求出各几何图形的周长、面积、体积。 题目二设置一个学生成绩的基类Scor,该类中有学生的学号num、姓名nam和基础课数学math、语文chin成绩,并可算出基础课的最高成绩max_sco。 设置一个计算机专业的派生类Comp,该类中有学生专业课的程序设计prog、数据库data成绩;设置一个建筑专业的派生类Buil,该类中有学生专业课的建筑设计desi、材料学mater成绩;上述两个专业派生类都可算出各门专业课的成绩排序。 Shape CircleDiamond SquareCylinder5设置一个教务派生类Acad,该类中有不少于5人计算机专业学生的成绩和不少于5人建筑专业学生的成绩。 要求输出每个学生的各门成绩,输出两个专业基础课的最高成绩,输出两个专业各门专业课的平均成绩。 (提示可用虚基类、友元成员函数)题目三设计一个抽象图形类Shape(基类),提供两个纯虚函数;由Shape类派生出TwoShape二维图形类,增加了两个数据成员(二维图形设有体积);再由Shape类派生出ThreeShape三维图形类,增加了三个数据成员;TwoShape类派生出Circle圆类和Rectangle矩形类;ThreeShape类派生出Ball球类和RecVolume长方体类。 分别求出以上个图形的面积(或体积)。 Scor CompBuil Acad设置一个专门计算成绩的类Shape TwoShapeThreeShapeCircle RectangleBall RecVolume6题目四 1、设置一个邮局的基类Post,该类中有计算所寄印刷品prin的份数numb和计算所寄印刷品的邮寄费cost。 2、设置一个书籍派生类Book,该类中有书名titl和出版社press,该类通过邮局寄出书籍2本,输出邮寄费cost;同时再设置一个作者派生类Auth,该类中有姓名name和书号isbn,该类作为书籍派生类辅助类。 3、设置一个期刊派生类Jour,该类中有期刊名称jou_na和期刊月份jou_mon,该类通过邮局寄出期刊3本,输出输出邮寄费cost。 4、设置一个文化品派生类Cul_pro,该类中要邮寄3本书和2本期刊,在邮寄时要有寄出单位sen_un。 要求输出每本书的作者名、书名、书号和出版社信息,输出每份期刊的名称和期刊月份信息,输出两种印刷品的各自的份数和邮寄费,输出两种印刷品的的总份数和总邮寄费。 题目五Post BookJour AuthCul_pro ShapeCircle7设计一个基类Shape,派生出圆形Circle类,再分别派生出圆球类Ball,圆锥类Taper、圆柱类Cylinder使用相关编程方法求出圆的面积、其他几何图形的表面积和体积。 题目六设计一个雇员类emplyee(基类),由基类派生出兼职技工类technician,再由基类派生出部门经理类manager、销售人员类salesman,由后两个类派生出销售经理salesmanager。 1、technician的工资holy(工时费)woho(工时) 2、manager的工资moly(月固定工资8000) 3、salesman的工资sales(销售总额)(绩效率0.04) 4、Salesmanager的工资moly (5000)sales(0.005)求出各名雇员的工资。 设计题目七日期时间,时钟类的编制(电子钟程序)设计技术参数Ball TaperCylinder employeetechniciansalesman managersalesmanager8编写一个有关日期(年、月、日)和时间(时、分、秒)的程序。 该程序建立三个类,其中一个是日期的类Date,一个是时间的类Tim e,另一个是日期和时间类DateTim e,它是前面两个类为基类的派生类。 ?对每个类要分别编写默认构造函数与带有参数的构造函数以完成对象的初始化?设计好类中成员的访问控制属性?应提供相应函数能对类中数据成员进行设置与读取?在描述类的派生过程中,注意继承方式以下为类的主要结构(学生可以参考)(已知typedef charstring8080;)Date类包含数据成员int Year,Month,Day;string80Datestr;/利用年月日成员生成的字符串函数成员string80&GetStringDate()/取得一个字符串类型的日期void SetDate(int y,int m,int d)/设置日期函数Tim e类包含数据成员int Hours,Minutes,Seconds;string80Tim estr;函数成员void SetTime(int h,int m,int s)/设置当前时间string80&GetStringTim e()/取得一个字符串类型的时间日期和时间类DateTim estring80&GetStringDT()/生成字符串日期与时间设计题目八日期类的编制(万年历程序)9设计技术参数设计一个日期类Date,包括年、月、日等私有数据成员。 要求实现日期的基本运算,如一日期加上天数、一日期减去天数、两日期相差的天数等(假定输入日期数据是合法的,考虑闰年的情况)。 ?在Date类中设计如下重载运算符函数?Date operator+(int days);返回一日期加一天数得到的日期?Date operator-(int days);返回一日期减去天数得到的日期?int operator-(Date&b);返回两日期相差的天数?在实现这些重载运算符函数调用以下私有成员函数?leap(int);判断指定的年份是否为闰年?dton(Date&);将指定日期转换为从0年0月0日起的天数?ntod(int);将指定的0年0月0日起的天数转换为对应的日期?数据成员为int year,m onth,day;设计题目九设计一个点类Point,实现点对象之间的各种运算(平面直角座标系中点的运算)设计技术参数Point类提供了4个运算符重载函数,以实现相应的运算。 在Point类中设计如下重载运算符函数及相应成员函数?void offset(int,int);/提供对点的偏移?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()/显示点座标10设计题目十设计一个复数类 plex,实现点复数对象之间的加、减、乘运算(复数的运算)设计技术参数 plex类提供了3个运算符重载函数,以实现相应的运算? plex(double r=0.0,double i=0.0)/构造函数? plexoperator+( plexc2);/运算符+重载成员函数? plexoperator-( plexc2);/运算符-重载成员函数? plexoperator*( plexc2);/运算符*重载成员函数?void display();/输出复数bool operator!=( plexc2);/运算符!=重载成员函数bool operator=( plexc2);/运算符=重载成员函数设计题目十一虚基类的使用(职工管理系统中的类的模型)设计技术参数设计一个虚基类base,包含姓名和年龄私有数据成员以及相关的成员函数,由它派生出领导类leader,包含职务和部门私有数据成员以及相关的成员函数。 再由base派生出工程师类engineer,包含职称和专业私有数据成员以及相关的成员函数。 然后由ledaer和engineer类派生出主任工程师类chairm an。 采用一些数据进行测试。 由于chairm an类从leader类和engineer类派生,而leader类和engineer类都是从base类派生的,所以为了使base只存一个副本,必须采用虚拟派生的方法。 ?设计好类中成员的访问控制属性?应提供相应函数能对类中数据成员进行设置与读取?base类结构数据成员char*nam e;/姓名int age;/年龄函数成员void setname(char na)void setage(int a)11char*getnam e()int getage()leader类结构数据成员char*job;/职务char*dep;/部门函数成员void setjob(char jb)void setdep(char dp)char*getjob()char*getdep()engineer类与chairm an类学生按要求声明,类中应有对应成员函数对数据成员进行处理。 设计题目十二模板的使用(通用排序程序的实现)设计技术参数设计一个类模板Sam ple,包含具有Max个元素的任意类型一维数组的一维数组A。 其数据成员T AMax;int n;/数组A中现有n个元素已有值设计如下成员函数完成特定功能?Sam ple()/构造函数,初始化A数组元素个数为0?void disp();/输出A数组各元素的值?void SelectionSort();/选择排序算法对A数组进行降序排序?void InsertionSort();/插入排序算法对A数组进行升序排序?void getdata();/用户输入数组A元素个数,并对各元素初始化设计题目十三设计字符串类MyString(基本类型扩展字符串类)12设计技术参数具有构造函数、析构函数、拷贝构造函数。 重载运算符+、=、+=,尽可能地完善它,使之能满足各种需要设计题目十四抽象类与纯虚函数的使用(各种图形的周长及面积计算程序实现)设计技术参数shape为抽象类函数。 其数据成员double r;设计如下成员函数完成特定功能shape(double x);/构造函数virtual voidarea()=0;/纯虚函数,面积计算函数virtual voidperi()=0;/纯虚函数,周长计算函数要求由类shape派生出如下类circle/声明一个圆派生类square/声明一个正方形派生类ex_square/声明一个圆外切正方形派生类重新定义虚函数peri()、area()在上述三个类的版本,以实现在不同类中计算对应形状的周长与面积设计题目十五队列的实现(队列的实现)设计技术参数queue为队列类模板。 其数据成员Type size;Type start;Type end;Type*data;设计如下成员函数完成特定功能13queue();queue(Type n);/构造函数,完成队列最大长度,初始队尾与队首指针,创建队列的操作queue()/析构函数,完成队列的清理工作,清理由堆内存分配的数据void put(Type value);/往队尾加入数据Type get();/从队首弹出数据void clear();/清空队列void ShowQueue();/显示队列中所有数据主函数的要以菜单形式,完成队列的各种操作设计题目十六学生成绩管理系统设计一个学生类,完成n个学生三门课成绩的录入,求平均分,及按平均分排序工作设计技术参数struct stud/用于三门课的结构体int english;int puter;int Chinese;Student类数据成员:stud cj;char name10;/姓名double average;/平均分static intcount;/用于动态建立数组时,标志数组中元素个数函数成员:void getdata();/用于当前对象的数据信息录入,并计算平均值void disp();/用于当前对象数据的显示14static voidsetcount(int x)count=x;friend voidsort(student a);/对于对象数组进行排序设计题目十七银行账户管理系统(单个账户的处理)设计一个账户类,能完成对单个账户的管理,包括存入,支取,显示历史交易记录(最多100条)设计技术参数类Bank数据成员:int top;/最后交易记录指针char dateMax13;/交易日期double moneyMax;/交易金额double restMax;/本次交易余额static doublesum;/最后余额函数成员:Bank()/初始化个人账户记录top=0void bankin(char d,double m)/对应日期存入金额void bankout(char d,double m)/对应日期支取金额void disp()/个人账户历史交易记录主函数应以菜单形式完成对一个账户的不同操作.设计题目十八通信录(最大记录1000条)设计技术参数类txl数据成员:int id;/记录号char name11;/姓名char address50;/住址char tel13;/电话15char mail15;/邮箱char qq12;/qq号函数成员:txl()/构造函数,初始化各项参数/设置各项数据void setid(int id1)id=id1;void setadd(char*add)strcpy(address,add);void setname(char*na)strcpy(name,na);void sette

温馨提示

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

评论

0/150

提交评论