创建学生信息管理系统,具体要求如下:
学生信息包括:学号 姓名 数学成绩 英语成绩 计算机成绩
功能1:添加学生信息
执行1时,输入学号,姓名,三门科目成绩;如果添加学生成功则输出“Add success”,如果学生已存在则输出“Students already exist”功能2:删除学生信息
执行2时,输入学号信息;如果学生不存在,输出“Students do not exist”,如果存在,则输出“Delete success”功能3:更改学生成绩信息
执行3时,输入学号信息;如果学生不存在,输出“Students do not exist”,如果存在,输出“Update success”功能4:显示学生平均分成绩
执行4时,输入学号信息;如果学生不存在,输出“Students do not exist”,如果存在,则输出学生信息,如下格式:Student ID:2019989890
Name:Jerry
Average Score:89.3
其中平均分为三门科目相加除以3,保留一位小数,每行之间换行。
输入格式:
第一行为一个整数n(0<n<130),后边共n行,每一行表示执行一种功能。其中1,2,3,4分别对应执行上面4种功能,具体格式见输入样例。
测试用例保证:学号和名字均为长度不超过10的字符串,各门课成绩为0到100之间的整数。输出格式:
输入样例:
8 1 201817123 Tom 89 80 76 1 2019989890 Jerry 78 99 67 4 201817123 2 201817123 4 201817123 4 2019989890 3 2019989890 79 90 99 4 2019989890
输出样例:
Add success Add success Student ID:201817123 Name:Tom Average Score:81.7 Delete success Students do not exist Student ID:2019989890 Name:Jerry Average Score:81.3 Update success Student ID:2019989890 Name:Jerry Average Score:89.3
代码长度限制16 KB
时间限制400 ms
内存限制64 MB
# include <stdio.h>
# include <string.h>
struct STU{
char id[25],name[25];
int a, b, c, f;
} s[150];
int n = 0;
int find(char*c)
{
for (int i=0; i<n; i++)
{
if (s[i].f == 0) continue;
if (strcmp(s[i].id,c) == 0) return i;
}
return -1;
}
int main(void)
{
int k, tag, pos;
char thisid[25];
scanf("%d\n", &k);
for (int i=0; i<k; i++) s[i].f = 0;
while (k--)
{
scanf("%d %s ", &tag, s[n].id);
pos = find(s[n].id);
if (tag == 1)
{
if (pos != -1)
{
int t1, t2, t3;
char t[25];
printf("Students already exist\n");
scanf("%s%d%d%d", t, &t1, &t2, &t3);
}
else
{
scanf("%s%d%d%d", s[n].name, &s[n].a, &s[n].b, &s[n].c);
s[n].f = 1;
n++;
printf("Add success\n");
}
}
if (tag == 2)
{
if (pos == -1) printf("Students do not exist\n");
else {
s[pos].f = 0;
printf("Delete success\n");
}
}
if (tag == 3)
{
int a, b, c;
scanf("%d%d%d",&a, &b, &c);
if (pos == -1) printf("Students do not exist\n");
else {
s[pos].a = a;
s[pos].b = b;
s[pos].c = c;
printf("Update success\n");
}
}
if (tag == 4)
{
if (pos == -1) printf("Students do not exist\n");
else {
printf("Student ID:%s\nName:%s\nAverage Score:%.1f\n", s[pos].id, s[pos].name, (s[pos].a+s[pos].b+s[pos].c)*1.0/3);
}
}
}
return 0;
}