代码地址: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. 按升序查询

退出系统

退出系统

最新文章

  1. maven生命周期和插件
  2. yii2 GridView常见操作
  3. Xcode清缓存
  4. C# 最简单的递归
  5. Linux日常使用指令大全
  6. Codeforces Round #312 (Div. 2)B. Amr and The Large Array 暴力
  7. 递归小Demo
  8. 有效范围为request的bean
  9. linux解压命令
  10. MySQL表设计基础
  11. javascript操作DOM的方法与属性
  12. iOS第三方库-CocoaLumberjack-DDLog (转)
  13. underscore.js 源码
  14. 精通ArrayList,关于ArrayList你想知道的一切
  15. NetCore持续踩坑
  16. js实现复制内容到粘贴板
  17. 决策树算法原理(ID3,C4.5)
  18. BZOJ5297 [CQOI2018] 交互网络 【MatrixTree定理】
  19. HDU 5988.Coding Contest 最小费用最大流
  20. C# 之HTTP请求get,post带重试参数

热门文章

  1. Java图形界面
  2. MongoDB 基本操作 数据库、集合
  3. Ubuntu 下python开发环境的搭建
  4. thinkphp5/php cors跨域处理
  5. properties的编码问题
  6. selenium鼠标操作
  7. Linux CentOS 使用Yum源安装MySQL 5.7
  8. Node.js 目录操作
  9. AOP 与 Spring中AOP使用(上)
  10. arcgis python 更新日期为随机数