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

📄 main.txt

📁 学 生 成 绩 管 理
💻 TXT
字号:
#include <stdio.h>
#include <string.h>
#define N 100/*宏定义*/
 struct student/*定义结构体*/
{
 char num[10];
 char name[10];
 char age[4];
 char sex[6];
 char birthday[30];
 char address[30];
 char telnum[12];
 char e_mail[30];
}stu[N],temp;

void input();/*函数的申明*/
void output();
void insert();
void delete();
void search();
void search_number();
void search_name();
void array();
void array_number();
void array_name();
int total;/*学生人数*/

void main()
{
     int i,choice;
   do
  {
       printf("    Welcome to use student management system!\n");
       printf("=*=*=*=*=*=*=*=*=*=*=*=Menu=*=*=*=*=*=*=*=*=*=*=*\n");
       printf("|         1.Input student information             |\n");
       printf("|         2.Output student information            |\n");
       printf("|         3.Array a student information           |\n");
       printf("|         4.Insert a student information          |\n");
       printf("|         5.Search a student information          |\n");
       printf("|         6.Deleteete a student information       |\n");
       printf("|         0.Exit                                  |\n");
       printf("=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n");
	   printf("\nPlease enter your choice:");
        scanf("%d",&choice);
 
     switch(choice)/*通过条件语句进行选择*/
          {
	     case 1:input();break;/*调用input函数*/
             case 2:output();break;/*调用output函数*/
             case 3:
                    do{
                         array();/*转入array函数*/
                            printf(" Please enter your choice:");
                            scanf("%d",&choice);
	                 switch(choice) /*通过条件语句进行选择*/
                         {
                           case 1: array_number();break;/*调用array_number函数*/
                           case 2: array_name();break;/*调用array_name函数*/
                         }
                      }while(choice!=3);break;
             case 4:insert();break;/*调用insert函数*/
             case 5:
                    do{
                        search();/*转入search函数*/
                           printf(" Please enter your choice:");
                           scanf("%d",&choice);
	                switch(choice) /*通过条件语句进行选择*/
                         {
                          case 1: search_number();break;/*调用search_number函数*/
                          case 2: search_name();break;/*调用search_name函数*/
                         }
                      }while(choice!=3);break;

             case 6:delete();break;
             case 0:
                   {
                     printf("Thanks for useing,byebye!\n");
                       exit(0);
                   }
             default:/*缺省值*/
                   {
	             printf("Input error,please enter it again:\n");
	               return;/*返回*/
                   }
          }
   }while(1);
}
void input()/*被调用函数*/
{
    FILE *fp;/*定义指向FILE的文件型指针*/
    int i=0;
    char choiceinput='y';
    if((fp=fopen("student.txt","w"))==NULL)/*检查打开操作是否有错*/
      {
	printf("Cannot open filen!\n");
	return;
      }
    while(choiceinput=='y'||choiceinput=='Y')/*识别大小写*/
      {
         i++;
         total++;
          printf("\nPlease enter student's information\n");/*按顺序输入学生信息*/
          printf("Student-number:");           scanf("%s",stu[i].num);
          printf("Name:");                     scanf("%s",stu[i].name);
          printf("Age:");                      scanf("%s",stu[i].age);
          printf("Sex:");                      scanf("%s",stu[i].sex);
          printf("Birthday:");                 scanf("%s",stu[i].birthday);
          printf("Address:");                  scanf("%s",stu[i].address);
          printf("Telephone-number:");         scanf("%s",stu[i].telnum);
          printf("E-mail:");                   scanf("%s",stu[i].e_mail);
          printf("Continue enter?(y/n)\n");    scanf("%s",&choiceinput);
          fwrite(&stu[i],sizeof(struct student),1,fp);
      }
    if(choiceinput=='n'||choiceinput=='N')
       {
          fclose(fp); /*关闭文件*/
          printf("Input complete,Press any key to return\n");
          getch();
          return;
       }
}
void output()/*被调用函数*/
{
   FILE *fp;
   int i;
   if((fp=fopen("student.txt","r"))==NULL)
      {
	printf("Cannot open filen!\nPlease input data!\n");
	return;
      }
   printf("output result:\n");/*显示学生信息*/
   printf("Student-number  Name  Age Sex  Birthday  Address Telephone-number E-mail\n");
   for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++)
    {printf("\n%14s%5s%4s%4s%9s%8s%16s%6s",stu[i].num,stu[i].name,stu[i].age,
stu[i].sex,stu[i].birthday,stu[i].address,stu[i].telnum,stu[i].e_mail); 
    }
      printf("\n");
         printf("Complete,Press any key to return\n");
      getch();
   fclose(fp); /*关闭文件*/
    return;
}
void insert()/*被调用函数*/
{   int i,j,k,n;                                              
    FILE *fp;                                                                                          printf("How many students do you want to insert?--------");                                          scanf("%d",&n);                                                                                     if((fp=fopen("student.txt","a"))==NULL)                                                               { 
                printf("cannot open file");
		  exit(0);
	      }
	  for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;)
	    i++;
        k=i;
	fclose(fp);
     printf("\nPlease enter student's information\n");/*按顺序输入学生信息*/
 for(i=k;i<k+n;i++)
    {  printf("Student-number:");          scanf(" %s",stu[i].num);
      printf("Name:");                     scanf(" %s",stu[i].name);
      printf("Age:");                      scanf(" %s",stu[i].age);
      printf("Sex:");                      scanf(" %s",stu[i].sex);
      printf("Birthday:");                 scanf(" %s",stu[i].birthday);
      printf("Address:");                  scanf(" %s",stu[i].address);
      printf("Telephone-number:");         scanf(" %s",stu[i].telnum);
      printf("E-mail:");                   scanf(" %s",stu[i].e_mail);
    }
 fp=fopen("student.txt","a");
   for(i=0;i<k+n;i++)
      if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
	     {
                 printf("file writer error");
		 return;
	     }
    fclose(fp);
}
void delete()/*被调用函数*/
{
 int i;
 char deletename[8];
 FILE *fp;
     if((fp=fopen("student.txt","r"))==NULL)
      {
	printf("Cannot open filen!\nPlease input data!\n");
         getch();
	return;
      }
 printf("Please enter person's name you want to delete:\n");
 scanf("%s",deletename);
 for(i=0;i<N;i++)/*删除学生信息的操作*/
 {
  if(strcmp(stu[i].name,deletename)==0)
  {
   total--;
   for(;i<N;i++)
     stu[i]=stu[i+1];
  }
 }
  i=0;
  fwrite(&stu[i],sizeof(struct student),total,fp);
  fclose(fp); /*关闭文件*/
}
void search()/*被调用函数*/
{
   printf("********* Searchmenu ***********\n");
   printf("*  1.Input the search number:     *\n");
   printf("*  2.Input the search name:       *\n");
   printf("*  3.Exit                         *\n");
   printf("***********************************\n");
}
void search_number()
{
 FILE *fp;
 int i=0;
 char choicenumber[10];
 if((fp=fopen("student.txt","r"))==NULL) /*检查打开操作是否有错*/
 {
  printf("Enable to open file,Press any key to return\n");
  getch();
  return;
 }
 printf("Please enter person's number you want to search\n");
 scanf("%s",choicenumber);
 for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++)
  {
      if(strcmp(stu[i].num,choicenumber)==0)
    {
      printf("The person's information you want to search is as following:\n");/*输出所查询学生的全部信息*/
     printf("Student-number  Name  Age Sex  Birthday  Address Telephone-number E-mail\n");
  printf("\n%-4s %-8s %s %-3s %-8s %-6s %-s %-13s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].birthday,stu[i].address,stu[i].telnum,stu[i].e_mail); 
      printf("\nSearch complete,Press any key to return\n");
          getch();
          fclose(fp); /*关闭文件*/
          return;
    }
  }
    printf("Person isn't aviable,Press any key to return\n");
    getch();
    fclose(fp); /*关闭文件*/
    return;
}
void search_name()/*被调用函数*/
{
 FILE *fp;
 int i=0;
 char choicename[8];
 if((fp=fopen("student.txt","r"))==NULL) /*检查打开操作是否有错*/
 {
  printf("Enable to open file,Press any key to return\n");
  getch();
  return;
 }
 printf("Please enter person's name you want to search\n");
 scanf("%s",choicename);
 for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++)
 {
      if(strcmp(stu[i].name,choicename)==0)
   {
      printf("The person's information you want to search is as following:\n");/*输出所查询学生的全部信息*/
printf("Student-number  Name  Age Sex  Birthday  Address Telephone-number E-mail\n");
  printf("\n%-4s %-8s %s %-3s %-8s %-6s %-s %-13s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].birthday,stu[i].address,stu[i].telnum,stu[i].e_mail); 
      printf("\nSearch complete,Press any key to return\n");
          getch();
          fclose(fp); /*关闭文件*/
          return;
   }
 }
    printf("Person isn't aviable,Press any key to return\n");
    getch();
    fclose(fp); /*关闭文件*/
    return;
}
void array()/*被调用函数*/
{
   printf("************ Arraymenu **************\n");
   printf("*  1.Array by number:     *\n");
   printf("*  2.Array by name:       *\n");
   printf("*  3.Exit                         *\n");
   printf("***********************************\n");
}
void array_name()/*被调用函数*/
{int i,j,k,n;
 FILE *fp;
  if((fp=fopen("student.txt","r"))==NULL) /*打开文件如果不存在则新建文件*/
 {
  printf("Enable to open file,Press any key to return\n");
  getch();
  return;
 }
 for(n=0;fread(&stu[n],sizeof(struct student),1,fp)!=0;n++);
 for (j=0;j<n;j++)/*排序*/
    for (k=j+1;k<n;k++)
     if (strcmp(stu[j].name,stu[k].name)<0)
	  { temp=stu[j];stu[j]=stu[k];stu[k]=temp; }
  for(i=0;i<n;i++)
  printf("\n%-4s %-8s %s %-3s %-8s %-6s %-s %-13s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].birthday,stu[i].address,stu[i].telnum,stu[i].e_mail); /*输出排序后学生的全部信息*/
  printf("\n\nArray complete,Press any key to return\n");
  getch();
  fclose(fp); /*关闭文件*/
   return;
}
void array_number()/*被调用函数*/
{int i,j,k,n;
 FILE *fp;
  if((fp=fopen("student.txt","r"))==NULL) /*打开文件如果不存在则新建文件*/
 {
  printf("Enable to open file,Press any key to return\n");
  getch();
  return;
 }
 for(n=0;fread(&stu[n],sizeof(struct student),1,fp)!=0;n++);
 for (j=0;j<n;j++)/*排序*/
    for (k=j+1;k<n;k++)
     if (strcmp(stu[j].num,stu[k].num)<0)
	  { temp=stu[j];stu[j]=stu[k];stu[k]=temp; }
  for(i=0;i<n;i++)
  printf("\n%-4s %-8s %s %-3s %-8s %-6s %-s %-13s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].birthday,stu[i].address,stu[i].telnum,stu[i].e_mail); /*输出排序后学生的全部信息*/
  printf("\n\nArray complete,Press any key to return\n");
  getch();
  fclose(fp); /*关闭文件*/
   return;
}

⌨️ 快捷键说明

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