c语言学生管理系统

创建结构体里面包含学生的各种信息。

struct xs {int xh;char xm[20];int gs, yy, wl;double pj;struct xs* next;
};

创建菜单

void menu()
{printf("\n************************************\n");printf("*         学生管理系统(1.0)        *\n");printf("  ************************************\n");printf("  ************************************\n");printf("*             1.创建链表             *\n");printf("*             2.显示链表             *\n");printf("*             3.保存文件             *\n");printf("*             4.读取文件             *\n");printf("*             5.系统退出             *\n");printf("  ************************************\n");printf("*          请选择操作:(1-5)         *\n");printf("  ************************************\n");
}

创建链表

struct xs* create()
{struct xs* hd = (struct xs*)malloc(sizeof(struct xs)), * p = NULL, * r = NULL;hd->next = NULL;r = hd;printf("请输入学生人数: ");scanf("%d", &rs);for (int i = 1; i <= rs; i++){printf("请输入第%d个学生成绩信息: \n", i);p = (struct xs*)malloc(sizeof(struct xs));p->next = NULL;printf("学号:");scanf("%d", &p->xh);printf("姓名:");scanf("%s", &p->xm);printf("高数:");scanf("%d", &p->gs);printf("英语:");scanf("%d", &p->yy);printf("物理:");scanf("%d", &p->wl);p->pj = (p->gs + p->yy + p->wl) / 3.0;r->next = p;r = r->next;}printf("创建链表完毕,请按任意键继续!\n");_getch();return hd;
}

打印信息

void print(struct xs* hd)
{if (hd == NULL){printf("当前链表为空,请按任意键继续!");_getch();return;}struct xs* p = hd->next;printf("   学号  姓名  高数  英语 物理  平均  \n");printf("  ************************************\n");while (p != NULL){printf("    %d%     -6s     %d     %d%     d     %.2f\n", p->xh, p->xm, p->gs, p->yy, p->wl, p->pj);p = p->next;}printf("  ************************************\n");printf("链表显示完毕,请按任意键继续!\n");_getch();
}

数据保存

void save(struct xs* hd)
{if (hd == NULL)printf("当前链表为空,请按任意键继续!");else{struct xs* p = NULL;FILE* fp = fopen("1.txt", "w");fprintf(fp, "%d\n", rs);p = hd->next;while (p != NULL){fprintf(fp, "%d%s%d%d%d%lf\n", p->xh, p->xm, p->yy, p->wl, p->pj);p = p->next;}fclose(fp);printf("数据保存结束,请按任意键继续!\n");}_getch();
}

读取文件

struct xs* read()
{struct xs* hd = (struct xs*)malloc(sizeof(struct xs)), * p = NULL, * r = NULL;FILE* fp = fopen("1.txt", "r");hd->next = NULL;r = hd;fscanf(fp, "%d\n", &rs);for (int i = 1; i <= rs; i++){p = (struct xs*)malloc(sizeof(struct xs));fscanf(fp, "%d%s%d%d%d%lf\n", &p->xh, p->xm, &p->gs, &p->yy, &p->wl, &p->pj);p->next = NULL;r->next = p;r = r->next;}printf("读取文件结束,请按任意键继续!\n");_getch();return hd;
}

释放资源

void sflb(struct xs* hd)
{struct xs* p = NULL;while (hd != NULL && hd->next != NULL){p = hd->next;hd->next = p->next;free(p);}free(hd);
}

主函数

void main()
{struct xs* head = NULL;int xz;do{system("cls");menu();scanf("%d", &xz);switch (xz){case 1:sflb(head); head = create(); break;case 2:print(head); break;case 3:save(head); break;case 4:sflb(head); head = read(); break;case 5:sflb(head);}} while (xz != 5);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/621530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 图解教程 第5版 —— 第25章 反射和特性

文章目录 25.1 元数据和反射25.2 Type 类25.3 获取 Type 对象25.4 什么是特性25.5 应用特性25.6 预定义的保留特性25.6.1 Obsolete 特性25.6.2 Conditional 特性25.6.3 调用者信息特性25.6.4 DebuggerStepThrough 特性25.6.5 其他预定义特性 25.7 关于应用特性的更多内容25.7.1…

51-12 多模态论文串讲—BLIP 论文精读

视觉语言预训练VLP模型最近在各种多模态下游任务上获得了巨大的成功&#xff0c;目前还有两个主要局限性: (1) 模型角度: 大多数方法要么采用encoder模型&#xff0c;要么采用encoder-decoder模型。然而&#xff0c;基于编码器的模型不太容易直接转换到文本生成任务&#xff0…

代码随想录 Leetcode242. 有效的字母异位词

题目&#xff1a; 代码&#xff08;首刷看解析 2024年1月14日&#xff09;&#xff1a; class Solution { public:bool isAnagram(string s, string t) {int hash[26] {0};for(int i 0; i < s.size(); i) {hash[s[i] - a];}for(int i 0; i < t.size(); i) {hash[t[i]…

【动态规划】dp多状态问题

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb;按摩师&#x1f449;&…

一元二次方程虚数解

对一元二次方程axbxc0 (a≠0)&#xff1b;若判别式△b-4ac<0,则方程无实根,虚数解为&#xff1a;x(-b i√(4ac-b))/(2a)。 只含有一个未知数&#xff08;一元&#xff09;&#xff0c;并且未知数项的最高次数是2&#xff08;二次&#xff09;的整式方程叫做一元二次方程[1] …

如何申请IP地址证书

什么是IP地址证书&#xff1f; IP地址证书是一种用于验证网站服务器身份的数字证书&#xff0c;它可以确保网站与用户之间的通信安全。与传统的域名证书不同&#xff0c;IP地址证书直接针对服务器的IP地址进行认证&#xff0c;适用于没有独立域名的网站或需要对多个域名进行统…

树莓派ubuntu22桌面配置(一)

烧录系统至树莓派 下载系统&#xff1a;https://ubuntu.com/download/raspberry-pi 选择合适的版本下载 镜像安装器安装&#xff1a;终端输入&#xff1a; sudo snap install rpi-imager 打开镜像安装器&#xff0c;按照需求选择树莓派版本与要写入的系统还有安装的u盘 方案…

Python 中的字符串匹配识别文本中的相似性

更多Python学习内容&#xff1a;ipengtao.com 字符串匹配是自然语言处理&#xff08;NLP&#xff09;和文本处理中的一个重要任务&#xff0c;它可以识别文本之间的相似性、找到相同或相似的模式&#xff0c;以及进行文本分类和信息检索等应用。本文将深入探讨Python中的字符串…

ssh 远程登录协议

一、SSH 服务 1.1 SSH 基础 SSH&#xff08;Secure Shell&#xff09;是一种安全通道协议&#xff0c;主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理&#xff0c;其中包括用户登录时输入的用户口令&#xff0c;SSH 为建立在应…

坚持刷题|翻转二叉树

坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;今天先刷个简单的&#xff1a;翻转二叉树 题目 226.翻转二叉树 考察点 翻转二叉树又称为镜像二叉树&#xff0c;使用Java实现翻转二叉树通常是为了考察对二叉树的基本操作和递归的理解能力 递归的理解&#xff1a; 能够理解…

vue前端开发自学基础,动态切换组件的显示

vue前端开发自学基础,动态切换组件的显示&#xff01;这个是需要借助于&#xff0c;一个官方提供的标签&#xff0c;名字叫【Component】-[代码demo:<component :is"ComponetShow"></component>]。 下面看看代码详情。 <template><h3>动态…

opencv多张图片实现全景拼接

最近camera项目需要用到全景拼接&#xff0c;故此查阅大量资料&#xff0c;终于将此功能应用在实际项目上&#xff0c;下面总结一下此过程中遇到的一些问题及解决方式&#xff0c;同时也会将源码附在结尾处&#xff0c;供大家参考&#xff0c;本文采用的opencv版本为3.4.12。 首…

Qt/QML编程学习之心得:小键盘keyboard(36)

小键盘对于qml应用是经常用到的,在qml里面,就如一个fileDialog也要自己画一样,小键盘keyboard也是要自己画的,对于相应的每个按键的clicked都要一一实现的。 这里有一个示例: 代码如下: import QtQuick 2.5 import QtQuick.Controls 1.4 import QtQuick.Window 2.0 im…

文件夹名称大小写转换的方法:提高文件管理效率的关键

在计算机的文件管理中&#xff0c;文件夹名称的大小写是经常被忽视的一个细节。这个看似微不足道的细节&#xff0c;却可能影响到文件管理效率和查找速度。下面一起来看云炫文件管理器如何批量修改文件夹名称大小写转换的方法&#xff0c;提高文件管理效率。 文件夹名称字母大…

使用swift创建第一个ios程序

一、安装xcode 先到app store中下载一个Xcode app 二、创建项目 1、项目设定 创建ios app 2、工程结构 三、修改代码实现按键联动 四、运行测试

S1-08 流和消息缓冲区

流缓冲区 流缓冲区一般用在不同设备或者不同进程间的通讯&#xff0c;为了提高数据处理效率和性能&#xff0c;设置的一定大小的缓冲区&#xff0c;流缓冲区可以用来存储程序中需要处理的数据、对象、报文等信息&#xff0c;使程序对可以对这些信息进行预处理、排序、过滤、拆…

华为常用的命令——display,记得点赞收藏!

华为设备提供了多条display命令用于查看硬件部件、接口及软件的状态信息。通常这些状态信息可以为用户故障处理提供定位思路。 常用的故障信息搜集的命令如下&#xff1a; 路由器常用维护命令表 交换机常用的故障信息搜集 关注 工 仲 好&#xff1a;IT运维大本营&#xff0c;获…

海外媒体宣发:新闻媒体发稿引爆社交媒体的7个诀窍-华媒舍

社交媒体的崛起已经改变了新闻媒体的传播方式。从Facebook到Twitter&#xff0c;从Instagram到LinkedIn&#xff0c;社交媒体平台为新闻媒体提供了一个巨大且潜力无限的受众群体。要在这个竞争激烈的环境中引爆社交媒体&#xff0c;需要一些技巧和诀窍。在本篇文章中&#xff0…

信息质量要求

目录 \quad 会计信息质量要求 会计核算的信息质量要求是对会计核算提供信息的基本要求,是处理具体会计业务的基本依据&#xff0c;是在会计核算前提条件制约下进行会计核算的标准和质量要求。 \quad \quad 可靠性 也就是真实性, 要求会计记录以实际凭证为依据如实反映财务状况和…