首页 > 编程 > C > 正文

学生成绩管理系统C语言代码实现

2020-01-26 13:48:51
字体:
来源:转载
供稿:网友

C语言实现了学生成绩管理系统,可以进行学生成绩的增加,删除,更新,查询,计算和展示。

完整代码如下:

#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct person //定义结构体 {  char num[10]; //学号  char name[20]; //姓名  float cyuyan; //C语言成绩  float en; //物理学成绩  float ji; //原子物理成绩  float guti; //固体物理成绩  float cailiao; //材料学成绩 }person; person per[200]; //定义100 char filename[20]; //定义全局变量  void logon() //登陆函数 使系统更显完善 {  printf("/n/n/n/t/t/t 学生信息管理系统/n/n");  printf("/t/t/t 版本号:2.0/n/n");  printf("/n/n/n/n/t/t/t 2012年3月10日/n/n");  printf("/t/t/t C区**栋514寝/n");  printf("/n/n/t/t/t Ace_cm_liu/n");  printf("/n/n/t/t/t 导演兼制作/n");  //system("pause"); } /*void menu_filename()  {  system("cls");  printf("请输入你要操作的文件名:");  scanf("/t%s",filename);  } */  //*********************************************************************//  //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^// int menu_select() //菜单选择系统函数 {  char c;  do{  //system("cls");  printf("/t/t ■□■□/n");  printf("/t/t│ 学生信息管理系统 │/n");  printf("/t/t■□■□/n");  printf("/t/t ┌─────────────-┐/n");  printf("/t/t │ 1. 添加记录 2. 显示记录 │/n");  printf("/t/t │ │/n");  printf("/t/t │ 3. 信息查询 4. 数据计算 │/n");  printf("/t/t │ │/n");  printf("/t/t │ 5. 修改记录 6. 删除记录 │/n");  printf("/t/t │ │/n");  printf("/t/t │ 0. 退出程序 │/n");  printf("/t/t └─────────────-┘/n");  printf("/t/t请您选择(0-6):");  c=getchar();  }while(c<'0'||c>'6');  return (c-'0'); //字符减去'0'得到的是数字整型// }   //*********************************************************************//  //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//  void add()  //成绩的录入与添加函数  {  FILE *fp;  int i=0,n=0;  char sign='y'; //首先定义sing='y'  system("cls");  person p[200] ; //清屏函数 系统中调用  while(sign!='n'&&sign!='N') //其实只有当输入N或n时才跳出循环  {  printf(" ----学生纪录添加----/n");  printf("姓名:/n");  scanf("/t%s",p[i].name);  printf("学号:/n");  scanf("/t%s",p[i].num);  printf("C语言:/n");  scanf("/t%f",&p[i].cyuyan);  printf("物理学:/n");  scanf("/t%f",&p[i].en);  printf("原子物理:/n");  scanf("/t%f",&p[i].ji);  printf("固体物理:/n");  scanf("/t%f",&p[i].guti);  printf("材料学:/n");  scanf("/t%f",&p[i].cailiao);  printf("是否继续添加?(y/n)");  scanf("/t%c",&sign);  i++;  n=n+1;  system( "cls ");  }system("pause"); //等待命令   if((fp=fopen("studata.txt","a"))==NULL)//以2进制形式进行文件尾追加//  {  printf("cannot open the files/n");  system("pause");  return; //如果文件出现错误 就返回  }  for(i=0;i<n;i++)  {  fprintf(fp,"%s %s %f %f %f %f %f/n",p[i].name,p[i].num,p[i].cyuyan,p[i].en,p[i].ji,p[i].guti,p[i].cailiao); //以2进制形式写入文件中//一次写入一个数组//   }  //printf("file write error/n");  fclose(fp); //关闭文件  system("pasue");  }  //*********************************************************************//  //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//  void scan() //显示记录 进行全面信息浏览  {  void amend();  //声明修改函数//  char sign='y';  FILE *fp;  int n;  system("cls");  if((fp=fopen("studata.txt","r"))==NULL) //以2进制方式读取文件信息//  {  printf("cannot open the files/n");  system("pause");  return;  }   int i=0;  while(fscanf(fp,"%s%s%f%f%f%f%f",per[i].name,per[i].num,&per[i].cyuyan,&per[i].en,&per[i].ji,&per[i].guti,&per[i].cailiao)!=EOF)  {   printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  printf(" 姓名 学号 C语言 物理学 原子物理 固体物理 材料学/n");  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  printf("%s %s %f %f %f %f %f/n",per[i].name,per[i].num,per[i].cyuyan,per[i].en,per[i].ji,per[i].guti,per[i].cailiao);  printf("/n");  i++;  }  system("pause");  system("cls");  printf("是否需要修改?(y/n)");  scanf("/t%c",&sign);  if(sign!='n'&&sign!='N') //选择是否在浏览后进行修改//  amend();  system("pause");   }   //*********************************************************************//  //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//   //数据查询//  void query()//学生信息的不同方式查询  {  system("cls");  person p[200];  FILE *fp1;  int i=0;  int n=0;  int m;  printf("/t/n请选择查询方式:/n");  printf("/t┌──────┐/n");  printf("/t│1--模糊查询 │/n");  printf("/t│2------姓名 │/n");  printf("/t│3------学号 │/n");  printf("/t│4------返回 │/n");  printf("/t└──────┘/n");  printf("请输入你要查询的方式/n");  scanf("%d",&m);  while(m!=1&&m!=2&&m!=3&&m!=4)  {  printf("输入错误请重新查询/n");  scanf("%d",&m);  }  if((fp1=fopen("studata.txt","r"))==NULL)//以2进制方式读取文件信息//  {  printf("cannot open the files/n");  }   while(fscanf(fp1,"%s%s%f%f%f%f%f",p[i].name,p[i].num,&p[i].cyuyan,&p[i].en,&p[i].ji,&p[i].guti,&p[i].cailiao)!=EOF)  {  i++;  n=n+1;  }     if(m==1) //模糊查询  {  char s[3]; //定义输入的文字所占的字节 /一个汉字占2个字节 外加一结尾符此处小心溢出  int i=0;  system("cls");  printf("/t请输入想查询的姓:");  scanf("%s",s);  for(i=0;i<n-1;i++) //文件信息已经读取到数组中 此处进行循环用于下一语句的查找  {   if(p[i].name[0]==s[0]&&p[i].name[1]==s[1]) //比较per[i].name与所输入的前俩个字符是否相同//  {  printf("/t学号: %s/n",p[i].num);  printf("/t姓名: %s/n",p[i].name);  printf("/tC语言: %f/n",p[i].cyuyan);  printf("/t物理学: %f/n",p[i].en);  printf("/原子物理: %f/n",p[i].ji);  printf("/t固体物理: %f/n",p[i].guti);  printf("/t材料学: %f/n",p[i].cailiao);  }  }  }   if(m==2) //姓名查询  {  char s[20];  int j=0;  printf("/t请输入想查询的姓名:");  scanf("/t%s",s);  while(strcmp(p[j].name,s)!=0&&j<n) j++; //比较per[i].name与所输入姓名是否相同//  if(j==n)  {  printf("无");  }  printf("/t学号: %s/n",p[j].num);  printf("/t姓名: %s/n",p[j].name);  printf("/tC语言: %f/n",p[j].cyuyan);  printf("/t物理学: %f/n",p[j].en);  printf("/原子物理: %f/n",p[j].ji);  printf("/t固体物理: %f/n",p[j].guti);  printf("/t材料学: %f/n",p[j].cailiao);   }  if(m==3) //学号查询  {  char s[15];  int i=0;  printf("请输入想查询的学号:");  scanf("/t%s",s);   while(strcmp(p[i].num,s)!=0&&i<n) //比较per[i].name与所输入学号是否相同//  i++;  if(i==n)  {  printf("/t通讯录中没有此人!/n");  system("pause");  return;  }  printf("/t学号: %s/n",p[i].num);  printf("/t姓名: %s/n",p[i].name);  printf("/tC语言: %f/n",p[i].cyuyan);  printf("/t物理学: %f/n",p[i].en);  printf("/原子物理: %f/n",p[i].ji);  printf("/t固体物理: %f/n",p[i].guti);  printf("/t材料学: %d/f",p[i].cailiao);  }  fclose(fp1);  system("pause");  }       void date()  {  person per[200];  FILE *fp;  struct person temp; //定义临时数组用于交换时存放数组信息用于后面的交换//  float sum; //总分  float s[200];  int i=0,n=0;  int j,k,t;  int m;  system("cls");  printf("/t/n选择排序方式:/n");  printf("/t┌──────┐/n");  printf("/t│1----物理学 │/n");  printf("/t│2--原子物理 │/n");  printf("/t│3---C语言 │/n");  printf("/t│4--固体物理 │/n");  printf("/t│5----材料学 │/n");  printf("/t│6---- 总分 │/n");  printf("/t│7------返回 │/n");  printf("/t└──────┘/n");  printf("请输入你要排序的方式/n");  scanf("%d",&m);  system("cls");  while(m!=1&&m!=2&&m!=3&&m!=4&&m!=5&&m!=6&&m!=7)  {  printf("输入错误请重新输入/n");  scanf("%d",&m);  }  if((fp=fopen("studata.txt","r"))==NULL)//以2进制方式读取文件信息//  {  printf("cannot open the files/n");  system("pause");  return;  }   while(fscanf(fp,"%s%s%f%f%f%f%f",per[i].name,per[i].num,&per[i].cyuyan,&per[i].en,&per[i].ji,&per[i].guti,&per[i].cailiao)!=EOF)  {  i++;  n=n+1;  }  if(m==1)  {  for(int i=0;i<n-1;i++) //采用冒泡法进行排序//  {  k=i;  for(j=i+1;j<n;j++)  if(per[j].en>per[k].en) //排序//比较大小//  k=j;  temp=per[k];per[k]=per[i];per[i]=temp; //当符合条件时进行数据交换//  }  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  printf(" 姓名 学号 C语言 物理学 原子物理 固体物理 材料学/n");  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  for(int i=0;i<n-1;i++)  {  printf("%s %s %f %f %f %f %f/n",per[i].name,per[i].num,per[i].cyuyan,per[i].en,per[i].ji,per[i].guti,per[i].cailiao);  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  }   fclose(fp);  }   if(m==2)  {  for(int i=0;i<n-1;i++)  {  k=i;  for(j=i+1;j<n;j++)  if(per[j].ji>per[k].ji)  k=j;  temp=per[k];per[k]=per[i];per[i]=temp;  }  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  printf(" 姓名 学号 C语言 物理学 原子物理 固体物理 材料学/n");  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  for(int i=0;i<n-1;i++)  {  printf("%s %s %f %f %f %f %f/n",per[i].name,per[i].num,per[i].cyuyan,per[i].en,per[i].ji,per[i].guti,per[i].cailiao);  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  }   fclose(fp);  }  if(m==3)  {  for(int i=0;i<n-1;i++)  {  k=i;  for(j=i+1;j<n;j++)  if(per[j].cyuyan>per[k].cyuyan)  k=j;  temp=per[k];per[k]=per[i];per[i]=temp;  }  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  printf(" 姓名 学号 C语言 物理学 原子物理 固体物理 材料学/n");  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  for(int i=0;i<n-1;i++)  {  printf("%s %s %f %f %f %f %f/n",per[i].name,per[i].num,per[i].cyuyan,per[i].en,per[i].ji,per[i].guti,per[i].cailiao);  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  }   fclose(fp);  }  if(m==4)  {  for(int i=0;i<n-1;i++)  {  k=i;  for(j=i+1;j<n;j++)  if(per[j].guti>per[k].guti)  k=j;  temp=per[k];per[k]=per[i];per[i]=temp;  }  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  printf(" 姓名 学号 C语言 物理学 原子物理 固体物理 材料学/n");  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  for(int i=0;i<n-1;i++)  {  printf("%s %s %f %f %f %f %f/n",per[i].name,per[i].num,per[i].cyuyan,per[i].en,per[i].ji,per[i].guti,per[i].cailiao);  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  }   fclose(fp);  }  if(m==5)  {  for(int i=0;i<n-1;i++)  {  k=i;  for(j=i+1;j<n;j++)  if(per[j].cailiao>per[k].cailiao)  k=j;  temp=per[k];per[k]=per[i];per[i]=temp;  }  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  printf(" 姓名 学号 C语言 物理学 原子物理 固体物理 材料学/n");  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  for(int i=0;i<n-1;i++)  {  printf("%s %s %f %f %f %f %f/n",per[i].name,per[i].num,per[i].cyuyan,per[i].en,per[i].ji,per[i].guti,per[i].cailiao);  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  }   fclose(fp);  }  if(m==6)  {  for(int i=0;i<n-1;i++)  {  sum=0;  sum=per[i].cyuyan+per[i].en+per[i].ji+per[i].guti+per[i].cailiao;  s[i]=sum;  } // 第一个数组用于数组间信息操作//  for(int i=0;i<n-1;i++)  {  k=i;  for(j=i+1;j<n;j++)  {  if(s[j]>s[k])  k=j;  }  temp=per[k];per[k]=per[i];per[i]=temp;  }  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  printf(" 姓名 学号 C语言 物理学 原子物理 固体物理 材料学/n");  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  for(int i=0;i<n-1;i++)  {  printf("%s %s %f %f %f %f %f/n",per[i].name,per[i].num,per[i].cyuyan,per[i].en,per[i].ji,per[i].guti,per[i].cailiao);  printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^/n");  }   fclose(fp);  }  system("pause");  }   //*********************************************************************//  //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//  // 数据修改// void amend()  {  person p[200];  FILE *fp2;  int i=0;  int n=0;  char s[15];  int m;  // system("cls");  printf("/t/n请选择修改方式:/n");  printf("/t┌──────┐/n");  printf("/t│1------姓名 │/n");  printf("/t│2------学号 │/n");  printf("/t│3------返回 │/n");  printf("/t└──────┘/n");  printf("请输入你要修改的方式/n");  scanf("%d",&m);  while(m!=1&&m!=2&&m!=3)  {  printf("输入错误请重新修改/n");  scanf("%d",&m);  }  if((fp2=fopen("studata.txt","r"))==NULL)//以2进制方式读取文件信息//  {  printf("cannot open the files/n");  system("pause");  return;  }    while(fscanf(fp2,"%s%s%f%f%f%f%f",p[i].name,p[i].num,&p[i].cyuyan,&p[i].en,&p[i].ji,&p[i].guti,&p[i].cailiao)!=EOF)  {  i++;  n=n+1;  }  fclose(fp2) ;    // system("cls");  if(m==1)  {  person newp;  char s[20];  int i=0;  printf("/t请输入想修改的姓名:");  scanf("/t%s",s);  while(strcmp(p[i].name,s)!=0&&i<n) i++; //进行比较 找到所需要的信息  if(i==n)  {  printf("/t通讯录中没有此人!/n");  return;  }  else{  printf("学号:/n");  scanf("/t%s",&newp.num);  printf("姓名:/n");  scanf("/t%s",&newp.name);  printf("C语言:/n");  scanf("/t%f",&newp.cyuyan);  printf("物理学:/n");  scanf("/t%f",&newp.en);  printf("原子物理:/n");  scanf("/t%f",&newp.ji);  printf("固体物理:/n");  scanf("/t%f",&newp.guti);  printf("材料学:/n");  scanf("/t%f",&newp.cailiao);  }   FILE *fin,*ftp;  fin=fopen("studata.txt","r");//读打开原文件studata.txt  ftp=fopen("tmp.txt","w");//写打开临时文件tmp.txt  if(fin==NULL || ftp==NULL){  printf("Open the file failure.../n");  exit(0);  }  int kk=0;  while(kk<n) //从原文件读取一行  {  if(strcmp(p[kk].name,s)!=0)//检验是要删除的行吗?  {  fprintf(ftp,"%s %s %f %f %f %f %f/n",p[kk].name,p[kk].num,p[kk].cyuyan,p[kk].en,p[kk].ji,p[kk].guti,p[kk].cailiao);//不是则将这一行写入临时文件tmp.txt  }   kk++;  }   fprintf(ftp,"%s %s %f %f %f %f %f/n",newp.name,newp.num,newp.cyuyan,newp.en,newp.ji,newp.guti,newp.cailiao);//不是则将这一行写入临时文件tmp.txt   fclose(fin);  fclose(ftp);  fclose(fp2);  remove("studata.txt");//删除原文件  rename("tmp.txt","studata.txt");//将临时文件名改为原文件名  }  if(m==2)  {  person newp1;  char s[20];  int i=0;  printf("/t请输入想修改的学号:");  scanf("/t%s",s);  while(strcmp(p[i].num,s)!=0&&i<n) i++;//进行比较 找到所需要的信息  if(i==n)  {  printf("/t通讯录中没有此人!/n");  return;  }  else{  printf("学号:/n");  scanf("/t%s",&newp1.num);  printf("姓名:/n");  scanf("/t%s",&newp1.name);  printf("C语言:/n");  scanf("/t%f",&newp1.cyuyan);  printf("物理学:/n");  scanf("/t%f",&newp1.en);  printf("原子物理:/n");  scanf("/t%f",&newp1.ji);  printf("固体物理:/n");  scanf("/t%f",&newp1.guti);  printf("材料学:/n");  scanf("/t%f",&newp1.cailiao);  }   FILE *fin,*ftp;  fin=fopen("studata.txt","r");//读打开原文件studata.txt  ftp=fopen("tmp.txt","w");//写打开临时文件tmp.txt  if(fin==NULL || ftp==NULL){  printf("Open the file failure.../n");  exit(0);  }  int kk=0;  while(kk<n) //从原文件读取一行  {  if(strcmp(p[kk].num,s)!=0)//检验是要删除的行吗?  {  fprintf(ftp,"%s %s %f %f %f %f %f/n",p[kk].name,p[kk].num,p[kk].cyuyan,p[kk].en,p[kk].ji,p[kk].guti,p[kk].cailiao);//不是则将这一行写入临时文件tmp.txt  }   kk++;  }   fprintf(ftp,"%s %s %f %f %f %f %f/n",newp1.name,newp1.num,newp1.cyuyan,newp1.en,newp1.ji,newp1.guti,newp1.cailiao);//不是则将这一行写入临时文件tmp.txt   fclose(fin);  fclose(ftp);  fclose(fp2);  remove("studata.txt");//删除原文件  rename("tmp.txt","studata.txt");//将临时文件名改为原文件名    }   system("pause");   }  //*********************************************************************//  //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//  //数据删除// void delet()  {   person p[200];  FILE *fp;  char s[10];  int i=0,n=0;  if((fp=fopen("studata.txt","r"))==NULL) //以2进制方式读取文件信息//  {  printf("cannot open the files/n");  system("pause");  return;  }   while(fscanf(fp,"%s%s%f%f%f%f%f",p[i].name,p[i].num,&p[i].cyuyan,&p[i].en,&p[i].ji,&p[i].guti,&p[i].cailiao)!=EOF)  {  i++;  n=n+1;  }   fclose(fp);   printf("学生学号:");  scanf("%s",s);  i=0;  while(strcmp(p[i].num,s)!=0&&i<n)  {  i++;  } //进行比较 找到所需要的信息  if(i==n)  {  printf("/t通讯录中没有此人!/n");  return;  }  else{  FILE *fin,*ftp;  fin=fopen("studata.txt","r");//读打开原文件123.txt  ftp=fopen("tmp.txt","w");//写打开临时文件tmp.txt  if(fin==NULL || ftp==NULL){  printf("Open the file failure.../n");  exit(0);  }  int kk=0;  while(kk<n) //从原文件读取一行  {  if(strcmp(p[kk].num,s)!=0)//检验是要删除的行吗?  {  fprintf(ftp,"%s %s %f %f %f %f %f/n",p[kk].name,p[kk].num,p[kk].cyuyan,p[kk].en,p[kk].ji,p[kk].guti,p[kk].cailiao);//不是则将这一行写入临时文件tmp.txt  }   kk++;  }    fclose(fin);  fclose(ftp);  remove("studata.txt");//删除原文件  rename("tmp.txt","studata.txt");//将临时文件名改为原文件名  printf("删除成功!") ; }  //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//  //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//  //运用switch语句进行菜单选择// }   int main()  {   int n=0;  logon();  //menu_filename(); //引用全局变量文件名  for(;;) //循环使用主界面直到遇到结束命令  {  switch(menu_select()) // 函数的调用//  {  case 1:  printf("/t/t *^_^*学生记录添加 *^_^*/n");  add();  break;  case 2:  printf("/t/t *^_^*学生信息浏览 *^_^*/n");  scan();  break;  case 3:  printf("/t/t *^_^*学生信息查询 *^_^*/n");  query();  break;  case 4:  printf("/t/t *^_^*数据计算 *^_^*/n");  date();  break;  case 5:  printf("/t/t *^_^*数据修改 *^_^*/n");  amend();  break;  case 6:  printf("/t/t *^_^*数据删除 *^_^*/n");  delet();  break;  case 0:  printf("/n/t/t谢谢使用,再见!/n");  printf("/n/t/t");  system("pause");  exit(0);  }  }  system("pause");    //system("pause"); */  return 0;  }

文件studata.txt文件展示如下:

更多学习资料请关注专题《管理系统开发》。

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选