C语言程序与设计之《学生信息管理系统》

一、教学目的

  1. 在掌握《C语言程序设计》课程的知识点的前提下,培养学生分析问题、解决问题的能力。
  2. 培养学生良好的程序设计思想、方法与技巧,以及熟练掌握C程序设计语言的编程与调试。

二、内容要求

基本要求(必做)

  1. 设计一个学生信息管理系统,具备插入、删除、修改、查询、显示、统计等功能。
  2. 学生基本信息至少包括学号、姓名、年龄、性别、出生年月、手机号、学院、专业、家庭住址等;成绩信息至少包括学号、课程代码、课程成绩等;课程信息至少包括课程代码、课程名称、课程学分、任课教师等。
  3. 界面采用菜单的方式。
  4. 系统中至少包括5名学生、3门以上课程及成绩信息。
  5. 重点完成课程报告的四、五、七部分,代码只提供核心部分。
  6. 界面美观友好,并有一定的容错能力。

扩展要求(加分项、可选做)

  1. 登录功能。(输入的密码显示为*)
  2. 用户分为学生用户、教师用户、管理员用户。
  3. 学生用户可查询、修改个人信息,可查询课程成绩信息等。
  4. 教师用户可录入课程成绩信息,对成绩进行排序。
  5. 管理员用户可进行用户管理功能(注册新用户、删除用户、修改用户),创建课程等。
  6. 多文件结构。将业务功能存放在单独的源程序中。
  7. 系统所处理的数据可采用数据文件或数据库存储。

三、系统实现

实现了基础要求的全部内容以及扩展要求的全部内容。

设计思路

该系统的整体设计为:用多文件结构使得业务功能清晰明了,采用数据文件的方式来存储系统所处理的数据,程序开头设有主菜单,使用户通过登录功能进入不同的用户系统,同时还在每个菜单界面加入了清屏功能,使得程序运行后的界面更加美观简洁。

结构体

对于系统处理的数据,首先设计4个结构体用作存储。4个结构体有:1、person_info,用于记录学生与教师用作登录的账号密码;2、chengJi_info,用于存储学生的成绩信息;3、student_info,用于存储学生的基本信息;4、course_info,用于存储课程信息。系统处理完的数据在结束程序前会采用数据文件的方式进行存储,并会在每次启动程序的时候对相应的文件进行读取,保证每次处理完的数据可供下次再使用。

主菜单页面

程序的开头,是一个菜单界面,供用户进行登录,并通过登录进入不同的用户系统,登录的过程中,会对用户输入的密码进行隐藏,显示为*号。用户系统包括学生系统、教师系统、管理员系统。

学生系统

学生系统包括许多功能,有查看个人密码、修改个人密码、查看个人基本信息、修改个人基本信息、查看成绩信息、查看课程信息。其中,个人基本信息有学号、姓名、年龄、性别、出生年月、手机号、学院、专业、家庭住址等信息。

教师系统

教师系统包括查看学生成绩、录入学生成绩、修改学生成绩、删除学生成绩、排序学生成绩等功能,可以更方便地对学生的成绩进行分析。

排序前的成绩:

进行排序:

排序后的成绩:

管理员系统

管理员系统有注册新用户、删除用户、修改用户密码、显示用户账号、查看课程、创建课程、删除课程等功能。其中对用户账号的管理都是包括学生账号以及教师账号,查看课程则是方便在创建课程前对课程可以提前有了解,更方便管理课程信息。管理员的账号与密码是在程序中已经默认好了的(账号为1,密码为12345)。

四、核心代码(全部代码文件私聊博主发)

核心代码1:学生用户在对个人密码进行修改的时候需要先输入原密码,在核对原密码正确后才可以修改新密码,提升了学生账号的安全性。

核心代码2:对用户在登录时通过键盘输入的密码进行隐藏并显示为*号,提高用户密码的隐秘性及安全性。

用strcpy函数获取YinMiMa函数的返回值并把该值复制到存放用户输入密码的字符数组中。

核心代码3:清屏操作,对屏幕进行清屏,使得界面更加简洁美观。

//该函数包含在stdlib.h文件中,使用前需要加#include<stdlib.h>

system("cls");

核心代码4:对多名学生的成绩进行排序。教师用户可对多名学生的成绩进行排序,以方便查看学生的成绩排名。

核心代码5:文件的存储。不同的文件需要不同的函数去实现存储,但本质内容都一样,所以在这里只展示一个文件存储函数的代码。

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值