| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 572 人关注过本帖
标题:班级信息管理系统依次执行菜单命令,执行完修改模块后会跳过选择菜单,直接 ...
只看楼主 加入收藏
踏雪昆仑行
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-7-13
收藏
 问题点数:0 回复次数:0 
班级信息管理系统依次执行菜单命令,执行完修改模块后会跳过选择菜单,直接运行录入模块,求解!!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define N 2
struct  student
{
 char name[10];
 char no[10];
 char sex;
 int  age;
 char bnote[100];
};


void print(bool menu)//打印基本信息
{
  if (!menu)//主菜单
 {
  printf(" \t \t \t (成功进入班级档案管理系统)\t\t\t\t\n");
  printf("★*★*★*★*★*★*★*★*★*★ 欢迎进入我们的系统 ★*★*★*★*★*★*★*★*★*★\n\n");
  printf("\t \t \t 学生基本信息录入 ,press 1\n");
  printf("\t \t \t 学生基本信息显示 ,press 2\n");  
  printf("\t \t \t 学生基本信息保存 ,press 3\n");  
  printf("\t \t \t 学生基本信息删除 ,press 4\n");
  printf("\t \t \t 学生基本信息修改 ,press 5\n");
  printf("\t \t \t 学生基本信息查询 ,press 6\n");
 }

 else
 {
  printf("\n\n\n");
  printf("\t \t \t 学生基本信息显示 ,press 2\n");  
  printf("\t \t \t 学生基本信息保存 ,press 3\n");  
  printf("\t \t \t 学生基本信息删除 ,press 4\n");
  printf("\t \t \t 学生基本信息修改 ,press 5\n");
  printf("\t \t \t 学生基本信息查询 ,press 6\n");  
 }
 printf("\t \t \t 退出学生信息系统 ,press other\n");   
}


bool Check(char pas[6])//密码验证
{
 FILE *fp;//文件类型指针型变量
 char ch;
 char a[7]={" "};
 int i = 0;
 if ((fp=fopen("c:\\1.txt","r"))==NULL) //在C盘中建立文件名为1.txt的文档来存放密码
 {
  printf("打开文件失败!\n");
  exit(0);
 }
    ch=fgetc(fp);
 while (ch!=EOF&&i<6)//循环控制
 {
  a[i] = ch;
        ch=fgetc(fp);
  i++;//自加1
 }
 a[6] = '\0';//正常结束的标志

 if (!strcmp(pas,a))
 {
  return true;
 }
 else
 {
  printf("\t\t————密码错误,请退出系统后重新登录!————\n\a\n\n");
 
 }
 fclose(fp);//关闭一个流,原型是int fclose(FILE*stream)stream为流指针,返回EOF时表示出错。
}


void GetInfo(struct student *arr,int n)//学生基本信息录入
{

 for (int i = 0;i<n;i++)
 {
  printf("输入第%2d个学生的基本信息:name   no    sex  age   bnote\n",i+1);
  scanf("%s %s %c %d %s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
 }
}


void Display(struct student* arr,int n)//学生基本信息显示
{
 printf("学生信息: Name         NO        Sex        age       Bote\n");
 for (int i = 0;i<n;i++)//循环控制
 {
  printf("%14s%11s%11c%11d%11s\n\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
 }
}



void Save(struct student* arr,int n)//学生基本信息保存,保存在c:\\student.txt
{
 FILE * fp;
    fp= fopen("c:\\student.txt","w+");
 if (fp == NULL)
 {
  printf("文件不存在!\n\n");
  exit(0);
 }

    fwrite(arr,sizeof(struct student)*n,n,fp);
    printf("\n\t\t————保存成功,保存在c:\\student.txt————\n\n");
 fclose(fp);
}


void Modfiy(struct student* arr,int n)//学生基本信息修改
{
 char number[10];
 bool flag=false;
 char pass[6];
 printf("请输入密码:\n");
 scanf("%s",pass);
 if (Check(pass))
 {
  printf("修改学生信息:\n");
  printf("请输入学号:  ");
  scanf("%s",number);
  for (int i =0;i<n;i++)
  {
   if (!strcmp(number,arr[i].no))
   {
    printf("学生信息: Name         NO        Sex        age       Bote\n");
    printf("%14s%11s%11c%11d%11s\n\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
    printf("please input information:\n");
    scanf("%s%s%c%d%s",arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);
    Save(arr,n);
    flag = true;
   }
  }
  if (flag == false)
     printf("该学生不存在!:\n\n");
  
 }

}


void Delete(struct student* arr,int n)//学生基本信息删除
{
 char number[10];
 bool flag=false;
 printf("Delete information:\n");
 printf("please input the no:  ");
 scanf("%s",number);
 for (int i =0;i<n;i++)
 {
  if (!strcmp(number,arr[i].no))
  {
   strcpy(arr[i].name," ");
   strcpy(arr[i].no," ");
   strcpy(arr[i].bnote," ");

   arr[i].sex = ' ';
   arr[i].age = 0;
   Save(arr,n);
   flag = true;
  }
 }
 if (flag == true)
 {
  printf("该学生不存在!:\n");
 }
}


void Search(struct student* arr,int n)//学生基本信息查询
{
 int temp,i;
 bool flag=false;
   printf("\t\t-------------通过学号查询,press 1-------------\n");  
   printf("\t\t-------------通过姓名查询,press 2-----------\n");  
   printf("\t\t-------------通过性别查询,press 3------------\n");  
   printf("\t\t-------------通过年龄查询,press 4------------\n");  
   printf("\t\t-------------退出查询功能,press 5------------\n");  
   scanf("%d",&temp);
   switch (temp)
   {
   case 1://按照学号查询
    {
     char num[10];
     printf("请输入学号:  \n");
     scanf("%s",num);
     for ( i =0;i<n;i++)
     {
      if (!strcmp(num,arr[i].no))
      {
       printf("学生信息: Name         NO        Sex        age       Bote\n");
       printf("%14s%11s%11c%11d%11s\n\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
       flag = true;
      }
     }
     if (!flag)
     {
            printf("该学生不存在.\n\n");
     }
    }
    break;
   case 2://按照名字查询
    {
     char num[10];
     printf("please input name:  \n");
     scanf("%s",num);
     for ( i =0;i<n;i++)
     {
      if (!strcmp(num,arr[i].name))
      {
       printf("学生信息: Name         NO        Sex        age       Bote\n");
       printf("%14s%11s%11c%11d%11s\n\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
       flag = true;
      }
     }
     if (!flag)
     {
      printf("该学生不存在.\n\n");
     }
    }
    break;
   case 3://按照性别查询
    {
     char ch;
     printf("请输入性别:  \n");
     //scanf("%c",&ch);
     ch = getchar();
     for ( i =0;i<n;i++)
     {
      if (ch == arr[i].sex)
      {
       printf("学生信息: Name         NO        Sex        age       Bote\n");
       printf("%14s%11s%11c%11d%11s\n\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
       flag = true;
      }
     }
     if (!flag)
     {
      printf("t该学生不存在.\n\n");
     }
    }
    break;
   case 4://按照年龄查询
    {
     char num_age;
     printf("请输入年龄:  \n");
     scanf("%d",&num_age);
     for ( i =0;i<n;i++)
     {
      if (num_age == arr[i].age)
      {
       printf("学生信息: Name         NO        Sex        age       Bote\n");
       printf("%14s%11s%11c%11d%11s\n\n",arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);
       flag = true;
      }
     }
     if (!flag)
     {
      printf("该学生不存在.\n\n");
     }
    }
    break;
   default:
    break;
   }
}


int main()
{
 struct student arr[N];
 char ps[6];
 bool flag =false;
 printf("\n\n\t \t \t (欢迎使用班级档案管理系统)\t\t\t\t\n请输入密码:\n");
    scanf("%s",ps);
    flag = Check(ps);
 if (flag)
 {
  int select;
  print(false);
  scanf("%d",&select);
 while ((0<select)&&(select<7))
 {
 switch (select)
  {
  case 1:
   GetInfo(arr,N);
   print(true);
   break;
  case 2:
   Display(arr,N);
   print(true);
   break;
  case 3:
   Save(arr,N);
   print(true);
   break;
  case 4:
   Delete(arr,N);
   print(true);
   break;
  case 5:
   Modfiy(arr,N);
   print(true);
   break;
  case 6:
   Search(arr,N);
   print(true);
   break;
  default:
   break;
  }
  {printf("请选择:\n");
   scanf("%d",&select);
  }
 }
 if((6<select)||(select<1))
    printf("\n\n\t\t——————感谢您的使用,再见!——————\n\n\t\t———————按任意键退出——————\n\n");
 }
return 0;
}



搜索更多相关主题的帖子: 管理系统 include 档案管理 信息 
2013-07-13 21:28
快速回复:班级信息管理系统依次执行菜单命令,执行完修改模块后会跳过选择菜单, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021649 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved