⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xueshengguanli.txt

📁 实现学生日常的管理
💻 TXT
字号:
#include"stdio.h"
#include"string.h"
#define Max 3
#define  N  3
int sum;
int p=0;
/*定义学生分数结构体和学生结构体(含总分数)*/
struct  course
{
   int xuehao;
   int English;
   int cyuyan ;
   int xuanxiu;
   int modian;
   int shiyan;
}ban[N];

struct students
{
    int banji;
    int num;
    char name[20];
    struct course xuefen;
}s[Max];


/*保存信息*/
save_message(int sum)
{
    FILE *fp;
    int i;
    if((fp=fopen("student.txt","wb"))==NULL)/*信息保存在随机文件student.txt中*/
    {
        printf("reading error\n");
        return;
    }
    for(i=0;i<sum;i++)
    if(fwrite(&s[i],sizeof(struct students),1,fp)!=1)
    printf("writing error\n");
    fclose(fp);
}
     /*1.输入学生信息*/
input_message()
{
    int i;
    int k;
       clrscr();
    printf("\n please input student message \n");
      for(i=0;i<Max;i++)
     {
        printf("\n       student num:");
         scanf("%d",&s[i].num);
        printf("\n       student name:   ");
        scanf("   %s",s[i].name);
        getchar();
        printf("       student class:  ");
        scanf("%d",&s[i].banji);
        printf("       student xuehao:");
        scanf("%d",&s[i].xuefen.xuehao);
        printf("       student credit hour: \n" );
        scanf("%d %d %d %d %d",&s[i].xuefen.English,&s[i].xuefen.cyuyan ,
              &s[i].xuefen.xuanxiu,&s[i].xuefen.modian,&s[i].xuefen.shiyan);

    }
    sum=sum+i;
    printf("message is over");
    bioskey(0);

}

 /*读取信息*/
int read_message()
{
    FILE *fp;
    int i=0;
    if((fp=fopen("student.txt","rb"))==NULL)
     {
      printf("\n--**--no message--**--\n");
      return 0;
     }
    while(feof(fp)!=1)
    {

      if(fread(&s[i],sizeof(struct students),1,fp)!=1)  break;
      else i++;
    }
  fclose(fp);
  return(i);
}

/*2.查找某一学生的分数情况*/
 inquire_stu()

{ int j;
     clrscr();
  printf("****************\n\n");
  printf(" 1. inquire student number\n\n");
  printf(" 2. inquire student name   \n\n ");
  printf("please choice(1--2)");
  scanf("%d",&j);
  switch(j)
  {case 1 : st_num();break;
   case 2 : st_nam();break;
   } }
   st_num()
  { int m,k;
  char choice;
  printf("\n plesae input student number\n");
  scanf("%d",&m);
  for(k=0;k<sum;k++)
  if(s[k].num==m)
      {
        printf("     name    class   xuehao\n");
        printf("%10s%10d%8d\n",s[k].name,s[k].banji ,s[k].xuefen.xuehao);
        printf("    English  cyuyan  xuanxiu  modian  shiyan\n");
        printf("     %8d%8d%8d%8d%8d\n",s[k].xuefen.English,s[k].xuefen.cyuyan ,
                 s[k].xuefen.xuanxiu,s[k].xuefen.modian,s[k].xuefen.shiyan);
        break;
      }
  bioskey(0);
}

   st_nam()
{
  int m,k;
  char choice[20];
        clrscr();
  printf("\n plesae input student name\n");
  scanf("%s",choice);
  for(k=0;k<sum;k++)
  if(strcmp(s[k].name,choice)==0&&s[k].xuefen.xuehao!=0)
      {
        printf("     name    class   xuehao\n");
        printf("%10s%10d%8d\n",s[k].name,s[k].banji ,s[k].xuefen.xuehao);
        printf("    English  cyuyan  xuanxiu  modian  shiyan\n");
        printf("     %8d%8d%8d%8d%8d\n",s[k].xuefen.English,s[k].xuefen.cyuyan ,
                 s[k].xuefen.xuanxiu,s[k].xuefen.modian,s[k].xuefen.shiyan);
        break;
      }
  bioskey(0);
}
/*修改某一学生的信息*/
revise_message()
{
    int m;
    int i;
    char choice;
         clrscr();
    printf("\n input revising student number:\n");
    scanf("%d",&m);
    for(i=0;i< Max;i++)
    if(m==s[i].num)
      {
       printf("\n credithour \n");
       printf("\n    1.English:%d  \n",s[i].xuefen.English);
       printf("\n    2.cyuxin:%d  \n",s[i].xuefen.cyuyan );
       printf("\n    3.xuanxiu:%d   \n",s[i].xuefen.xuanxiu);
       printf("\n    4.modian:%d  \n",s[i].xuefen.modian);
       printf("\n    5.shiyan:%d   \n",s[i].xuefen.shiyan);
       printf("\n    plsase choice(1--5):");
       scanf("%d",&choice);
       switch(choice)
       {case 1: printf("\n     input English mari:");
                scanf("%d",&s[i].xuefen.English);break;
        case 3: printf(" \n     input xuanxiu mari:");
                scanf("%d",&s[i].xuefen.xuanxiu);break;
        case 2: printf(" \n     input cyuyan mari:");
                scanf("%d",&s[i].xuefen.cyuyan );break;
        case 4: printf("\n      input modian mari:");
                scanf("%d",&s[i].xuefen.modian);break;
        case 5: printf("\n      input shiyan mari:");
                scanf("%d",&s[i].xuefen.shiyan);break;
        default: printf("\n    choicing error");break;
       }
       printf("\n        revise message:\n");
       printf("  %4d%5d%6d%7d%8d",s[i].xuefen.English,s[i].xuefen.cyuyan ,s[i].xuefen.xuanxiu,s[i].xuefen.modian,s[i].xuefen.shiyan);
       break;
    }
       bioskey(0);
 }
/*删除某一学生的信息*/
 del_message()
{
    int i,k;
    char choice;
         clrscr();
    printf("\n  please input del-student-number\n");
    scanf("%d",&k);
    for(i=0;i<sum;i++)
    {
        if(k==s[i].num)
        {  p++;
            for(;i<sum-1;i++)
            {
                s[i].num=s[i+1].num;
                strcpy(s[i].name,s[i+1].name);
                s[i].banji=s[i+1].banji;
                s[i].xuefen.xuehao=s[i+1].xuefen.xuehao;
                s[i].xuefen.English=s[i+1].xuefen.English;
                s[i].xuefen.cyuyan =s[i+1].xuefen.cyuyan ;
                s[i].xuefen.xuanxiu=s[i+1].xuefen.xuanxiu;
                s[i].xuefen.modian=s[i+1].xuefen.modian;
                s[i].xuefen.shiyan=s[i+1].xuefen.shiyan;
            }
            printf(" \n deleting is succeed \n");
            sum=sum-1;
            break;
         }
     else   if(s[sum-1].num==k)
         {
            printf("    delete the end of student\n");
            sum=sum-1;
            printf("       continue(Y/N)\n");
            choice=getchar();
            if(choice=='y'||choice=='Y')
            bioskey(0);
          }
    }
    if(sum==0)  printf("   message isn't exist\n");
    else    printf("\n      continue?(Y/N):");
    choice=getchar();
    getch();
    if(choice=='Y'||choice=='y')   bioskey(0);
}
/*插入模块*/
 insert_students()
{
    clrscr();
   printf("insert new student number :");
   sum+=1;
   p--;
   scanf("%d",&s[sum-1].num);
   printf("name  class   xuehao :\n");
   scanf("%s%d%d",s[sum-1].name,&s[sum-1].banji,&s[sum-1].xuefen.xuehao);
   getchar();
   printf("cordit hour :\n");
   scanf("%d%d%d%d%d",&s[sum-1].xuefen.English,&s[sum-1].xuefen.cyuyan,
         &s[sum-1].xuefen.xuanxiu,&s[sum-1].xuefen.modian,&s[sum-1].xuefen.shiyan);
   printf("new student basic information:\n");
   printf("number:%d\n",s[sum-1].num);
   printf("name:%s\n",s[sum-1].name);
   printf("class:%d\n",s[sum-1].banji);
   printf("xuehao:%d\n",s[sum-1].xuefen.xuehao);
   printf("English:%d\n",s[sum-1].xuefen.English);
   printf("cyuyan:%d\n",s[sum-1].xuefen.cyuyan);
   printf("xuanxiu:%d\n",s[sum-1].xuefen.xuanxiu);
   printf("modian:%d\n",s[sum-1].xuefen.modian);
   printf("shiyan:%d\n",s[sum-1].xuefen.shiyan);
   save_message(sum);
   getch();
}                               

/*按课程的总分数高低排序*/
order_message()
{
   int i,a[30];
   int t,k;
   struct students b;
     clrscr();
     printf("\n  sequence(form highness to lowness):\n");
   for(i=0;i<N-p;i++)
   a[i]=(s[i].xuefen.English+s[i].xuefen.cyuyan+s[i].xuefen.xuanxiu+s[i].xuefen.modian+s[i].xuefen.shiyan);
   for(i=0;i<N-1-p;i++)
    for(k=i+1;k<N-p;k++)
    if(a[i]<a[k])
        {
           t=a[i];
           a[i]=a[k];
           a[k]=t;

        }

   for(i=0;i<N-p;i++)
   printf("\n%8d %10s  %4d %4d %4d %4d %4d %4d\n",s[i].num,
            s[i].name,s[i].xuefen.English,s[i].xuefen.cyuyan ,
           s[i].xuefen.xuanxiu,s[i].xuefen.modian,s[i].xuefen.shiyan,a[i]);
   printf("---------------------------------------------------------------------------\n");
   getch();bioskey(0);
}

/*统计及格的科目数*/
 count_stu()
{
  int count=0;
  int i=0;
     clrscr();
  printf("\n count  graduate student number\n");
   for(i=0;i<N-p;i++)
      {
        if(s[i].xuefen.English>=60)    count++;
        if(s[i].xuefen.cyuyan >=60)   count++;
        if(s[i].xuefen.xuanxiu>=60)    count++;
        if(s[i].xuefen.modian>=60)   count++;
        if(s[i].xuefen.shiyan>=60)  count++;
      }
  printf("\n      graduate student number:");
  printf("%d",count);
  getch();
}
/*对所有学生进行列表*/
 output_message()
{
    int i,u=N;
    clrscr();
    printf("\n        an xuesheng xuehao paixu \n");
    printf("input student number name class xuehao  credit hour\n");
    for(i=0;i<u-p;i++)
    printf("       %10d  %s   %3d  %3d   %10d  %6d  %4d  %4d  %3d \n",
             s[i].num,s[i].name,s[i].banji,s[i].xuefen.xuehao,
             s[i].xuefen.English,s[i].xuefen.cyuyan ,s[i].xuefen.xuanxiu,
             s[i].xuefen.modian,s[i].xuefen.shiyan);
    getch();
    bioskey(0);

}
/*主程序*/
main()
{
    int choice,i,a,b;
    sum=read_message();
    bioskey(0);
  printf("    please input password:\n");
   scanf("%d",&i);
   if(i!=123)
  { printf("\n sorry,passwoed is wrong!");getch();exit(0);}
 else
   { do
    {
        clrscr();
        printf("\n\n\n******** student administer system ********\n\n");
        printf("        1.input student message\n\n");      /*输入模块*/
        printf("        2.inquire student message\n\n");    /*查询模块*/
        printf("        3.revise student message\n\n");     /*修改模块*/
        printf("        4.delete student message\n\n");     /*删除模块*/
        printf("        5.order student grade\n\n");        /*排序模块*/
        printf("        6.count  graduate  number\n\n"); /*统计及格的科目数*/
        printf("        7.output student message\n\n");           /*输出模块*/
        printf("        8.insert student message\n\n") ;   /*插入模块*/
        printf("        0.break\n\n");
        printf("   please choise(0--8):");
        scanf("%d",&choice);
        switch(choice)
      {
        case 1: input_message();break;
        case 2: inquire_stu();break;
        case 3: revise_message();break;
        case 4: del_message();break;
        case 5: order_message();break;
        case 6: count_stu();break;
        case 7: output_message();break;
        case 8: insert_students();break;
        case 0: break;
      }
    }
    while(choice!=0);
    save_message(sum);
    printf("\n\n---message was saved--(文件名:student.txt)\n");
} }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -