您的位置:百味书屋 > 范文大全 > 经典范文 > 实训总结报告 正文 本文移动端:实训总结报告

实训总结报告

2018-10-08 16:48:07 来源网站: 百味书屋

实训总结报告

----《面向对象程序设计

  实训的目的与系统概述

  1、目的:

  (1)掌握面向对象设计开发的基本思想和方法,培养学生在已有的知识基础上进一步获取新知识的能力,提高分析问题和解决问题的能力。

  (2)进一步巩固《面向对象程序设计》课程中所学到的知识,熟练掌握C++语言程序设计,加强对VC++编程环境的使用能力,掌握VC++编程环境中的调试功能,增强实际编程能力。

  (3)培养和提高逻辑思维、抽象思维和统筹规划能力,培养独立完成程序设计开发的工作能力。为今后从事专业性软件开发工作打下基础。

  2、 功能


  通过将不同类型的人员设计成相应的类,完成的学校人员的管理。

  3、 系统概述

  学校的人员包括学生、职工;职工又分为教师和行政人员;在职进修教师又具备学生和教师的属性和行为。

  a) 人员具有姓名、年龄、性别、地址和人员类别等属性,有显示属性的功能和设置属性的功能。

  b) 学生具有人员的属性和行为,此外,添加学号、成绩属性。具有的行为有:设置属性的函数:让用户能够通过键盘的输入设置除了成绩之外的基本属性;录入成绩:输入学生的各门成绩;显示:显示基本属性和他的平均成绩。

  c) 职工具有人员的属性和行为,此外,添加职工号、职称和工资属性。

  d) 教师具有职工的属性和行为,此外,添加教研室、教授的课程属性。具有的行为有:设置属性的函数:让用户能够通过键盘的输入设置除了课程信息之外的基本属性;录入课程:输入教师所教的各门成绩;显示:显示基本属性。

  e) 行政人员具有职工的属性和行为,此外,添加办公室属性。

  f) 在职进修教师具有教师与学生的属性和行为,此外,添加进修时间,工作单位属性。

  通过实现此系统,让我综合运用所学知识,掌握面向对象设计开发的基本思想和方法和C++的编程思想来完成简单的面向对象的程序设计。让我在已有的知识基础上进一步获取新知识的能力,提高分析问题、解决问题和独立完成程序设计开发的工作能力。为今后从事专业性软件开发工作打下基础。


  类的实现

  编程实现上面类的设计。

  主程序中的验证

  创建对象,检验类的功能是否能够实现。


  总结

  1、遇到的困难、解决办法及收获:

  ①各类属性的实现。

  利用对象数组即方便又能固定调用哪个属性。在构造函数中定义属性类型,利用对象数组调用。

  ②对象数组中字符串的赋值。

  分配(new实现)一个char型变量长度加一的字符串,再利用拷贝函数拷贝原变量并放在name里,如:

  name=new char[strlen(na)+1];strcpy(name,na);

  ③因为没有给原带参构造函数的形参赋值,主函数中不能声明类的无参对象。

  在定义一个无参构造函数,如:

  person(){}

  ④在派生类带参构造函数与基类带参构造函数所带参数不同时没有对基类构造函数的参数初始化。

  构造函数无法被继承,当派生类带参构造函数与基类带参构造函数所带参数不同时,要在派生类构造函数中对基类构造函数的参数进行初始化,如:

  worker(int num,char *v,int p,char *na,int a,char *s,char *ad,char *l):person(na,a,s,ad,l){}

  ⑤平均分的实现。

  利用对象数组正确调用分数属性再利用返回值为float的成员函数实现平均分,如:

  float getaverage(student st[],int i){

  int a=st[i].mathscore;

  int b=st[i].cscore;

  return st[i].average=(a+b)/2;}

  ⑥正确输入和调用属性。

  利用p[n].属性名实现属性的各种行为,如:

  cin>>p[n+1].age;

  cout<<"姓名:"<<p[n].name<<endl;

  ⑦switch语句总执行完一个case后还继续执行。

  加入break语句跳出switch语句。

  2、 程序中还需要改进的地方。

  姓名,年龄,地址等属性限制的实现。


附件:源程序
#include <iostream.h>
#include <string>
using namespace std;
class person{
protected:
       char *name;
       int age;
       char *sex;
       char *address;
       char *lb;
public:
       person(char *na,int a,char *s,char *ad,char *l){//对象数组
              name=new char[strlen(na)+1];
              strcpy(name,na);
              age=a;
              sex=new char[strlen(s)+1];
              strcpy(sex,s);
              address=new char[strlen(ad)+1];
              strcpy(address,ad);
              lb=new char[strlen(l)+1];
              strcpy(lb,l);}
       person(){}//无参构造函数,方便声明无参对象
       virtual void getinf(person p[],int n){
              char na1[128];
              cout<<"姓名:";
              cin>>na1;
              p[n].name=new char[strlen(na1)+1];//分配na1长度+1的字符串
              strcpy(p[n].name,na1);//拷贝字符串
              cout<<endl;
              cout<<"年龄:";
              cin>>p[n+1].age;
              cout<<endl;
        char s1[2];
              cout<<"性别:(n:男,w:女)";
              cin>>s1;
              p[n+2].sex=new char[strlen(s1)+1];
              strcpy(p[n+2].sex,s1);
              cout<<endl;
              char ad1[128];
              cout<<"地址:";
              cin>>ad1;
              p[n+3].address=new char[strlen(ad1)+1];
              strcpy(p[n+3].address,ad1);
              cout<<endl;
}
       virtual void disp(person p[],int n){//有参虚函数,对象数组输出的事现
              cout<<"姓名:"<<p[n].name<<endl;
              cout<<"年龄:"<<p[n+1].age<<endl;
              cout<<"性别:"<<p[n+2].sex<<endl;
              cout<<"地址:"<<p[n+3].address<<endl;}
};
class student:public virtual person
{
protected:
       int number;
       int mathscore,cscore;
       float average;
public:
       student(int nu,int ms,int cs,float av,char *na,int a,char *s,char *ad,char *l):person(na,a,s,ad,l){//构造函数无法被继承,在派生类构造函数带参数与基类构造函数所带参数不同时要先对基类构造函数初始化
              number=nu;mathscore=ms;cscore=cs;average=av;}
       student(){}
       virtual void getvalue(student st[],int i){
              cout<<"学号:";
              cin>>st[i].number;
              cout<<endl;}
       void getscore(student st[],int i){
              cout<<"数学成绩:";
              cin>>st[i].mathscore;
              cout<<endl;
              cout<<"C++成绩:";
              cin>>st[i].cscore;
              cout<<endl;}
       float getaverage(student st[],int i){//平均分的实现
              int a=st[i].mathscore;
              int b=st[i].cscore;
              return st[i].average=(a+b)/2;}
       void show(student st[],int i){
              cout<<"学号:"<<st[i].number<<endl;
       }
       virtual void show1(student st[],int i){
              st[i].show(st,i);
              cout<<"数学成绩:"<<st[i].mathscore<<endl;
              cout<<"C++成绩:"<<st[i].cscore<<endl;
              st[i].getaverage(st,i);
              cout<<"平均成绩:"<<st[i].average<<endl;
       }
};
class worker:public virtual person
{
protected:
       int number;
       float pay;
       char *value;
public:
       worker(int num,char *v,int p,char *na,int a,char *s,char *ad,char *l):person(na,a,s,ad,l){
              number=num;
              value=new char[strlen(v)+1];
              strcpy(value,v);
              pay=p;}
       worker(){}
       void getvalue(worker w[],int i){
              cout<<"职工号:";
              cin>>w[i].number;
              cout<<endl;
              char v1[128];
              cout<<"职称:";
              cin>>v1;
              w[i].value=new char[strlen(v1)+1];
              strcpy(w[i].value,v1);
              cout<<endl;
              cout<<"工资:";
              cin>>w[i].pay;
              cout<<endl;
              }
       void show(worker w[],int i){
              cout<<"职工号:"<<w[i].number<<endl;
              cout<<"职称:"<<w[i].value<<endl;
              cout<<"工资:"<<w[i].pay<<endl;
              }
};
class teacher:public virtual worker,public virtual person{
protected:
       char *kemu;
       int chengji;
       char *office;
public:
       teacher(char *of,char *ke,int ch,int num,char *v,int p,char *na,int a,char *s,char *ad,char *l):worker(num,v,p,na,a,s,ad,l),person(na,a,s,ad,l){
              office=new char[strlen(of)+1];
              strcpy(office,of);
              kemu=new char[strlen(ke)+1];
              strcpy(kemu,ke);
              chengji=ch;}
       teacher(){}
       void getmessage(teacher t[],int i) {
              char of1[128];
              cout<<"教研室:";
              cin>>of1;
              t[i].office=new char[strlen(of1)+1];
              strcpy(t[i].office,of1);
              cout<<endl;
              char ke1[128];
              cout<<"科目:";
              cin>>ke1;
              t[i].kemu=new char[strlen(ke1)+1];
              strcpy(t[i].kemu,ke1);
              cout<<endl;
              cout<<"成绩:";
              cin>>t[i].chengji;
              cout<<endl;
              }
       void show1(teacher t[],int i){
              cout<<"教研室:"<<t[i].office<<endl;
              cout<<"科目:"<<t[i].kemu<<endl;
              cout<<"成绩:"<<t[i].chengji<<endl;
              }
};
class employee:public virtual worker,public virtual person{
private:
       char *office;
public:
       employee(char *of,int num,char *v,int p,char *na,int a,char *s,char *ad,char *l):worker(num,v,p,na,a,s,ad,l),person(na,a,s,ad,l){
              office=new char[strlen(of)+1];
              strcpy(office,of);
              }
       employee(){}
void getmessage(employee e[],int i) {
              char of1[128];
              cout<<"教研室:";
              cin>>of1;
              e[i].office=new char[strlen(of1)+1];
              strcpy(e[i].office,of1);
              cout<<endl;
              }
       void show1(employee e[],int i){
              cout<<"教研室:"<<e[i].office<<endl;
              }
};
class jingx:public virtual student,public virtual teacher,public virtual worker,public virtual person{
private:
       int time;
       char *danwei;
public:
       jingx(int ti,char *da,int nu,int ms,int cs,float av,char *of,char *ke,int ch,int num,char *v,int p,char *na,int a,char *s,char *ad,char *l):student(nu,ms,cs,av,na,a,s,ad,l),teacher(of,ke,ch,num,v,p,na,a,s,ad,l),worker(num,v,p,na,a,s,ad,l),person(na,a,s,ad,l){
              time=ti;
              danwei=new char[strlen(da)+1];
              strcpy(danwei,da);}
       jingx(){}
       void getmessage1(jingx j[],int i){
              cout<<"进修时间:";
              cin>>j[i].time;
              cout<<endl;
              char da1[128];
              cout<<"单位属性:";
              cin>>da1;
              j[i].danwei=new char[strlen(da1)+1];
              strcpy(j[i].danwei,da1);
              cout<<endl;
              }
       void show2(jingx j[],int i) {
              cout<<"进修时间:"<<j[i].time<<endl;
              cout<<"单位属性:"<<j[i].danwei<<endl;
              }
};
int i;
person p[1];    student st[1];   worker wo[1];  teacher te[1];  employee em[1];  jingx jx[1];
void main(){
       cout<<"请选择人员类别:"<<endl;
       cout<<"1、普通人 2、学生 3、学生及成绩 4、员工 5、教师 6、行政人员 7、在职进修教师"<<endl;
       cin>>i;
       cout<<"请依次录入信息"<<endl;
       switch(i){//录入信息种类选择的实现
       case 1:{
              p[1].getinf(p,1);
              cout<<"*************************************"<<endl;
              p[1].disp(p,1);
              break;}//要有break语句否则将执行case2
       case 2:{
              st[1].getvalue(st,1);
              p[1].getinf(p,1);
              cout<<"*************************************"<<endl;
              st[1].show(st,1);
              p[1].disp(p,1);
              break;}
       case 3:{
              st[1].getvalue(st,1);
              p[1].getinf(p,1);
              st[1].getscore(st,1);
              cout<<"*************************************"<<endl;
              st[1].show1(st,1);
              p[1].disp(p,1);
              break;}
       case 4:{
              wo[1].getvalue(wo,1);
              p[1].getinf(p,1);
              cout<<"*************************************"<<endl;
              wo[1].show(wo,1);
              p[1].disp(p,1);
              break;}
       case 5:{
              te[1].getmessage(te,1);
              p[1].getinf(p,1);
              wo[1].getvalue(wo,1);
              cout<<"*************************************"<<endl;
              te[1].show1(te,1);
              p[1].disp(p,1);
              wo[1].show(wo,1);
              break;}
       case 6:{
              em[1].getmessage(em,1);
              p[1].getinf(p,1);
              wo[1].getvalue(wo,1);
              cout<<"*************************************"<<endl;
              em[1].show1(em,1);
              p[1].disp(p,1);
              wo[1].show(wo,1);
              break;}
       case 7:{
              jx[1].getmessage1(jx,1);
              te[1].getmessage(te,1);
              st[1].getvalue(st,1);
              wo[1].getvalue(wo,1);
              p[1].getinf(p,1);
              st[1].getscore(st,1);
              cout<<"*************************************"<<endl;
              jx[1].show2(jx,1);
              p[1].disp(p,1);
              te[1].show1(te,1);
              wo[1].show(wo,1);
              st[1].show1(st,1);
                 break;}
       default :
              cout<<"输入错误!"<<endl;
}
 
}

实训总结报告》出自:百味书屋
链接地址:http://www.850500.com/news/182677.html
转载请保留,谢谢!
查看更多相关内容>>实训总结报告
相关文章
  • 工作思路范文

    工作思路范文工作思路范文关于工作思路和设想怎么写工作思路就是你的工作方法和方向,如何完成工作的计划; 而设想也就是期望,你期望你能将工作或者是你的职业如何完善? 设想犹...

  • 公司经营情况怎么写

    公司经营情况说明经营情况说明一.基本情况:洛格灯饰是有湖北省恩施市工商行政管理局批准并于2011年6月11日在该局登记注册为私营个体户企业注册地址为:湖北恩市凤凰城限高线金家...

  • 档案,专项核查,工作汇报

    关于档案工作检查情况报告(2015)关于档案工作检查情况报告(通报)为掌握杨浦军休系统档案工作现状,军休中心分管档案工作负责人携中心综合办主任和一名工作人员于7月22日、7月24...

  • 社会调查总体方案

    设计一个简单的社会调查研究总体方案的提示自定题目、内容,设计一个简单的社会调查研究总体方案。(提示:定性、定量研究方案皆可;文字不必太多,但方案项目要完整、清晰。)1、...

  • 产业扶贫典型材料

    xx县产业化扶贫示范县典型材料xx县农业开发扶贫办公室关于产业化扶贫示范县的典型材料2011年12月xx县地处xxx流域,辖?镇?乡?个行政村,总面积?平方公里,人口?万,xxxx年被确定为...

  • 巡视工作整改方案

    环保局落实市委巡视组反馈意见的整改方案市环保局落实市委巡视组反馈意见的整改方案按照市委的统一安排,今年3月×日至4月×日,市委第二巡视组对我局进行了巡视。5月×日上午,市...

  • 公司运营情况说明

    公司经营情况说明经营情况说明一.基本情况:洛格灯饰是有湖北省恩施市工商行政管理局批准并于2011年6月11日在该局登记注册为私营个体户企业注册地址为:湖北恩市凤凰城限高线金家...

  • 向心力實驗報告

    向心力研究实验报告课程名称:中学物理实验研究课程论文题目:向心力研究姓名:黄珊学号:2014000135所在学院:教师教育学院专业:物理行知班任课教师:王凤兰实验十二向心力研究...

  • 餐费超标整改

    关于我院次均费用超标准的整改措施关于我院次均费用超标准的整改措施现针对我院次均住院费用超标做出以下措施,请各科室遵照执行:1、各科室严格按照泸州市医疗价格进行收费,杜绝...

  • 课题开题论证组意见

    开题报告论证意见表附件二:开题报告论证意见表课题开题论证意见课题开题论证意见开题论证意见格式及要求《新时期中小学家庭教育立德树人的综合研究》子课题开题论证意见格式及要...

推荐范文