C++小学期作业,信息管理系统
这是我学C++的时候完成的一个任务,写的一个考生自愿填报管理系统。只完成了很基础的功能实现,没有写界面,人机交互也只是很基础的用1234之类的来表示选项。源码在最后。
关于代码介绍
我这个代码主要实现了考生信息,专业信息,志愿信息的增添,查找与删除。
主要包含的三个类
下面只有一个考生类,还有两个专业类,和志愿类都是大同小异,基本与考生类差不多,只是里面的成员变量不同。
下面展示一些 内联代码片
。
class Student{ /// 考生类
private:
string name; ///考生姓名
string id;///考生考号 (规定为七位数字考号)
string school; ///毕业学校
string mima;
int grade; ///考生成绩
string number ; ///考生电话(规定为11位数字)
public:
Student(string _name,string _id,string _school,int _grade,string _number,string _mima){
name = _name;
id = _id;
school = _school ;
grade = _grade ;
number = _number ;
mima = _mima;
}
// Student(Student &p) ;
~Student(){};
string showna(){
return name ;
}
string showid(){
return id ;
}
string showsc(){
return school ;
}
int showgr(){
return grade ;
}
string shownu(){
return number ;
}
string showmi(){
return mima;
}
};
信息读取与存储
关于信息读取与存储我时写了两个函数,duru()与cun()。
在这个代码里面涉及的信息我都是用了 #include<fstream“ 这个头文件里面的两个函数
直接读取与存储到路径里的txt文件里,你运行代码后会自动在D盘生成文件。就是很简单的打开文件然后一行行读入,然后读取信息,下面是读取考生信息的一个示例。
ifstream op("D:\\考生信息.txt"); //读取信息
//cout << 1 << endl;
string s;
//op >> s ;
//cout << s << endl;
while(getline(op,s)){
string _name, _id, _school, _grade, _number, _mima;
int n=s.length();
int i=0;
for(;i<n;i++){
if(s[i]!=' ') _name+=s[i];
else break;
}
i++;
for(;i<n;i++){
if(s[i]!=' ') _id+=s[i];
else break;
}
i++;
for(;i<n;i++){
if(s[i]!=' ') _school+=s[i];
else break;
}
i++;
for(;i<n;i++){
if(s[i]!=' ') _grade+=s[i];
else break;
}
i++;
for(;i<n;i++){
if(s[i]!=' ') _number+=s[i];
else break;
}
i++;
for(;i<n;i++){
if(s[i]!=' ') _mima+=s[i];
else break;
}
// string temp=_grade;
int n2=_grade.length();
//cout << n2 << endl;
int p=0;
int grade2=0;
for(int j=n2-1;j>=0;j--){
grade2+=(_grade[j]-'0')*pow(10,p);
p++;
}
st[_id]=1;
Student student3(_name,_id,_school,grade2,_number,_mima);
stu.push_back(student3);
}
op.close();
ofstream in("D:\\考生信息.txt" ); // 定义一个文件流对象,输出信息
for(int i=0;i<stu.size();i++){
in << stu[i].showna() << " " << stu[i].showid() << " " << stu[i].showsc() << " " << stu[i].showgr() << " " << stu[i].shownu() << " " << stu[i].showmi() << endl;
}
// in << "jieshu" << endl;
in.close();
效果图
其他可以可行调试
关于代码补充
我在代码里面用了map函数来标记信息的重复与否,然后返回上一级,下一级,跳过等功能是用了goto语句。
源码链接: link.
有疑问可以留言回复