学生信息管理程序
/*关键技术分析:编写字符串类、文件读写类、界面显示类等以及各相关接口类。题目六:学生信息管理程序
设计要点:使用文本命令行界面设计学生信息管理程序;用文件形式存储班上学
生的信息表;能实现对学生信息增、删、改、查等功能。*/
#include<iostream>
#include<string>
using namespace std;
class student
{
private:
int number;
char name[20];
string sex;
int age,telphone,QQ;
int china;
int english;
int math;
public:
student();
student(int number,char name[],string sex,int age,int telphone,int QQ,int china,int english,int math);
~student();
void Set();//添加
void Delete();//删除
void Alter();//修改
void List();//显示
void Rearch();//查询
};
student::student()
{
number=0;
char a[4]=" ";
strcpy(name,a);
sex='M';
age=0;
telphone=0;
QQ=0;
china=0;
english=0;
math=0;
}
student *s[60];
//char name[20];int age,telphone,QQ;string sex;int number;string name;int china;int english;int math;
void student::Set()
{ int i=0;
int j=0;
cout<<"输入学号"<<endl;
cin>>number;
cout<<"请输入姓名:"<<endl;
cin>>name;
cout<<"请输入性别:"<<endl;
cin>>sex;
cout<<"请输入年龄:"<<endl;
cin>>age;
cout<<"电话号码:"<<endl;
cin>>telphone;
cout<<"QQ号码:"<<endl;
cin>>QQ;
cout<<"语文成绩"<<endl;
cin>>china;
cout<<"英语成绩"<<endl;
cin>>english;
cout<<"数学成绩"<<endl;
cin>>math;
j++;
s[i]=new student(number,name, sex, age, telphone, QQ, china, english, math);
i++;
}
void student:: Delete() //(2)删除人员(Delete)
{ int i=60;
cout<<"请输入您要删除的学生姓名:"<<endl;
cin>>name;
for(int h=0;h<60;h++)
{
if(strcmp(name,s[h]->name)==0)
{
i--;
s[h]=s[h+1];
h++;
}
else
{
cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";
}
}
}
void student::Alter() //(3)修改数据(Alter)
{ int h;
cout<<"请输入您要修改的学生的姓名:"<<endl;
cin>>name;
for(h=0;h<60;h++)
{
if(strcmp(name,s[h]->name)==0)
{
string se;
int nu,ag,qq,ch,en,ma,te;
cout<<"输入学号"<<endl;
cin>>nu;
cout<<"请输入性别:"<<endl;
cin>>se;
cout<<"请输入年龄:"<<endl;
cin>>ag;
cout<<"电话号码:"<<endl;
cin>>te;
cout<<"QQ号码:"<<endl;
cin>>qq;
cout<<"语文成绩"<<endl;
cin>>ch;
cout<<"英语成绩"<<endl;
cin>>en;
cout<<"数学成绩"<<endl;
cin>>ma;
s[h]->number=nu;
s[h]->sex=se;
s[h]->age=ag;
s[h]->telphone=te;
s[h]->QQ=qq;
s[h]->china=ch;
s[h]->english=en;
s[h]->math=ma;
cout<<"数据修改成功!";
break;
}
}
if (60 == h-1)
{
cout<<"对不起!您要查询的学生不存在!"<<endl;
}
//else cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl;
}
void student::List() //(4)显示记录(List)
{
cout<<"本系统所有通讯录的数据如下:"<<endl;
if(number==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;
for(int k=0;k<60;k++)
{
cout<<"学号:"<<s[k]->number<<" ";
cout<<"姓名:"<<s[k]->name<<" "<< "性别:"<<s[k]->sex<<" "<<"年龄:"<<s[k]->age<<" "<<"电话号码:"<<s[k]->telphone<<" "<<"QQ号码:"
<<s[k]->QQ<<"语文:"<<s[k]->china<<" "<<"英语:"<<s[k]->english<<" "
<<"数学:"<<s[k]->number<<" " <<endl;
}
}
void student::Rearch()
{
int i=60;
cout<<"请输入你要查询的学生姓名"<<endl;
cin>>name;
for(int j=0;j<i;j++)
{
if(strcmp(name,s[j]->name)==0)
{
cout<<"您要查询的学生是:"<<s[j]->name<<endl;
cout<<"性别: "<<s[j]->sex<<" "<<"年龄: "<<s[j]->age<<" "<<"电话号码:"<<s[j]->telphone
<<" "<<"QQ号码:"<<s[j]->QQ<<endl;
break;
}
if (i == j)
{
cout<<"对不起!您要查询的学生不存在!"<<endl;
}
}
}
void caozuo(int p)
{
student *t;
switch(p)
{
case 0:t->Set();break;
case 1:t->Set();break;
case 2:t->Delete();break;
case 3:t->Alter();break;
case 4:t->List();break;
case 5:t->Rearch();break;
case 6:exit(0);break;
}
}
int main()
{
char w;
do
{
cout<<"请输入操作代码(/1 增加人员/2 删除人员/3 修改数据/4 显示记录/ 5 按姓名查询/6 退出)"<<endl;
int a;
cin>>a;
caozuo(a);
cout<<"您想继续进行其他操作吗?(y/n)"<<endl;
cin>>w;
}while(w=='y');
return 0;
}
求帮忙不知道什么错误