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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值