代码地址:github地址

班级档案管理系统

原题目要求是对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、

显示、修改、删除、保存等操作的管理。

由于个人需要,我单独将项目改造为指针使用版本,掌握上难度较高,有需要的请前往指针版本: 对应github项目地址

主要掌握点包括

  • 结构体的使用
  • 数组的使用
  • 增删改查的基本概念
  • 基本算法的使用如:排序、查找算法等
  • 文件的读取、写入

功能点列表

  1. 本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学

    号、姓名、性别、年龄、备注。
  2. 本系统显示这样的菜单:
    • 学生基本信息录入

      1. 手工录入
      2. 文件录入
      3. 手工录入(追加)
    • 学生基本信息显示
    • 学生基本信息保存
    • 学生基本信息删除
    • 学生基本信息修改 (要求先输入密码)
    • 学生基本信息查询
      1. 按学号查询
      2. 按姓名查询
    • 学生总分成绩查询
      1. 按降序查询
      2. 按升序查询
    • 退出系统
  3. 执行一个具体的功能之后,程序将重新显示菜单。
  4. 将学生基本信息保存到文件中。
  5. 进入系统之前要先输入密码。

其中删除线功能未实现,如果有兴趣实现可以向我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动态图演示,有的操作属于合并

学生基本信息录入

  1. 手工录入已经追加

    其中手动录入为初始化录入一条学生信息,然后选择操作3追加一条学生信息数据,然后再打印录入信息

  1. 文件录入

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

学生基本信息显示

信息展示为所有演示功能的基础功能,参考其他即可

学生基本信息保存

添加一条学生信息数据,然后保存最新数据到文件中,然后再操作导入文件,再打印最新文件信息,测试是否保存成功

学生基本信息删除

删除一条学生信息

学生基本信息修改

修改一条学生信息

学生基本信息查询

  1. 按学号查询

  2. 按姓名查询

学生总分成绩查询

  1. 按降序查询

  2. 按升序查询

退出系统

退出系统

C语言 班级档案管理系统实现的更多相关文章

  1. 大一C语言课程设计——班级档案管理系统

    记录我在大一第二学期期末做的C语言课程毕业设计 1. 班级档案管理系统运用到的主要结构体 typedef struct birthday //出生日期{int year;int month;int d ...

  2. c语言实现通讯录管理系统(c课程设计)

    工具:Visual C++6.0 说明: 本系统基于C语言实现班级通讯录管理系统,为大一时学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号 ...

  3. c语言之学生管理系统

    0x00 学生管理系统 说到学生管理系统,对于每一个初学c语言的人都是一道不得不过的砍.不过,学习c,我觉得每个人都应该写一个学生管理系统,至于为什么,我想倘若连一个学生管理系统都写不好,哪么他的c是 ...

  4. 《C语言 学生成绩管理系统》

    /* (盯着先拔头筹程序) * 该计划的版权声明和版本号 * Copyright (c) 2011, 烟台大学计算机学院学生的学校 * All rights reserved. * 文件名: 学生成绩 ...

  5. C语言程序_管理系统

    #include <stdio.h> #include <stdlib.h> #include <string.h> #define N 3 #define LEN ...

  6. C语言: 简易图书管理系统

    这只是一个简易的图书管理系统,虽然它有千余行代码,不过终究是个简单基本的东西. 在Linux系统下,用Vim编写,如要在Windows上运行则需要一些改动,主要是一些调用系统函数的改动.如Window ...

  7. c语言学生信息管理系统-学习结构体

    #include<stdio.h> #include<stdlib.h> //结构体可以存放的学生信息最大个数,不可变变量 ; //学生信息结构体数组,最多可以存放100个学生 ...

  8. c语言个人财务管理系统

    这个是我的一个网上朋友写的,仅供大家参考: 在这里留个记录 #include<stdio.h>#include<string.h>#define null 0#define m ...

  9. C语言学生成绩管理系统(简易版)

    #include<stdio.h> #include<stdlib.h> #include<string.h> int readstudents(struct st ...

随机推荐

  1. SQL动态标签

    MyBatis的动态SQL详解MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不 ...

  2. ajax的使用方法

    后台在写代码时 一般都会用到AJAX传值的方法 了解的AJAX方法有三种样式 第一 $.ajax( { type: "POST", url: "UserList.ashx ...

  3. PostgreSQL10.5 - 创建索引的思考

    总体感觉整个索引创建的比较慢,PostgreSQL10没有并行创建索引的功能,所以执行过程中,仅用到了服务器的一个核心来执行计算.索引创建是一个高CPU消耗的工作,CPU基本会跑满,会用到backen ...

  4. qsing

    qsing1 1.低仿机器人 一道大模拟 2.放爆竹 小辉原本想让小明告诉他,如果同时点燃n串雷,最多会有多长的时间至少有两串雷爆炸的声音是一样的. 但是小辉觉得这个问题真是太简单了,所以决定问小明, ...

  5. PHP全栈学习笔记27

    数组概述,类型,声明,遍历,输出,获取数组中最后一个元素,删除重复数组,获取数组中指定元素的键值,排序,将数组中的元素合成字符串. 数组概述,数组是存储,管理和操作一组变量. 数组类型为一维数组,二维 ...

  6. python 监视和控制鼠标键盘的输入(使用pynput 而非pyhook)

    百度上搜到的文章大多基于pyhook, pip不能直接安装,托管在sourceForge上的代码仓库也找不到. google上发现可以使用pynput,貌似控制更为简单,而且可以直接使用pip安装 示 ...

  7. 配置Notepad++

    Notepad++配置 1.自动换行 视图 - 自动换行 2.隐藏工具栏 设置 - 首选项... > 常用 > 工具栏 - 隐藏 3.隐藏菜单栏 设置 - 首选项... > 常用 & ...

  8. 走进JavaWeb技术世界9:Java日志系统的诞生与发展

    本文转自[码农翻身] ## 一个著名的日志系统是怎么设计出来的? # 1前言 Java帝国在诞生之初就提供了集合.线程.IO.网络等常用功能,从C和C++领地那里吸引了大量程序员过来加盟,但是却有意无 ...

  9. Go by Example-变量

    在上一节中提到了值类型,但是他们都是写在输出语句里的,如果后面程序需要用的话就显得非常的不方便,所以更好的办法就是把它们定义成变量,然后在调用. 变量 和Python不同的是,Go语言中的变量是需要的 ...

  10. Link static data in sql source control

    You can link data that doesn't change very often to SQL Source Control. This lets you commit data ch ...