初学( •̥́ ˍ •̀ू ) 2021-05-30 21:15 采纳率: 80%
浏览 50
已结题

vector的使用方式?

有大佬可以帮忙看看为什么这个程序运行不了结果(只是成功跳出了运行屏)😭😭🙏🙏

#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();
    }
}

  • 写回答

3条回答 默认 最新

  • qfl_sdu 2021-05-30 22:50
    关注

    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);
    	}
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月22日

悬赏问题

  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?