文章目录

  • 前言
  • 一、学生界面
    • 1.需要实现的功能
    • 2.相应菜单如下
  • 二、老师界面
    • 1.需要实现的功能
    • 2.相应菜单如下
  • 三、管理员界面
    • 2.相应菜单如下
  • 总结

前言

介绍我在编写学生管理系统时遇到的问题


一、学生界面

1.需要实现的功能


对于学生界面的编写还是比较简单的,模块1、2、3、4都可以在学生登录学生管理系统后系统根据学生登录时输入的账号自行匹配学生的学号
1,成绩查询。
在相应的班级里查找学生的学号,在输出此学号所对应的成绩。

2,本班成绩输出
读取存储相应班级信息的文件,依次遍历输出

3,成绩分析
可以对本班成绩进行总分排序,然后对应输出此学号所对应的名次。
也可以求出本班各个科目的平均成绩,最高成绩和各个成绩分数段的人数。然后输出此学号的成绩和分析的信息。

2.相应菜单如下

char num[NUM_S];printf("请输入账号:\n");//对应学生账号,即学号scanf("%s", num);char password[PASS_S];//此账号对应的密码printf("请输入密码:\n");scanf("%s", password);struct count* Head = duqu_count();//查找输入的账号和密码是否合法while (Head) {if (strcmp(Head->num, num) == 0 && strcmp(Head->password, password) == 0) {int k = num[1]-'0';printf("***********************************\n");printf("********** 这里是学生系统    ******\n");printf("********** 1.成绩查询       *******\n");printf("********** 2.本班成绩查询   *******\n");printf("********** 3.成绩分析       *******\n");printf("********** 4.成绩申诉       *******\n");printf("********** 0.退出           *******\n");printf("***********************************\n");
//在下面代码的每种情况里实现相应功能即可printf("请输入:");char i[] = { 0 };scanf("%s", &i);if (i[0]-'1'==0) {//相应代码块}if (i[0]-'2'==0) {//相应代码块}if (i[0]-'3'==0) {//相应代码块}if (i[0]-'4'==0) {//相应代码块}if (i[0]-'5'==0) {//相应代码块}if (i[0] - '1' != 0 && i[0] - '2' != 0 && i[0] - '3' != 0 && i[0] - '4' != 0 && i[0] - '5' != 0} {printf("选择错误!\n");}

二、老师界面

1.需要实现的功能


这里对于老师模块,我设置的是根据老师登录的账号自动匹配他所对应的班级,所以在执行老师菜单的命令时,不需要得到老师的班级
1,对于模块1,给相对应班级的文件末尾追加信息即可。
2,对于模块2,3,将文件中的信息全部读取并保存,然后修改要修改的学号所对应的信息,在将这些内容写入文件即可。
3,对于模块4,5,7,和上边提到的学生模块的类似,不在赘述。(模块5和学生模块的输出本班成绩相同)
4,对于模块6,可以每次选择这个选项时就将文件中的内容复制到另一个文件里,复制成功后返回复制到的文件路径或者文件名即可。

2.相应菜单如下

 printf("***********************************\n");printf("********** 1.增加学生的信息  ******\n");printf("********** 2.删除学生信息    ******\n");printf("********** 3.修改学生信息    ******\n");printf("********** 4.查询学生信息    ******\n");printf("********** 5.输出本班成绩    ******\n");printf("********** 6.成绩分析        ******\n");printf("********** 7.提醒管理员进行成绩更新******\n");printf("********** 8.下载文件到本地  ******\n");printf("********** 0.退出            ******\n");printf("***********************************\n");printf("请输入:");char i[] = { 0 };scanf("%s", &i);if (i[0]-'1'==0) {//相应代码块}if (i[0]-'2'==0) {//相应代码块}if (i[0]-'3'==0) {//相应代码块}if (i[0]-'4'==0) {//相应代码块}if (i[0]-'5'==0) {//相应代码块}if (i[0]-'6'==0) {//相应代码块}if (i[0]-'8'==0) {//相应代码块}if (i[0] - '1' != 0 && i[0] - '2' != 0 && i[0] - '3' != 0 && i[0] - '4' != 0 && i[0] - '5' != 0 && i[0] - '6' != 0 && i[0] - '7' != 0 && i[0] - '8' != 0) {printf("选择错误!\n");}

三、管理员界面


其实管理员的很多功能是与老师重复的,只需要在相应的代码前加上管理员要进行操作的班级即可。(比如2,9)
管理员对于账户的操作也和老师对于学生信息的操作方法相同,不在多解释。(3,7可以仿照增加学生信息进行编写,4可以仿照删除学生信息进行编写,5可以仿照修改学生信息,6可以仿照查找学生信息,8可以仿照输出本班成绩进行编写)

2.相应菜单如下

 printf("***********************************\n");printf("*******   1.查看待办       ********\n");printf("*******   2.进入教师端进行成绩修改********\n");printf("*******   3.增加账号及密码 ********\n");printf("*******   4.删除账号及密码 ********\n");printf("*******   5.修改账号密码   ********\n");printf("*******   6.查找账号及密码 ********\n");printf("*******   7.录入所有账号及密码********\n");printf("*******   8.输出所有账号及密码********\n");printf("*******   9.手动重新输入学生信息******\n");printf("*******   0.退出********\n");printf("***********************************\n");printf("请输入:");char i[] = { 0 };scanf("%s", &i);if (i[0]-'1'==0) {//相应代码块}if (i[0]-'2'==0) {//相应代码块}if (i[0]-'3'==0) {//相应代码块}if (i[0]-'4'==0) {//相应代码块}if (i[0]-'5' == 0) {//相应代码块}if (i[0]-'6'==0) {//相应代码块}if (i[0]-'7'==0) {//相应代码块}if (i[0]-'8'==0) {//相应代码块}if (i[0]-'9'==0) {//相应代码块}if (i[0] - '1' != 0 && i[0] - '2' != 0 && i[0] - '3' != 0 && i - '4' != 0 && i - '5' != 0&& i - '6' != 0 && i - '7' != 0 && i - '8' != 0 && i - '9' != 0 ) {printf("选择错误!\n");//相应代码块}

总结

在学生管理系统的编写中,用到的最多的就是对链表的基本操作和对文件的写入和读出。刚开始可能写的会有点慢,但是由于很多功能都是类似的,所以框架起来了后会非常快。
注意对各种不合法输入的判断处理
注意对文件打开方式的选择。
注意程序的逻辑的合理性和程序运行时的界面问题

学生管理系统(总结)相关推荐

  1. 用python设计学生管理系统_python+tkinter实现学生管理系统

    本文实例为大家分享了python+tkinter实现学生管理系统的具体代码,供大家参考,具体内容如下 from tkinter import * from tkinter.messagebox imp ...

  2. python删除字典中性别为男_python初学者,用python3实现基本的学生管理系统代码实例...

    本篇文章主要分享python学生管理系统的使用,文章非常详细地介绍了通过示例代码实现的学生管理系统,该系统对每个人的研究或工作都有一定的参考学习价值,希望你能在其中有所收获. 这个是用python实现 ...

  3. 学生管理系统(C语言版)

    学生管理系统 这个是大一学习C语言的时候做的一个小项目,代码部分基本都是自己一人完成,没用到什么高大上的技术,在图形化方面用了EasyX(一个C++的图形库),其他都是C语言的基础内容. 项目介绍 项 ...

  4. 用JDBC写一个学生管理系统(添加、删除、修改、查询学生信息)(二)

    本文上接用JDBC写一个学生管理系统(添加.删除.修改.查询学生信息) 这次主要是对上一文中的查询方法做一下调整,用创建内部类的方法来实现学生信息的查询. 我们先要定义一个接口IRowMapper: ...

  5. 用JDBC写一个学生管理系统(添加、删除、修改、查询学生信息)

    首先需要用Navicat Premium创建一个student表 用Java连接好MySQL数据库(需要copy一个mysql-connector-java-5.1.44-bin.jar包,该包可在网 ...

  6. python大作业 学生管理系统 以Excel(xls)格式导入文件

    简单的说一下每个板块的作用 这个load函数,是导入进来文件的数据 def load():data=xlrd.open_workbook('data.xls')table=data.sheets()[ ...

  7. JAVA入门到精通-第73讲-学生管理系统5-dao.sqlhelper

    -Model2模式 如果数据模型会很多,怎么办? 处理业务逻辑的:Model层 后台又分为:处理业务逻辑和对数据库的操作DAO-data access object -决定,再抽象一层出来:数据模型: ...

  8. java管理系统用怎么框架做_java 使用servlet做学生管理系统(无框架)

    使用工具: JavaJDK1.8 32位 Tomcat 8.5.33 32位 IDEA MySQL5.6 使用Jar包: c3p0-0.9.1.2.jar commons-dbutils-1.4.ja ...

  9. 基于BootStrap,FortAweSome,Ajax的学生管理系统

    一. 基于BootStrap,FortAweSome,Ajax的学生管理系统代码部分 1.students.html <1>html页面文件 <!DOCTYPE html> & ...

  10. 用python3做学生管理系统_详解用python实现基本的学生管理系统(文件存储版)(python3)...

    详解用python实现基本的学生管理系统(文件存储版)(python3) 来源:中文源码网    浏览: 次    日期:2019年11月5日 详解用python实现基本的学生管理系统(文件存储版)( ...

最新文章

  1. 剑指offer:面试题30. 包含min函数的栈
  2. MyEclipse连接oracle9i:invalid or unknown NLS parameter value specified错误
  3. go语言触发异常的场景
  4. php跨域请求解决方案_swoft2 -跨域与中间件详解
  5. Wannafly挑战赛17
  6. Qt笔记-Qt获取百度下拉推荐词
  7. 在powerdesigner 中出现Could not Initialize JavaVM! 应该怎么解决
  8. SPRING IN ACTION 第4版笔记-第二章-004-Bean是否单例
  9. Chrom调试移动端页面
  10. windows.2003.应用网络负载平衡管理器实现均衡负载与双机热备
  11. 360搜索核心算法,被K后如何恢复?
  12. 安装ghostscript
  13. llc变换器计算机仿真,LLC谐振变换器的参数设计
  14. 向下转型和向上转型(易理解)
  15. openlayers 地图上加图标_openlayers地图添加标志物
  16. 大学计算机基础知识判断题,大学计算机基础知识考试试题及答案
  17. 长安大学计算机网络复试题,研友分享:长安大学考研复试经验总结
  18. 一分钟简单了解HTTP(超详细图示)
  19. android 代码解压,Android开发之旅-解压压缩zip文件(带子目录和中文路径)
  20. ConsensusClustering及R实现

热门文章

  1. python实现labelme样本自动标注
  2. redis value最大值_Redis value的5种类型及常见操作
  3. 搭建PHP环境需要安装Apache服务器,遇到的一系列的问题(切记需要用管理权限进入CMD)
  4. Spark中组件Mllib的学习15之创建分布式矩阵
  5. 大数取模运算,快速幂取模运算
  6. Android第三方登录——QQ
  7. Qt报错:calling ‘split‘ with incomplete return type ‘QStringList‘
  8. 使用AFNetWorking请求错误
  9. ant design vue:upload打开选择文件弹框前弹出确认框
  10. set -x 与 set +x