7-61 实验11_7_学生信息管理系统 (100 分)

创建学生信息管理系统,具体要求如下:

学生信息包括:学号 姓名 数学成绩 英语成绩 计算机成绩

功能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

代码如下;

#include<stdio.h>
typedef struct xin {

    char id[25];
    char name[25];
    int score[4];
}pi;
void fack1(pi* a, int i, int n)
{
    int k = 0;
    pi zh;
    scanf("%s", zh.id);
    scanf("%s", zh.name);
    for (k = 0; k < 3; k++)
        scanf("%d", &zh.score[k]);
    for (k = 0; k < n; k++)
    {
        if (strcmp(zh.id, a[k].id) == 0)
        {
            printf("Students already exist\n");
            return;
        }
    }
    printf("Add success\n");
    a[i] = zh;//储

}
void fack2(pi* a, int i, int n)
{
    int k;
    pi zh, ch;
    scanf("%s", zh.id);
    for (k = 0; k < n; k++)
    {
        if (strcmp(a[k].id, zh.id) == 0)
        {
            printf("Delete success\n");
            a[k] = ch;
            return 0;
        }
    }
    printf("Students do not exist\n");
}
void fack3(pi* a, int i, int n)
{
    int k, j;
    pi zh;
    scanf("%s", zh.id);
    for (k = 0; k < 3; k++)
        scanf("%d", &zh.score[k]);
    for (k = 0; k < n; k++)
    {
        if (strcmp(a[k].id, zh.id) == 0)
        {
            printf("Update success\n");
            for (j = 0; j < 3; j++)
                a[k].score[j] = zh.score[j];
            return;
        }
    }
    printf("Students do not exist\n");
}
void fack4(pi* a, int i, int n)
{
    int j, k, he = 0;
    pi zh;
    scanf("%s", zh.id);
    for (j = 0; j < n; j++)
    {
        if (strcmp(a[j].id, zh.id) == 0)
        {
            printf("Student ID:%s\n", a[j].id);
            printf("Name:%s\n", a[j].name);
            double p;
            for (k = 0; k < 3; k++)
                he += a[j].score[k];
            p = he / 3.0;
            printf("Average Score:%.1f\n", p);
            return;
        }
    }
    printf("Students do not exist\n");
}
int main()
{
    int n, i, j;
    scanf("%d", &n);
    pi arr[145];
    for (i = 0; i < n; i++)
    {
        scanf("%d", &j);
        switch (j)
        {
        case 1:
            fack1(arr, i, n); break;
        case 2:
            fack2(arr, i, n); break;
        case 3:
            fack3(arr, i, n); break;
        case 4:
            fack4(arr, i, n); break;

        }
    }
    return 0;
}

大家有兴趣自己敲敲! 

 

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值