编译不报错,就是运行不出来
#include<iostream.h>
#include<stdio.h>
#include<string.h>
class student//定义学生信息类
{public:
char name[20];
char num[10];
char banji[20];
int math,english,chinese,computer;
int sum;
double ave;
void input();
void output();
void score();
void book(student sh[],int m);
};
void student::book(student grade[],int m)// 类外声明
{
int l=10;
for(int i=1;i<=l;i++)
{
cin>>student::name[20]>>student::num[10]>>student::banji>>student::math>>student::english>>student::chinese>>student::computer;
strcpy(grade[i].name,student::name);
strcpy(grade[i].num,student::num);
grade[i].math=student::math;
grade[i].english=student::english;
grade[i].chinese=student::chinese;
grade[i].computer=student::computer;
grade[i].sum=student::math+student::english+student::chinese+student::computer;
grade[i].ave=grade[i].sum/4;
}
}
void student::score()//显示学生信息
{
cout<<name;
cout<<" ";cout<<num;
if(math>=0)
{cout<<" ";cout<<math;}
else
cout<<" 无";
if(english>=0)
{cout<<" ";cout<<english;}
else
cout<<" 无";
if(computer>=0)
{cout<<" ";cout<<computer;}
else
cout<<" 无";
if(chinese>=0)
{cout<<" ";cout<<chinese;}
else
cout<<" 无";
cout<<" "<<ave<<endl;
}
void change(student sh[],int i)//修改学生信息
{
char name1[20];
int j,k,m;
cout<<" 请输入要修改的学生姓名:"<<endl;
cin>>name1;
for(j=1;j<=i;j++)
{
if(strcmp(sh[j].name,name1)!=0)//判断ASCLL码大小
k=-1;
else
{ k=j;break;}
}
if(k==-1)
{
cout<<" 对不起,没有该学生的信息....."<<endl;
cout<<" 请按任意键进入主菜单......."<<endl;
getchar();
}
else
{
sh[k].math=sh[k].english=sh[k].computer=sh[k].chinese=-1;
int a,b;//a是各科成绩,b是存储选课数目
sh[k].sum=0;//初始化sum
char project[10];
cout<<" 请输入学生姓名:"<<endl;
cin>>sh[k].name;
cout<<" 请输入学生学号:"<<endl;
cin>>sh[k].name;
cout<<" 请输入学生选课数:"<<endl;
while(cin>>m)
{
if(m>4)
cout<<"对不起,请输入课程数1~4范围内: 请重新输入"<<endl;
else
break;
}
b=m;
while(m--)
{
cout<<" 请输入课程名称:"<<endl;
cin>>project;
if(strcmp(project,"数学")==0)
{
cout<<" 请输入该课程成绩:"<<endl;
cin>>a;
sh[k].math=a;
sh[k].sum+=sh[k].math;
}
else
if(strcmp(project,"英语")==0)
{
cout<<" 请输入该课程成绩:"<<endl;
cin>>a;
sh[k].english=a;
sh[k].sum+=sh[k].english;
}
else
if(strcmp(project,"语文")==0)
{
cout<<" 请输入该课程成绩:"<<endl;
cin>>a;
sh[k].chinese=a;
sh[k].sum+=sh[k].chinese;
}
else
if(strcmp(project,"计算机")==0)
{
cout<<" 请输入该课程成绩:"<<endl;
cin>>a;
sh[k].computer=a;
sh[k].sum+=sh[k].computer;
}
else
{
m++;
cout<<" 对不起,您输入的课程不存在,请重新输入"<<endl;
}
}
sh[k].ave=(double)sh[k].sum/b;
}
}
void find(student sh[],int i)//查找学生信息
{
int nn;
int h=1,he;
char name2[20],num2[10];
while(h!=0)
{
cout<<" 按姓名查询请输入1 "<<endl;
cout<<" 按学号查询请输入2 "<<endl;
cin>>nn;
if(nn==1||nn==2)
h=0;
else
{cout<<" 对不起,您输入的数字有误,请重新输入....."<<endl;h=1;}
}
if(nn==1)
{
cout<<" 请输入要查找的学生姓名:"<<endl;
cin>>name2;
for(nn=1;nn<i;nn++)
{
if(strcmp(sh[nn].name,name2)!=0)
he=0;
else
{he=nn;break;}
}
if(he==0)
cout<<" 对不起,没有该学生的信息....."<<endl;
else
{
cout<<"姓名 学号 数学成绩 英语成绩 计算机成绩 语文成绩 平均成绩"<<endl;
sh[h].score();
}
}
else
{
cout<<" 请输入要查找的学生学号:"<<endl;
cin>>num2;
for(nn=1;nn<i;nn++)
{ if(strcmp(sh[nn].num,num2)!=0)
he=0;
else
{ he=nn;break;}
}
if(he==0)
cout<<" 对不起,没有该学生的信息....."<<endl;
else
sh[h].score();
}
cout<<" 请按任意键继续......"<<endl;
getchar();
}
void del(student sh[],int i)//删除学生信息
{
char name3[20];int h,bat;
cout<<" 请输入您想要删除的学生姓名: "<<endl;
cin>>name3;
for(h=1;h<=i;h++)
if(strcmp(sh[h].name,name3)==0)
bat=h;
for(h=bat;h<i;h++)
sh[h]=sh[h+1];
cout<<"删除成功.....请按任意键继续操作..."<<endl;
getchar();
i--;
}
void student::input() //输入学生信息
{
int a,b,n;
sum=0;
char project[10];
cout<<" 请输入学生姓名:"<<endl;
cin>>name;
cout<<" 请输入学生学号:"<<endl;
cin>>num;
cout<<" 请输入学生选课数:"<<endl;
while(true)
{ cin>>n;
if(n>4)
cout<<"对不起,请输入课程数1~4范围内: 请重新输入"<<endl;
else
{b=n;
break;}
}
while(n--)
{
cout<<" 请输入课程名称:"<<endl;
cin>>project;
if(strcmp(project,"数学")==0)
{
cout<<" 请输入该课程成绩:"<<endl;
cin>>a;
math=a;
sum+=math;
}
else
if(strcmp(project,"英语")==0)
{
cout<<" 请输入该课程成绩:"<<endl;
cin>>a;
english=a;
sum+=english;
}
else
if(strcmp(project,"语文")==0)
{
cout<<" 请输入该课程成绩:"<<endl;
cin>>a;
chinese=a;
sum+=chinese;
}
else
if(strcmp(project,"计算机")==0)
{
cout<<" 请输入该课程成绩:"<<endl;
cin>>a;
computer=a;
sum+=computer;
}
else
{
n++;
cout<<" 对不起,您输入的课程不存在,请重新输入"<<endl;
}
}
ave=(double)sum/b;
output();
}
void student::output()//输出学生信息
{
char con;
cout<<" 您输入的学生信息为:"<<endl;
cout<<" 姓名:";cout<<name<<endl;
cout<<" 学号:";cout<<num<<endl;
if(math>=0)
{cout<<" 数学成绩:";cout<<math<<endl;}
if(english>=0)
{cout<<" 英语成绩:";cout<<english<<endl;}
if(computer>=0)
{cout<<" 计算机成绩:";cout<<computer<<endl;}
if(chinese>=0)
{ cout<<" 语文成绩:";cout<<chinese<<endl;}
cout<<" 确定请按Y,重新输入请按N..."<<endl;
cin>>con;
if(con=='Y'||con=='y')
{
cout<<" 恭喜您输入成功!"<<endl;
cout<<" 请按任意键继续......"<<endl;
}
else
{math=english=computer=chinese=-1;
input();}
getchar();
}
void welcom()
{
cout<<" 请根据相应的数字选择 "<<endl;
cout<<" 【1】---------输入学生信息 "<<endl;
cout<<" 【2】---------修改学生信息 "<<endl;
cout<<" 【3】---------查看学生信息 "<<endl;
cout<<" 【4】---------删除学生信息 "<<endl;
cout<<" 【5】---------查找学生信息 "<<endl;
cout<<" 【0】---------退出系统 "<<endl;
}
int main()
{int a,i,j;
i=10;
int n=0;
int m=10;
student grade[1000];
student bb;
bb.book(grade,1000);
cout<<" 你好,欢迎使用学生信息管理系统 "<<endl;
cout<<" 请按任意键继续......."<<endl;
getchar();
while(n=0)
{
welcom();
cout<<" 请输入相应数字.................."<<endl;
cin>>a;
switch(a)
{
case 0:cout<<" 谢谢您的使用!再见...."<<endl;n=1;break;
case 1:{++i;grade[i].input();break;}
case 2:change(grade,i);break;
case 3:
{ cout<<"姓名 学号 数学成绩 英语成绩 计算机成绩 语文成绩 平均成绩"<<endl;
for(j=1;j<=i;j++)
grade[j].score();
cout<<" 请按任意键继续......"<<endl;
getchar();
break;
}
case 4:del(grade,i);break;
case 5:find(grade,i);break;
default :cout<<"输入有误,请重新输入!!按任意键继续:"<<endl;getchar();break;
}
}
return 0;
}