学籍管理系统
功能简介
-
链表实现基本的创建和增删改查。
-
成绩分析,链表的冒泡排序。
-
分管理员,老师,学生三端管理,密码的修改,加密。
-
分班级管理老师学生。
-
方框界面,↑↓键控制,ENTER键确认。
界面功能展示
主界面
管理员登录
管理老师信息
管理学生信息
添加学生
成绩查询
具体实现的方法
1.界面
界面实现由↑↓控制选择,ENTER键确认。
这里用到了c语言光标移动函数gotoxy()。
gotoxy()函数定义
void gotoxy(int x, int y)
{
COORD coord = {
x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
命令行的列为x轴,行为y轴。
例如使用 gotoxy(10,5); 语句表示将光标移动到第十列,第五行。
先在第一个选项上打印出白框。
然后用getch();无缓冲读取用户的键盘输入。
用if判断,如果读取值的为↓键的ASCII码,则分别调用gotoxy(int x, int y)让光标跳到该白框的上面部分,中间部分和下面的部分的开头,打印一串空格覆盖掉白框,然后再调用gotoxy(int x, int y)让光标移动到下一个选项,分别打印出白框。除此之外还需再定义一个开关值,int key = 1, 然后每读取一次↓键,则key++,记录选中的选项,最后根据key的值再调用不同的函数。
如果判断为↑键,则同理。
还可以利用key值做特殊的判断,如果key的值为1且读入↑键,则让光标跳到最下面的选项打印白框,可以让白框循环移动。或者可以用取余数的办法, 例如一共有5个选项,则可以将每次key的值余6,便可使选框框循环移动。
附上一小段界面代码
按自己的思路写的,有点乱。仅供参考。
void zhujie() {
char c; // 用来读取键盘的输入
int key = 1, x = 38 , y = 7; // key值记录选项, x,y为初始的坐标,可根据自己系统具体而确定。
/* 打印界面 */
printf(" --------------------------------------------------------------------------------------------------------------\n");
printf(" | 学生信息管理系统 |\n");
printf(" --------------------------------------------------------------------------------------------------------------\n");
printf(" | 请选择身份: |\n");
printf(" | |\n");
printf(" | |\n");
printf(" | |\n");
printf(" | ============================ |\n");
printf(" | | 1.管理员 | |\n");
printf(" | ============================ |\n");
printf(" | |\n");
printf(" | 2.老师 |\n");
printf(" | |\n");
printf(" | |\n");
printf(" | 3.学生 |\n");
printf(" | |\n");
printf(" | |\n");
printf(" | 4.退出程序 |\n");
printf(" | |\n");
printf(" | |\n");
printf