栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C 用单向链表建立一张班级成绩单,包括每个学生的学号、姓名、英语、高等数学、普通物理、C语言程序设计4门课程的成绩。实现以下功能,并提供菜单选项:(只实现了部分功能)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C 用单向链表建立一张班级成绩单,包括每个学生的学号、姓名、英语、高等数学、普通物理、C语言程序设计4门课程的成绩。实现以下功能,并提供菜单选项:(只实现了部分功能)

用单向链表建立一张班级成绩单,包括每个学生的学号、姓名、英语、高等数学、普通物理、C语言程序设计4门课程的成绩。实现以下功能,并提供菜单选项:

0.退出

1.输入每个学生的各项信息

2.输出每个学生的各项信息

3.修改指定学生的指定数据项的内容:

    1.修改英语成绩

    2.修改高等数学成绩

    3.修改普通物理成绩

    4.修改C语言成绩

4.统计每个学生的平均成绩(保留2位小数)

5.输出各位学生的学号、姓名、4门课程的总成绩和平均成绩

(注意:每项功能可多次选择,例如,先选功能1,输入3个学生,后面又选功能1,输入2个学生,则此时共有5个学生,再选择功能5时,应该输出5个学生的信息。)

测试输入:

依次输入功能编号1,学生数量n,每个学生的学号、姓名和成绩;功能编号2;功能编号3,指定学生的学号,修改的数据项,数据;功能编号4;功能编号5:

1    (功能编号)

4    (学生人数)

U202012345 Jack 99 100 80 96    (学号 姓名 英语 数学 物理 C语言成绩)

U202054321 Rose 89 94 85 100

U202056789 Tom 12 34 56 78

U202098765 Jerry 98 76 54 32

2    (功能编号)

3    (功能编号)

U202054321 1 66    (将学号为U202054321的同学的英语成绩修改为66)

4    (功能编号)

5    (功能编号)

预期输出:

U202012345 Jack 99 100 80 96

U202054321 Rose 89 94 85 100

U202056789 Tom 12 34 56 78

U202098765 Jerry 98 76 54 32

U202012345 Jack 93.75

U202054321 Rose 86.25

U202056789 Tom 45.00

U202098765 Jerry 65.00

U202012345 Jack 375 93.75

U202054321 Rose 345 86.25

U202056789 Tom 180 45.00

U202098765 Jerry 260 65.00


#include
#include 
#include 
#include
#define N 4 
struct list {
    char num[8], name[9];
    int c, phy, e, math;
    struct list* next;
};
list * creat() //输入学生
{
    int n;
    scanf("%d",&n);
    
    int i;
    list * h = (struct list*)malloc(sizeof(struct list));
    list* p2 = h;
    for (int i = 0; i < n; i++)
    {
        struct list* p = (struct list*)malloc(sizeof(struct list)); 
        scanf("%s %s %d %d %d %d",p->num,p->name,&p->c,&p->phy,&p->e,&p->math);
        p2->next = p;
        p2 = p;
        p->next = NULL;
    }   
    return h; 
}
void input(struct list* p) {
    
    
    while (p != NULL) {
        scanf("%s%s%d%d%d%d", p->num, p->name, &p->c, &p->phy, &p->e, &p->math);
        p = p->next;
    }
}
void out(struct list* p) {
    struct list *q = p->next;
    while (q != NULL) {
        printf("%st%sn", q->num, q->name);
        printf("%dt%dt%dt%dn", q->c, q->phy, q->e, q->math);
        q = q->next;
    }
}
void change(struct list* p, char* p1) {
    while (p != NULL) {
        if (strcmp(p->num, p1))
            scanf("%s%s%d%d%d%d", p->num, p->name, &p->c, &p->phy, &p->e, &p->math);
        p = p->next;
    }
}
void sum(struct list* q) {
    int i = 0, j = 0, k = 0, l = 0;
    int sum = 0;
    struct list *p = q->next;
    while (p != NULL) {
        sum += p->c;
        sum += p->phy;
        sum += p->e;
        sum+= p->math;        
        printf("%dt%fn", sum, (float)sum / 4);
        sum = 0;
        p = p->next;
    }
    
    
}
void main() {
    struct list* p=NULL, * h;
    char c, * p1=NULL;
    h=creat();    
    //input(h);
   // h = p;
    out(h);
   // h = p;
    sum(h);
    //h = p;
    printf("if you want change the information please input 1 ");
        c = getch();//需要头文件 conio.h
    if (c == '1')
    {
        scanf("%s", p1);
        change(h, p1);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/690018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号