C语言实现的学生选课系统代码分享

C语言实现的学生选课系统代码分享

简介

本文将分享一份用C语言实现的学生选课系统代码,该系统实现了学生的选课、退课、成绩查看等功能。通过学习本系统的代码,可以加深对C语法及数据结构的理解。

功能模块

学生选课系统包含了以下几个功能模块:

  1. 学生信息管理
  2. 课程信息管理
  3. 学生选课
  4. 学生退课
  5. 成绩查询

数据结构

该系统使用了以下数据结构:

  1. 结构体:用于存储学生信息、课程信息、选课信息等
  2. 链表:用于存储学生信息、课程信息等的链表结构
  3. 文件:用于存储学生信息、课程信息及选课信息

代码实现

学生信息管理模块

学生信息管理模块实现了以下功能:

  1. 添加学生信息
  2. 删除学生信息
  3. 修改学生信息
  4. 查看学生信息

以下是添加学生信息的代码示例:

typedef struct student
{
    char name[20];   // 学生姓名
    char id[20];     // 学生学号
    char sex[5];     // 学生性别
    char major[20];  // 学生专业
    int age;         // 学生年龄
    char tel[15];    // 学生电话
    float score;     // 学生成绩
    struct student *next;
} stu;

stu *head = NULL;   // 学生链表头指针

void add_student()
{
    stu *p, *q;
    p = (stu *)malloc(sizeof(stu));
    printf("请输入学生姓名:");
    scanf("%s", p->name);
    printf("请输入学生学号:");
    scanf("%s", p->id);
    printf("请输入学生性别:");
    scanf("%s", p->sex);
    printf("请输入学生专业:");
    scanf("%s", p->major);
    printf("请输入学生年龄:");
    scanf("%d", &p->age);
    printf("请输入学生电话:");
    scanf("%s", p->tel);
    p->score = 0;
    q = head;
    if (q == NULL)
    {
        q = p;
        head = q;
        q->next = NULL;
    }
    else
    {
        while (q->next != NULL)
        {
            q = q->next;
        }
        q->next = p;
        p->next = NULL;
    }
    printf("添加成功!\n");
}

课程信息管理模块

课程信息管理模块实现了以下功能:

  1. 添加课程信息
  2. 删除课程信息
  3. 修改课程信息
  4. 查看课程信息

以下是查看课程信息的代码示例:

typedef struct course
{
    char name[20];    // 课程名称
    char id[20];      // 课程编号
    char teacher[20]; // 授课教师
    int time;         // 上课时间
    int week;         // 上课周数
    int score;        // 课程学分
    struct course *next;
} crs;

crs *pCourseHead = NULL;  // 课程链表头指针

void view_course()
{
    crs *p;
    p = pCourseHead;
    if (p == NULL)
    {
        printf("没有课程信息!\n");
    }
    else
    {
        printf("课程名称\t课程编号\t授课教师\t上课时间\t上课周数\t课程学分\n");
        while (p != NULL)
        {
            printf("%s\t%s\t%s\t%d\t%d\t%d\n", p->name, p->id, p->teacher, p->time, p->week, p->score);
            p = p->next;
        }
    }
}

学生选课模块

学生选课模块实现了以下功能:

  1. 学生选课
  2. 查看已选课程

以下是学生选课的代码示例:

void select_course(char id[20])
{
    crs *pC;
    stu *pS;
    pC = pCourseHead;
    pS = find_student(id);
    if (pC == NULL)
    {
        printf("没有课程信息!\n");
    }
    else
    {
        printf("序号\t课程名称\t课程编号\t授课教师\t上课时间\t上课周数\t课程学分\n");
        int i = 1;
        while (pC != NULL)
        {
            printf("%d\t%s\t%s\t%s\t%d\t%d\t%d\n", i, pC->name, pC->id, pC->teacher, pC->time, pC->week, pC->score);
            pC = pC->next;
            i++;
        }
        printf("请输入你要选的课程的编号:");
        char select_course_id[20];
        scanf("%s", select_course_id);
        pC = find_course(select_course_id);
        if (pC != NULL)
        {
            add_select_course(pS, pC);
        }
    }
}

学生退课模块

学生退课模块实现了以下功能:

  1. 学生退课

以下是学生退课的代码示例:

void quit_course(char id[20])
{
    crs *pC;
    stu *pS;
    pS = find_student(id);
    if (pS == NULL)
    {
        printf("你没有选课信息!\n");
    }
    else
    {
        printf("你已经选了以下课程:\n");
        view_select_course(id);
        printf("请输入你要退的课程的编号:");
        char quit_course_id[20];
        scanf("%s", quit_course_id);
        remove_select_course(pS, quit_course_id);
        printf("退课成功!\n");
    }
}

成绩查询模块

成绩查询模块实现了以下功能:

  1. 查看已选课程成绩

以下是查看已选课程成绩的代码示例:

void view_score(char id[20])
{
    stu *pS;
    pS = find_student(id);
    if (pS == NULL)
    {
        printf("你没有选课信息!\n");
    }
    else
    {
        printf("课程名称\t课程编号\t成绩\n");
        sel *pSC = pS->select_course;
        while (pSC != NULL)
        {
            printf("%s\t%s\t%.2f\n", pSC->course->name, pSC->course->id, pSC->score);
            pSC = pSC->next;
        }
    }
}

总结

以上就是C语言实现的学生选课系统代码分享的完整攻略。通过学习该系统的代码实现,可以加深对C语言、数据结构等的理解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言实现的学生选课系统代码分享 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C字符串操作函数实现方法小结

    C字符串操作函数实现方法小结 在C语言中,字符串操作是很常见的操作。C标准库提供了常用的字符串函数,例如sprintf、strstr等。但是,如果熟练掌握字符串操作函数的实现方法,不仅能够更深刻理解C语言中的字符串操作,而且可以提高我们的代码效率。在本文中,我们将介绍C字符串操作函数的实现方法,并实现一些常见的函数。 1. strlen函数的实现 strle…

    C 2023年5月23日
    00
  • C++如何判断一个数字是否为质数

    下面是C++判断一个数字是否为质数的完整攻略,包含两条示例说明。 什么是质数 在数论中,质数是指除了 1 和本身之外,不能被其它正整数整除的数。比如,2、3、5、7、11、13等是质数,而4、6、8、9等不是质数。 C++中判断一个数字是否为质数 C++中判断一个数字是否为质数的方法一般是通过判断这个数是否能被除了1和它本身之外的其它数整除。这种判断方法比较…

    C 2023年5月23日
    00
  • Go错误和异常CGO fallthrough处理教程详解

    Go错误和异常CGO fallthrough处理教程详解 异常和错误的区别 在Go语言中,没有类似于Java的异常处理机制,而是采用了错误处理机制。Go语言中的错误是一种可以提前预判到的普通值,包含了自定义的错误信息。与其他语言不同,Go语言中的错误处理是基于返回值的,而不是异常。 如何处理错误 在Go语言中,一个函数的返回值通常由一个值和一个错误组成。当函…

    C 2023年5月23日
    00
  • C++类与对象的基础知识点详细分析

    C++类与对象的基础知识点详细分析 前言 在C++中,类是一种自定义数据类型,可以封装数据和方法,并将其作为对象。本文将详细介绍C++类和对象的相关内容。 类和对象的定义 类是由数据和函数组成的用户自定义数据类型。它可以定义为结构体或类。类定义了一个数据类型,数据类型包含数据成员和成员函数。 一个对象是类的一个实例。对象由数据和函数组成,对象存储在内存中,其…

    C 2023年5月22日
    00
  • C++中4种类型转换的方法分享

    当我们在C++编程中需要将一个数据类型转换为另一个数据类型时,可以使用以下四种类型转换方法: 1. 隐式类型转换 隐式类型转换(implicit conversion)是由编译器自动完成的类型转换,不需要程序员显式地调用转换函数或者使用强制类型转换运算符。例如,将整型变量赋给浮点型变量时,编译器会自动将整型变量转换为浮点型变量。示例代码如下: int i =…

    C 2023年5月30日
    00
  • C语言实现简单的井字棋游戏

    下面是C语言实现简单的井字棋游戏的攻略,包括以下几个步骤: 1. 设计游戏界面 首先要设计游戏界面,可以使用控制台进行简单的界面设计。井字棋游戏的界面通常是三行三列的棋盘,每个格子显示一个棋子或空白。 下面是一种简单的井字棋游戏界面设计: | | 1 | 2 | 3 _____|_____|_____ | | 4 | 5 | 6 _____|_____|__…

    C 2023年5月23日
    00
  • 浅析c语言中的内存

    浅析C语言中的内存 什么是内存 内存是一种存储数据的硬件设备,是计算机中最基本的组成部分之一。内存根据尺寸的不同,又分成不同的级别,从而形成了”字节(Byte)”、”千字节(KB)”、”兆字节(MB)”、”吉字节(GB)”等不同的规模。在C语言中,内存被划分为若干个地址,每个地址可以存储一个字节(Byte)的数据。 C语言中内存的使用 在C语言中,我们可以通…

    C 2023年5月24日
    00
  • Qt如何设置窗口屏幕居中显示以及设置大小

    关于Qt如何设置窗口屏幕居中显示以及设置大小,以下是一份完整攻略: 设置窗口居中 如果我们想让Qt应用程序中的窗口在启动时居中显示,可以按照以下步骤操作: 获取屏幕的Geometry:cpp QDesktopWidget* desktop = QApplication::desktop(); QRect screen = desktop->screen…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部