深圳大学——2023-10月计算机信息管理实践
2023-11-02 21:40:02 0 举报
AI智能生成
深圳大学计算机自考实践
作者其他创作
大纲/内容
学校要求开发一个程序对大一新生进行管理,定义一个日期类,日期类包含年,月,日。类型都是int
日期操作包含无参构造,设置默认日期为2023年9月1日,有参构造根据外来参数设置年月日数值
SetDay方法年份和月份不变,只修改日期对象的日期数值。Print方法输出年月日信息。
主函数依次创建三个对象,具体如下 第一个对象采用默认日期,即2023年9月1日,第二个日期对象
表示报道日期,即开学后大一新生报道日期。根据输入数据通过构造函数设置年月日。第三个日期对象
先采用默认日期对象,然后调用SetDay方法修改数据,表示大一新生军训日期(假定大一新生在9月份报道的)
分别调用三次Print方法输出三个日期信息
日期操作包含无参构造,设置默认日期为2023年9月1日,有参构造根据外来参数设置年月日数值
SetDay方法年份和月份不变,只修改日期对象的日期数值。Print方法输出年月日信息。
主函数依次创建三个对象,具体如下 第一个对象采用默认日期,即2023年9月1日,第二个日期对象
表示报道日期,即开学后大一新生报道日期。根据输入数据通过构造函数设置年月日。第三个日期对象
先采用默认日期对象,然后调用SetDay方法修改数据,表示大一新生军训日期(假定大一新生在9月份报道的)
分别调用三次Print方法输出三个日期信息
#include <iostream>
using namespace std; // 引入整个 std 命名空间
class Date {
private:
int year;
int month;
int day;
public:
// 无参构造函数,默认日期为2023年9月1日
Date() : year(2023), month(9), day(1) {}
// 有参构造函数,根据外来参数设置年月日数值
Date(int y, int m, int d) : year(y), month(m), day(d) {}
// SetDay方法,只修改日期对象的日期数值
void SetDay(int d) {
day = d;
}
// Print方法输出年月日信息
void Print() {
cout << "日期信息:" << year << "年" << month << "月" << day << "日" << endl;
}
};
int main() {
// 第一个对象采用默认日期,即2023年9月1日
Date defaultDate;
// 第二个日期对象表示报道日期,通过构造函数设置年月日
int reportYear, reportMonth, reportDay;
cout << "请输入报道日期的年份、月份和日期(空格分隔):";
cin >> reportYear >> reportMonth >> reportDay;
Date reportDate{reportYear, reportMonth, reportDay}; // 使用大括号进行初始化
// 第三个日期对象先采用默认日期对象,然后调用SetDay方法修改日期
Date militaryTrainingDate = defaultDate;
int militaryTrainingDay;
cout << "请输入军训日期的日期数值:";
cin >> militaryTrainingDay;
militaryTrainingDate.SetDay(militaryTrainingDay);
// 输出三个日期信息
cout << "第一个日期对象:";
defaultDate.Print();
cout << "第二个日期对象(报道日期):";
reportDate.Print();
cout << "第三个日期对象(军训日期):";
militaryTrainingDate.Print();
return 0;
}
using namespace std; // 引入整个 std 命名空间
class Date {
private:
int year;
int month;
int day;
public:
// 无参构造函数,默认日期为2023年9月1日
Date() : year(2023), month(9), day(1) {}
// 有参构造函数,根据外来参数设置年月日数值
Date(int y, int m, int d) : year(y), month(m), day(d) {}
// SetDay方法,只修改日期对象的日期数值
void SetDay(int d) {
day = d;
}
// Print方法输出年月日信息
void Print() {
cout << "日期信息:" << year << "年" << month << "月" << day << "日" << endl;
}
};
int main() {
// 第一个对象采用默认日期,即2023年9月1日
Date defaultDate;
// 第二个日期对象表示报道日期,通过构造函数设置年月日
int reportYear, reportMonth, reportDay;
cout << "请输入报道日期的年份、月份和日期(空格分隔):";
cin >> reportYear >> reportMonth >> reportDay;
Date reportDate{reportYear, reportMonth, reportDay}; // 使用大括号进行初始化
// 第三个日期对象先采用默认日期对象,然后调用SetDay方法修改日期
Date militaryTrainingDate = defaultDate;
int militaryTrainingDay;
cout << "请输入军训日期的日期数值:";
cin >> militaryTrainingDay;
militaryTrainingDate.SetDay(militaryTrainingDay);
// 输出三个日期信息
cout << "第一个日期对象:";
defaultDate.Print();
cout << "第二个日期对象(报道日期):";
reportDate.Print();
cout << "第三个日期对象(军训日期):";
militaryTrainingDate.Print();
return 0;
}
已知水果类Fruit,包含私有数据成员:类型(字符串)编号(整数);成员函数自行设计,苹果类Apple和
香蕉类Banana都是水果Fruit的派生类,Apple类增加数据成员:品牌(字符串)颜色(字符串),成员函数
新增输出函数Print其他函数自行设计。其中函数Print输出类Apple的对象信息。
类Banana增加数据成员:姓名(字符串)尺寸(int)成员函数新增函数Print,其他函数自行设计。其中函数Print
输出类Banana对象的基本信息,并且根据尺寸值的1/2/3对应输出short/medium/long。主函数必须通过对象调用
Print函数来实现水果信息输出,不能通过其他方法来输出水果信息,必须实现上述三个类的继承机制
香蕉类Banana都是水果Fruit的派生类,Apple类增加数据成员:品牌(字符串)颜色(字符串),成员函数
新增输出函数Print其他函数自行设计。其中函数Print输出类Apple的对象信息。
类Banana增加数据成员:姓名(字符串)尺寸(int)成员函数新增函数Print,其他函数自行设计。其中函数Print
输出类Banana对象的基本信息,并且根据尺寸值的1/2/3对应输出short/medium/long。主函数必须通过对象调用
Print函数来实现水果信息输出,不能通过其他方法来输出水果信息,必须实现上述三个类的继承机制
#include <iostream>
#include <string>
using namespace std; // 引入整个 std 命名空间
// 水果类
class Fruit {
private:
string type; // 类型
int number; // 编号
public:
// 构造函数
Fruit(const string& t, int n) : type(t), number(n) {}
// 输出水果信息
void Print() const {
cout << "Fruit Type: " << type << ", Number: " << number << endl;
}
};
// 苹果类,继承自水果类
class Apple : public Fruit {
private:
string brand; // 品牌
string color; // 颜色
public:
// 构造函数
Apple(const string& t, int n, const string& b, const string& c)
: Fruit(t, n), brand(b), color(c) {}
// 输出苹果信息
void Print() const {
Fruit::Print(); // 调用基类打印函数
cout << "Apple Brand: " << brand << ", Color: " << color << endl;
}
};
// 香蕉类,继承自水果类
class Banana : public Fruit {
private:
string name; // 姓名
int size; // 尺寸
public:
// 构造函数
Banana(const string& t, int n, const string& nm, int s)
: Fruit(t, n), name(nm), size(s) {}
// 输出香蕉信息
void Print() const {
Fruit::Print(); // 调用基类打印函数
cout << "Banana Name: " << name << ", Size: ";
// 根据尺寸值输出相应描述
switch (size) {
case 1:
cout << "Short";
break;
case 2:
cout << "Medium";
break;
case 3:
cout << "Long";
break;
default:
cout << "Unknown";
break;
}
cout << endl;
}
};
int main() {
// 创建水果、苹果和香蕉对象
Fruit fruit("Generic", 10);
Apple apple("Apple", 5, "BrandX", "Red");
Banana banana("Banana", 8, "Cavendish", 2);
// 输出水果信息
cout << "Printing Fruit Information:" << endl;
fruit.Print();
// 输出苹果信息
cout << "\nPrinting Apple Information:" << endl;
apple.Print();
// 输出香蕉信息
cout << "\nPrinting Banana Information:" << endl;
banana.Print();
return 0;
}
#include <string>
using namespace std; // 引入整个 std 命名空间
// 水果类
class Fruit {
private:
string type; // 类型
int number; // 编号
public:
// 构造函数
Fruit(const string& t, int n) : type(t), number(n) {}
// 输出水果信息
void Print() const {
cout << "Fruit Type: " << type << ", Number: " << number << endl;
}
};
// 苹果类,继承自水果类
class Apple : public Fruit {
private:
string brand; // 品牌
string color; // 颜色
public:
// 构造函数
Apple(const string& t, int n, const string& b, const string& c)
: Fruit(t, n), brand(b), color(c) {}
// 输出苹果信息
void Print() const {
Fruit::Print(); // 调用基类打印函数
cout << "Apple Brand: " << brand << ", Color: " << color << endl;
}
};
// 香蕉类,继承自水果类
class Banana : public Fruit {
private:
string name; // 姓名
int size; // 尺寸
public:
// 构造函数
Banana(const string& t, int n, const string& nm, int s)
: Fruit(t, n), name(nm), size(s) {}
// 输出香蕉信息
void Print() const {
Fruit::Print(); // 调用基类打印函数
cout << "Banana Name: " << name << ", Size: ";
// 根据尺寸值输出相应描述
switch (size) {
case 1:
cout << "Short";
break;
case 2:
cout << "Medium";
break;
case 3:
cout << "Long";
break;
default:
cout << "Unknown";
break;
}
cout << endl;
}
};
int main() {
// 创建水果、苹果和香蕉对象
Fruit fruit("Generic", 10);
Apple apple("Apple", 5, "BrandX", "Red");
Banana banana("Banana", 8, "Cavendish", 2);
// 输出水果信息
cout << "Printing Fruit Information:" << endl;
fruit.Print();
// 输出苹果信息
cout << "\nPrinting Apple Information:" << endl;
apple.Print();
// 输出香蕉信息
cout << "\nPrinting Banana Information:" << endl;
banana.Print();
return 0;
}
定义一个用户类User,数据成员包含用户号(int)和姓名(字符串),实现功能包括;
构造函数,根据需要自行设计,数据成员的Get方法和Set方法,定义一个聊天类ChatGroup,
数据成员包括群聊人数(int)聊天用户数组(User对象数组)实现操作包括,创建群,在聊天用户
数组中保持已有的用户对象,入群,表示一个新用户入群,在聊天用户数组的指定位置插入一个
新用户对象(数组从1开始)参数包含插入位置,用户用户号,用户姓名。退群,表示一个用户退群
在聊天用户数组删除一个用户对象,参数是要删除的用户号,其他函数自行设计,程序要求:
必须定义和使用用户类User和聊天群类ChatGroup,不能使用STL等第三方函数或第三方对象实现功能
构造函数,根据需要自行设计,数据成员的Get方法和Set方法,定义一个聊天类ChatGroup,
数据成员包括群聊人数(int)聊天用户数组(User对象数组)实现操作包括,创建群,在聊天用户
数组中保持已有的用户对象,入群,表示一个新用户入群,在聊天用户数组的指定位置插入一个
新用户对象(数组从1开始)参数包含插入位置,用户用户号,用户姓名。退群,表示一个用户退群
在聊天用户数组删除一个用户对象,参数是要删除的用户号,其他函数自行设计,程序要求:
必须定义和使用用户类User和聊天群类ChatGroup,不能使用STL等第三方函数或第三方对象实现功能
#include <iostream>
#include <string>
using namespace std;
class User {
private:
int userId;
string userName;
public:
User(int id, const string& name) : userId(id), userName(name) {}
int GetUserId() {
return userId;
}
void SetUserId(int id) {
userId = id;
}
string GetUserName() {
return userName;
}
void SetUserName(const string& name) {
userName = name;
}
};
class ChatGroup {
private:
int groupSize;
User* users;
public:
ChatGroup(int size) : groupSize(0) {
users = new User[size];
}
~ChatGroup() {
delete[] users;
}
void CreateGroup(const User* userList, int size) {
for (int i = 0; i < size; ++i) {
users[i] = userList[i];
groupSize++;
}
}
void JoinGroup(int position, int id, const string& name) {
if (position > groupSize || position < 1) {
cout << "Invalid position to insert user." << endl;
return;
}
position--;
for (int i = groupSize; i > position; --i) {
users[i] = users[i - 1];
}
users[position] = User(id, name);
groupSize++;
}
void LeaveGroup(int id) {
int position = -1;
for (int i = 0; i < groupSize; ++i) {
if (users[i].GetUserId() == id) {
position = i;
break;
}
}
if (position != -1) {
for (int i = position; i < groupSize - 1; ++i) {
users[i] = users[i + 1];
}
groupSize--;
} else {
cout << "User not found in the group." << endl;
}
}
};
int main() {
User users[] = {User(1, "Alice"), User(2, "Bob"), User(3, "Charlie"), User(4, "David")};
ChatGroup chatRoom(10);
chatRoom.CreateGroup(users, 4);
for (int i = 0; i < chatRoom.groupSize; ++i) {
cout << "User ID: " << chatRoom.users[i].GetUserId() << ", User Name: " << chatRoom.users[i].GetUserName() << endl;
}
chatRoom.JoinGroup(2, 5, "Eve");
cout << "After a user joined the chat room:" << endl;
for (int i = 0; i < chatRoom.groupSize; ++i) {
cout << "User ID: " << chatRoom.users[i].GetUserId() << ", User Name: " << chatRoom.users[i].GetUserName() << endl;
}
chatRoom.LeaveGroup(3);
cout << "After a user left the chat room:" << endl;
for (int i = 0; i < chatRoom.groupSize; ++i) {
cout << "User ID: " << chatRoom.users[i].GetUserId() << ", User Name: " << chatRoom.users[i].GetUserName() << endl;
}
return 0;
}
#include <string>
using namespace std;
class User {
private:
int userId;
string userName;
public:
User(int id, const string& name) : userId(id), userName(name) {}
int GetUserId() {
return userId;
}
void SetUserId(int id) {
userId = id;
}
string GetUserName() {
return userName;
}
void SetUserName(const string& name) {
userName = name;
}
};
class ChatGroup {
private:
int groupSize;
User* users;
public:
ChatGroup(int size) : groupSize(0) {
users = new User[size];
}
~ChatGroup() {
delete[] users;
}
void CreateGroup(const User* userList, int size) {
for (int i = 0; i < size; ++i) {
users[i] = userList[i];
groupSize++;
}
}
void JoinGroup(int position, int id, const string& name) {
if (position > groupSize || position < 1) {
cout << "Invalid position to insert user." << endl;
return;
}
position--;
for (int i = groupSize; i > position; --i) {
users[i] = users[i - 1];
}
users[position] = User(id, name);
groupSize++;
}
void LeaveGroup(int id) {
int position = -1;
for (int i = 0; i < groupSize; ++i) {
if (users[i].GetUserId() == id) {
position = i;
break;
}
}
if (position != -1) {
for (int i = position; i < groupSize - 1; ++i) {
users[i] = users[i + 1];
}
groupSize--;
} else {
cout << "User not found in the group." << endl;
}
}
};
int main() {
User users[] = {User(1, "Alice"), User(2, "Bob"), User(3, "Charlie"), User(4, "David")};
ChatGroup chatRoom(10);
chatRoom.CreateGroup(users, 4);
for (int i = 0; i < chatRoom.groupSize; ++i) {
cout << "User ID: " << chatRoom.users[i].GetUserId() << ", User Name: " << chatRoom.users[i].GetUserName() << endl;
}
chatRoom.JoinGroup(2, 5, "Eve");
cout << "After a user joined the chat room:" << endl;
for (int i = 0; i < chatRoom.groupSize; ++i) {
cout << "User ID: " << chatRoom.users[i].GetUserId() << ", User Name: " << chatRoom.users[i].GetUserName() << endl;
}
chatRoom.LeaveGroup(3);
cout << "After a user left the chat room:" << endl;
for (int i = 0; i < chatRoom.groupSize; ++i) {
cout << "User ID: " << chatRoom.users[i].GetUserId() << ", User Name: " << chatRoom.users[i].GetUserName() << endl;
}
return 0;
}
定义日期类,包含私有数据成员年(int)月(int),日(int),公有函数包括
无参构造,设置默认日期为2023年1月1日,并输出构造信息:default constructor called有参构造,包含年月日,三个参数,初始化年月日数据成员,并输出构造信息 parameter constructor called输出函数print,输出日期信息.
析构函数,输出析构信息:elestructor called
主函数创建两个日期对象,要求完成以下两个操作,创建第一个日期对象,采用默认日期,无参数,
第一个日期对象调用print函数输出日期信息
从键盘输入年,月,月三个参数,然后创建第二个日期对象,并且通过有参构造改置输入的年月日.
调用第二个日期又據的print函数,输出日期信息
无参构造,设置默认日期为2023年1月1日,并输出构造信息:default constructor called有参构造,包含年月日,三个参数,初始化年月日数据成员,并输出构造信息 parameter constructor called输出函数print,输出日期信息.
析构函数,输出析构信息:elestructor called
主函数创建两个日期对象,要求完成以下两个操作,创建第一个日期对象,采用默认日期,无参数,
第一个日期对象调用print函数输出日期信息
从键盘输入年,月,月三个参数,然后创建第二个日期对象,并且通过有参构造改置输入的年月日.
调用第二个日期又據的print函数,输出日期信息
#include <iostream>
using namespace std;
class Date {
private:
int year;
int month;
int day;
public:
Date() : year(2023), month(1), day(1) {
cout << "Default constructor called" << endl;
}
Date(int y, int m, int d) : year(y), month(m), day(d) {
cout << "Parameter constructor called" << endl;
}
void Print() {
cout << "Date: " << year << "年" << month << "月" << day << "日" << endl;
}
~Date() {
cout << "Destructor called" << endl;
}
};
int main() {
Date date1;
cout << "First date object (default date): ";
date1.Print();
int year, month, day;
cout << "Enter year, month, and day: ";
cin >> year >> month >> day;
Date date2(year, month, day);
cout << "Second date object (user input): ";
date2.Print();
return 0;
}
using namespace std;
class Date {
private:
int year;
int month;
int day;
public:
Date() : year(2023), month(1), day(1) {
cout << "Default constructor called" << endl;
}
Date(int y, int m, int d) : year(y), month(m), day(d) {
cout << "Parameter constructor called" << endl;
}
void Print() {
cout << "Date: " << year << "年" << month << "月" << day << "日" << endl;
}
~Date() {
cout << "Destructor called" << endl;
}
};
int main() {
Date date1;
cout << "First date object (default date): ";
date1.Print();
int year, month, day;
cout << "Enter year, month, and day: ";
cin >> year >> month >> day;
Date date2(year, month, day);
cout << "Second date object (user input): ";
date2.Print();
return 0;
}
有一位同学住在沧海校区,但是他经常去粤海校区上课从宿舍到文科楼要20分钟15秒的时间现在他想知道从宿舍出发什么时候到到达文科楼.定义一个时间类CTime,包含私有数据成员.时分秒,
包含成员函数Arrival_Time.设函数无返回值;包含三个参数表示出发时间的时分秒:函数功能是计算出发时间在20分15秒后的到达时间,并输出该时间,
输出格式样例.
日期输入,
输入一行,三个整数表示第二个日期的年月日
共输出六行,包含两个日期对象的构造信息,
调用Print函数输出的信息,两个对象的析构信息
时间
第一行输入t表示有t个出发时间
第二行输入三个整数,表示出发时间的时,分,秒;输入保证数据合法
输出t行,每行一个到达时间,
输入有两行
第一行输入年月日三个整数表示新生报到日期,对应第二个日期对象
第二行输入一个整数,表示要修改的日,对应修改第三个日期对象的日份数据
共输出三行
第一行输出默认日期
第二行输入出新生报到日期
第三行车输出修改后的新生军训日期
其他成员函数自行设计,要求主函数创建CTime类对象,而且通过调用对象的成员函数Arrival_Time输出到达时间,
注意大小写,不要使用单词Time,可能会引发语法错误,时间取值范围时0-23时分和秒0-59不考虑跨天的情况
包含成员函数Arrival_Time.设函数无返回值;包含三个参数表示出发时间的时分秒:函数功能是计算出发时间在20分15秒后的到达时间,并输出该时间,
输出格式样例.
日期输入,
输入一行,三个整数表示第二个日期的年月日
共输出六行,包含两个日期对象的构造信息,
调用Print函数输出的信息,两个对象的析构信息
时间
第一行输入t表示有t个出发时间
第二行输入三个整数,表示出发时间的时,分,秒;输入保证数据合法
输出t行,每行一个到达时间,
输入有两行
第一行输入年月日三个整数表示新生报到日期,对应第二个日期对象
第二行输入一个整数,表示要修改的日,对应修改第三个日期对象的日份数据
共输出三行
第一行输出默认日期
第二行输入出新生报到日期
第三行车输出修改后的新生军训日期
其他成员函数自行设计,要求主函数创建CTime类对象,而且通过调用对象的成员函数Arrival_Time输出到达时间,
注意大小写,不要使用单词Time,可能会引发语法错误,时间取值范围时0-23时分和秒0-59不考虑跨天的情况
#include <iostream>
#include <iomanip> // 用于设置 cout 的输出格式
using namespace std;
class CTime {
private:
int hour;
int minute;
int second;
public:
// 构造函数,初始化时分秒
CTime(int h, int m, int s) : hour(h), minute(m), second(s) {
cout << "Default Constructor Called" << endl;
}
// 计算出发时间经过一定时间后到达目的地的时间
void Arrival_Time(int addHour, int addMinute, int addSecond) {
// 添加经过的时间
second += addSecond;
if (second >= 60) {
second -= 60;
minute++;
}
minute += addMinute;
if (minute >= 60) {
minute -= 60;
hour++;
}
// 处理小时,防止超过 24 小时
hour = (hour + addHour) % 24;
// 输出到达时间
cout << setfill('0') << setw(2) << hour << ":"
<< setfill('0') << setw(2) << minute << ":"
<< setfill('0') << setw(2) << second << endl;
}
// 输出当前时间
void Print() const {
cout << "Time: " << setfill('0') << setw(2) << hour << ":"
<< setfill('0') << setw(2) << minute << ":"
<< setfill('0') << setw(2) << second << endl;
}
// 析构函数,用于资源清理或其他操作
~CTime() {
cout << "Destructor Called" << endl;
}
};
int main() {
// 创建时间对象并输出默认时间
CTime time1(0, 0, 0);
time1.Print();
int t;
cin >> t; // 输入出发时间数
// 循环输入出发时间,计算到达时间并输出
for (int i = 0; i < t; ++i) {
int h, m, s;
cin >> h >> m >> s;
CTime time(0, 0, 0);
time.Arrival_Time(h, m, s);
}
int year, month, day;
cin >> year >> month >> day;
// 输入日期,创建日期对象并输出
CTime date1(year, month, day);
date1.Print();
int modifyDay;
cin >> modifyDay;
// 输入修改天数,计算修改后的日期并输出
CTime date2(year, month, day);
date2.Arrival_Time(0, 0, modifyDay * 24 * 60 * 60);
return 0;
}
#include <iomanip> // 用于设置 cout 的输出格式
using namespace std;
class CTime {
private:
int hour;
int minute;
int second;
public:
// 构造函数,初始化时分秒
CTime(int h, int m, int s) : hour(h), minute(m), second(s) {
cout << "Default Constructor Called" << endl;
}
// 计算出发时间经过一定时间后到达目的地的时间
void Arrival_Time(int addHour, int addMinute, int addSecond) {
// 添加经过的时间
second += addSecond;
if (second >= 60) {
second -= 60;
minute++;
}
minute += addMinute;
if (minute >= 60) {
minute -= 60;
hour++;
}
// 处理小时,防止超过 24 小时
hour = (hour + addHour) % 24;
// 输出到达时间
cout << setfill('0') << setw(2) << hour << ":"
<< setfill('0') << setw(2) << minute << ":"
<< setfill('0') << setw(2) << second << endl;
}
// 输出当前时间
void Print() const {
cout << "Time: " << setfill('0') << setw(2) << hour << ":"
<< setfill('0') << setw(2) << minute << ":"
<< setfill('0') << setw(2) << second << endl;
}
// 析构函数,用于资源清理或其他操作
~CTime() {
cout << "Destructor Called" << endl;
}
};
int main() {
// 创建时间对象并输出默认时间
CTime time1(0, 0, 0);
time1.Print();
int t;
cin >> t; // 输入出发时间数
// 循环输入出发时间,计算到达时间并输出
for (int i = 0; i < t; ++i) {
int h, m, s;
cin >> h >> m >> s;
CTime time(0, 0, 0);
time.Arrival_Time(h, m, s);
}
int year, month, day;
cin >> year >> month >> day;
// 输入日期,创建日期对象并输出
CTime date1(year, month, day);
date1.Print();
int modifyDay;
cin >> modifyDay;
// 输入修改天数,计算修改后的日期并输出
CTime date2(year, month, day);
date2.Arrival_Time(0, 0, modifyDay * 24 * 60 * 60);
return 0;
}
0 条评论
下一页