<dd id="saiiy"></dd>
  1. <s id="saiiy"></s>

    1. <s id="saiiy"></s>
      1. <span id="saiiy"><blockquote id="saiiy"></blockquote></span>

        實(shí)訓總結報告

        發(fā)布時(shí)間:2025-06-10 09:10:35   來(lái)源:作文大全    點(diǎn)擊:   
        字號:

        ----《面向對象程序》

          實(shí)訓的目的與系統概述

          1、目的:

          (1)掌握面向對象設計開(kāi)發(fā)的基本思想和方法,培養學(xué)生在已有的知識基礎上進(jìn)一步獲取新知識的能力,提高分析問(wèn)題和解決問(wèn)題的能力。

          (2)進(jìn)一步鞏固《面向對象程序設計》課程中所學(xué)到的知識,熟練掌握C++語(yǔ)言程序設計,加強對VC++編程環(huán)境的使用能力,掌握VC++編程環(huán)境中的調試功能,增強實(shí)際編程能力。

          (3)培養和提高邏輯思維、抽象思維和統籌規劃能力,培養獨立完成程序設計開(kāi)發(fā)的工作能力。為今后從事專(zhuān)業(yè)性軟件開(kāi)發(fā)工作打下基礎。

          2、 功能


          通過(guò)將不同類(lèi)型的人員設計成相應的類(lèi),完成的人員的管理。

          3、 系統概述

          學(xué)校的人員包括學(xué)生、職工;職工又分為教師和行政人員;在職進(jìn)修教師又具備學(xué)生和教師的屬性和行為。

          a) 人員具有姓名、年齡、性別、地址和人員類(lèi)別等屬性,有顯示屬性的功能和設置屬性的功能。

          b) 學(xué)生具有人員的屬性和行為,此外,添加學(xué)號、成績(jì)屬性。具有的行為有:設置屬性的函數:讓用戶(hù)能夠通過(guò)鍵盤(pán)的輸入設置除了成績(jì)之外的基本屬性;錄入成績(jì):輸入學(xué)生的各門(mén)成績(jì);顯示:顯示基本屬性和他的平均成績(jì)。

          c) 職工具有人員的屬性和行為,此外,添加職工號、職稱(chēng)和工資屬性。

          d) 教師具有職工的屬性和行為,此外,添加教研室、教授的課程屬性。具有的行為有:設置屬性的函數:讓用戶(hù)能夠通過(guò)鍵盤(pán)的輸入設置除了課程信息之外的基本屬性;錄入課程:輸入教師所教的各門(mén)成績(jì);顯示:顯示基本屬性。

          e) 行政人員具有職工的屬性和行為,此外,添加辦公室屬性。

          f) 在職進(jìn)修教師具有教師與學(xué)生的屬性和行為,此外,添加進(jìn)修時(shí)間,工作單位屬性。

          通過(guò)實(shí)現此系統,讓我綜合運用所學(xué)知識,掌握面向對象設計開(kāi)發(fā)的基本思想和方法和C++的編程思想來(lái)完成簡(jiǎn)單的面向對象的程序設計。讓我在已有的知識基礎上進(jìn)一步獲取新知識的能力,提高分析問(wèn)題、解決問(wèn)題和獨立完成程序設計開(kāi)發(fā)的工作能力。為今后從事專(zhuān)業(yè)性軟件開(kāi)發(fā)工作打下基礎。


          類(lèi)的實(shí)現

          編程實(shí)現上面類(lèi)的設計。

          主程序中的驗證

          創(chuàng )建對象,檢驗類(lèi)的功能是否能夠實(shí)現。


          

          1、遇到的困難、解決辦法及收獲:

         ?、俑黝?lèi)屬性的實(shí)現。

          利用對象數組即方便又能固定調用哪個(gè)屬性。在構造函數中定義屬性類(lèi)型,利用對象數組調用。

         ?、趯ο髷到M中字符串的賦值。

          分配(new實(shí)現)一個(gè)char型變量長(cháng)度加一的字符串,再利用拷貝函數拷貝原變量并放在name里,如:

          name=new char;strcpy(name,na);

         ?、垡驗闆](méi)有給原帶參構造函數的形參賦值,主函數中不能聲明類(lèi)的無(wú)參對象。

          在定義一個(gè)無(wú)參構造函數,如:

          person(){}

         ?、茉谂缮?lèi)帶參構造函數與基類(lèi)帶參構造函數所帶參數不同時(shí)沒(méi)有對基類(lèi)構造函數的參數初始化。

          構造函數無(wú)法被繼承,當派生類(lèi)帶參構造函數與基類(lèi)帶參構造函數所帶參數不同時(shí),要在派生類(lèi)構造函數中對基類(lèi)構造函數的參數進(jìn)行初始化,如:

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

         ?、萜骄值膶?shí)現。

          利用對象數組正確調用分數屬性再利用返回值為float的成員函數實(shí)現平均分,如:

          float getaverage(student st,int i){

          int a=st.mathscore;

          int b=st.cscore;

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

         ?、拚_輸入和調用屬性。

          利用p.屬性名實(shí)現屬性的各種行為,如:

          cinp.age;

          cout姓名:p.nameendl;

         ?、遱witch語(yǔ)句總執行完一個(gè)case后還繼續執行。

          加入break語(yǔ)句跳出switch語(yǔ)句。

          2、 程序中還需要改進(jìn)的地方。

          姓名,年齡,地址等屬性限制的實(shí)現。


        附件:源程序
        #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;
        strcpy(name,na);
        age=a;
        sex=new char;
        strcpy(sex,s);
        address=new char;
        strcpy(address,ad);
        lb=new char;
        strcpy(lb,l);}
        person(){}//無(wú)參構造函數,方便聲明無(wú)參對象
        virtual void getinf(person p,int n){
        char na1;
        cout姓名:;
        cinna1;
        p.name=new char;//分配na1長(cháng)度+1的字符串
        strcpy(p.name,na1);//拷貝字符串
        coutendl;
        cout年齡:;
        cinp.age;
        coutendl;
        char s1;
        cout性別:(n:男,w:女);
        cins1;
        p.sex=new char;
        strcpy(p.sex,s1);
        coutendl;
        char ad1;
        cout地址:;
        cinad1;
        p.address=new char;
        strcpy(p.address,ad1);
        coutendl;
        }
        virtual void disp(person p,int n){//有參虛函數,對象數組輸出的事現
        cout姓名:p.nameendl;
        cout年齡:p.ageendl;
        cout性別:p.sexendl;
        cout地址:p.addressendl;}
        };
        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){//構造函數無(wú)法被繼承,在派生類(lèi)構造函數帶參數與基類(lèi)構造函數所帶參數不同時(shí)要先對基類(lèi)構造函數初始化
        number=nu;mathscore=ms;cscore=cs;average=av;}
        student(){}
        virtual void getvalue(student st,int i){
        cout學(xué)號:;
        cinst.number;
        coutendl;}
        void getscore(student st,int i){
        cout數學(xué)成績(jì):;
        cinst.mathscore;
        coutendl;
        coutC++成績(jì):;
        cinst.cscore;
        coutendl;}
        float getaverage(student st,int i){//平均分的實(shí)現
        int a=st.mathscore;
        int b=st.cscore;
        return st.average=(a+b)/2;}
        void show(student st,int i){
        cout學(xué)號:st.numberendl;
        }
        virtual void show1(student st,int i){
        st.show(st,i);
        cout數學(xué)成績(jì):st.mathscoreendl;
        coutC++成績(jì):st.cscoreendl;
        st.getaverage(st,i);
        cout平均成績(jì):st.averageendl;
        }
        };
        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;
        strcpy(value,v);
        pay=p;}
        worker(){}
        void getvalue(worker w,int i){
        cout職工號:;
        cinw.number;
        coutendl;
        char v1;
        cout職稱(chēng):;
        cinv1;
        w.value=new char;
        strcpy(w.value,v1);
        coutendl;
        cout工資:;
        cinw.pay;
        coutendl;
        }
        void show(worker w,int i){
        cout職工號:w.numberendl;
        cout職稱(chēng):w.valueendl;
        cout工資:w.payendl;
        }
        };
        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;
        strcpy(office,of);
        kemu=new char;
        strcpy(kemu,ke);
        chengji=ch;}
        teacher(){}
        void getmessage(teacher t,int i) {
        char of1;
        cout教研室:;
        cinof1;
        t.office=new char;
        strcpy(t.office,of1);
        coutendl;
        char ke1;
        cout科目:;
        cinke1;
        t.kemu=new char;
        strcpy(t.kemu,ke1);
        coutendl;
        cout成績(jì):;
        cint.chengji;
        coutendl;
        }
        void show1(teacher t,int i){
        cout教研室:t.officeendl;
        cout科目:t.kemuendl;
        cout成績(jì):t.chengjiendl;
        }
        };
        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;
        strcpy(office,of);
        }
        employee(){}
        void getmessage(employee e,int i) {
        char of1;
        cout教研室:;
        cinof1;
        e.office=new char;
        strcpy(e.office,of1);
        coutendl;
        }
        void show1(employee e,int i){
        cout教研室:e.officeendl;
        }
        };
        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;
        strcpy(danwei,da);}
        jingx(){}
        void getmessage1(jingx j,int i){
        cout進(jìn)修時(shí)間:;
        cinj.time;
        coutendl;
        char da1;
        cout單位屬性:;
        cinda1;
        j.danwei=new char;
        strcpy(j.danwei,da1);
        coutendl;
        }
        void show2(jingx j,int i) {
        cout進(jìn)修時(shí)間:j.timeendl;
        cout單位屬性:j.danweiendl;
        }
        };
        int i;
        person p; student st; worker wo; teacher te; employee em; jingx jx;
        void main(){
        cout請選擇人員類(lèi)別:endl;
        cout1、普通人 2、學(xué)生 3、學(xué)生及成績(jì) 4、員工 5、教師 6、行政人員 7、在職進(jìn)修教師endl;
        cini;
        cout請依次錄入信息endl;
        switch(i){//錄入信息種類(lèi)選擇的實(shí)現
        case 1:{
        p.getinf(p,1);
        cout*************************************endl;
        p.disp(p,1);
        break;}//要有break語(yǔ)句否則將執行case2
        case 2:{
        st.getvalue(st,1);
        p.getinf(p,1);
        cout*************************************endl;
        st.show(st,1);
        p.disp(p,1);
        break;}
        case 3:{
        st.getvalue(st,1);
        p.getinf(p,1);
        st.getscore(st,1);
        cout*************************************endl;
        st.show1(st,1);
        p.disp(p,1);
        break;}
        case 4:{
        wo.getvalue(wo,1);
        p.getinf(p,1);
        cout*************************************endl;
        wo.show(wo,1);
        p.disp(p,1);
        break;}
        case 5:{
        te.getmessage(te,1);
        p.getinf(p,1);
        wo.getvalue(wo,1);
        cout*************************************endl;
        te.show1(te,1);
        p.disp(p,1);
        wo.show(wo,1);
        break;}
        case 6:{
        em.getmessage(em,1);
        p.getinf(p,1);
        wo.getvalue(wo,1);
        cout*************************************endl;
        em.show1(em,1);
        p.disp(p,1);
        wo.show(wo,1);
        break;}
        case 7:{
        jx.getmessage1(jx,1);
        te.getmessage(te,1);
        st.getvalue(st,1);
        wo.getvalue(wo,1);
        p.getinf(p,1);
        st.getscore(st,1);
        cout*************************************endl;
        jx.show2(jx,1);
        p.disp(p,1);
        te.show1(te,1);
        wo.show(wo,1);
        st.show1(st,1);
        break;}
        default :
        cout輸入錯誤!endl;
        }

        }

        国产另类无码专区|日本教师强伦姧在线观|看纯日姘一级毛片|91久久夜色精品国产按摩|337p日本欧洲亚洲大胆精

        <dd id="saiiy"></dd>
        1. <s id="saiiy"></s>

          1. <s id="saiiy"></s>
            1. <span id="saiiy"><blockquote id="saiiy"></blockquote></span>