#include<stdio.h>
#include<string.h>
struct student {
char xuehao[10];
char name[10];
double English, computer, Chinese, math;
double num;
double average1, average2, average3, average4;
int mingci;
};
int main(void)
{
int choice, j = 1, i, min1, min2, min3, min4, max1, max2, max3, max4, k,b;
char a, name1[100] = { "\0" };
char lessons[100] = { "\0" };
struct student shuru,s1[90], s2[90],s3[100] ,temp;
double a1 = 0, a2 = 0, a3 = 0, a4 = 0;
while (j == 1)
{
printf("********************************\n");
printf("学生成绩管理系统\n");
printf("********************************\n");
printf("1.输入学生成绩\n");
printf("2.查询学生成绩\n");
printf("3.修改学生成绩\n");
printf("4.输出学生成绩\n");
printf("5.退出系统\n");
printf("请选择\n");
scanf("%d", &choice);
if (choice == 5)
break;
switch (choice) {
case 1:
loop: printf("输入学生学号,姓名,英语成绩,计算机成绩,语文成绩,数学成绩\n");
for (i = 0; i < 5; i++)
{
printf("学生成绩输入模块界面\n");
printf("****************************************\n");
printf("No %d;", i + 1);
printf("学号:");
scanf("%s", shuru.xuehao, 10);
printf("姓名:");
scanf("%s", shuru.name, 10);
printf("英语成绩:");
scanf("%lf", &shuru.English);
printf("计算机成绩:");
scanf("%lf", &shuru.computer);
printf("语文成绩:");
scanf("%lf", &shuru.Chinese);
printf("数学成绩:");
scanf("%lf", &shuru.math);
shuru.num = shuru.English + shuru.computer + shuru.Chinese + shuru.math;
s1[i] = shuru;
s2[i] = shuru;
s3[i] = shuru;
a1 = a1 + shuru.English;
a2 = a2 + shuru.computer;
a3 = a3 + shuru.Chinese;
a4 = a4 + shuru.math;
}shuru.average1 = a1 / 5;
shuru.average2 = a2 / 5;
shuru.average3 = a3 / 5;
shuru.average4 = a4 / 5;
min1 = 0; min2 = 0; min3 = 0; min4 = 0; max1 = 0; max2 = 0; max3 = 0; max4 = 0;
printf("****************************************\n");
printf("是否继续?(Y/N);");
getchar();
a = getchar();
if (a == 'Y')
goto loop;
if (a == 'N')
break;
case 2:
loop1:printf("1.按姓名查询\n");
printf("2.按课程查询\n");
printf("3.按总分名次查询\n");
printf("请选择\n");
scanf("%d", &choice);
if (choice == 1)
{
printf("输入姓名:");
getchar();
gets(name1);
for (i = 0; i < 5; i++)
{
if (strcmp(name1, s1[i].name) == 0)
break;
}
printf("学号%s 姓名%s 英语成绩%.1f 计算机成绩%.1f 语文成绩%.1f 数学成绩%.1f\n", s1[i].xuehao, s1[i].name, s1[i].English, s1[i].computer, s1
[i].Chinese, s1[i].math);
printf("****************************************\n");
printf("是否继续?(Y/N):");
a = getchar();
if (a == 'Y')
goto loop1;
if (a == 'N')
break;
}
else if (choice == 2)
{
for (i = 0; i < 5; i++) {
a1 = a1 + s1[i].English;
a2 = a2 + s1[i].computer;
a3 = a3 + s1[i].Chinese;
a4 = a4 + s1[i].math;
}
shuru.average1 = a1 / 5;
shuru.average2 = a2 / 5;
shuru.average3 = a3 / 5;
shuru.average4 = a4 / 5;
for (i = 0; i < 5; i++)
{
if (s1[i].English < s1[min1].English)
min1 = i;
if (s1[i].computer < s1[min2].computer)
min2 = i;
if (s1[i].Chinese < s1[min3].Chinese)
min3 = i;
if (s1[i].math < s1[min4].math)
min4 = i;
if (s1[i].English > s1[max1].English)
max1 = i;
if (s1[i].computer > s1[max2].computer)
max2 = i;
if (s1[i].Chinese > s1[max3].Chinese)
max3 = i;
if (s1[i].math > s1[max4].math)
max4 = i;
}
printf("输入课程:");
getchar();
gets(lessons);
if (strcmp(lessons, "English") == 0)
printf("英语平均分%.1f 英语最高分%.1f 英语最低分%.1f\n", shuru.average1, s1[max1].English, s1[min1].English);
else if (strcmp(lessons, "computer") == 0)
printf("计算机平均分%.1f,计算机最高分%.1f,计算机最低分%.1f\n", shuru.average2, s1[max2].computer, s1[min2].computer);
else if (strcmp(lessons, "Chinese") == 0)
printf("语文平均分%.1f,语文最高分%.1f,语文最低分%.1f\n", shuru.average3, s1[max3].Chinese, s1[min3].Chinese);
else if (strcmp(lessons, "math") == 0)
printf("数学平均分%.1f,数学最高分%.1f,数学最低分%.1f\n", shuru.average4, s1[max4].math, s1[min4].math);
printf("****************************************\n");
printf("是否继续?(Y/N):");
a = getchar();
if (a == 'Y')
goto loop1;
if (a == 'N')
break;
}
else if (choice == 3)
{
for (i = 0; i < 5; i++)
s3[i] = s1[i];
for (k = 0; k < 4; k++) {
for (i = k + 1; i < 5; i++)
if (s3[i].num > s3[k].num)
{
temp = s3[i];
s3[i] = s3[k];
s3[k] = temp;
}
}
for (i = 0; i < 5; i++)
{
printf("第%d名:", i + 1);
printf("学号%s 姓名%s 英语成绩%.1f 计算机成绩%.1f 语文成绩%.1f 数学成绩%.1f 总分%.1f\n", s3[i].xuehao, s3[i].name, s3[i].English, s3[i].computer, s3[i].Chinese, s3[i].math, s3[i].num);
}
printf("****************************************\n");
printf("是否继续?(Y/N):");
getchar();
a = getchar();
if (a == 'Y')
goto loop1;
if (a == 'N')
break;
}
case 3: //修改学生成绩
loop2:printf("输入学生姓名:");
getchar();
gets(name1);
for (i = 0; i <
#include<string.h>
struct student {
char xuehao[10];
char name[10];
double English, computer, Chinese, math;
double num;
double average1, average2, average3, average4;
int mingci;
};
int main(void)
{
int choice, j = 1, i, min1, min2, min3, min4, max1, max2, max3, max4, k,b;
char a, name1[100] = { "\0" };
char lessons[100] = { "\0" };
struct student shuru,s1[90], s2[90],s3[100] ,temp;
double a1 = 0, a2 = 0, a3 = 0, a4 = 0;
while (j == 1)
{
printf("********************************\n");
printf("学生成绩管理系统\n");
printf("********************************\n");
printf("1.输入学生成绩\n");
printf("2.查询学生成绩\n");
printf("3.修改学生成绩\n");
printf("4.输出学生成绩\n");
printf("5.退出系统\n");
printf("请选择\n");
scanf("%d", &choice);
if (choice == 5)
break;
switch (choice) {
case 1:
loop: printf("输入学生学号,姓名,英语成绩,计算机成绩,语文成绩,数学成绩\n");
for (i = 0; i < 5; i++)
{
printf("学生成绩输入模块界面\n");
printf("****************************************\n");
printf("No %d;", i + 1);
printf("学号:");
scanf("%s", shuru.xuehao, 10);
printf("姓名:");
scanf("%s", shuru.name, 10);
printf("英语成绩:");
scanf("%lf", &shuru.English);
printf("计算机成绩:");
scanf("%lf", &shuru.computer);
printf("语文成绩:");
scanf("%lf", &shuru.Chinese);
printf("数学成绩:");
scanf("%lf", &shuru.math);
shuru.num = shuru.English + shuru.computer + shuru.Chinese + shuru.math;
s1[i] = shuru;
s2[i] = shuru;
s3[i] = shuru;
a1 = a1 + shuru.English;
a2 = a2 + shuru.computer;
a3 = a3 + shuru.Chinese;
a4 = a4 + shuru.math;
}shuru.average1 = a1 / 5;
shuru.average2 = a2 / 5;
shuru.average3 = a3 / 5;
shuru.average4 = a4 / 5;
min1 = 0; min2 = 0; min3 = 0; min4 = 0; max1 = 0; max2 = 0; max3 = 0; max4 = 0;
printf("****************************************\n");
printf("是否继续?(Y/N);");
getchar();
a = getchar();
if (a == 'Y')
goto loop;
if (a == 'N')
break;
case 2:
loop1:printf("1.按姓名查询\n");
printf("2.按课程查询\n");
printf("3.按总分名次查询\n");
printf("请选择\n");
scanf("%d", &choice);
if (choice == 1)
{
printf("输入姓名:");
getchar();
gets(name1);
for (i = 0; i < 5; i++)
{
if (strcmp(name1, s1[i].name) == 0)
break;
}
printf("学号%s 姓名%s 英语成绩%.1f 计算机成绩%.1f 语文成绩%.1f 数学成绩%.1f\n", s1[i].xuehao, s1[i].name, s1[i].English, s1[i].computer, s1
[i].Chinese, s1[i].math);
printf("****************************************\n");
printf("是否继续?(Y/N):");
a = getchar();
if (a == 'Y')
goto loop1;
if (a == 'N')
break;
}
else if (choice == 2)
{
for (i = 0; i < 5; i++) {
a1 = a1 + s1[i].English;
a2 = a2 + s1[i].computer;
a3 = a3 + s1[i].Chinese;
a4 = a4 + s1[i].math;
}
shuru.average1 = a1 / 5;
shuru.average2 = a2 / 5;
shuru.average3 = a3 / 5;
shuru.average4 = a4 / 5;
for (i = 0; i < 5; i++)
{
if (s1[i].English < s1[min1].English)
min1 = i;
if (s1[i].computer < s1[min2].computer)
min2 = i;
if (s1[i].Chinese < s1[min3].Chinese)
min3 = i;
if (s1[i].math < s1[min4].math)
min4 = i;
if (s1[i].English > s1[max1].English)
max1 = i;
if (s1[i].computer > s1[max2].computer)
max2 = i;
if (s1[i].Chinese > s1[max3].Chinese)
max3 = i;
if (s1[i].math > s1[max4].math)
max4 = i;
}
printf("输入课程:");
getchar();
gets(lessons);
if (strcmp(lessons, "English") == 0)
printf("英语平均分%.1f 英语最高分%.1f 英语最低分%.1f\n", shuru.average1, s1[max1].English, s1[min1].English);
else if (strcmp(lessons, "computer") == 0)
printf("计算机平均分%.1f,计算机最高分%.1f,计算机最低分%.1f\n", shuru.average2, s1[max2].computer, s1[min2].computer);
else if (strcmp(lessons, "Chinese") == 0)
printf("语文平均分%.1f,语文最高分%.1f,语文最低分%.1f\n", shuru.average3, s1[max3].Chinese, s1[min3].Chinese);
else if (strcmp(lessons, "math") == 0)
printf("数学平均分%.1f,数学最高分%.1f,数学最低分%.1f\n", shuru.average4, s1[max4].math, s1[min4].math);
printf("****************************************\n");
printf("是否继续?(Y/N):");
a = getchar();
if (a == 'Y')
goto loop1;
if (a == 'N')
break;
}
else if (choice == 3)
{
for (i = 0; i < 5; i++)
s3[i] = s1[i];
for (k = 0; k < 4; k++) {
for (i = k + 1; i < 5; i++)
if (s3[i].num > s3[k].num)
{
temp = s3[i];
s3[i] = s3[k];
s3[k] = temp;
}
}
for (i = 0; i < 5; i++)
{
printf("第%d名:", i + 1);
printf("学号%s 姓名%s 英语成绩%.1f 计算机成绩%.1f 语文成绩%.1f 数学成绩%.1f 总分%.1f\n", s3[i].xuehao, s3[i].name, s3[i].English, s3[i].computer, s3[i].Chinese, s3[i].math, s3[i].num);
}
printf("****************************************\n");
printf("是否继续?(Y/N):");
getchar();
a = getchar();
if (a == 'Y')
goto loop1;
if (a == 'N')
break;
}
case 3: //修改学生成绩
loop2:printf("输入学生姓名:");
getchar();
gets(name1);
for (i = 0; i <