学生成绩管理系统升级版(c语言)

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通过智能技术生成

#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&#

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陇院第一Sweet Baby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值