有大佬可以帮忙看看为什么这个程序运行不了结果(只是成功跳出了运行屏)😭😭🙏🙏
#include<iostream>
using namespace std;
#include<string>
#include<vector>
#include<stdlib.h>
#include <conio.h>
class information{
public:
//----------数据域------
//报名时间
int sign_time_year;
int sign_time_month;
int sign_time_day;
int sign_time_hour;
int sign_time_minute;
int sign_time_second;
//活动开始时间
int act_time_year;
int act_time_month;
int act_time_day;
int act_time_hour;
int act_time_minute;
int act_time_second;
//活动截止时间
int off_acttime_year;
int off_acttime_month;
int off_acttime_day;
int off_acttime_hour;
int off_acttime_minute;
int off_acttime_second;
//截止报名时间
int off_signtime_year;
int off_signtime_month;
int off_signtime_day;
int off_signtime_hour;
int off_signtime_minute;
int off_signtime_second;
int act_number;//活动存在标志号
string act_position[50];//活动人数
string act_request[500];
//活动要求
int sumofpeople;//人数上限
int sumofservetime;//志愿服务时间
//------------函数域---------
void print_information();
};
vector<information> message;
class Volunteer_service:public information
{//社团管理的志愿服务信息实现
public:
int Sign_time();
int Act_time();
int Off_acttime();
int Off_signtime();
void Act_position();
int Sumofpeople();
int Sumofservetime();
void Act_Request();
//int Select_student();
void setxinxi();
private:
string ID;
string Name;
string Password;
int xinyufen;
};
vector<Volunteer_service> people;
void information::print_information()
{
for (int i = 0; i < message.size(); i++)
{
cout<<"活动序号:"<<message.at(i).act_number<<endl;
cout<<"开始报名时间:"<<message.at(i).sign_time_year<<"年"<<message.at(i).sign_time_month<<"月"<<message.at(i).sign_time_day<<"日"
<<message.at(i).sign_time_hour<<":"<<message.at(i).sign_time_minute<<":"<<message.at(i).sign_time_second<<endl;
cout<<"报名截止时间:"<<message.at(i).off_signtime_year<<"年"<<message.at(i).off_signtime_month<<"月"<<message.at(i).off_signtime_day<<"日"
<<message.at(i).off_signtime_hour<<":"<<message.at(i).off_signtime_minute<<":"<<message.at(i).off_signtime_second<<endl;
cout<<"活动开始时间:"<<message.at(i).act_time_year<<"年"<<message.at(i).act_time_month<<"月"<<message.at(i).act_time_day<<"日"
<<message.at(i).act_time_hour<<":"<<message.at(i).act_time_minute<<":"<<message.at(i).act_time_second<<endl;
cout<<"活动截止时间:"<<message.at(i).off_acttime_year<<"年"<<message.at(i).off_acttime_month<<"月"<<message.at(i).off_acttime_day<<"日"
<<message.at(i).off_acttime_hour<<":"<<message.at(i).off_acttime_minute<<":"<<message.at(i).off_acttime_second<<endl;
cout<<"活动地点:";
for(int j=0;j!='/';j++)
{
cout<<message.at(i).act_position[j];
}
cout<<"活动要求:";
for(int j=0;j!='/';j++)
{
cout<<message.at(i).act_request[j];
}
cout<<"活动人数:"<<message.at(i).sumofpeople<<endl;
cout<<"志愿服务时长:"<<message.at(i).sumofservetime<<endl;
}
}
int Volunteer_service::Sign_time()
{
for (int i = 0; i < message.size(); i++)
{
cout<<"请设置报名时间:(年月日时分秒)"<<endl;
cin>>message.at(i).sign_time_year;
cin>>message.at(i).sign_time_month;
cin>>message.at(i).sign_time_day;
cin>>message.at(i).sign_time_hour;
cin>>message.at(i).sign_time_minute;
cin>>message.at(i).sign_time_second;
}
}
int Volunteer_service::Act_time()
{
for (int i = 0; i < message.size(); i++)
{
cout<<"请设置活动开始时间:(年月日时分秒)"<<endl;
cin>>message.at(i).act_time_year;
cin>>message.at(i).act_time_month;
cin>>message.at(i).act_time_day;
cin>>message.at(i).act_time_hour;
cin>>message.at(i).act_time_minute;
cin>>message.at(i).act_time_second;
}
}
int Volunteer_service::Off_acttime()
{
for (int i = 0; i < message.size(); i++)
{
cout<<"请设置活动截至时间:(年月日时分秒)"<<endl;
cin>>message.at(i).off_acttime_year;
cin>>message.at(i).off_acttime_month;
cin>>message.at(i).off_acttime_day;
cin>>message.at(i).off_acttime_hour;
cin>>message.at(i).off_acttime_minute;
cin>>message.at(i).off_acttime_second;
}
}
int Volunteer_service::Off_signtime()
{
for (int i = 0; i < message.size(); i++)
{
cout<<"请设置报名截止时间:(年月日时分秒)"<<endl;
cin>>message.at(i).off_signtime_year;
cin>>message.at(i).off_signtime_month;
cin>>message.at(i).off_signtime_day;
cin>>message.at(i).off_signtime_hour;
cin>>message.at(i).off_signtime_minute;
cin>>message.at(i).off_signtime_second;
}
}
void Volunteer_service::Act_position()
{
for (int i = 0; i < message.size(); i++)
{
int j=0;
cout<<"活动地点:";
do
{
j++;
cin>>message.at(i).act_position[j];
}while(message.at(i).act_position[j]!="/");
}
}
int Volunteer_service::Sumofpeople()
{
for (int i = 0; i < message.size(); i++)
{
cout<<"活动人数上限:"<<endl;
cin>>message.at(i).sumofpeople;
}
}
void Volunteer_service::Act_Request()
{
for (int i = 0; i < message.size(); i++)
{
int j=0;
cout<<"活动要求:";
do
{
i++;
cin>>message.at(i).act_request[j];
}while(message.at(i).act_request[j]!="/");
}
}
int Volunteer_service::Sumofservetime()
{
for (int i = 0; i < message.size(); i++)
{
cout<<"志愿服务时长:";
cin>>message.at(i).sumofservetime;
}
}
void Volunteer_service::setxinxi()//活动信息录入
{
system("color f9");
system("mode con cols=400 lines=400");
cout<<"请输入志愿活动的基本信息:"<<endl;
for (int i = 0; i < people.size(); i++)
{
people.at(i).Sign_time();
people.at(i).Off_signtime();
people.at(i).Act_time();
people.at(i).Off_acttime();
people.at(i).Sumofpeople();
people.at(i).Sumofservetime();
people.at(i).Sumofpeople();
people.at(i).Act_position();
people.at(i).Act_Request();
people.at(i).print_information();
cout<<"此信息已交由学校管理者审核"<<endl;
}
}
int main()
{
Volunteer_service u;
for (int i = 0; i < people.size(); i++)
{
people.at(i).setxinxi();
}
}
vector的用法跟数组不一样,你的代码中在录入数据的时候,都是for (int i = 0; i < message.size(); i++){cin>>message.at(i).sign_time_year;/**/}这种形式,此时message.size()的大小是0,不会往vector中插入数据的。
你的代码写的太乱了。
Volunteer_service类继承了information类,Volunteer_service类中定义的私有成员也没有使用。搞不懂你要干啥。
代码整理了一下,做个参考吧。
#include<iostream>
#include<string>
#include<vector>
#include<stdlib.h>
#include <conio.h>
using namespace std;
//定义时间
class DateTime
{
public:
int year;
int month;
int day;
int hour;
int minute;
int second;
DateTime(){}
DateTime(int y,int m,int d,int h,int mi,int s){year = y; month = m; day = d;hour = h; minute = mi;second = s;}
void display(int type)
{
if(0 == type)
cout << year << "年" << month << "月" << day << "日" << hour <<"时" << minute << "分" << second << "秒" << endl;
else
cout << year << "年" << month << "月" << day << "日" <<endl;
}
};
class information
{
protected:
//----------数据域------
DateTime sig_time; //报名时间
DateTime act_time; //活动开始时间
DateTime off_acttime; //活动截止时间
DateTime off_signtime; //截止报名时间
int act_number; //活动存在标志号
string act_position[50];//活动人数
string act_request[500];//活动要求
int nmbpos; //活动地点数
int nmbrequest; //活动要求条数
//活动要求
int sumofpeople; //人数上限
int sumofservetime; //志愿服务时间
//------------函数域---------
public:
int Sign_time();
int Act_time();
int Off_acttime();
int Off_signtime();
void Act_position();
int Sumofpeople();
int Sumofservetime();
void Act_Request();
void print_information();
};
void information::print_information()
{
cout<<"活动序号:"<<act_number<<endl;
cout<<"开始报名时间:";
sig_time.display(1);
cout<<"报名截止时间:";
off_signtime.display(1);
cout<<"活动开始时间:";
act_time.display(1);
cout<<"活动截止时间:";
off_acttime.display(1);
cout<<"活动地点:";
for(int j=0;j < nmbpos;j++)
{
cout<<act_position[j];
}
cout<<"活动要求:";
for(int j=0;j < nmbrequest;j++)
{
cout<<act_request[j];
}
cout<<"活动人数上限:"<<sumofpeople<<endl;
cout<<"志愿服务时长:"<<sumofservetime<<endl;
}
int information::Sign_time()
{
cout<<"请设置报名时间:(年月日时分秒)"<<endl;
cin>>sig_time.year;
cin>>sig_time.month;
cin>>sig_time.day;
cin>>sig_time.hour;
cin>>sig_time.minute;
cin>>sig_time.second;
return 0;
}
int information::Act_time()
{
cout<<"请设置活动开始时间:(年月日时分秒)"<<endl;
cin>>act_time.year;
cin>>act_time.month;
cin>>act_time.day;
cin>>act_time.hour;
cin>>act_time.minute;
cin>>act_time.second;
return 0;
}
int information::Off_acttime()
{
cout<<"请设置活动截至时间:(年月日时分秒)"<<endl;
cin>>off_acttime.year;
cin>>off_acttime.month;
cin>>off_acttime.day;
cin>>off_acttime.hour;
cin>>off_acttime.minute;
cin>>off_acttime.second;
return 0;
}
int information::Off_signtime()
{
cout<<"请设置报名截止时间:(年月日时分秒)"<<endl;
cin>>off_signtime.year;
cin>>off_signtime.month;
cin>>off_signtime.day;
cin>>off_signtime.hour;
cin>>off_signtime.minute;
cin>>off_signtime.second;
return 0;
}
void information::Act_position()
{
cout<<"活动地点:";
nmbpos = 0;
do
{
cin>>act_position[nmbpos];
nmbpos++;
}while(act_position[nmbpos-1]!="/");
}
int information::Sumofpeople()
{
cout<<"活动人数上限:"<<endl;
cin>>sumofpeople;
return 0;
}
void information::Act_Request()
{
cout<<"活动要求:";
nmbrequest = 0;
do
{
cin>>act_request[nmbrequest];
nmbrequest++;
}while(act_request[nmbrequest-1]!="/");
}
int information::Sumofservetime()
{
cout<<"志愿服务时长:";
cin>>sumofservetime;
return 0;
}
class Volunteer_service:public information
{//社团管理的志愿服务信息实现
public:
void setxinxi();
private:
string ID;
string Name;
string Password;
int xinyufen;
};
void Volunteer_service::setxinxi()//活动信息录入
{
system("color f9");
system("mode con cols=400 lines=400");
cout<<"请输入志愿活动的基本信息:"<<endl;
Sign_time();
Off_signtime();
Act_time();
Off_acttime();
Sumofpeople();
Sumofservetime();
Sumofpeople();
Act_position();
Act_Request();
print_information();
cout<<"此信息已交由学校管理者审核"<<endl;
}
vector<Volunteer_service> people; //既然是志愿服务类,为啥起个名字叫people。。
int main()
{
int nmb = 0;
cout << "请输入志愿服务数:";
cin >> nmb;
for (int i = 0; i < nmb; i++)
{
Volunteer_service u;
u.setxinxi();
people.push_back(u);
}
}
回复即采纳!孩子急求🙏🙏
首先,解决编译错误。
Volunteer_service::Act_time” :
Volunteer_service::Sign_time” :
Volunteer_service::Off_signtime” :
Volunteer_service::Sumofpeople” :
Volunteer_service::Off_acttime” :
Volunteer_service::Sumofservetime” :
还有main函数
//必须返回一个值
其次,编译了之后
int main()
{
Volunteer_service u;
for (int i = 0; i < people.size(); i++)
{
people.at(i).setxinxi();
}
}
此处的Volunteer_service u没有调用任何函数
此时people.size()=0,因为vector并没有加入数据。