C语言学生学籍管理系统课程设计

论坛 期权论坛 脚本     
niminba   2021-5-23 04:35   1055   0

C语言学生学籍管理系统做了好长时间的,里面有点小问题,希望大佬找到并帮忙改改,注意输入密码三次错误会自动注销用户,密码123456

代码:

#include<stdio.h> 
#include<stdlib.h> 
#include<string.h> 
#include<conio.h> 
struct student 
{ 
  char xuehao[100];//输入学号 
  char name[100];//输入姓名 
  char sex[100];//输入性别 
  int age;//输入年龄 
  char jiguan[100];//输入籍贯 
  char dianhua[100];//输入电话 
  char yuanxi[100];//输入院系 
  char banji[100];//输入班级 
} stu[1000]; 
void shouye()//首页 
{ 
  int i; 
  printf("^-^-----------------------------------------------------^-^\n"); 
  printf("\n"); 
  printf(" $        欢迎使用学生学籍管理系统!        $\n"); 
  printf(" $              制作人:          $\n"); 
  printf(" $                  李威鹏       $\n"); 
  printf(" $              时间:2017.12        $\n"); 
  printf("\n"); 
  printf("^-^-----------------------------------------------------^-^\n"); 
  printf("Enter键继续!"); 
  getchar(); 
  system("cls"); 
} 
void zhuxiao()//注销用户 
{ 
  system("shutdown -f "); 
} 
void denglu()//登陆 
{ 
  void menu(); 
  int i,j; 
  char mima[16]; 
  for(j=1; j<=4;) 
  { 
    if(j==4) 
      break; 
    else if(j<4) 
    { 
      printf("请输入6位密码:\n"); 
      printf("剩余输入次数%d\n",4-j); 
      for(i=0; i<6; i++) 
      { 
        mima[i]=getch(); 
        printf("*"); 
      } 
    } 
    mima[i]='\0'; 
    if(strcmp(mima,"123456")==0) 
    { 
  
      system("cls"); 
      printf("密码正确\n"); 
      printf("登陆成功!\n"); 
      printf("按Enter键继续!"); 
      getchar(); 
      menu(); 
      return; 
  
    } 
    else 
    { 
      system("cls"); 
      printf("密码错误\n"); 
      j++; 
    } 
  } 
  printf("注销用户!!!\n"); 
  zhuxiao(); 
  getch(); 
  
} 
void menu()//菜单 
{ 
  system("cls"); 
  printf("*-----------------------------学生管理系统--------------------------------*\n"); 
  printf("\n"); 
  printf("1.添加学生信息  2.删除某个学生信息   3.浏览学生信息\n"); 
  printf("4.修改学生信息  5.查找某个学生信息   6.显示信息数量\n"); 
  printf("0.退出系统\n"); 
  printf("\n"); 
  printf("*-------------------------------------------------------------------------*\n"); 
  
} 
void save(int m) 
{ 
  int i; 
  FILE*fp; 
  if ((fp=fopen("系统","wb"))==NULL) 
  { 
    printf ("文件打开失败\n"); 
    exit(0); 
  } 
  for (i=0; i<m; i++) 
    if (fwrite(&stu[i],sizeof(struct student),1,fp)!=1) 
      printf("文件打开失败\n"); 
  fclose(fp); 
} 
int load()//打开文件,读取里面的数据 
{ 
  FILEFILE *fp; 
  int i=0; 
  if((fp=fopen("系统","rb"))==NULL) 
  { 
    printf ("文件打开失败\n"); 
    exit(0); 
  } 
  else 
  { 
    do 
    { 
      fread(&stu[i],sizeof(struct student),1,fp); 
      i++; 
    } 
    while(feof(fp)==0); 
  } 
  fclose(fp); 
  return(i-1); 
} 
int menuchoose()//选择菜单 
{ 
  int n; 
  menu(); 
  printf("请选择菜单0~6:"); 
  while(1 != scanf("%d", &n) || n < 0 || n> 6) 
  { 
    menu(); 
    printf("选择菜单错误,请重新选择(0 ~ 6):"); 
    fflush(stdin);//清空输入缓冲区 
  } 
  return n; 
} 
void add()//添加学生信息 
{ 
  int i,m,q,s=1; 
  system("cls"); 
  printf("---------------输入学生信息---------------\n"); 
  printf("请输入需要添加学生的总人数:\n"); 
  scanf("%d",&m); 
  for (i=0; i<m; i++) 
  { 
    printf("\n输入第 %d 个学生学籍信息.\n",i+1); 
    printf("请输入学号:"); 
    scanf("%s",stu[i].xuehao); 
    for(q=0; q<m; q++) 
    { 
      if(strcmp(stu[q].xuehao,stu[i].xuehao)==0&&q!=i) 
      { 
        printf("该学号已经存在,请重新输入:\n"); 
        printf("请输入学号:\n"); 
        s=1; 
        scanf("%s",stu[q].xuehao); 
      } 
    } 
    printf("请输入姓名:"); 
    scanf("%s",stu[i].name); 
    printf("请输入性别:"); 
    scanf("%s",stu[i].sex); 
    printf("请输入年龄:"); 
    scanf("%d",&stu[i].age); 
    getchar(); 
    printf("请输入籍贯:"); 
    scanf("%s",stu[i].jiguan); 
    printf("请输入电话:"); 
    scanf("%s",stu[i].dianhua); 
    printf("请输入院系:"); 
    scanf("%s",stu[i].yuanxi); 
    printf("请输入班级:"); 
    scanf("%s",stu[i].banji); 
  } 
  save(m); 
} 
void show() 
{ 
  system("cls"); 
  int i; 
  int m=load(); 
  if(m==0) 
  { 
    printf("\n暂无学生信息!\n"); 
    printf("是否添加学生信息?\n   是:1  否:2\n"); 
    int a2; 
    scanf("%d",&a2); 
    if(a2==1) 
      add(); 
    else 
      menu(); 
  } 
  else 
  { 
    printf("----------------------浏览学生信息--------------------------\n"); 
    printf("\n"); 
    printf("\t\t\t\t\t\t\t\n"); 
    for(i=0; i<m; i++) 
    { 
       printf("第%d位同学的信息为:\n",i+1); 
    printf("学号:%s\n",stu[i].xuehao); 
    printf("姓名:%s\n",stu[i].name); 
    printf("性别:%s\n",stu[i].sex); 
    printf("年龄:%d\n",stu[i].age);的记录.\n",n); 
  if(n==0) 
  { 
    printf("暂无学生信息!\n"); 
    system("pause"); 
    menu(); 
  } 
  else 
  { 
    printf("是否显示学生信息?\n是:1  否:2\n"); 
    scanf("%d",&h); 
    if(h==1) 
    { 
      show(); 
    } 
    else 
    { 
      menu(); 
    } 
  } 
  menu(); /*返回主函数*/ 
} 
int main() 
{ 
  shouye(); 
  denglu(); 
  int test=1; 
  while(test) 
  { 
    switch(menuchoose()) 
    { 
    case 0: 
      test=0; 
      printf("\n            ^-^谢谢使用!^-^     \n"); 
      printf("       代码有点长,错误也有点多,望见谅^-^\n"); 
      break; 
    case 1://增加学生学籍信息 
      add(); 
      break; 
    case 2://删除某个学生信息 
      del(); 
      break; 
    case 3://显示学生信息 
      show(); 
      break; 
    case 4://修改学生信息 
      xiugai(); 
      break; 
    case 5://查找某个学生信息 
      chazhao(); 
      break; 
    case 6: 
      shuliang();//显示学生学籍数量 
      break; 
    } 
  } 
  return 0; 
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持社区。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1060120
帖子:212021
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP