当前位置: 首页 > news >正文

C语言 学生记录管理系统

                学生记录管理系统

                1--添加
                2--删除
                3--查询:按姓名
                4--查询:按班级
                5--查询:按学号
                0--退出
请选择操作序号(0—5):1
请输入新学生的学号:1
请输入新学生的姓名:1
请输入新学生的班级:1
请输入新学生的性别:1
请输入新学生的出生日期:1
请输入新学生的家庭住址:1
成功加入一条记录
===================================


                学生记录管理系统

                1--添加
                2--删除
                3--查询:按姓名
                4--查询:按班级
                5--查询:按学号
                0--退出
请选择操作序号(0—5):3
请输入要查找记录的姓名:1
1        1       1       1       1       1
查找完毕
===================================


                学生记录管理系统

                1--添加
                2--删除
                3--查询:按姓名
                4--查询:按班级
                5--查询:按学号
                0--退出
请选择操作序号(0—5):1
请输入新学生的学号:1
此学号已经存在,不可以使用。
===================================


                学生记录管理系统

                1--添加
                2--删除
                3--查询:按姓名
                4--查询:按班级
                5--查询:按学号
                0--退出
请选择操作序号(0—5):1
请输入新学生的学号:2
请输入新学生的姓名:1
请输入新学生的班级:1
请输入新学生的性别:1
请输入新学生的出生日期:1
请输入新学生的家庭住址:1
成功加入一条记录
===================================


                学生记录管理系统

                1--添加
                2--删除
                3--查询:按姓名
                4--查询:按班级
                5--查询:按学号
                0--退出
请选择操作序号(0—5):3
请输入要查找记录的姓名:1
1        1       1       1       1       1
2        1       1       1       1       1
查找完毕
===================================


                学生记录管理系统

                1--添加
                2--删除
                3--查询:按姓名
                4--查询:按班级
                5--查询:按学号
                0--退出
请选择操作序号(0—5):2
请输入要删记录的学号:3
没有查到相关信息。
===================================


                学生记录管理系统

                1--添加
                2--删除
                3--查询:按姓名
                4--查询:按班级
                5--查询:按学号
                0--退出
请选择操作序号(0—5):2
请输入要删记录的学号:2
要删除的记录信息是:
2        1       1       1       1       1
成功删除一条记录
===================================


                学生记录管理系统

                1--添加
                2--删除
                3--查询:按姓名
                4--查询:按班级
                5--查询:按学号
                0--退出
请选择操作序号(0—5):4
请输入要查找记录的班级(1 2 3):1
1        1       1       1       1       1
查找完毕
===================================


                学生记录管理系统

                1--添加
                2--删除
                3--查询:按姓名
                4--查询:按班级
                5--查询:按学号
                0--退出
请选择操作序号(0—5):0

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LINE "==================================="
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2typedef int Status; //状态 比如找到或没找到,插入成功或不成功typedef struct stu {int no;           //学号char name[20];    //姓名int clas;         //班级char sex[6];      //性别int birth;        //出生日期 20201011char address[50]; //住址
} stu_t;typedef struct {stu_t* elem;int length;int listsize;
} SqList;
SqList L; //全局变量//构造一个空的线性表。
void InitList() {L.elem = (stu_t*)malloc(3 * 3 * 40 * sizeof(stu_t));if (!L.elem)exit(OVERFLOW);L.length = 0;L.listsize = 3 * 3 * 40;
}void DestroyList() { /* 操作结果:销毁顺序线性表L */free(L.elem);L.elem = NULL;L.length = 0;L.listsize = 0;
}int ListFind(int no) {//根据学号查找记录是否存在 没找到返回-1int i;for (i = 0; i < L.length; i++) {if (L.elem[i].no == no)return i;}return -1;
}void PrintOne(stu_t s) {//显示一条学生记录printf("%d\t %s\t %d\t %s\t %d\t %s\n", s.no, s.name, s.clas, s.sex,s.birth, s.address);
}void FindStudent(const char* szName) {//根据姓名查找记录是否存在没找到返回-1int i;int pos = -1;for (i = 0; i < L.length; i++) {if (strcmp(L.elem[i].name, szName) == 0) {pos = i;PrintOne(L.elem[pos]);}}if (pos == -1)puts("没有查到相关信息。");elseputs("查找完毕");
}void FindStudentByClas(const int clas) {//根据班级查找记录是否存在没找到返回-1int i;int pos = -1;for (i = 0; i < L.length; i++) {if (L.elem[i].clas == clas) {pos = i;PrintOne(L.elem[pos]);}}if (pos == -1)puts("没有查到相关信息。");elseputs("查找完毕");
}void ListPush_back() {//表后加入新记录stu_t s;int pos;printf("请输入新学生的学号:");scanf("%d", &s.no);pos = ListFind(s.no);if (pos != -1) {puts("此学号已经存在,不可以使用。");return;}printf("请输入新学生的姓名:");scanf("%s", s.name);printf("请输入新学生的班级:");scanf("%d", &s.clas);printf("请输入新学生的性别:");scanf("%s", s.sex);printf("请输入新学生的出生日期:");scanf("%d", &s.birth);printf("请输入新学生的家庭住址:");scanf("%s", s.address);L.elem[L.length++] = s;puts("成功加入一条记录");
}void ListDel(int no) {int pos = ListFind(no);int i;if (pos == -1)puts("没有查到相关信息。");else {puts("要删除的记录信息是:");PrintOne(L.elem[pos]);for (i = pos; i < L.length - 1; i++)L.elem[i] = L.elem[i + 1];L.length -= 1;puts("成功删除一条记录");}
}
void FindStudentByNo(int no) {int pos = ListFind(no);if (pos == -1)puts("没有查到相关信息。");else {PrintOne(L.elem[pos]);puts("查找完毕");}
}unsigned menu() {unsigned a;printf("\n\n\t\t学生记录管理系统\n\n");printf("\t\t1--添加\n");printf("\t\t2--删除\n");printf("\t\t3--查询:按姓名\n");printf("\t\t4--查询:按班级\n");printf("\t\t5--查询:按学号\n");printf("\t\t0--退出\n");printf("请选择操作序号(0—5):");scanf("%d", &a); /*选择操作项*/while (a < 0 || a > 5) {printf("输入错误,请重新选择操作序号(0—5):");scanf("%d", &a);}return a;
}int main() {unsigned select;int no;char name[20];int cls;InitList(); //初始化表while (1) {select = menu();switch (select) {case 1:ListPush_back();break;case 2:printf("请输入要删记录的学号:");scanf("%d", &no);ListDel(no);break;case 3:printf("请输入要查找记录的姓名:");scanf("%s", name);FindStudent(name);break;case 4:printf("请输入要查找记录的班级(1 2 3):");scanf("%d", &cls);FindStudentByClas(cls);break;case 5:printf("请输入要查找记录的学号:");scanf("%d", &no);FindStudentByNo(no);break;case 0:DestroyList(); //程序退出之前销毁表puts("程序已经结束退出");return 0;}puts(LINE);}    return 0;
}

相关文章:

C语言 学生记录管理系统

学生记录管理系统 1--添加 2--删除 3--查询&#xff1a;按姓名 4--查询&#xff1a;按班级 5--查询&#xff1a;按学号 0--退出 请选择操作序号(0—5):1 请输入新学生的学号:1 请输入新学生的…...

【独家】华为OD机试 C 语言解题 - 交换字符

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...

网络安全平台测试赛 easyphp(phar脏数据处理)

昨天的比赛&#xff0c;14.00-17.00.时间有点紧张&#xff0c;比赛期间没拿下来这道 &#x1f62d;非常痛苦&#xff0c;很顺畅的思路 一步步想下来&#xff0c;卡在最后一步末尾脏数据处理了&#xff0c;最后时间到了 没打通&#xff0c;还需多练 这里本地复现一下&#xff1…...

【python】XML格式文件读写详解

注&#xff1a;最后有面试挑战&#xff0c;看看自己掌握了吗 文章目录XML介绍格式XML与AJAX与HTML区别联系生成XML文件案例用SAX模块处理XML用DOM模块处理XML&#x1f338;I could be bounded in a nutshell and count myself a king of infinite space. 特别鸣谢&#xff1a;…...

理解js的精度问题

参考博客&#xff1a;js精度丢失问题-看这篇文章就够了(通俗易懂)、探寻 JavaScript 精度问题以及解决方案、JavaScript 浮点数陷阱及解法 1 为什么 JavaScript 中所有数字包括整数和小数都只有一种类型 即 Number类型&#xff0c;它的实现遵循 IEEE 754 标准。 符号位S&#…...

蓝桥杯 时间显示

题目 输入输出样例 示例 1 输入 46800999输出 13:00:00示例 2 输入 1618708103123输出 01:08:23评测用例规模与约定 对于所有评测用例&#xff0c;给定的时间为不超过 10^{18}1018 的正整数。 运行限制 最大运行时间&#xff1a;1s最大运行内存: 512M 基础知识 时间的转换…...

qt中设置菜单高度

如题所示&#xff0c;我建立一个菜单&#xff0c;代码如下&#xff0c;但是菜单项的高度太小了&#xff0c; &#xff5b; popupMenu new QMenu(this); QAction *action1 new QAction(tr(“&New1”), this); QAction *action2 new QAction(tr(“&New2”), this); QA…...

测开:前端基础-css页面布局-定位

一 、传统网页布局的三种方式 网页布局的本质–用CSS来摆放盒子&#xff0c;把盒子摆放到相应的位置&#xff0c;css提供了三种传统布局方式&#xff0c;分别是标准流&#xff0c;浮动和定位三种。 二、 定位 2.1 啥是定位 我的理解&#xff0c;就是要把这个元素&#xff0c…...

Servlet中八个监听器介绍

一、监听对象创建的监听器 1、ServletContextListener /*** 用于监听ServletContext对象创建和销毁的监听器* since v 2.3*/public interface ServletContextListener extends EventListener {/*** 对象创建时执行此方法。该方法的参数是ServletContextEvent事件对象&#xf…...

LicenseBox Crack,对服务器的要求最低

LicenseBox Crack,对服务器的要求最低 LicenseBox是用于管理基于PHP的软件、WordPress插件或主题、主题、插件和WordPress的更新和许可的完整软件。它易于安装&#xff0c;对服务器的要求最低&#xff0c;用户友好的界面&#xff0c;无限脚本的使用为您的创造力打开了大门。 Li…...

css中重难点整理(vertical-align)

一、vertical-align 在学习vertical-align的时候&#xff0c;可能会很困惑。即使网上有一大推文章讲veitical-align,感觉看完好像懂了&#xff0c;等自己布局的时候用到vertical-align的时候好像对它又很陌生。这就是我在布局的时候遇到的问题。 本来vertical-align就很不好理…...

javaScript基础面试题 ---宏任务微任务

宏任务微任务一、为什么JS是单线程语言&#xff1f;二、JS是单线程&#xff0c;怎样执行异步代码&#xff1f;1、JS是单线程语言 2、JS代码执行流程&#xff0c;同步执行完&#xff0c;再进行事件循环&#xff08;微任务、宏任务&#xff09; 3、清空所有的微任务&#xff0c;再…...

基于JSP的网上书城

技术&#xff1a;Java、JSP等摘要&#xff1a;随着科技的迅速发展&#xff0c;计算机技术已应用到社会的各个领域。随着计算机技术和通信技术的迅速发展&#xff0c;网络的规模也逐渐增大&#xff0c;网络的元素也随之不断增加&#xff0c;有的利用其通信&#xff0c;有的利用其…...

C#教程 05 常量

文章目录 C# 常量整数常量浮点常量字符常量字符串常量定义常量C# 常量 常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。 常量可以被当作常规的变量,只是它们的值在定义后不能被修改。 整数…...

【华为OD机试真题java、python】基站维修工程师【2022 Q4 100分】(100%通过)

代码请进行一定修改后使用,本代码保证100%通过率。本文章提供java、python两种代码 题目描述 小王是一名基站维护工程师,负责某区域的基站维护。 某地方有 n 个基站( 1<n<10 ),已知各基站之间的距离 s( 0<s<500 ), 并且基站 x 到基站 y 的距离,与基站 y …...

你是真的“C”——为冒泡排序升级赋能!

你是真的“C”——为冒泡排序升级赋能&#xff01;&#x1f60e;前言&#x1f64c;冒泡排序升级赋能之境界一&#xff01;冒泡排序升级赋能之境界二&#xff01;qsort库函数的运用和认识总结撒花&#x1f49e;&#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的…...

【JavaEE】基于mysql与servlet自制简易的表白墙程序

文章目录1 表白墙页面构建2 Servlet 回顾3 表白墙后端程序实现3.1 我们需要做什么&#xff1f;3.2 实现细节4 实现结果写在最后1 表白墙页面构建 该页面由标题、文本、三个 input 输入框与一个提交按钮构成&#xff0c;整体比较简单&#xff0c;相关样式文件和页面代码会在后面…...

抓包技术(浏览器APP小程序PC应用)

P1 抓包工具 01. Fidder 首先第一个Fiddler它的优势&#xff0c;独立运行&#xff0c;第二个支持移动设备&#xff08;是否能抓移动APP的包&#xff0c;&#xff09;在这一块的话wireshark、httpwatch就不支持&#xff0c;因此在这一块就可以排除掉前连个&#xff0c;因为我们…...

linux笔记(10):ubuntu环境下,基于SDL2运行lvgl+ffmpeg播放mp4

文章目录1.ubuntu安装ffmpeg1.1 源码安装1.1 克隆ffmpeg源码1.2 配置编译条件&#xff0c;编译&#xff0c;安装1.2 直接安装依赖包2.下载lvgl源码2.1 测试原始代码2.2 运行lv_example_ffmpeg_2()例程2.2.1 配置 LV_USE_FFMPEG 为 12.2.2 lv_example_ffmpeg_2()替换lv_demo_wid…...

JavaScript专题之类型判断(下)

参考原文&#xff1a;JavaScript专题之类型判断(下) 前言 在上篇《JavaScript专题之类型判断(上)》中&#xff0c;我们抄袭 jQuery 写了一个 type 函数&#xff0c;可以检测出常见的数据类型&#xff0c;然而在开发中还有更加复杂的判断&#xff0c;比如 plainObject、空对象…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋&#xff0c;无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话&#xff0c;配置.bahs_profile后也能解决上下翻页这些&#xff0c;但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...