#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 100 //数组定义统一大小
int g = 0; //全局变量,为登录时输入密码次数
int student_number = 5; //全局变量,student_number为学生的人数
struct user //定义一个结构体,存储用户登录账号和密码,并初始化五个管理员的信息
{
char username[20];
char password[20];
}user[5] = {
{"蒋超", "1450824311"},
{"李佳树", "2041775273"},
{"刘英杰", "395636706"},
{"胡友亮", "924056026"},
{"黄家杨", "2946644844"}
};
struct student //定义结构体,包含学生信息,并初始化五个学生的信息
{
char name[max]; //姓名
char num[max]; //学号
char sex[max]; //性别
int chinese; //语文成绩
int mathematic; //数学成绩
int english; //英语成绩
int computer; //计算机成绩
}s[5] = {
{ "蒋超", "00001", "boy", 80,90,80,90},
{ "李佳树", "00002", "boy", 60,80,90,50},
{ "黄家杨", "00003", "girl", 85,65,75,90},
{ "胡友亮", "00004", "boy", 55,65,75,80},
{ "刘英杰", "00005", "girl", 90,95,98,99}
};
struct student* p; //定义一个结构体指针
//主菜单函数声明
void login(); //登入函数
void main_menu(); //主界面函数
void input_record(); //输入学生成绩处理 1
void show_record(); //显示学生成绩处理 2
void search_record(); //查询学生成绩处理 3
void change_record(); //更新学生成绩处理 4
void delete_record(); //删除学生信息 5
void calc_record(); //计算成绩处理 6
void save_record(); //保存处理 7
void exit_record(); //退出 8
//查询子函数声明
void search_by_num(); //学号查询
void search_by_name(); //姓名查询
void search_by_sex(); //性别查询
void search_by_exit(); //返回上一级
//计算子函数声明
void calc_sum(); //计算总成绩
void calc_ave(); //计算平均成绩
void calc_eixt(); //返回上一级
//自定义函数
void print_table(); //表头
void print_table_sum(); //总成绩表格
void print_table_ave(); //平均分表格
void read(); //将文件中的数据读入到结构体数组中
//微信搜索公众号:C语言中文社区,关注获取200G编程资料。
int main() //*主函数
{
login(); //首先进行管理员登录
main_menu(); //登录成功后显示主界面
return 0;
}
void login() //登录函数,管理员使用该系统前需进行登录,定义密码只允许输错三次
{
int i;
char id[20], password[20];
printf("****登录界面****\n");
printf("请输入账号名:");
scanf("%s", id);
printf("请输入密码:");
scanf("%s", password);
for (i = 0; i < 5; i++) //遍历五个管理员的信息,如果输入的信息在初始化的信息中存在则登录成功
{
if (strcmp(id, user[i].username) == 0 && strcmp(password, user[i].password) == 0)
{
printf("登录成功!\n");
system("cls"); //清屏函数
main_menu(); //登录成功,打印主界面
break;
}
}
if (i == 5) //遍历完一轮管理员信息,此时i=5且未找到符合的管理员信息,说明账号密码输入错误
{
system("cls");
printf("登录失败!\n\n");
g++; //有三次登录机会,每次登录都遍历一次user结构体
if (g >= 3) //若三次机会都用完,则退出系统
{
printf("你已经输错三次,将自动退出系统\n");
exit(1);
}
else
{
login(); //否则,登陆成功,进入主界面
}
}
}
void main_menu() //展示主菜单,并对用户的请求做出对应响应
{
read(); //将文件中的学生信息读取到链表中
system("cls"); //清屏函数
int x;
//主菜单
printf("*************************************************\n");
printf("*\t欢迎使用高校学生成绩管理系统V2.0\t*\n");
printf("*************************************************\n");
printf("*\t\t1.输入学生信息\t\t\t*\n");
printf("*\t\t2.显示学生信息\t\t\t*\n");
printf("*\t\t3.查询学生信息\t\t\t*\n");
printf("*\t\t4.更新学生信息\t\t\t*\n&#
学生成绩管理系统升级版(c语言)
于 2024-01-15 21:31:59 首次发布
printf("| 姓名 | 学号 | 性别 | 语文 | 数学 | 英语 |计算机|总成绩|\n");if ((fp = fopen("student-list", "wb")) == NULL) //以二进制方式对文件进行读写。if ((fp = fopen("student-list", "rb")) == NULL) //以二进制方式读取文件。for (i = 0;if (i == student_number) //student_number为全局变量学生的人数。
摘要由CSDN通过智能技术生成