学生管理系统(C语言版)
学生管理系统
这个是大一学习C语言的时候做的一个小项目,代码部分基本都是自己一人完成,没用到什么高大上的技术,在图形化方面用了EasyX(一个C++的图形库),其他都是C语言的基础内容。
项目介绍
项目总体功能概览
这个是项目的总体功能,主要分为两个部分:学生端和教师端,学生端具有创建账号、修改密码、学生登录、查询学生信息的功能;
教师端具有创建账号、修改密码、教师登录,教师登录后可以添加、修改、删除、查找、统计学生成绩的相关信息的功能。
项目部分功能展示
主要功能展示:
1、开始界面
2、学生端登录后界面
3、教师端登录后界面
4、教师端子菜单1
5、教师端子菜单2
主要函数描述
Stu_Register()、Tea_Register()学生、教师注册函数
用户输入用户名,函数检测输入的用户名是否已经注册过,若已注册过则出现提示信息;若无,则继续输入密码,输入密码过程中,函数判断两次输入的密码是否一致,若一致即完成注册,不一致则出现提示信息。Stu_Logon()、Tea_Logon()学生、教师登录函数
用户输入用户名,函数查找是否存在该用户,若不存在,出现提示信息,若存在,则继续输入密码,密码正确即完成登录,若密码输入三次后仍不正确,即出现提示信息。Stu_ResetPassword()、Tea_ResetPassword()学生、教师修改密码函数
用户登录后可进行修改密码操作,输入用户名,函数检索该用户是否存在,若不存在则出现提示信息,若存在则输入原密码,若输入三次原密码皆不正确的则出现提示信息,若输入正确则输入新密码,若直接跳过输入新密码阶段则默认不修改密码,密码认识旧密码。Stu_ScoreManagement()、Tea_ScoreManagement()学生、教师查询学生信息函数
用户输入相关的学生信息函数即从已有数据中进行模糊查询,将输入的信息与已有数据进行比较,如果该学生存在则在屏幕上打印出该学生的信息,若没有完全吻合的学生,则打印出所有与输入的信息相关的学生信息,如:输入信息为:小,则打印出所有带有“小”字的学生的信息,若输入的信息完全与已有的学生信息无关,则出现提示信息。Stu_CreateScore()学生信息添加函数
教师用户可以输入学生的姓名,若已添加该学生,则出现提示信息,若为添加过该学生,则继续输入学生的成绩信息。Stu_AmendScore()学生信息修改函数
教师用户输入学生的姓名后,函数检索是否存在该学生,若不存在则出现提示信息,若存在则继续输入需要修改的学生成绩信息。
遇到的问题
2020.3.3:出现插入的图片出现打不开的情况。
修正:将图片的格式统一为jpg格式。
2020.3.5:出现输入后保存的信息是乱码。
修正:将存入文件的数据进行格式转换,由wchar转换为char来存储。
2020.3.7:出现学生成绩的链表排序存在空指针导致输出乱码的情况。
修正:将链表排序函数重新修改了一下,使得排序过后传递下去的头指针不为空。
2020.3.10:出现进行翻页操作时部分学生成绩会出现重复输出的情况。
修正:修改了翻页函数,防止翻页时,末尾的学生重复输出。
2020.5.12:最新的一个问题,按”exit“键后并没有退出程序,程序仍在运行。
修正:添加了”exit(0);“语句退出程序。
使用说明
使用Visual Studio 2013点击项目的 学生管理系统(图形版).sln 文件即可打开项目
注意:最好使用Visual Studio 2013打开运行项目,不然可能会发生一些问题。
最后
项目地址如下:
Github 地址:https://github.com/guanchanglong/StudentManagementSystem-C
麻烦各位可否在看代码的时候顺手给一颗星 ^ _ ^,举手之劳感激不尽。
PS:也可以到我的个人博客查看更多内容
个人博客地址:小关同学的博客
相关文章:

jsp,图片显示
问题:jsp中显示项目中image文件夹中的图片 1,项目中image文件夹中有对应的图片 2,<img ,src"/项目名/image/图片名.jpg">,用其他变量获取这个路径也可以,但本质还是这个路径 3,对于jsp和HTML等文件的修…

Java基础系列——IO流
2019独角兽企业重金招聘Python工程师标准>>> ---恢复内容开始--- Java对数据的操作都是通过流的方式,数据的输入和输出是相对内存来说的,将外设的数据读到内存:输入流;将内存的数据写到外设:输出流。 流按…

Visual Studio Code / Roboware Studio调整字体大小,跳转等操作
调大字体:Ctrl 调小字体:Ctrl _- 跳转:F12 跳转返回:Ctrl Alt _- 打开内部终端:Ctrl ~

C4D和Redshift:2D矢量到三维渲染 Cinema 4D and Redshift: 2D vector to 3D render
C4D和Redshift:2D矢量到三维渲染 时长:1h 4m |视频:. MP4 1280720,30 fps(r) |音频:AAC,48000 Hz,2ch |大小解压后:633 MB 含课程文件 语言:英语中英文字幕(机译) 本课程涵盖了诸如将矢量转换为3d场景的主题。您将了解哪些数据可以…

《深入理解Java虚拟机》(第二版)学习2:垃圾收集算法
对象存活判断 在对堆进行回收之前虚拟机需要判断这些对象中那些是“存活”的。 引用计数算法(Reference Counting) 原理:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效…

Android 知识杂记(MVP模式)
MVP的模式在于将原来activity中业务逻辑的部分剥离出来,代码示例如下: Accountpublic class Account {private String mUsername;private String mPassword;public String getmUsername() {return mUsername;}public void setmUsername(String mUsername…

玩转百度即用API(2)——身份证查询
2019独角兽企业重金招聘Python工程师标准>>> 第二个即用API,身份证查询 示例代码: #-*- coding: utf-8 -*- #version:0.1 #note:该即用API接口简单,输入身份证只能查到3个信息:大概地址,性别&am…

解决Ubuntu环境下不能QT不能输入中文
参考链接: https://blog.csdn.net/baidu_33850454/article/details/81212026?utm_mediumdistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_sourcedistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2…

UE5虚幻引擎5中的实时特效学习 Introduction to real time FX in Unreal Engine 5
MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz,2 Ch 语言:英语中英文字幕(根据原英文字幕机译更准确) |时长:40节课(3h 36m) |大小解压后:2.65 GB 含课程文件 从零开始使用尼亚加拉在虚幻引擎中学习实时外汇…

《深入理解Java虚拟机》(第二版)学习3:垃圾收集器
垃圾收集器 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 我们这里讨论的收集器主要是基于JDK 1.7 Update 14之后的 Hotspot VM 。 Serial 收集器 Serial 收集器是最基本、发展历史最悠久的收集器,曾经(在 …

2016寒假训练3
题目链接 A CodeForces 362A Two Semiknights Meet 题意:在一个棋盘中有两个定义了特殊走法的棋子,同时移动他们,问是否会相遇(只能在合法的位置)。 做法:直接暴力dfs处理出这两个棋子到达各个位置的时间&a…

2015化妆品行业如何进行微信公众号营销
对比其他行业发展特点发现化妆品行业具有以下特点: 1、化妆品行业呈现节日、电商促销影响明显、口碑评价关注度高、女性网民占比高冲动消费多、整体用户年轻化等特点。 2、化妆品行业即使在各行业发展低迷期依然保持良好发展势头。 3、化妆品商家的顾客回头率高。 4…

在新建好的ROS空间里面添加功能包
第一步:创建功能包 cd catkin_ws打开src ~/catkin_ws/src新建文件夹名字 catkin_create_pkg (文件加名字) roscpp rospy std_msgs打开新建文件夹中的src ~/catkin_ws/src/(新建文件夹名字)/src输入: gedit 文件.cpp返回工作空间: 执行catkin build 编译后即可执行

Revit的Enscape基本培训(2021) Enscape Essential Training for Revit (2021)
MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz,2 Ch 语言:英语中英文字幕(根据原英文字幕机译更准确) |时长:2h 53m |大小解压后:2.23 GB 含课程练习文件 如果您使用Revit,您可能需要学习Enscape&…

设计模式学习2:单例模式
单例模式 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 比如Hibernate的SessionFactory,它充当数据存储源的代理…

数据库插入时,标识列插入显式值
当 IDENTITY_INSERT 设置为 OFF 时,不能为表 CU_GiftExchange 中的标识列插入显式值。SET IDENTITY_INSERT [dbo].[CU_GiftExchange] ONGO转载于:https://blog.51cto.com/hezun/1631849

Ubuntu终端显示文本让选择确定,OK等等
问题1:首先按下"TAB"键,会看到选中文本"确定","OK"然后按下回车键,即可!

Unity安卓游戏开发:打造7款2D 3D游戏 Unity Android Game Development : Build 7 2D 3D Games
流派:电子学习| MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz 语言:英语中英文字幕(根据原英文字幕机译更准确) |大小:15.4 GB |时长:32h 55m Unity游戏开发与设计,用C# & Unity学习Unity安卓游戏开发(更…

唯一索引和普通索引的选择
前言:最近在研究阿里的开发手册中关于 MySQL 的一些规定,所以来记录一下学习中的心得 唯一索引和普通索引的选择 【强制】业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引。 说明:不要以为唯一索引影响了…

Springboot整合HBase——大数据技术之HBase2.x
Apache HBase 是以hdfs为数据存储的,一种分布式、可扩展的noSql数据库。是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase使用与BigTable(BigTable是一个稀疏的、分布式的、持久化的多维排序map)非常相似的数据模型。用户将数据行存储在带标签的表中。数据行具有可排序的键和任意数量的列。该表存储稀疏,因此如果用户喜欢,同一表中的行可以具有疯狂变化的列。

一个合格的Java选手必须要掌握的并发锁知识
Java内置锁:基于Java语法层面(关键词)实现的锁,主要是根据Java语义来实现,最典型的应用就是synchronized。Java显式锁:基于JDK层面实现的锁,主要是根据基于Lock接口和ReadWriteLock接口,以及统一的AQS基础同步器等来实现,最典型的有ReentrantLock。使用方式:synchronized关键字互斥锁主要有作用于对象方法上面,作用于类静态方法上面,作用于对象方法里面,作用于类静态方法里面等4种方式。

终于有人把Web 3.0和元宇宙讲明白了
分散的数据网络使个人数据(例如个人的健康数据、农民的作物数据或汽车的位置和性能数据)出售或交换成为可能,与此同时,不会失去对数据的所有权控制、放弃数据隐私或依赖第三方平台来管理数据。Web 3.0的目标是在创作者经济中取得更好的平衡。互联网第二次迭代(Web 2.0)的缺陷,加上公有区块链技术的诞生,帮助我们朝着更加去中心化的Web 3.0 迈进,元宇宙和更广泛的去中心化网络都是关于现实世界和虚拟世界的融合。此时的网络中不再是静态内容,而是动态的内容,用户现在可以与发布在网络上的内容进行交互。

ubuntu下安装 python 常用软件
1、用于科学计算的常用包: sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose 包括,numpy, scipy, matplotlib, ipython, ipython-notebook, pandas, sympy, nose 2、…

《团队项目开发之三对一维环形数组的求解》
《团队项目开发之三对一维环形数组的求解》 设计思想:通过把数组的长度扩大为原来的一倍,相当于新数组是由对原来的数组重复了一遍后而组成的,这样保证了数组以环状的形式,按照数组中每个数字的位序依次对它们可能形成的最大子数组…

PX4修改线程内存大小
当编译时出现错误: 在CMakeLists.txt文件中修改内存大小 px4_add_module(#下面添加文件夹名字MODULE modules__position_control#下面添加线程名字MAIN a#线程内存大小STACK_MAIN 4000SRCS#添加文件夹里面.cpp文件main.cppDEPENDS)修改后,再次编译就不…

Blender液体烟与火VFX特效制作教程 Blender VFX Liquid Smoke Fire
流派:电子学习| MP4 |视频:h264,1280720 |音频:AAC,48.0 KHz 语言:英语|大小:6.60 GB |时长:7h 44m Blender了解三维模型如何创建模拟和动画的简单方法 你会学到什么 完成创建两个鬼魅万圣节场景的完整指南,包括模拟和全动画元素 使用Blender…

Ajax+SpringBoot+Thymeleaf使用中遇到的跳转页面问题
前言:这周在使用 AjaxThymeleaf 时遇到一个问题,折腾了我很久,在此记录一下 AjaxSpringBootThymeleaf使用中遇到的跳转页面问题 问题描述 我的目的:通过 Ajax 获取数据,并通过 Model 渲染 View ,实现跳转…

数据库分离 脱机
数据库分离:一般默认情况下数据库在联机状态下我们不能对数据库文件进行任何复制删除等操作,如果将数据库分离的话就可以对数据文件进行复制、剪切、删除等操作了。一般想直接备份数据文件,就先分离数据库,之后把数据文件复制到别…

年卡在手,城墙我走: 记葡萄城控件团队建设
上个周六,赶着春天的尾巴,《葡萄城控件业务团队》进行了一次有趣的团队建设:西安城墙半日游。 拿到《2015陕西旅游年票一卡通》,还是小小激动一下,据说有888个景点可以免费游玩呢。 从葡萄城到西安南门,这个…

PX4代码框架
src:目录是源码目录存放所有的源码,源码的查看都应该在这里。 mavlink:是MAvlink的库目录,源码要调用这个库,如果我们要修改和添加MAVLINLK消息ID也是在这个目录下面。 NuttX:是NuttX的系统库,…