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

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

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…...

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

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

全志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…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...