返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++基于单链表如何实现学生成绩管理系统
  • 626
分享到

C++基于单链表如何实现学生成绩管理系统

2023-06-30 17:06:39 626人浏览 薄情痞子
摘要

本文小编为大家详细介绍“c++基于单链表如何实现学生成绩管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++基于单链表如何实现学生成绩管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。具体代码如下#

本文小编为大家详细介绍“c++基于单链表如何实现学生成绩管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++基于单链表如何实现学生成绩管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

具体代码如下

#include<iOStream>using namespace std;struct node;typedef struct Node* PNode;struct Node{    long int stuId;    char name[30];    //成绩    float Math;    float English;    float Chinese;    float sum;//总分    PNode link;};typedef struct Node* LinkList;//输入学生信息LinkList Input(LinkList llist){    LinkList p;    long int n;    cout << "\n***********************成绩输入入口***********************\n";    cout << "请输入你想输入的学生信息个数:\n";    cin >> n;    for (int i = n; i > 0; i--)//前插法插入信息    {        p = (LinkList)malloc(sizeof(struct Node));        cout << "输入学生学号:\n";        cin >> p->stuId;        cout << "输入学生姓名:\n";        cin >> p->name;        cout << "输入学生数学成绩:\n";        cin >> p->Math;        cout << "输入学生英语成绩:\n";        cin >> p->English;        cout << "输入学生语文成绩:\n";        cin >> p->Chinese;        p->sum = p->Math + p->English + p->Chinese;//总分        //使用含有头结点的单链表实现信息的输入        p->link = llist->link;        llist->link = p;    }    return llist;}//查找/修正学生的信息void Check(LinkList llist){    LinkList p, q;    long int id;    char sName[30];    cout << "\n***********************成绩查改入口***********************\n";    if (llist->link == NULL)        cout << "没有学生信息记录\n";    else    {        cout << "输入查找方式:\n"            << "1.按学号查找\n2.按姓名查找\n";        int a;        cin >> a;        if (a == 1)//按学号查找        {            p = llist;            q = p->link;            cout << "输入学生学号:\n";            cin >> id;            while (q->stuId != id&&q->link != NULL)//从单链表表头顺序查找            {                p = q;                q = q->link;            }            if (q->stuId == id)            {                cout << "学生信息如下:\n";                cout << q->stuId << "\t" << q->name << "\t" << q->Math << "\t"                    << q->English << "\t" << q->Chinese << "\t" << q->sum << endl;                cout << "输入功能序号:\n"                    << "1.修改学生信息\n2.删除学生信息\n0.退出\n";                int b;                cin >> b;                if (b == 1)//修改学生信息                {                    cout << "请输入修正后的学生信息:\n";                    cout << "输入学生学号:\n";                    cin >> q->stuId;                    cout << "输入学生姓名:\n";                    cin >> q->name;                    cout << "输入学生数学成绩:\n";                    cin >> q->Math;                    cout << "输入学生英语成绩:\n";                    cin >> q->English;                    cout << "输入学生语文成绩:\n";                    cin >> q->Chinese;                    q->sum = q->Math + q->English + q->Chinese;                }                else if (b == 2)//删除学生信息                {                    p->link = q->link;                    free(q);                }            }            else                cout << "查无此人\n";        }        else if (a == 2)//按姓名查找        {            p = llist;            q = p->link;            cout << "输入学生姓名:\n";            cin >> sName;            while (strcmp(sName, q->name) != 0 && q->link != NULL)//从单链表表头顺序查找            {                p = q;                q = q->link;            }            if (strcmp(sName, q->name) == 0)            {                cout << "学生信息如下:\n";                cout << q->stuId << "\t" << q->name << "\t" << q->Math << "\t"                    << q->English << "\t" << q->Chinese << "\t" << q->sum << endl;                cout << "输入功能序号:\n"                    << "1.修改学生信息\n2.删除学生信息\n0.退出\n";                int b;                cin >> b;                if (b == 1)//修改学生信息                {                    cout << "请输入修正后的学生信息:\n";                    cout << "输入学生学号:\n";                    cin >> q->stuId;                    cout << "输入学生姓名:\n";                    cin >> q->name;                    cout << "输入学生数学成绩:\n";                    cin >> q->Math;                    cout << "输入学生英语成绩:\n";                    cin >> q->English;                    cout << "输入学生语文成绩:\n";                    cin >> q->Chinese;                    q->sum = q->Math + q->English + q->Chinese;                }                else if (b == 2)//删除学生信息                {                    p->link = q->link;                    free(q);                }            }            else                cout << "查无此人";        }    }}//对学生信息排序void Sort(LinkList llist){    LinkList p, q, r;    cout << "\n***********************成绩排序入口***********************\n";    if (llist->link == NULL)        cout << "没有学生信息记录\n";    else    {        cout << "选择排序方式:\n"            << "1.按学号\n2.按数学成绩\n3.按英语成绩\n4.按语文成绩\n5.按总分\n";        int a;        cin >> a;        //使用直接插入法进行排序        switch (a)        {        case 1://按学号            p = llist->link->link;            llist->link->link = NULL;            while (p != NULL)//学号由小到大排列            {                r = p->link;                q = llist;                while (q->link != NULL&&q->link->stuId < p->stuId)//查找插入位置                    q = q->link;                //插入                p->link = q->link;                q->link = p;                p = r;            }            break;        case 2://按数学            p = llist->link->link;            llist->link->link = NULL;            while (p != NULL)//数学成绩由高到低排列            {                r = p->link;                q = llist;                while (q->link != NULL&&q->link->Math > p->Math)//查找插入位置                    q = q->link;                //插入                p->link = q->link;                q->link = p;                p = r;            }            break;        case 3://按英语            p = llist->link->link;            llist->link->link = NULL;            while (p != NULL)//英语成绩由高到低排列            {                r = p->link;                q = llist;                while (q->link != NULL&&q->link->English > p->English)//查找插入位置                    q = q->link;                //插入                p->link = q->link;                q->link = p;                p = r;            }            break;        case 4://按语文            p = llist->link->link;            llist->link->link = NULL;            while (p != NULL)//语文成绩由高到低排列            {                r = p->link;                q = llist;                while (q->link != NULL&&q->link->Chinese > p->Chinese)//查找插入位置                    q = q->link;                //插入                p->link = q->link;                q->link = p;                p = r;            }            break;        case 5://按总分            p = llist->link->link;            llist->link->link = NULL;            while (p != NULL)//总分成绩由高到低排列            {                r = p->link;                q = llist;                while (q->link != NULL&&q->link->sum > p->sum)//查找插入位置                    q = q->link;                //插入                p->link = q->link;                q->link = p;                p = r;            }            break;        }    }}//显示学生的信息void Display(LinkList llist){    LinkList p;    p = llist->link;    cout << "\n***********************成绩显示入口***********************\n";    if (llist->link == NULL)        cout << "没有学生信息记录\n";    else    {        cout << "学生信息如下:\n";        cout << "学号\t 姓名\t 数学\t 英语\t 语文\t 总分\n";        while (p)//输出学生信息        {            cout << p->stuId << "\t" << p->name << "\t" << p->Math << "\t"                << p->English << "\t" << p->Chinese << "\t" << p->sum<<endl;            p = p->link;        }    }}//程序主体int main(){    LinkList llist= (LinkList)malloc(sizeof(struct Node));    llist->link = NULL;    int a, b=1;    while (b)//循环使用菜单    {        cout << "\n***********************成绩管理系统***********************\n"            << "请选择你所需要的功能:\n"            << "1.输入学生信息\n2.查找/修正学生信息\n3.排序学生信息\n4.显示学生信息\n5.退出\n";        cin >> a;        switch (a)        {        case 1:            llist=Input(llist);            break;        case 2:            Check(llist);            break;        case 3:            Sort(llist);            break;        case 4:            Display(llist);            break;        case 5:            b = 0;            break;        }    }    cout << "\n***********************感谢您的使用***********************\n";    cin.get(); cin.get();}

C++基于单链表如何实现学生成绩管理系统

读到这里,这篇“C++基于单链表如何实现学生成绩管理系统”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网其他教程频道。

--结束END--

本文标题: C++基于单链表如何实现学生成绩管理系统

本文链接: https://lsjlt.com/news/330470.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++基于单链表实现学生成绩管理系统
    本文实例为大家分享了C++实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 #include<iostream> using namespace std; s...
    99+
    2024-04-02
  • C++基于单链表如何实现学生成绩管理系统
    本文小编为大家详细介绍“C++基于单链表如何实现学生成绩管理系统”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++基于单链表如何实现学生成绩管理系统”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。具体代码如下#...
    99+
    2023-06-30
  • 基于C语言实现简单学生成绩管理系统
    本文实例为大家分享了C语言实现简单学生成绩管理系统的具体代码,供大家参考,具体内容如下 一、系统主要功能 1、密码登录2、输入数据3、查询成绩4、修改成绩5、输出所有学生成绩6、退出...
    99+
    2024-04-02
  • C语言链表实现学生成绩管理系统
    目录一、课程设计题目及内容二、主要设计思路三、程序源码及具体注释(1)预处理指令(2)类型定义(3)函数原型(4)main函数定义(5)其他函数定义 四、运行示例五、注意事...
    99+
    2024-04-02
  • C++实现简单学生成绩管理系统
    本文实例为大家分享了C++实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 一、问题描述 设计一个学生成绩管理程序,实现按班级完成对学生成绩信息的录入和修改,并用文件保存。实...
    99+
    2024-04-02
  • C#实现简单学生成绩管理系统
    本文实例为大家分享了C#实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 C#作业 用循环结构/数组实现 进入启动页面 管理员身份登入 用户名:师晓峰密码:88481234...
    99+
    2022-11-13
    C#学生成绩管理系统 C#学生管理系统 C#成绩管理系统
  • C语言嵌套链表实现学生成绩管理系统
    C语言嵌套链表实现学生成绩管理系统,供大家参考,具体内容如下 链表A,每个节点存放一个新的链表B1,B2,B3,B4,B5的头结点。 场景: 一个年级,相当链表A 该年级5个班,每个...
    99+
    2024-04-02
  • C语言利用链表实现学生成绩管理系统
    链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用。 链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随...
    99+
    2022-11-21
    C语言 链表 学生成绩管理系统 C语言 学生成绩管理系统 C语言 成绩管理系统
  • C++如何实现简单的学生成绩管理系统
    这篇文章主要介绍了C++如何实现简单的学生成绩管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++如何实现简单的学生成绩管理系统文章都会有所收获,下面我们一起来看看吧。manage.h#include&...
    99+
    2023-06-29
  • C#实现学生成绩管理系统
    本文实例为大家分享了C#实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 使用链表写学生成绩管理系统 链表可以灵活的展示增删改查 下面是结果演示 这是登录及部分添加 继续添...
    99+
    2022-11-13
    C#学生成绩管理系统 C#成绩管理系统 C#学生管理系统
  • C++实现简单的学生成绩管理系统
    本文实例为大家分享了C++实现简单学生成绩管理系统的具体代码,供大家参考,具体内容如下 manage.h #include <iostream> #include <...
    99+
    2024-04-02
  • java实现简单学生成绩管理系统
    本文实例为大家分享了java实现学生成绩管理系统的具体代码,供大家参考,具体内容如下   import java.util.Scanner; import java.lang.*;...
    99+
    2024-04-02
  • shell如何实现学生成绩管理系统
    这篇文章主要介绍了shell如何实现学生成绩管理系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下基本的操作增加删除查询展示全部学生信息vim编辑保存信息的文件遇...
    99+
    2023-06-09
  • Java基础——学生成绩信息管理系统(简单实现)
    需求 1、 定义一个学生类 Student,包含姓名、成绩信息; 2、使用 ArrayList集合存储学生对象; 3、 对集合中的元素进行增删查改的操作。 一、定义学生类 学生类可以包含姓名、成绩、学号、年龄等等,这里...
    99+
    2023-10-20
    java 开发语言 后端
  • python实现简单的学生成绩管理系统
    本文实例为大家分享了python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 需求: 代码: import os filename = 'student.txt' d...
    99+
    2024-04-02
  • Java实现学生成绩管理系统
    本文实例为大家分享了Java实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 新手练手小项目,主要练习面向对象、循环、数组、排序等等。 本人也是自学练手,代码有不正确的或不完...
    99+
    2024-04-02
  • 如何用python实现简单的学生成绩管理系统
    这篇文章主要介绍了如何用python实现简单的学生成绩管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用python实现简单的学生成绩管理系统文章都会有所收获,下面我们一起来看看吧。需求:代码:imp...
    99+
    2023-06-29
  • C语言实现简单学生成绩管理系统项目
    本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 系统界面及相关要求 1)系统运行,打开如下界面。列出系统帮助菜单(即命令菜单),提示输入命令。 ...
    99+
    2024-04-02
  • C++实现学生成绩管理系统最新版
    学生成绩管理系统,供大家参考,具体内容如下 一、问题描述及功能要求 (1)输入同学的学号,姓名,三门科成绩(应用数学、大学英语、计算机应用基础) (2)可以计算出每个学生三门课的...
    99+
    2024-04-02
  • 基于PHP+MySQL学生成绩管理系统的设计与实现
    基于PHP的学生成绩管理系统主要高校内部提供服务,系统分为管理员,教师用户和学生用户三部分。 在基于PHP的学生成绩管理系统中分为管理员用户,教师用户和学生用户三部分,其中管理员用户主要是用来管理教师...
    99+
    2023-09-25
    php 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作