第三次上机报告一、题目1.创建一个Person类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。其功能有修改姓名、显示数据信息。要求其功能函数的原型放在类定义中,构造函数初始化每个成员,显示信息函数要求把对象中的完整信息打印出来。其中数据成员为保护的,函数为公有的。2.编写设计一个People(人)类。该类的数据成员有年龄(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,成员函数有构造函数(People)、进食(Eating)、运动(Sporting)、睡眠(Sleeping)、显示(Show)和显示人数(ShowNum)。其中构造函数由已知参数年龄(a)、身高(h)和体重(w)构造对象,进食函数使体重加1,运动函数使身高加1,睡眠函数使年龄、身高、体重各加1,显示函数用于显示人的年龄、身高、体重,显示人数函数为静态成员函数,用于显示人的个数。假设年龄的单位为岁,身高的单位为厘米,体重的单位为市斤,要求所有数据成员为protected访问权限,所有成员函数为public访问权限,在主函数中通过对象直接访问类的所有成员函数。3.定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)、数学总成绩(mathTotalScore)和英语总成绩(englishTotalScore)。其中姓名定义为长度为18的字符数组,其他数据成员类型为整型,数学总成绩、英语总成绩和人数为静态数据成员,函数成员包括构造函数、显示基本数据函数(ShowBase)和显示静态数据函数(showStatic),其中构造函数由已知参数姓名(nm)、学号(nu)、数学成绩(math)和英语成绩(english)构造对象,显示基本数据函数用于显示学生的姓名、学号、数学成绩、英语成绩,显示静态数据函数为静态成员函数,用于显示人数、数学总成绩、英语总成绩;要求所有数据成员为private访问权限,所有成员函数为public访问权限,在主函数中定义若干个学生对象,分别显示学生基本信息,以及显示学生人数,数学总成绩与英语总成绩。二、分析题目1:程序中,定义了一个Person类。类中有五个保护数据成员,均为字符数组,分别为charname[15],charaddress[15],charcity[15],charprovince[15],charcode[15],分别表示一个人的姓名、街道地址、市、省和邮政编码。类中还定义了一个构造函数,在定义对象时初始化每个数据成员。类中声明了两个成员函数,分别为voidalter_name()和voidshow_info(),分别可以实现修改姓名和实现显示数据信息。这两个函数均是在类体外定义,且是公有的。在main()函数中,创建了一个Person类的对象,自动调用构造函数完成初始化,然后调用成员函数输出对象的信息。接着调用成员函数修改姓名,最后再输出修改后的对象的信息。题目2:程序中,定义了一个People类。类中四个保护数据成员,均为整型变量,分别为intage,intheight,intweight,staticintnum,分别表示一个人的年龄、身高、体重和类中的人数。其中,num为静态数据成员。类中还定义了一个构造函数,构造函数由已知参数年龄(a)、身高(h)和体重(w)构造对象,使用构造函数初始化表来初始化,且在函数体中使num加1,表示人数增加一人。类中声明了五个成员函数,分别为voidEating(),voidSporting(),voidSleeping(),voidShow(),staticvoidShowNum(),分别表示进食、运动、睡眠、显示和显示人数。这五个成员函数均是在类体外定义的,且都是公有的。其中,显示人数的函数是静态成员函数,操作静态数据成员。在main()函数中,创建了一个People类的对象,自动调用构造函数完成初始化,然后调用成员函数和静态成员函数输出对象的信息和人数的信息。接着,调用三个成员函数,完成相关对对象的操作,最后再输出对象的信息和人数的信息。题目3:三、源程序题目1:#includeiostream#includecstringusingnamespacestd;classPerson{protected:charname[15];//姓名charaddress[15];//街道地址charcity[15];//市charprovince[15];//省charcode[15];//邮政编码public:Person(charnam[],charadd[],charci[],charpro[],charco[]);voidalter_name();//修改姓名voidshow_info();//显示信息};//构造函数Person::Person(charnam[],charadd[],charci[],charpro[],charco[]){strcpy(name,nam);strcpy(address,add);strcpy(city,ci);strcpy(province,pro);strcpy(code,co);}//在类体外定义成员函数voidPerson::alter_name(){charnam[15];cout输入新的名字:;cinnam;strcpy(name,nam);}voidPerson::show_info(){coutname:nameendl;coutaddress:addressendl;coutcity:cityendl;coutprovince:provinceendl;coutcode:codeendl;}intmain(){Personp(华,99,南京市,江苏省,211516);p.show_info();//输出信息coutendl;p.alter_name();//修改名字p.show_info();//输出新的信息return0;}题目2:#includeiostreamusingnamespacestd;classPeople{protected:intage;//年龄intheight;//身高intweight;//体重staticintnum;//人数,静态数据成员public:People(inta,inth,intw):age(a),height(h),weight(w){num++;}//构造函数voidEating();//进食voidSporting();//运动voidSleeping();//睡眠voidShow();//显示staticvoidShowNum();//显示人数,静态成员函数};intPeople::num=0;//初始化静态数据成员为0//类体外定义成员函数voidPeople::Eating(){weight++;}voidPeople::Sporting(){height++;}voidPeople::Sleeping(){age++;height++;weight++;}voidPeople::Show(){//显示人的年龄、身高、体重coutage:age岁endl;coutheight:height厘米endl;coutweight:weight市斤endl;}voidPeople::ShowNum(){//显示人数coutnum:num人endl;}intmain(){Peoplep(21,170,55);p.Show();//显示信息People::ShowNum();//显示人数coutendl;p.Eating();//进食p.Sporting();//运动p.Sleeping();//睡眠p.Show();//显示信息People::ShowNum();//显示人数return0;}题目3:#includeiostream#includecstringusingnamespacestd;classStudent{private:charname[18];//姓名intnum;//学号intmathScore;//数学成绩intenglishScore;//英语成绩staticintcount;//人数staticintmathTotalScore;//数学总成绩staticintenglishTotalScore;//英语总成绩public:Student(charnm[18],intnu,intmath,intenglish);//构造函数voidShowBase();//显示基本数据staticvoidShowStatic();//显示静态数据};//初始化静态数据成员intStudent::count=0;intStudent::mathTotalScore=0;intStudent::englishTotalScore=0;//在类体外定义构造函数Student::Student(charnm[18],intnu,intmath,intenglish){strcpy(name,nm);num=nu;mathScore=math;englishScore=english;count++;mathTotalScore+=mathScore;englishTotalScore+=englishScore;}//在类体外定义成员函数voidStudent::ShowBase(){coutname:nameendl;coutnum:numendl;coutmathScore:mathScoreendl;coutenglishScore:englishScoreendl;}voidStudent::ShowStatic(){coutcount:countendl;coutmathTotalScore:mathTotalScoreendl;coutenglishTotalScore:englishTotalScoreendl;}intmain(){Students[3]={Student(杰,108,98,100),Student(华,109,99,99),Student(俊,110,100,98)};//创建3个对象inti;for(i=0;i3;i++){s[i].ShowBase();//输出基本数据coutendl;}Student::ShowStatic();//输出静态数据return0;}四、运行结果题目1:题目2:题目3:五、问题以及解决方法