一、教学目的
- 在掌握《C语言程序设计》课程的知识点的前提下,培养学生分析问题、解决问题的能力。
- 培养学生良好的程序设计思想、方法与技巧,以及熟练掌握C程序设计语言的编程与调试。
二、内容要求
基本要求(必做)
- 设计一个学生信息管理系统,具备插入、删除、修改、查询、显示、统计等功能。
- 学生基本信息至少包括学号、姓名、年龄、性别、出生年月、手机号、学院、专业、家庭住址等;成绩信息至少包括学号、课程代码、课程成绩等;课程信息至少包括课程代码、课程名称、课程学分、任课教师等。
- 界面采用菜单的方式。
- 系统中至少包括5名学生、3门以上课程及成绩信息。
- 重点完成课程报告的四、五、七部分,代码只提供核心部分。
- 界面美观友好,并有一定的容错能力。
扩展要求(加分项、可选做)
- 登录功能。(输入的密码显示为*)
- 用户分为学生用户、教师用户、管理员用户。
- 学生用户可查询、修改个人信息,可查询课程成绩信息等。
- 教师用户可录入课程成绩信息,对成绩进行排序。
- 管理员用户可进行用户管理功能(注册新用户、删除用户、修改用户),创建课程等。
- 多文件结构。将业务功能存放在单独的源程序中。
- 系统所处理的数据可采用数据文件或数据库存储。
三、系统实现
实现了基础要求的全部内容以及扩展要求的全部内容。
设计思路
该系统的整体设计为:用多文件结构使得业务功能清晰明了,采用数据文件的方式来存储系统所处理的数据,程序开头设有主菜单,使用户通过登录功能进入不同的用户系统,同时还在每个菜单界面加入了清屏功能,使得程序运行后的界面更加美观简洁。
结构体
对于系统处理的数据,首先设计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");