当前位置: 首页 > 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、空对象…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...