C语言 班级档案管理系统实现
代码地址:github地址
班级档案管理系统
原题目要求是对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、
显示、修改、删除、保存等操作的管理。
由于个人需要,我单独将项目改造为指针使用版本,掌握上难度较高,有需要的请前往指针版本: 对应github项目地址
主要掌握点包括
- 结构体的使用
- 数组的使用
- 增删改查的基本概念
- 基本算法的使用如:排序、查找算法等
- 文件的读取、写入
功能点列表
- 本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学
号、姓名、性别、年龄、备注。 - 本系统显示这样的菜单:
- 学生基本信息录入
- 手工录入
- 文件录入
- 手工录入(追加)
- 学生基本信息显示
- 学生基本信息保存
- 学生基本信息删除
- 学生基本信息修改 (要求先输入密码)
- 学生基本信息查询
- 按学号查询
- 按姓名查询
- 学生总分成绩查询
- 按降序查询
- 按升序查询
- 退出系统
- 学生基本信息录入
- 执行一个具体的功能之后,程序将重新显示菜单。
- 将学生基本信息保存到文件中。
- 进入系统之前要先输入密码。
其中删除线功能未实现,如果有兴趣实现可以向我Pull requests,功能实现不复杂,有一点需要注意,输入密码需要使用****等覆盖,不能显示明文
使用
压缩包下载: Download Zip
或者git命令下载:
git clone git@github.com:dengjili/class_ms.git项目结构截图

项目结构说明
---头文件
---global.h (全局变量声明)
---menu_ui.h (菜单声明)
---person.h (班级信息功能实现声明)
---person_file.h (文件操作声明)
---源文件文件
---main.c (全局变量实现)
---menu_ui.c (菜单实现)
---person.c (班级信息功能实现实现)
---person_file.c (文件操作实现)
---资源文件
---person.dat (文件存储操作的数据,默认有初始化数据)
- 直接运行界面,对系统进行操作

功能演示
所有演示采用GIT动态图演示,有的操作属于合并
学生基本信息录入
手工录入已经追加
其中手动录入为初始化录入一条学生信息,然后选择操作3追加一条学生信息数据,然后再打印录入信息

文件录入
导入数据来自于文件:
person.dat,文件为二进制文件,不可使用编辑器直接查看数据。操作为导入文件,然后再打印录入信息

学生基本信息显示
信息展示为所有演示功能的基础功能,参考其他即可
学生基本信息保存
添加一条学生信息数据,然后保存最新数据到文件中,然后再操作导入文件,再打印最新文件信息,测试是否保存成功

学生基本信息删除
删除一条学生信息

学生基本信息修改
修改一条学生信息

学生基本信息查询
按学号查询

按姓名查询

学生总分成绩查询
按降序查询

按升序查询

退出系统
退出系统
C语言 班级档案管理系统实现的更多相关文章
- 大一C语言课程设计——班级档案管理系统
记录我在大一第二学期期末做的C语言课程毕业设计 1. 班级档案管理系统运用到的主要结构体 typedef struct birthday //出生日期{int year;int month;int d ...
- c语言实现通讯录管理系统(c课程设计)
工具:Visual C++6.0 说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号 ...
- c语言之学生管理系统
0x00 学生管理系统 说到学生管理系统,对于每一个初学c语言的人都是一道不得不过的砍.不过,学习c,我觉得每个人都应该写一个学生管理系统,至于为什么,我想倘若连一个学生管理系统都写不好,哪么他的c是 ...
- 《C语言 学生成绩管理系统》
/* (盯着先拔头筹程序) * 该计划的版权声明和版本号 * Copyright (c) 2011, 烟台大学计算机学院学生的学校 * All rights reserved. * 文件名: 学生成绩 ...
- C语言程序_管理系统
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 3 #define LEN ...
- C语言: 简易图书管理系统
这只是一个简易的图书管理系统,虽然它有千余行代码,不过终究是个简单基本的东西. 在Linux系统下,用Vim编写,如要在Windows上运行则需要一些改动,主要是一些调用系统函数的改动.如Window ...
- c语言学生信息管理系统-学习结构体
#include<stdio.h> #include<stdlib.h> //结构体可以存放的学生信息最大个数,不可变变量 ; //学生信息结构体数组,最多可以存放100个学生 ...
- c语言个人财务管理系统
这个是我的一个网上朋友写的,仅供大家参考: 在这里留个记录 #include<stdio.h>#include<string.h>#define null 0#define m ...
- C语言学生成绩管理系统(简易版)
#include<stdio.h> #include<stdlib.h> #include<string.h> int readstudents(struct st ...
随机推荐
- 微信公众号开发--微信JS-SDK分享到朋友圈和分享给朋友
之前写过一篇使用微信JS-SDK来实现扫一扫功能的博客 微信公众号开发–微信JS-SDK扫一扫功能 在该博客里介绍了微信JS-SDK的基本用法,其中包括以下几个步骤 还详细介绍了通过config接口注 ...
- CodeForces 840C - On the Bench | Codeforces Round #429 (Div. 1)
思路来自FXXL中的某个链接 /* CodeForces 840C - On the Bench [ DP ] | Codeforces Round #429 (Div. 1) 题意: 给出一个数组, ...
- PHP基础语法之 位运算
写了几年PHP的人都好奇说,没有用过位运算符.所以,此处你看二进制看的头晕,就去T¥M¥D吧. 位运算符基本不用,我们也将这个知识设置为了解级别.位运算符的知识点,你不想学习也可以.等以后用到位运算的 ...
- learning scala generic classes
package com.aura.scala.day01 object genericClasses { def main(args: Array[String]): Unit = { val sta ...
- selenium + chromeDriver的ip代理设置
from selenium import webdriver from selenium.webdriver.chrome.options import Options import zipfile ...
- CF1174B Ehab Is an Odd Person(排序+结论)
做法 一个显然的结论就是如果至少有一个奇数和一个偶数,那么是可以随意调整的,也就是升序排序 否则不可以进行任何操作 Code #include<bits/stdc++.h> using n ...
- scp执行报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
linux环境执行scp时会遇到报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!,如下 [root@subsname home]# scp AAA. ...
- 问题分析——Maven打包后发版,静态资源找不到
一.背景 Xxl-Job-Admin(开源分布式调度中心)项目在本地运行正常,Jenkins发版到测试环境,发版成功后,打开管理页面,页面css.js找不到. 怀疑是Maven没有把静态资源打包进去导 ...
- SpringBoot面试题 转(已迁移到java相关知识点)
## 什么是springboot 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的 ...
- 微信小程序设置滚动条
前言 又很久没有写东西了,上周开始将一个APP和一个网站的内容整合到微信小程序中,到这会儿终于搞得快结束了,才发现为啥我的小程序滚动视图没有滚动条,这是闹哪样,没有滚动条的滚动是没有灵魂的. 客官可移 ...