c语言学生管理系统

2024-01-21

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

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);
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言学生管理系统 的相关文章

  • 什么是充放电振子理论?

    CHAT回复 充放电振子模型 Charging Reversal Oscillator Model 是一种解释ENSO现象的理论模型 这个模型把ENSO现象比喻成一个 热力学振荡系统 在这个模型中 ENSO现象由三个组成部分 充电 Char
  • 软件测试|使用Python读写yaml文件,你会了吗?

    简介 YAML YAML Ain t Markup Language 是一种可读的数据序列化格式 它常用于配置文件和数据交换 Python 提供了许多库来处理 YAML 文件 在本文中 我们将探讨如何使用 PyYAML 库来读取和写入 YA
  • 电商数据api接口商品评论接口接入代码演示案例

    电商数据API接口商品评论 接口接入入口 提高用户体验 通过获取用户对商品的评论 商家可以了解用户对商品的满意度和需求 从而优化商品和服务 提高用户体验 提升销售业绩 用户在购买商品前通常会查看其他用户的评论 以了解商品的实际效果和质量 商
  • 基于java的学生成绩在线管理系统设计与实现

    基于java的学生成绩在线管理系统设计与实现 I 引言 A 研究背景和动机 基于Java的学生成绩在线管理系统设计与实现的研究背景和动机是设计一个可以方便管理学生成绩的系统 该系统可以方便地记录学生的成绩 并为老师和学生提供查询和统计功能
  • 软件测试|教你使用Python下载图片

    前言 我一直觉得Windows系统默认的桌面背景不好看 但是自己又没有好的资源可以进行替换 突然我一个朋友提醒了我 网络上的图片这么多 你甚至可以每天换很多个好看的背景 但是如果让我手动去设置的话 我觉得太麻烦了 我不如使用技术手段将图片下
  • 基于java的物流信息网系统设计与实现

    基于java的物流信息网系统设计与实现 I 引言 A 研究背景和动机 基于Java的物流信息网系统设计与实现的研究背景和动机 随着互联网的普及和电子商务的快速发展 物流信息网系统已成为现代物流管理的重要组成部分 物流信息网系统能够实现物流信
  • 【计算机毕业设计】二手图书交易系统

    随着世界经济信息化 全球化的到来和互联网的飞速发展 推动了各行业的改革 若想达到安全 快捷的目的 就需要拥有信息化的组织和管理模式 建立一套合理 动态的 交互友好的 高效的二手图书交易系统 当前的信息管理存在工作效率低 工作繁杂等问题 基于
  • 【gee】下载modis土地利用类型

    var china ee FeatureCollection projects assets china boundary var lc dataset ee ImageCollection MODIS 061 MCD12Q1 filter
  • qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in ““

    系统环境 Win10家庭中文版 Qt 5 12 9 链接了一些64位的第三方库 程序编译完运行后出现 qt qpa plugin Could not find the Qt platform plugin windows in 弹窗如下 网
  • Python 文件的复制重命名以及xlsx文件中表格分开保存

    1 需要的头文件 import shutil import os import openpyxl 2 复制文件以及重命名 直接使用shutil库复制 重命名 移动即可 函数封装示例 source path 为全局变量被复制文件路径 dest
  • 详解toLowerCase(判断字符串相等)

    一 toLowerCase 函数简介 toLowerCase 是一个在多个编程语言中都存在的字符串方法 它的作用是将字符串中的所有大写字母转换为对应的小写字母 常用于文本处理 搜索和比较等情况 以确保字符串的一致性和非大小写敏感的操作 二
  • 15天学会Python深度学习,我是如何办到的?

    陆陆续续有同学向我们咨询 Python编程如何上手 深度学习怎么学习 如果有人能手把手 一对一帮帮我就好了 我们非常理解初学者的茫然和困惑 大量视频 书籍 广告干扰了大家的判断 学习Python和人工智能 成为内行人不难 为此 我们推出了
  • 【路径规划】基于改进遗传算法求解机器人栅格地图路径规划(Matlab实现实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现
  • 用栈实现队列(OJ中报错的处理)

    用栈实现队列 ERROR AddressSanitizer myQueueFree函数中栈的释放处现了问题 没有调用StackDestory而是直接free了 这个是栈初始化时 capacity与malloc申请的空间大小没有匹配 请你仅使
  • 【Linux】文件周边001之系统文件IO

    樊梓慕 个人主页 个人专栏 C语言 数据结构 蓝桥杯试题 LeetCode刷题笔记 实训项目
  • 【一种新的Burton-Miller型奇异边界方法(BM-SBM)】用于声学设计灵敏度分析,2D和3D声学设计灵敏度分析的奇异边界方法研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 2D 2 2 3D
  • 2024年华为OD机试真题-分割均衡字符串-Python-OD统一考试(C卷)

    题目描述 均衡串定义 字符串只包含两种字符 且两种字符的个数相同 给定一个均衡字符串 请给出可分割成新的均衡子串的最大个数 约定字符串中只包含大写的 X 和 Y 两种字符 输入描述 均衡串 XXYYXY 字符串的长度 2 10000 给定的
  • 计算机Java项目|有机蔬菜商城

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • 在 Python 中实现 List 抽象

    在 Python 中 创建一个包含多个对象的 list 很常见 例如 对于一组具有相同功能的对象 比如播放声音 希望能够使用类似 my list play 的语法来触发 list 中所有对象的 play 方法 另一个例子是 当希望关闭 li
  • 计算机Java项目|人体健康信息管理系统

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板

随机推荐