实验二 类和对象的使用 - 参考答案

更新时间:2023-10-28 19:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验二 类和对象的使用

班级: 学号: 姓名: 成绩:

一. 实验目的

1.掌握类和对象的概念、定义和使用方法。 2.掌握不同特性对象成员的访问方法。

二. 使用的设备和仪器

计算机+Windows XP +Visual C++6.0

三. 实验内容及要求

1.定义一个Book类,在该类定义中包括以下数据成员和成员函数:

数据成员:bookname(书名)、price(价格)、number(存书数量)

成员函数:set()输入图书信息;display()显示图书的情况;borrow()将存书数量减1,并显示当前存书数量;restore()将存书数量加1,并显示当前存书数量。

在主函数中,要求创建某一图书对象,并对该图书进行简单的显示、借阅和归还等管理。

2.定义一个中国好声音歌手类。其中,包括每个歌手的名字、年龄、来自哪个省份、所唱的曲目等。可以实现报名、显示、修改等功能。 3.定义一个时间类,实现课堂中第五节中的例2.2。

数据成员:时、分、秒

成员函数:输入时间、设置时间、按12小时制显示时间、按24小时制显示时间、增加1小时、减少1小时等功能。

4.定义一个学生类Student,要求如下:

(1)数据成员包括学号、姓名、数学成绩、英语成绩和C++成绩;要求对所输入的成绩的合法性进行判断。

成员函数包括:设置学生的信息函数;输入学生的信息函数;输出学生的信息函数;计算学生平均成绩的函数。

(2)添加新的数据成员:出生年月日;实现多个学生信息的添加、成绩的修改(一次只能修改一科成绩)等功能。要求单独定义一个日期类,并对所输入的出生年月日的合法性进行判断。

(3)设计一个菜单函数。

****************************************************************** * * * 1.添加 2.设置 3.显示 4.修改成绩 5.计算平均分 0.退出 * * *

****************************************************************** 请输入相应编号:

四. 实验步骤

编写程序+编译+连接+运行+分析结果

五. 实验总结

1.编写的程序源代码

2.实验中遇到的问题及解决方法 3.收获

参考答案: 1、

#include #include #include using namespace std; class Book {

private: string bookname; //书名 double price; //价格 int number; //数量 public: void input(); //输入书籍信息 void display(); //输出书籍信息 void borrow(); //借书 void restore(); //还书 };

void Book::input()//输入书籍信息 { cout<<\请输入书名、价格、数量:\ cin>>bookname>>price; while(1) { if(price<0) { cout<<\价格输入有误,请重新输入!\ cin>>price; }

else break; } cin>>number; while(1) { if(number<0) { cout<<\数量输入有误,请重新输入!\ cin>>number; } else break; } }

void Book::display()//输出书籍信息 { cout<

cout<

void Book::borrow()//借书 { if(number<=0) cout<<\本书库存为0,借阅失败!\ else { number--; cout<<\借阅成功,请及时归还!\ display(); } }

void Book::restore()//还书 { number++; cout<<\归还成功!\ display(); }

//**************************************************************

void Menu(Book &e)//菜单 { system(\ int ch; do { cout<<\ cout<<\ *\ cout<<\ 1.添加 2.显示 3.借书 4.还书 0.退出 *\ cout<<\ *\ cout<<\ cout<<\请输入相应编号:\ cin>>ch; switch(ch) { case 1: e.input(); break; case 2: e.display(); break; case 3: e.borrow(); break; case 4: e.restore(); break; case 0: return; default: cout<<\数据输入不合法,请重新输入!\ } system(\ system(\ }while(ch!=0); cout<<\欢迎您下次再使用本系统!\}

int main() { Book b; Menu(b); return 0; } 2、

#include #include #include using namespace std;

class Singer {

private: string name; //歌手名 int age; //年龄 string province; //省份 string song; //曲目 public: void input(); //报名 void display(); //浏览

void modify(); //修改歌手相关信息 };

void Singer::input()//报名 { cout<<\请输入歌手名、年龄、省份和所选曲目:\ cin>>name>>age; while(1) { if(age<0||age>70) { cout<<\年龄输入有误,请重新输入!\ cin>>age; } else break; } cin>>province>>song; }

void Singer::display()//浏览 { cout<

cout< cout<

void Singer::modify()//修改歌手信息,具体修改项用菜单项进行选择 { int ch,ch2; do

case 2: cout<<\设定时间为0:0:0\ break; case 3: display_menu(e); break; case 4: e.add_hour(); break; case 5: e.sub_hour(); break; case 0: return; default: cout<<\数据输入不合法,请重新输入!\ } system(\ system(\ }while(ch!=0); cout<<\欢迎您下次再使用本系统!\}

int main() { Time b; Menu(b); return 0; } 4、

#include using namespace std; #include #include

const int N=8; //定义日期类 class Date {

private: int CYear; int CMonth; int CDay; public: void set_Date(int y,int m,int d); void Print_Date(); int IsValid_CMonth(); int IsValid_CDay(); void Input_Date(); };

e.set(0,0,0);

void Date::set_Date(int y,int m,int d) { CYear=y; CMonth=m; CDay=d; }

void Date::Print_Date()//输出 { cout<

int Date::IsValid_CMonth() // 返回0,表示有错误;返回1,表示正确; { if(CMonth<1||CMonth>12) { cout<<\输入的月份信息有误,请重新输入!\ return 0; } else return 1; }

int Date::IsValid_CDay() // 返回0,表示有错误;返回1,表示正确; { switch(CMonth) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: if(CDay>31||CDay<1) { cout<<\输入的日期信息有误,请重新输入!\ return 0; } break; case 4: case 6: case 9: case 11:

if(CDay>30||CDay<1) { cout<<\输入的日期信息有误,请重新输入!\ return 0; } break; case 2: if((CYear@0==0)||(CYear%4==0)&&(CYear0!=0)) { if(CDay>29||CDay<1) { cout<<\输入的日期信息有误,请重新输入!\ return 0; } } else { if(CDay>28||CDay<1) { cout<<\输入的日期信息有误,请重新输入!\ return 0; } } break; } return 1; }

void Date::Input_Date()//输入 { cout<<\请输入出生日期:\ cout<<\年:\ cin>>CYear; while(1) { cout<<\月:\ cin>>CMonth; if(IsValid_CMonth()==1) break; } while(1) { cout<<\日:\ cin>>CDay; if(IsValid_CDay()==1) break; }

}

//********************************************** //定义员工类 class Student {

private: string Num; //学号 string Name; //姓名 Date Birthday; //生日

double Math; //数学成绩 double CPlusPlus; //C++成绩 double English; //英语成绩

public:

string get_Num(); //获取学号 string get_Name(); //获取姓名 void Input_Student(); //输入学生信息 void Set_Student(string,string,int,int,int,double,double,double); //设置学生信息 void Print_Student(); //显示学生信息 double Average_Score(); //求三科的平均成绩 void Modify_Score(double,int);//修改成绩,一次只能改一科成绩 int IsScoreValid(int n); //判断成绩是否合法,0-100之间。 };

string Student::get_Num()//获取学号 { return Num; }

string Student::get_Name()//获取姓名 { return Name; }

void Student::Input_Student()//输入学生信息 { cout<<\学号:\ cin>>Num; cout<<\姓名:\ cin>>Name; Birthday.Input_Date(); while(1)

{ cout<<\数学成绩:\ cin>>Math; if(IsScoreValid(Math)==1) break; } while(1) { cout<<\成绩:\cin>>CPlusPlus; if(IsScoreValid(CPlusPlus)==1) break; } while(1) { cout<<\英语成绩:\cin>>English; if(IsScoreValid(English)==1) break; } }

void Student::Set_Student(string nu,string na,int y,int mo,int d,double m,double c,double e)//设置学生信息 { Num=nu; Name=na; Birthday.set_Date(y,mo,d); Math=m; CPlusPlus=c; English=e; }

void Student::Print_Student()//输出学生信息 { cout<

double Student::Average_Score()//计算平均成绩 { return (Math+CPlusPlus+English)/3; }

本文来源:https://www.bwwdw.com/article/9l42.html

Top