#include<iostream>
#include<string>
#include<fstream>
#include<iomanip>
using namespace std;
const int TMAX=50;
class Student
{
public:
int num;
string name;
string sex;
int age;
string Class;
public:
Student(int n=0,string nm="",string s="",int a=0,string c=""):num(n),name(nm),sex(s),age(a),Class(c){};
virtual void Input(){};
virtual void Output(){};
virtual void Output2(){};
int GetNum(){return num;}
};
class Pupil:public Student
{
public:
string Chinese;
string Math;
string English;
int choice2;
public:
Pupil(int n=0,string nm="",string s="男",int a=0,string c="",string l="",string z="",string e="")
:Student(n,nm,s,a),Chinese(l),Math(z),English(e){};
void Input()//成员函数用于输入成员信息
{
cout<<"输入学号"<<endl;
cin>>num;
cout<<"输入姓名"<<endl;
cin>>name;
cout<<"选择性别";
cout<<"(1.男 2.女)"<<endl;
cout<<"请输入你的选择"<<endl;
cin>>choice2;
switch(choice2)
{
case 1:sex="男";break;
case 2:sex="女";break;
default:cout<<"输入错误,默认为男"<<endl;break;
}
cout<<"输入年龄"<<endl;
cin>>age;
cout<<"输入班级"<<endl;
cin>>Class;
cout<<"输入语文成绩"<<endl;
cin>>Chinese;
cout<<"输入数学成绩"<<endl;
cin>>Math;
cout<<"输入英语成绩"<<endl;
cin>>English;
}
void Output()
{
}
};
class Pup_Manage
{
Pupil Mid[TMAX];
int top;
public:
Pup_Manage(){top=0;}
void Add();
};
void Pup_Manage::Add()
{
if(top>=TMAX)
{
cout<<"用户已满"<<endl;
return;
}
Pupil t;
cout<<"输入新添加的学生的信息"<<endl;
t.Input();
for(int i=0;i<top;i++)
if (t.GetNum()==Mid[i].GetNum())
{
cout<<"该编号的学生已存在"<<endl;
return;
}
Mid[top]=t;
top=top+1;
cout<<"添加成功!"<<endl;
}
void PupMenu();
int main()
{
int choice=0;
do{
cout<<" *****学生信息管理系统*****\n"<<endl;
cout<<" 1=>小学生管理 "<<endl;
cout<<" 2=>中学生管理 "<<endl;
cout<<" 3=>大学生管理 "<<endl;
cout<<" 0=>退出系统 "<<endl;
cout<<"\n请输入您的选择:";
cin>>choice;
switch(choice)
{
case 1:PupMenu();break;
case 0:cout<<"\n您已安全退出系统."<<endl;break;
default:cout<<"\n没有此选项.请重选."<<endl;break;
}
}while(choice!=0);
return 0;
}
void PupMenu()
{
Pup_Manage t;
int choice=1;
while(choice!=0)
{
cout<< " ====小学生管理==== "<<endl;
cout<<" 1.添加 "<<endl;
cout<<" 2.查找 "<<endl;
cout<<" 3.修改 "<<endl;
cout<<" 4.删除 "<<endl;
cout<<" 5.显示 "<<endl;
cout<<" 6.保存 "<<endl;
cout<<" 7.读取 "<<endl;
cout<<" 8.统计 "<<endl;
cout<<" 0.退出 "<<endl;
cout<<"\n输入您操作的选项:";
cin>>choice;
switch(choice)
{
case 1:t.Add();break;
case 0:cout<<"退出成功!"<<endl;break;
default:cout<<"无此选项!请重试!"<<endl;break;
}
}
}
TMAX限制了一个数量,想把它删掉,但下面有个Mid[TMAX],这里的TMAX删掉后程序就不能正常运行了,输完数据会直接退出
但正常情况会回到上一个页面
#include<iostream>
#include<string>
#include<fstream>
#include<iomanip>
#include <vector>
using namespace std;
const int TMAX = 50;
class Student
{
public:
int num;
string name;
string sex;
int age;
string Class;
public:
Student(int n = 0, string nm = "", string s = "", int a = 0, string c = "") :num(n), name(nm), sex(s), age(a), Class(c) {};
virtual void Input() {};
virtual void Output() {};
virtual void Output2() {};
int GetNum() { return num; }
};
class Pupil :public Student
{
public:
string Chinese;
string Math;
string English;
int choice2;
public:
Pupil(int n = 0, string nm = "", string s = "男", int a = 0, string c = "", string l = "", string z = "", string e = "")
:Student(n, nm, s, a), Chinese(l), Math(z), English(e) {};
void Input()//成员函数用于输入成员信息
{
cout << "输入学号" << endl;
cin >> num;
cout << "输入姓名" << endl;
cin >> name;
cout << "选择性别";
cout << "(1.男 2.女)" << endl;
cout << "请输入你的选择" << endl;
cin >> choice2;
switch (choice2)
{
case 1:sex = "男"; break;
case 2:sex = "女"; break;
default:cout << "输入错误,默认为男" << endl; break;
}
cout << "输入年龄" << endl;
cin >> age;
cout << "输入班级" << endl;
cin >> Class;
cout << "输入语文成绩" << endl;
cin >> Chinese;
cout << "输入数学成绩" << endl;
cin >> Math;
cout << "输入英语成绩" << endl;
cin >> English;
}
void Output()
{
}
};
class Pup_Manage
{
std::vector<Pupil> Mid;// [TMAX];
int top;
public:
Pup_Manage() { top = 0; }
void Add();
};
void Pup_Manage::Add()
{
//if (top >= TMAX)
//{
// cout << "用户已满" << endl;
// return;
//}
Pupil t;
cout << "输入新添加的学生的信息" << endl;
t.Input();
for (int i = 0; i<top; i++)
if (t.GetNum() == Mid[i].GetNum())
{
cout << "该编号的学生已存在" << endl;
return;
}
Mid.push_back(t);
top = top + 1;
cout << "添加成功!" << endl;
}
void PupMenu();
int main()
{
int choice = 0;
do {
cout << " *****学生信息管理系统*****\n" << endl;
cout << " 1=>小学生管理 " << endl;
cout << " 2=>中学生管理 " << endl;
cout << " 3=>大学生管理 " << endl;
cout << " 0=>退出系统 " << endl;
cout << "\n请输入您的选择:";
cin >> choice;
switch (choice)
{
case 1:PupMenu(); break;
case 0:cout << "\n您已安全退出系统." << endl; break;
default:cout << "\n没有此选项.请重选." << endl; break;
}
} while (choice != 0);
return 0;
}
void PupMenu()
{
Pup_Manage t;
int choice = 1;
while (choice != 0)
{
cout << " ====小学生管理==== " << endl;
cout << " 1.添加 " << endl;
cout << " 2.查找 " << endl;
cout << " 3.修改 " << endl;
cout << " 4.删除 " << endl;
cout << " 5.显示 " << endl;
cout << " 6.保存 " << endl;
cout << " 7.读取 " << endl;
cout << " 8.统计 " << endl;
cout << " 0.退出 " << endl;
cout << "\n输入您操作的选项:";
cin >> choice;
switch (choice)
{
case 1:t.Add(); break;
case 0:cout << "退出成功!" << endl; break;
default:cout << "无此选项!请重试!" << endl; break;
}
}
}
可以用vector动态数组
既然是C++的话,那可以用vector。Pupil Mid[TMAX];
改为std:vector<Pupil> Mid;