c++题目 面向对象程序设计b题目
发布网友
发布时间:2022-05-12 00:08
我来回答
共3个回答
热心网友
时间:2023-10-28 03:11
//person.h
#include <iostream>
#include <string>
using namespace std;
class date
{
public:
date(){}
date(int y, int m, int d): year(y),month(m),day(d){}
void set_date(int y, int m, int d)
{
this->year = y;
this->day = d;
this->month = m;
}
void print_date()
{
cout << "birthday" << year << ":" << month << ":" << day << "\n";
}
~date(){};
private:
int year, month, day;
};
class person
{
public:
person();
//person(char*, char*, char*);
person(string, string, string);
virtual void Show();
virtual void Read();
virtual ~person(){};
private:
//char name[10];
//char sex[10];
//char address[50];
string name;
string sex;
string address;
date d;
};
/*
person::person()
{
;
}
person::person(string n, string s, string a):name(n), sex(s), address(a){}
void person::Read()
{
string name, sex, address;
int y, m, d;
cout << "input name, sex, address,date\n";
cin >> name >> sex >> address >> y >> m >> d;
this->name = name;
this->sex = sex;
this->address = address;
//person(name, sex, address);
//this->d.year = y;
//this->d.month = m;
//this->d.day = d;
this->d.set_date(y, m, d);
}
void person::Show()
{
cout << "name: " << this->name << "\tsex:"+sex << "\taddress:"+address << endl;
this->d.print_date();
}
*/
//student.h
class student:public person
{
public:
student(){};
void Show();
void Read();
~student(){};
private:
string major;
string course[20];
date stu_register_date;
};
/*
void student::Read()
{
//person.Read();
person::Read();
cout << "input major:\n" ;
cin >> major;
major = major;
cout << "input course less than 20 and 'q' to quite:\n";
string str_temp;
size_t st = 0;
while (cin >> str_temp && str_temp != "q")
{
course[st] = str_temp;
st++;
}
}
void student::Show()
{
person::Show();
cout << "major:"+major << endl;
}
*/
//teacher.h
struct course
{
int xueqi;
int keshi;
char name[50];
};
class teacher:public person
{
public:
teacher(){}
void Read();
void Show();
~teacher(){}
size_t course_point;
private:
course tea_courses [10];
};
/*
void teacher::Read()
{
person::Read();
cout << "input course:xueqi(int),keshi(int),name(char*) 'q' to complate" << endl;
int xueqi, keshi;
//char name[50];
cin >> xueqi >> keshi;
tea_courses[course_point].xueqi = xueqi;
tea_courses[course_point].keshi = keshi;
cin >> tea_courses[course_point].name;
course_point++;
}
void teacher::Show()
{
person::Show();
for(size_t st=0; st!=course_point;++st)
{
cout << "course:\n" << "xueqi:" + tea_courses[st].xueqi << "\tkeshi:" + tea_courses[st].keshi
<< "\tname:" << tea_courses[st].name << endl;
}
}
*/
//main.cpp
#include <iostream>
#include "person.h"
#include "student.h"
#include "teacher.h"
using namespace std;
int main()
{
person * p;
student stu;
p = &stu;
p->Read(); // read student
p->Show(); //show student
p = new teacher();
p->Read(); // read teacher
p->Show();// show teacher
cout << "hello world\n";
return 0;
}
//person.cpp
#include <iostream>
#include "person.h"
using namespace std;
person::person()
{
;
}
person::person(string n, string s, string a):name(n), sex(s), address(a){}
void person::Read()
{
string name, sex, address;
int y, m, d;
cout << "input name, sex, address,date\n";
cin >> name >> sex >> address >> y >> m >> d;
this->name = name;
this->sex = sex;
this->address = address;
//person(name, sex, address);
//this->d.year = y;
//this->d.month = m;
//this->d.day = d;
this->d.set_date(y, m, d);
}
void person::Show()
{
cout << "name: " << this->name << "\tsex:"+sex << "\taddress:"+address << endl;
this->d.print_date();
}
//student.cpp
#include <iostream>
#include "person.h"
#include "student.h"
using namespace std;
void student::Read()
{
//person.Read();
cout << "input a student\n";
person::Read();
cout << "input major:\n" ;
cin >> major;
major = major;
cout << "input course less than 20 and 'q' to quite:\n";
string str_temp;
size_t st = 0;
while (cin >> str_temp && str_temp != "q")
{
course[st] = str_temp;
st++;
}
}
void student::Show()
{
cout << "cout a student\n";
person::Show();
cout << "major:"+major << endl;
for(size_t st=0; st!=20; ++st)
{
cout <<"\t" << course[st] << endl;
}
}
//teacher.cpp
#include <iostream>
#include "person.h"
#include "teacher.h"
using namespace std;
void teacher::Read()
{
cout << "cin a teacher\n";
person::Read();
cout << "input course:xueqi(int),keshi(int),name(char*) 'q' to complate" << endl;
int xueqi, keshi;
//char name[50];
cin >> xueqi >> keshi;
tea_courses[course_point].xueqi = xueqi;
tea_courses[course_point].keshi = keshi;
cin >> tea_courses[course_point].name;
course_point++;
}
void teacher::Show()
{
cout <<"cout a teacher\n";
person::Show();
for(size_t st=0; st!=course_point;++st)
{
cout << "course:\n" << "xueqi:" + tea_courses[st].xueqi << "\tkeshi:" + tea_courses[st].keshi
<< "\tname:" << tea_courses[st].name << endl;
}
}
你可以仔细测试一下。。
热心网友
时间:2023-10-28 03:12
设计实现校园信息管理系统,在该校园信息管理系统中同时对教师和学生的信息进行管理。
要求和提示如下,请认真看完:
(1)编写person类,student类,teacher类的声明和成员函数定义,注意进行文件的划分,即分别用一个.cpp和一个.h存放一个类的定义和声明
各个文件名称如下:
person.h, person.cpp, student.h, student.cpp, teacher.h, teacher.cpp, main.cpp
此处不允许将所有三个类的成员函数定义写到同一个.cpp中!!
(2)在编写主函数main的.cpp文件中有如下内容(注意:该.cpp文件并不仅仅包含下面内容,缺少的部分需要自己根据需要和实际情况添加)
//测试多态性
void ShowAll(person *p)
{
p->Show();
}
void main()
{
student s;
s.Read();
teacher t;
t.Read();
//下面是调用ShowAll函数显示学生信息,包括姓名性别家庭住址出生日期等
ShowAll(&s);
//请在下面调用ShowAll函数显示教师信息,包括姓名性别家庭住址出生日期等
}
提示:
(1)person类的声明如下(下面的声明有些问题,无法实现多态,需要自己修改好!!):
class person
{
public:
person();
void Show(void);
void Read(void);
private:
char name[10];//姓名
char sex[10];//性别
char address[50];//家庭住址
date birthday;//出生日期,date为自定义结构,见下面的提示
};
(2)类设计如下:
person类
定义 数据类型 描述
name char数组 姓名
sex char数组 性别
address char数组 家庭住址
birthday date(自定义结构) 出生日期
Show 虚成员函数 输出person实例信息(提示:cout)
Read 虚成员函数 输入person实例信息(提示:cin)
下面,由person类派生出学生类student和教师类teacher。类中成员名称及其功能说明如下表:
student类
定义 数据类型 描述
major char数组 所学专业
courses course数组(自定义结构) 所学课程(假设每名学生最多学20门课程)
sregister date(自定义结构) 入学日期
Show 成员函数 输出student实例信息(提示:cout)
Read 成员函数 输入student实例信息(提示:cin)
teacher类
定义 数据类型 描述
courses course数组(自定义结构) 所教课程(假设每名教师最多教10门课程)
tregister date(自定义结构) 到校日期
Show 成员函数 输出teacher实例信息(提示:cout)
Read 成员函数 输入teacher实例信息(提示:cin)
(3)自定义的结构体如下:
//日期:用于person出生日期,学生入学日期,教师入职日期
struct date
{
int year;
int month;
int day;
};
//课程:用于教师教授课程信息,学生学习的课程信息
struct course
{
int xueqi;//学期
int keshi;//课时
char name[50];
};
编程提示:
该程序本质是需要大家了解多态,虚函数,那么成员函数的编写其实非常简单,仅仅是一些输入输出。
(1)在C++中,如果要读入字符串
char str[10];//定义一个数组,里面存放字符类型的数据
cin>>str;//这样从键盘键入字符串,就可以读入str中
在C++中,如果输出字符串,接着上面的例子写
cout<<str;//这样,就将str中存放的字符串输出到屏幕上
(2)在C++中,读入输出整型数据
int keshi;//定义整型变量
cin>>keshi;//读入一个整型数据到keshi变量中
cout<<keshi;//输出keshi变量中存放的数据
问题补充:在线等 急。。。。 事后追加分
热心网友
时间:2023-10-28 03:12
我大概看了下,建议你一步步操作。
其实很容易的。从创建类开始,然后逐个添加成员变量和函数。