首页 > 学院 > 开发设计 > 正文

BIT2013年上机第二题

2019-11-06 07:20:26
字体:
来源:转载
供稿:网友

题目要求

解题思路

   这道题看着简单,但是我还是不能独立完成,这个和我的心态有很大的关系,太过于焦躁不安,不能完全的沉下心来去解决问题。

  同时对于vector容器的操作方法太过于生疏,需要多多练习。

  总的来说,实力才是王道,还是你实力太弱,所以总是不安

代码:

#include<iostream>#include<string>#include<algorithm>#include<vector>using namespace std;struct Student{	int num;	string name;	string sex;	int age;};bool Comp(const Student s1,const Student s2){	if(s1.num!=s2.num)		return s1.num<s2.num;	else return s1.num<s2.num;}void display(vector<Student> v){	vector<Student>::iterator it;	for(it=v.begin();it!=v.end();it++){		if(it==v.begin()){			cout<<"("<<(*it).num<<","<<(*it).name<<","<<(*it).sex<<","<<(*it).age<<")";		}else{			cout<<",("<<(*it).num<<","<<(*it).name<<","<<(*it).sex<<","<<(*it).age<<")";		}	}	cout<<endl;}int main(){	vector<Student> v;	Student p;	Student stu[3];	char ch[100];	stu[0].num=10;stu[0].name="wes";stu[0].sex="f";stu[0].age=23;	stu[1].num=20;stu[1].name="ert";stu[1].sex="f";stu[1].age=45;	stu[2].num=30;stu[2].name="str";stu[2].sex="t";stu[2].age=89;	v.push_back(stu[0]);	v.push_back(stu[1]);	v.push_back(stu[2]);	cout<<"请输入一段字符串:";	gets(ch);	char name[40],sex[40]; //姓名 性别	int num,age; //学号 年龄	while(1){		if(ch[0]=='I'){			sscanf(ch,"I%d %s %s %d",&num,name,sex,&age);			p.num = num;			p.name = name;			p.sex = sex;			p.age = age;			v.push_back(p);		}else if(ch[0]=='D'){			sscanf(ch,"D%d",&num);			vector<Student>::iterator it;			for(it=v.begin();it!=v.end();it++){				if((*it).num==num){					v.erase(it);					break;				}			}		}		sort(v.begin(),v.end(),Comp);		display(v);		cout<<"请输入一段字符串:";		gets(ch);	}	return 0;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表