C语言编写一个简单的学生成绩管理系统

2024-11-24 13:20:15
推荐回答(1个)
回答1:

C语言程序:

#include 
#include 

typedef struct student
{
char name[20]; /* 姓名 */
int code; /* 学号 */
int kor, eng, math; /* 3门课程的成绩 */
}STUDENT;

/* 返回输入数据 */
STUDENT Input();

/* 输出所有输入的数据 */
void Output(STUDENT info[], int cnt);

/* 将输入分数转换为A-F */
char grade(int score);

int main()
{
STUDENT S[10];
int cnt = 0, select;
int i, j;
int code;

while(1)
{
printf("\t学生信息管理系统\n\n");
printf("\t\t1\t添加\n");
printf("\t\t2\t删除\n");
printf("\t\t3\t查询\n");
printf("\t\t0\t结束\n");
printf("\t\t您的选择[0-3]:");
scanf("%d", &select);

if(select < 0 || select > 3)
continue;
if(select == 0)
{
printf("退出系统!\n");
break;
}

if(select == 1) /* 添加 */
{
S[cnt++] = Input();
}
else if(select == 2) /* 删除 */
{
printf("\t\t待删除学生的学号:");
scanf("%d", &code);

for(i=0; i if(S[i].code == code)
break;
if(i >= cnt)
{
printf("学号不存在,删除失败!\n");
}
else {
for(j=i+1; j {
strcpy(S[j-1].name, S[j].name);
S[j-1].code = S[j].code;
S[j-1].kor = S[j].kor;
S[j-1].eng = S[j].eng;
S[j-1].math = S[j].math;
}
cnt--;
printf("删除成功!\n");
}
}
else /* 查询 */
{
printf("\t\t待查找学生的学号:");
scanf("%d", &code);

for(i=0; i if(S[i].code == code)
break;
if(i >= cnt)
{
printf("学号不存在,查找失败!\n");
}
else
{
printf("\t查询结果:\n");
Output(S, i);
}
}
}

return 0;
}

/* 返回输入数据 */
STUDENT Input()
{
STUDENT stu;
printf("\t\t新学生信息\n");
printf("\t\t学号:");
scanf("%d", &stu.code);
printf("\t\t姓名:");
getchar();
gets(stu.name);
printf("\t\t3门课程成绩(以空格分隔):");
scanf("%d%d%d", &stu.kor, &stu.eng, &stu.math);

return stu;
}

/* 输出所有输入的数据 */
void Output(STUDENT info[], int cnt)
{
printf("学号:%d\n",info[cnt].code);
printf("姓名:");
puts(info[cnt].name);
printf("成绩:%c %c %c\n", grade(info[cnt].kor), grade(info[cnt].eng), grade(info[cnt].math));
}

/* 将输入分数转换为A-F */
char grade(int score)
{
if(score < 0 || score > 100)
return 'F';
if(score >= 90)
return 'A';
if(score >= 80)
return 'B';
if(score >= 70)
return 'C';
if(score >=60)
return 'D';
else
return 'E';
}


运行测试: