今天突然想用C++写一下简易学员管理系统。
主要功能:增、删、改、查
用到的知识点:1.集合vector;2.数字转字符串string;3.对象指针。
student.h如下
#ifndef STUDENT_H
#define STUDENT_H
#include <string>
using namespace std;
class student
{
public:
void setId(int i);
int getId();
void setName(string s);
string getName();
void setAge(int i);
int getAge();
void setSex(int i);
int getSex();
string getString();
protected:
private:
int id;
string name;
int age;
int sex;
};
#endif
student.cpp如下
#include "student.h"
#include <sstream>
void student::setId(int i){
id = i;
}
int student::getId(){
return id;
}
void student::setName(string s){
name = s;
}
string student::getName(){
return name;
}
void student::setAge(int i){
age = i;
}
int student::getAge(){
return age;
}
void student::setSex(int i){
sex = i;
}
int student::getSex(){
return sex;
}
string student::getString(){
//数字转字符,需要引入<sstream>,然后调用str()
stringstream str,stri,strid;
str<<age;
stri<<sex;
strid<<id;
return "id:"+strid.str()+",name:"+name+",age:"+str.str()+",sex:"+stri.str();
}
main.cpp如下
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include "student.h"
using namespace std;
int main(int argc, char** argv) {
//创建一个集合,需要引入<vector>
vector<student> vs;
int num,flag,id=0;
string str;
//定义一个对象指针
student *s;
while(true){
cout<<"欢迎登录"<<endl;
cout<<"1.添加学员数据\n2.修改学员数据\n3.删除学员数据\n4.查看所有学员\n5.退出系统"<<endl;
cin>>num;
if(num==5){
break;
}
student stu ;
switch(num){
case 1:
id++;
stu.setId(id);
cout<<"请输入学员名:"<<endl;
cin>>str;
stu.setName(str);
cout<<"请输入学员年龄:"<<endl;
cin>>flag;
stu.setAge(flag);
cout<<"请输入学员性别(1为男,0为女):"<<endl;
cin>>flag;
stu.setSex(flag);
//把数据添加到集合末尾
vs.push_back(stu);
break;
case 2:
cout<<"请输入要修改的ID号:"<<endl;
cin>>num;
//获取将要修改的数据指针赋给s
//“集合[集合下标]” 可以取到相应的数据 ,和数组取值一样,第一个为0
s =&vs[num-1];
cout<<"请输入学员名:"<<endl;
cin>>str;
s->setName(str);
cout<<"请输入学员年龄:"<<endl;
cin>>flag;
s->setAge(flag);
cout<<"请输入学员性别(1为男,0为女):"<<endl;
cin>>flag;
s->setSex(flag);
break;
case 3:
cout<<"请输入要删除的ID号:"<<endl;
cin>>num;
//删除数据
vs.erase(vs.begin()+num-1);
break;
case 4:
if(vs.empty()){
cout<<"还没有学员数据,请添加!"<<endl;
}
//遍历集合
for(int i=0;i<vs.size();i++){
cout<<vs[i].getString()<<endl;
}
break;
default:
cout<<"系统错误,请稍后再试!"<<endl;
break;
}
}
return 0;
}
调试截图: