C++练习题(自己整理的)(2)

2020-05-23 14:22

Void CRole::setRoleGrade() { }

void CRole::print() { }

Int main() { }

7、利用文件流 将(6)中的数据输出到 外部文本中,如:data.txt class CRole {

public: CRole() :hp(0), grade(0){ strcpy_s(name, \); } //默认构造函数 CRole(char *nam, int h, int g) :hp(h), grade(g){ strcpy_s(name , nam); } //构造函数 ~CRole(){} //析构函数 public: void setRolename(); void setRoleHealth(); void setRoleGrade(); char* getRoleName(); int getRoleHealth(); int getRoleGrade(); void print(); protected: char name[16]; int hp; int grade; };

void CRole::setRolename() { cout << \的名称:\; cin>>name; }

void CRole::setRoleHealth() { cout << \的生命值:\; cin>>hp; }

CRole role1; role1.setRolename(); role1.setRoleHealth(); role1.setRoleGrade(); role1.print(); system(\); return 0;

cout << \的名称:\ << name << \ << \的生命值:\

<< hp << \ << \的等级:\ << grade << endl; cout << \的等级:\; cin >> grade;

Void CRole::setRoleGrade() { cout << \的等级:\; cin >> grade; }

void CRole::print() { ofstream outfile(\, ios::app); //利用文件流 将(6)中的数据输出到 外部文本中 outfile << \的名称:\ << name << \ << \的生命值:\ << hp << \ << \的等级:\ << grade << endl; outfile.close(); }

int main() { CRole role1; role1.setRolename(); role1.setRoleHealth(); role1.setRoleGrade(); role1.print(); return 0; }

8、编写一个程序,已有若干个学生数据,这些数据包括学号、姓名、

//语文成绩、数学成绩和英语成绩,求各门功课的平均分。要求设计不同的成员函数求出各门课程的平均分,并使用成员函数指针调用它们

Class CStudent {

public: CStudent(){} ~CStudent(){} public: char getStudentNmae(); int getStudentNumber(); void setStudentName(char *); void setStudentNumber(int Num); void ChineseMeanNumber(); void MathMeanNumber(); void EnglishMeanNumber(); void LessonMeanNumber(); void print(); protected: char name[20]; int Number; int ChineseGrade[3]; int MathGrade[3]; int EnglisGrade[3]; int ChineseMeanGrade; int MathMeanGrade; int EnglisMeanGrade; int LessonMeanGrade; };

void CStudent::setStudentName(char *CStudent) { strcpy_s(name, CStudent); }

void CStudent::setStudentNumber(int Num) { Number = Num; }

Char CStudent::getStudentNmae() { return name[20]; }

int CStudent::getStudentNumber() { return Number; }

Void CStudent::ChineseMeanNumber() { Int ChineseGrade[3] = {90,80,85}; ChineseMeanGrade = (ChineseGrade[0] + ChineseGrade[1] + ChineseGrade[2]) / 3; }

Void CStudent::MathMeanNumber() { Int MathGrade[3] = { 60, 60, 90 }; MathMeanGrade = (MathGrade[0] + MathGrade[1] + MathGrade[2]) / 3; }

void CStudent::EnglishMeanNumber() { Int EnglishGrade[3] = { 70, 70, 70 }; EnglisMeanGrade = (EnglishGrade[0] + EnglishGrade[1] + EnglishGrade[2]) / 3; }

void CStudent::LessonMeanNumber() { LessonMeanGrade = (ChineseMeanGrade + MathMeanGrade + EnglisMeanGrade) / 3; }

Void CStudent::print() { cout << \学生姓名:\ << name << \学生学号=\ << Number << \学生语文平均成绩=\ << ChineseMeanGrade << \学生数学平均成绩:\ << MathMeanGrade << \学生英语平均成绩:\ << EnglisMeanGrade << \学生各科的平均成绩:\ << LessonMeanGrade << endl; }

int _tmain(int argc, _TCHAR* argv[]) { //CStudent XZ; /*XZ.setStudentName(\程序员\ XZ.setStudentNumber(20141111); XZ.ChineseMeanNumber(); XZ.MathMeanNumber(); XZ.EnglishMeanNumber(); XZ.LessonMeanNumber(); XZ.print(); */ CStudent* pStudent = new CStudent(); //pStudent = &XZ; pStudent->setStudentName(\程序员\); pStudent->setStudentNumber(20141111); pStudent->ChineseMeanNumber();

}

pStudent->MathMeanNumber(); pStudent->EnglishMeanNumber(); pStudent->LessonMeanNumber(); pStudent->print(); delete pStudent; pStudent = NULL; system(\); return 0;

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日起的天数转换为对应的日期

class Date

{

private:

int year,month,day; public:

Date(){year=0;month=0;day=0;}//默认构造函数

Date(int x,int y,int z){year=x;month=y;day=z;}//重载构造函数 void add(int m);//加天数 void del(int m);//减天数 int diff(Date& q);//日期差 void display();//显示 };

void Date::add(int m) {

int d[12]={31,28,31,30,31,30,31,31,30,31,30,31},temp,f;//d为12个月每个月天数的数组 f=0;

while (m>0) {

if (year0==0)

d[1] = (year@0==0?29:28);//如果是闰年,2月天数为29 else

d[1] = (year%4==0?29:28);//如果是闰年,2月天数为29 temp=d[month-1]-day;

if (temp>=m)//如果所加天数未超过当月剩余天数 {

day=day+m; break; }

m-=temp; day=0; month++;

for (;month<=12;month++)//开始月遍历进行日期计算 {

if (d[month-1]>=m) {

day+=m; break; } else {

m-=d[month-1]; } }

if (month<=12)//若所加天数在本年12月内 break;

month=1;//所加天数超过今天剩余天数,月初始化为1月,即从下年一月继续算 year++;//加一年 } }

void Date::del(int m)//本函数注释与add基本相同 {

int d[12]={31,28,31,30,31,30,31,31,30,31,30,31},f; f=0;

while (m>0) {

if (year0==0)

d[1] = (year@0==0?29:28); else

d[1] = (year%4==0?29:28); if (day>=m) {

day=day-m; break; }

m-=day; month--;

for (;month>=1;month--) {

if (d[month-1]>=m) {

day=d[month-1]-m; break; } else {

m-=d[month-1]; } }

if (month>=1) break; month=12; year--; day=31; } }

int Date::diff(Date& q) {

int differece;

int d[12]={31,28,31,30,31,30,31,31,30,31,30,31},m,i; Date temp;

Date *pSmall,*pBig;


C++练习题(自己整理的)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:财政学试卷B

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: