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

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文件展示如下:

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

以上是 学生成绩管理系统C语言代码实现 的全部内容, 来源链接: utcz.com/z/329182.html

回到顶部