zoukankan      html  css  js  c++  java
  • C语言实现字符界面下的学生管理成绩系统

    源码在此

    本系统学生信息由链表存储,账号由结构体数组存储,在程序开始时从文件中读入所有信息。如有信息变动即时保存到文件。文件为文本文件。再分为管理员端,教师端,学生端进行功能区分与权限管理。不足之处:仅仅区分了班级未区分专业
    本系统不能直接注册账号,注册信息存到文件,管理员可见。未注册时仅可进行申诉


    各端主要功能
    学生端 教师端 管理员端
    成绩查询及分析 班级及个人成绩查询及分析、排序 全专业的教师成绩功能
    查询当天课表 学生的添加及成绩的修改 学生账号的增删改查
    成绩申诉 下载全专业成绩到指定目录 查看账号注册与申诉
    密码修改 查看申诉 账号登录记录
    密码修改 密码修改

    上表中各功能对应的C语言知识

    成绩查询、更改、排序输出—>链表的排序与查找与更改
    学生的增删—>链表的增删更改与文件读写
    账号的增删改查—>结构体数组的增删改查与文件读写
    成绩、账号申诉与登录记录—>文件的读写


    输入检查
    方法一 函数的递归调用

      将输入的获取写成一个函数。若在在函数内进行自身调用,则难以进行计数退出(达到一定错误次数后退出),除非传参计数。然而传参会使函数使用更加复杂,无需计数调用时此参数又更加鸡肋。若在函数外进行重复调用或计数,则更像第二种方法,且此时函数调用时又要裹一层壳,显得重复代码过多或不直观。然而我喜欢这种用法

    方法二  while循环控制

      在输入获取外包裹一层while,出口为合法输入或计数退出。缺点同上。
    解决方法
      写这样一个函数
      

    void exam_input(    //获取输入的函数的入口    ){
            while(//计数||输入不合法  ){
            //调用函数
        }
    }

    好像并没有什么用


    获取系统时间

    time.h函数使用指南


    一些辅助函数
    rewind(stdin);//清空输入缓存区
    Sleep(3000);//睡眠函数  停止程序3000ms
    system("CLS");//清屏函数
    system("color 70");//更改颜色设定
    /*颜色属性由两个十六进制数字指定, 第一个为背景色, 第二个为前景色。
            每个数字可以为下列值之一:
            黑色 = 0      蓝色 = 1      绿色 = 2      湖蓝色 = 3
            红色 = 4      紫色 = 5      黄色 = 6      白色 = 7
            灰色 = 8      淡蓝色=9      淡绿色=A      白色=C
            淡紫色=D      淡黄色=E      亮白色=F
    */

    文件操作

    1.读取文件内容到链表/数组
    2.更改链表/数组内容后重新写文件 若不想修改生效,则重新读取文件到  链表/数组
    3.清空文件 用w+等格式打开即可


    链表的操作

    链表:单向链表的理解,创建及基本操作

    2018/5/7

  • 相关阅读:
    寒假学习第六天
    寒假学习第五天
    寒假学习第四天
    spark生态体系了解学习(六)
    spark生态体系了解学习(五)
    spark生态体系了解学习(四)
    spark生态体系了解学习(三)
    spark生态体系了解学习(二)
    spark生态体系了解学习(一)
    共享
  • 原文地址:https://www.cnblogs.com/kafm/p/12721869.html
Copyright © 2011-2022 走看看