钱能C++教材习题答案十

   /2005-05-08

闂備胶绮崝妤呭箠閹捐鍚规い鏂垮⒔閸楁岸鎮楅敐搴濈盎缂佷緡鍣i弻鐔煎礂閼测晝鐓傞梺绋跨焿閹凤拷2濠电偞鍨堕幐绋棵洪妸鈺嬬稏闁圭儤顨嗛崵鈧梺鍛婂姦娴滅偤宕洪敓鐘崇厽闁靛繈鍊栧☉褔鏌i埄鍐噰闁诡啫鍥ч唶闁挎繂娲㈤崑鎺楁⒑閸濆嫬鈧綊鎮锋潏鈺傤潟闁跨噦鎷�
濠电姰鍨归悥銏ゅ炊瑜嶆慨銈夋⒑閸涘﹤绗掓俊顐g洴椤㈡棃濮€閵堝棭妫勯柣搴秵閸犳牠宕㈤幘顔界厸闁告洟娼ч悘锝嗐亜閹存繃澶勭紒瀣樀閸┾偓妞ゆ巻鍋撻柍璇查叄濡鹃亶鏌嶈閸撴瑩宕导瀛樺亯婵炲樊浜濋弲顒勬倶閻愮數鎽傞柛銈囧Т闇夋繝濠傚暣椤庢銇勯埞顓炲婵挳鏌¢崶鈺佹灁闁告瑢鍋撻梻浣哥秺濞佳嗐亹閻愮數绠旈柟鎯ь嚟閳绘梹鎱ㄥΟ璇插闁搞倧绠撻弻鐔虹矙閹稿孩鎮欓梺浼欑秮缁犳牕顕i鈶╂瀻闁归偊鍘剧粙鍕⒑閹稿海鈽夐柡鍫墴瀹曞綊濡歌婵ジ鏌涘☉姗堟敾缂佺姵甯為埀顒€鐏氬姗€鎮ч崱娴板洭宕稿Δ浣镐痪闂佺鎻梽鍕晬閺嶎厽鐓忛柛鈩冩礀椤b暜ee濠电姰鍨圭紞濠囧焵椤掍胶鈯曢柕鍡楀暣閺屾盯骞掗幋鐑嗘濡炪倖甯為崰鎰矙婵犲洦鍋愰柣銏㈡暩鏁堥梻浣稿悑濠㈡﹢宕导瀛樺亯闁告繂濯辨惔銏$秶妞ゆ劗鍠庢禍楣冩煛閸ャ劍鐨戦柣鐔叉櫅閳藉骞樼紙鐘卞濡炪倖娲濆▍鏇炨缚韫囨稑宸濇い鎾楀啯顔�20婵°倗濮烽崑鐘诲箵椤忓棙顫曟繝闈涱儏缁犳垿鏌ゆ慨鎰偓妤€鈻旈姀鐘嗙懓饪伴崘鈺婃%缂備礁顦顓㈠焵椤掆偓濠€閬嶅磻閻旂厧鏋侀柕鍫濐槹閸庡秹鏌涢弴銊ュ闁伙箑缍婇幃妤冩喆閸曨収鏆¢梺鍝勬閸嬫捇姊洪崫鍕垫Ч闁告梹鐗犻幃锟犳晬閸曨剙鐝伴梺闈涚箚閸撴繈鎮″▎鎰濠㈣泛顑嗙粈鈧悗娈垮櫍閺€鍗烆嚗閸曨偒鍚嬮柛鏇ㄥ幘濡叉垿姊洪崫鍕偓浠嬶綖婢跺本鍏滈柛顐f礃閺咁剟鎮橀悙闈涗壕缂佺姵甯″濠氬炊閿濆懍澹曢梺鑽ゅ枑濞叉垿鎳楃捄琛℃灁闁硅揪闄勯崕鎴︽倵閿濆骸骞樼紒鐘崇墵閺屸剝寰勫☉娆忣伓
 

第12章

//*******
//*12.1**
//*******
Constructing normally
Constructing with a number:20
Display a number:0
Display a number:20
Destructing
Distructing

//******
//*12.2*
//******
# include <iostream.h>
class Employee
{
public:
        Employee(char * name,char * street,char * shi,char * sheng,char * post)
        {
                data[0]=name;
                data[1]=street;
                data[2]=shi;
                data[3]=sheng;
                data[4]=post;
        }
        ChangeName(char * name)
        {
                data[0]= name;
        }
        void Display()
        {
                cout<<"name:"<<data[0]<<"street:"<<data[1]
                        <<"shi:"<<data[2]<<"sheng:"<<data[3]
                        <<"post:"<<data[4]<<endl;
        }
protected:
        char * data[5];
}


//******
//*12.3*
//******
# include <iostream.h>

class Name
{
public:
        void Display();
        Name(char * a);
        void ChangeName(char * e);
protected:
        char * xing;
        char * ming;
};

        void Name:isplay()
        {
                cout<<"xing:"<<xing<<" "<<"ming:"<<ming<<endl;
        };

        Name::Name(char * a)
        {
                char * name1=NULL;
                char * name2=NULL;
                int i=0;//姓名总字节数
                for(;a != ' ';i++)//姓的字节数
                {
                        ;
                }
                name1=new char[i+1];
                for(int k=0;k<i;k++)
                {
                        name1[k]=a[k];
                }               
                name1='/0';
                int j=0;//名的字节数
                for(;a!= '/0' ;j++)
                {
                        i++;
                }
                name2=new char[j];
                for(int l=0;l<j;l++)
                {
                        name2[l]=a[i-j+l];
                }               
                name2[j]='/0';
                xing=name1;
                ming=name2;

        };
        void Name::ChangeName(char * e)
        {
                char * name3=NULL;
                char * name4=NULL;
                int x=0;
                for(;e[x] != ' ' ;x++)
                {
                        ;
                }
                name3=new char[x+1];
                for(int m=0;m<x;m++)
                {
                        name3[m]=e[m];
                }               
                name3[x]='/0';
                int y=0;
                for(;e[x]!= '/0' ;y++)
                {
                        x++;
                }
                name4=new char[y];
                for(int n=0;n<y;n++)
                {
                        name4[n]=e[x-y+n];
                }               
                name4[y]='/0';
                xing=name3;
                ming=name4;
        };

class Employee
{
public:
        Employee(char * b,char * street,char * shi,char * sheng,char * post);
        void ChangeName(char * c);
        void Display();
protected:
        char * data[4];
        Name d;
};
        Employee::Employee(char * b,char * street,char * shi,char * sheng,char * post):d(b)//注意类成员的初始化
        {       
                data[0]=street;
                data[1]=shi;
                data[2]=sheng;
                data[3]=post;
        };
        void Employee::ChangeName(char * c)
        {
                d.ChangeName(c);
        };
        void Employee:isplay()
        {
                d.Display();//注意()不能缺少
                cout<<"street:"<<data[0]<<endl
                        <<"shi:"<<data[1]<<endl<<"sheng:"<<data[2]<<endl
                        <<"post:"<<data[3]<<endl;
        };

//*************
//*12.4-Name.h*
//*************
class Name
{
public:
        void Display();
        Name(char * a);
        void ChangeName(char * e);
protected:
        char * xing;
        char * ming;
};
//*****************
//*12.4-Employee.h*
//*****************
# include "Name.h"
class Employee
{
public:
        Employee(char * b,char * street,char * shi,char * sheng,char * post);
        void ChangeName(char * c);
        void Display();
protected:
        char * data[4];
        Name d;
};
//***************
//*12.4-Name.cpp*
//***************
# include <iostream.h>
# include "Name.h"
void Name:isplay()
        {
                cout<<"xing:"<<xing<<" "<<"ming:"<<ming<<endl;
        };

Name::Name(char * a)
        {
                char * name1=NULL;
                char * name2=NULL;
                int i=0;//姓名总字节数
                for(;a != ' ';i++)//姓的字节数
                {
                        ;
                }
                name1=new char[i+1];
                for(int k=0;k<i;k++)
                {
                        name1[k]=a[k];
                }               
                name1='/0';
                int j=0;//名的字节数
                for(;a!= '/0' ;j++)
                {
                        i++;
                }
                name2=new char[j];
                for(int l=0;l<j;l++)
                {
                        name2[l]=a[i-j+l];
                }               
                name2[j]='/0';
                xing=name1;
                ming=name2;       };
void Name::ChangeName(char * e)
        {
                char * name3=NULL;
                char * name4=NULL;
                int x=0;
                for(;e[x] != ' ' ;x++)
                {
                        ;
                }
                name3=new char[x+1];
                for(int m=0;m<x;m++)
                {
                        name3[m]=e[m];
                }               
                name3[x]='/0';
                int y=0;
                for(;e[x]!= '/0' ;y++)
                {
                        x++;
                }
                name4=new char[y];
                for(int n=0;n<y;n++)
                {
                        name4[n]=e[x-y+n];
                }               
                name4[y]='/0';
                xing=name3;
                ming=name4;
        };

//*******************
//*12.4-Employee.cpp*
//*******************
# include <iostream.h>
# include "Employee.h"

Employee::Employee(char * b,char * street,char * shi,char * sheng,char * post):d(b)//注意类成员的初始化
        {       
                data[0]=street;
                data[1]=shi;
                data[2]=sheng;
                data[3]=post;
        };
void Employee::ChangeName(char * c)
        {
                d.ChangeName(c);
        };
void Employee:isplay()
        {
                d.Display();//注意()不能缺少
                cout<<"street:"<<data[0]<<endl
                        <<"shi:"<<data[1]<<endl<<"sheng:"<<data[2]<<endl
                        <<"post:"<<data[3]<<endl;
        };

//***************
//*12.4-main.cpp*
//***************
# include "Employee.h"

void main()
{
        Employee em("Mark Brooks","5 West St.","Revere","CA","12290";

/*        char buffer[255];//所其作用不明显*/
        em.Display();
       
        em.ChangeName("Richard Voss";
        em.Display();
}

闂備胶鎳撻悺銊╁礉閹烘梹瀚婚柣鏃傚劋鐎氭岸鏌涘▎宥呭姎闁轰讲鏅犻幃璺衡槈鏉堚晛甯ㄧ紓浣介哺缁诲牆鐣峰璺哄耿闁哄洢鍨婚崣鎰版煟閻樺弶鎼愬褌绮欓崺銏ゆ嚃閳哄倸鐨梺鍛婃处閸撴岸鎮橀幇鐗堚拺闁告挆鍐у闁汇埄鍨伴顓熺閸涘﹥缍囨い鎰╁灩楠炲姊洪崗鐓庡姢闁搞垼灏妵鎰版晸閿燂拷40%闂備礁婀辩划顖炲礉閺嶎厼鍨傛慨妯块哺鐏忓孩鎱ㄥΟ鍨厫閻忓浚浜弻銊モ槈閾忣偄顏�
闂備浇顫夋禍浠嬪礉瀹€鈧划璇差吋閸ャ劌鐨┑顔角归崺鏍焊椤忓牊鐓涘璺猴工閺嗙喐绻涙径妯哄籍濠碘剝鎸冲畷鎺戔攽閹邦剚顔曞┑鐐差嚟婵绱為埀顒勬煏閸℃鏆g€规洩缍侀、娑㈡倷閳轰椒澹曞┑顔矫壕顓犵不閺嶎灐鐟扳堪閸曨偆顑勬繛瀵稿Т閻楀繒妲愰弮鍫濈闁绘ê鐏氶幆锝夋⒒娓氬洤浜濋柡灞诲妿濞嗐垽鎮欑€电硶鏋栭梺缁樺灦钃遍柟鐤含缁辨帡寮埀顒勬偡閿旂偓鏆滅憸鐗堝笧瀹撲線鏌涢…鎴濇珮闁告艾鎳庨湁闁兼祴鏅涜ⅴ闂侀€炲苯澧梺鑺ュ⒊P濠电偞娼欓崥瀣嚌妤e啫绠熼柟鎯版閻忚櫕绻濋崹顐e暗缂佲偓婢舵劖鐓熼柍褜鍓欐俊浠嬫煕閳哄倻娲撮柡灞芥噹椤繂鐣烽崶鈺冩毇闂佽崵濮村ú銈堛亹閻愬搫鑸规い鎺戝€归崑姗€鏌曟繛褍瀚弳鐘绘⒑閸涘﹤绗掓俊顐f濡懘鍩¢崨顔惧弰闂佺粯鍔﹂崜娆愬緞瀹ュ鐓欓悗娑欋缚婢ь剟鏌熼惂鍝ョМ妤犵偛閰f俊鐑藉Ω閵夛妇浜峰┑鐐村灦濮婄懓顭垮鈧獮鍐ㄎ旈崨顔芥珫閻庡厜鍋撻柛鎰劤濞堢偓绻涚€电ǹ顎撶紓宥佸亾闂侀潧妫楅崯鎾箠閵忕姷鏆嬮柡澶庢硶閹拷40%闂備礁婀辩划顖炲礉閺嶎厼鍨傛慨妯挎硾杩濋梺绋挎湰缁诲秹宕甸敃鈧湁闁绘瑥鎳愮粔顒勬煏閸℃鏆熼柟宄扮秺椤㈡ê鈹戦崶褜浼嗛梻浣告惈閻楁粓宕滃☉銏″仧妞ゆ牗绋撻々鐑芥偣娴e摜锛嶇紒澶婄仢闇夋繝褏濮撮崯顖炲箚閸岀偞鐓ユ繛鎴炃圭€氱増绻涢悡搴☆劉缂佸倸绉归、鏇㈠閻樼數袣9闂備胶顢婇崺鏍綘闂侀€炲苯澧柛濠冩倐閹啴濮€閵堝懐顦梺绯曞墲濞茬喖鎮¢埡鍛拺闁告挆鍐у闁汇埄鍨遍幐铏繆鐎涙ɑ濯撮悷娆忓闂傤垶姊虹涵鍛牚闁稿骸宕湁婵せ鍋撻柟顔ㄥ洤鐐婇柍鍝勫暞閹綁姊洪幐搴b槈闁兼椿鍨甸妵鎰板磼閻愯尙顦梺鍝勵槹椤戞瑩宕濋崨瀛樼厸鐎规挻鍝庨崐銈夊疮閸儲鐓曠憸搴g矙韫囨稑鐒垫い鎴e劵閸忓本绻涢崨顐㈠闁诡垱妫冮弫鍐╂媴缁嬭法浠梻浣告啞閻ㄦ粍鎷呴幓鎺嶅婵炶揪缍侀弲鑼姳閹惰姤鐓曟俊銈勭閹兼悂鏌嶈閸忔稓绮堟担鍦洸闁哄洨鍠撻埞宥夊箳閹惰棄鐒垫い鎴濈仢閸婃構缂傚倷绀侀張顒€顪冮挊澹╂盯宕稿Δ鈧繚婵炶揪缍€濞咃綁宕i埀顒佺箾閹寸偞鐓ョ紒銊︽そ閸┾偓妞ゆ垶瀵х粊浼存煟椤忓懏灏﹂柟顔芥そ閺佹劙宕堕埡鍌涘劘闂備礁鎲¢懝鍓р偓姘煎墴婵$敻宕堕鍌氱ウ闂佸憡鍔栬ぐ鍐煀闁秵鐓忛柛鈽嗗幗鐎氾拷

相关话题/

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19