#define N 100
#include <stdio.h>
#include <string.h>
void main()
{
char stuId[N][8];
char stuName[N][20];
int cScore[N]={0};
int mFlag=1,length=0;
while(mFlag)
{
printf("-----------------------------/n");
printf(" 1--管理员 /n");
printf(" 2--学 生 /n");
printf(" 0--退 出 /n");
printf("/n");
printf("/n");
int mF;
scanf("%d",&mF);
//局部变量
int i,j,temp;
char tempId[8],tempName[20];
if(mF==1)
{
int sFlag1=1;
while(sFlag1)
{
printf("-----------------------------------/n");
printf(" 1--添加学生信息 /n");
printf(" 2--删除学生信息(按学号删除)/n");
printf(" 3--浏览学生信息 /n");
printf(" 4--添加学生成绩 /n");
printf(" 5--浏览班级成绩 /n");
printf(" 0--退 出 /n");
printf("/n");
printf("/n");
int sF1;
scanf("%d",&sF1);
switch(sF1)
{
case 1:
{
char c;
int f=1;
while(f)
{
printf("需要录入学生信息(Y/N)吗? ");
scanf("/n%c",&c);
if(c=='Y'||c=='y')
{
printf("请输入学号: ");
scanf("%s",stuId[length]);
printf("请输入姓名: ");
scanf("%s",stuName[length]);
length++;
}
else
f=0;
}
}
break;
case 2:
{
printf("请输入需删除学生的学号: ");
scanf("%s",tempId);
i=0;
while((strcmp(stuId[i],tempId)!=0) && i<length)//顺序查找
i++;
if(i==length)//没找到
{
printf("此学号不存在,请重新输入学号。/n");
}
else
{
//删除此学生,后面的元素依次向前1个
int j;
for(j=i+1;j<=length;j++)
{
strcpy(stuId[j-1],stuId[j]);
strcpy(stuName[j-1],stuName[j]);
cScore[j-1]=cScore[j];
}
length--;
printf("删除成功。/n");
}
}
break;
case 3:
{
printf("/t学号/t姓名 /n");
for(i=0;i<length;i++)
{
printf("/t%s/t%s/n",stuId[i],stuName[i]);
}
}
break;
case 4:
{
for(i=0;i<length;i++)
{
printf("%d-------------/n",i+1);
printf("学号 : ");
printf("%s/n",stuId[i]);
printf("姓名 : ");
printf("%s/n",stuName[i]);
if(cScore[i]!=0)
printf("此学生的C课程成绩 : %d/n ",cScore[i]);
else
{
printf("请输入此学生的C课程成绩 : ");
scanf("%d",&cScore[i]);
}
}
}
break;
case 5:
{
printf("/t学号/t姓名 /tC成绩/n");
for(i=0;i<length;i++)
{
printf("/t%s/t%s/t%d/n",stuId[i],stuName[i],cScore[i]);
}
}
break;
case 0:
sFlag1=0;
break;
default:
printf("您的选项不在范围内,请重新选择。/n");
}//case
}//while
}//if
else if(mF==2)
{
int i, j, t=1;
while(t)
{
printf("-----------------------------------/n");
printf(" 1--按学号查找 /n");
printf(" 2--按姓名查找 /n");
printf(" 0-- 退出 /n");
printf(" 请选择0--2运算 /n");
printf("/n");
printf("/n");
scanf("%d",&j);
switch(j)
{
case 1 :
{
printf("请输入所要查询的学号: /n");
scanf("%s",tempId);//把这里改为gets(tempId);为什么是错误的?不能正确执行。
i=0;
while((strcmp(stuId[i],tempId)!=0) && i<length)
i++;
if(i==length)
{
printf("此学号不存在,请重新输入学号。/n");
}
else
{
printf("/t学号/t姓名/t分数/n");
printf("/t%s/t%s/t%d/n",stuId[i],stuName[i],cScore[i]);
}
}
break;
/*case 2 :
{
{
}
}*/
}
}
}//if
else
mFlag=0;
}//while
}