學(xué)生成績管理系統(tǒng)C語言代碼實(shí)現(xiàn)
C語言實(shí)現(xiàn)了學(xué)生成績管理系統(tǒng),可以進(jìn)行學(xué)生成績的增加,刪除,更新,查詢,計(jì)算和展示。
完整代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct person //定義結(jié)構(gòu)體
{
char num[10]; //學(xué)號(hào)
char name[20]; //姓名
float cyuyan; //C語言成績
float en; //物理學(xué)成績
float ji; //原子物理成績
float guti; //固體物理成績
float cailiao; //材料學(xué)成績
}person;
person per[200]; //定義100
char filename[20]; //定義全局變量
void logon() //登陸函數(shù) 使系統(tǒng)更顯完善
{
printf("\n\n\n\t\t\t 學(xué)生信息管理系統(tǒng)\n\n");
printf("\t\t\t 版本號(hào):2.0\n\n");
printf("\n\n\n\n\t\t\t 2012年3月10日\n\n");
printf("\t\t\t C區(qū)**棟514寢\n");
printf("\n\n\t\t\t Ace_cm_liu\n");
printf("\n\n\t\t\t 導(dǎo)演兼制作\n");
//system("pause");
}
/*void menu_filename()
{
system("cls");
printf("請(qǐng)輸入你要操作的文件名:");
scanf("\t%s",filename);
} */
//*********************************************************************//
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
int menu_select() //菜單選擇系統(tǒng)函數(shù)
{
char c;
do{
//system("cls");
printf("\t\t ╭═════════■□■□═══╮\n");
printf("\t\t│ 學(xué)生信息管理系統(tǒng) │\n");
printf("\t\t╰═══■□■□══════════╯\n");
printf("\t\t ┌─────────────-┐\n");
printf("\t\t │ 1. 添加記錄 2. 顯示記錄 │\n");
printf("\t\t │ │\n");
printf("\t\t │ 3. 信息查詢 4. 數(shù)據(jù)計(jì)算 │\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請(qǐng)您選擇(0-6):");
c=getchar();
}while(c<'0'||c>'6');
return (c-'0'); //字符減去'0'得到的是數(shù)字整型//
}
//*********************************************************************//
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
void add() //成績的錄入與添加函數(shù)
{
FILE *fp;
int i=0,n=0;
char sign='y'; //首先定義sing='y'
system("cls");
person p[200] ; //清屏函數(shù) 系統(tǒng)中調(diào)用
while(sign!='n'&&sign!='N') //其實(shí)只有當(dāng)輸入N或n時(shí)才跳出循環(huán)
{
printf(" ----學(xué)生紀(jì)錄添加----\n");
printf("姓名:\n");
scanf("\t%s",p[i].name);
printf("學(xué)號(hào):\n");
scanf("\t%s",p[i].num);
printf("C語言:\n");
scanf("\t%f",&p[i].cyuyan);
printf("物理學(xué):\n");
scanf("\t%f",&p[i].en);
printf("原子物理:\n");
scanf("\t%f",&p[i].ji);
printf("固體物理:\n");
scanf("\t%f",&p[i].guti);
printf("材料學(xué):\n");
scanf("\t%f",&p[i].cailiao);
printf("是否繼續(xù)添加?(y/n)");
scanf("\t%c",&sign);
i++;
n=n+1;
system( "cls ");
}system("pause"); //等待命令
if((fp=fopen("studata.txt","a"))==NULL)//以2進(jìn)制形式進(jìn)行文件尾追加//
{
printf("cannot open the files\n");
system("pause");
return; //如果文件出現(xiàn)錯(cuò)誤 就返回
}
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進(jìn)制形式寫入文件中//一次寫入一個(gè)數(shù)組//
}
//printf("file write error\n");
fclose(fp); //關(guān)閉文件
system("pasue");
}
//*********************************************************************//
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
void scan() //顯示記錄 進(jìn)行全面信息瀏覽
{
void amend();
//聲明修改函數(shù)//
char sign='y';
FILE *fp;
int n;
system("cls");
if((fp=fopen("studata.txt","r"))==NULL) //以2進(jìn)制方式讀取文件信息//
{
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(" 姓名 學(xué)號(hào) C語言 物理學(xué) 原子物理 固體物理 材料學(xué)\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') //選擇是否在瀏覽后進(jìn)行修改//
amend();
system("pause");
}
//*********************************************************************//
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
//數(shù)據(jù)查詢//
void query()//學(xué)生信息的不同方式查詢
{
system("cls");
person p[200];
FILE *fp1;
int i=0;
int n=0;
int m;
printf("\t\n請(qǐng)選擇查詢方式:\n");
printf("\t┌──────┐\n");
printf("\t│1--模糊查詢 │\n");
printf("\t│2------姓名 │\n");
printf("\t│3------學(xué)號(hào) │\n");
printf("\t│4------返回 │\n");
printf("\t└──────┘\n");
printf("請(qǐng)輸入你要查詢的方式\n");
scanf("%d",&m);
while(m!=1&&m!=2&&m!=3&&m!=4)
{
printf("輸入錯(cuò)誤請(qǐng)重新查詢\n");
scanf("%d",&m);
}
if((fp1=fopen("studata.txt","r"))==NULL)//以2進(jìn)制方式讀取文件信息//
{
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]; //定義輸入的文字所占的字節(jié) /一個(gè)漢字占2個(gè)字節(jié) 外加一結(jié)尾符此處小心溢出
int i=0;
system("cls");
printf("\t請(qǐng)輸入想查詢的姓:");
scanf("%s",s);
for(i=0;i<n-1;i++) //文件信息已經(jīng)讀取到數(shù)組中 此處進(jìn)行循環(huán)用于下一語句的查找
{
if(p[i].name[0]==s[0]&&p[i].name[1]==s[1]) //比較per[i].name與所輸入的前倆個(gè)字符是否相同//
{
printf("\t學(xué)號(hào): %s\n",p[i].num);
printf("\t姓名: %s\n",p[i].name);
printf("\tC語言: %f\n",p[i].cyuyan);
printf("\t物理學(xué): %f\n",p[i].en);
printf("\原子物理: %f\n",p[i].ji);
printf("\t固體物理: %f\n",p[i].guti);
printf("\t材料學(xué): %f\n",p[i].cailiao);
}
}
}
if(m==2) //姓名查詢
{
char s[20];
int j=0;
printf("\t請(qǐng)輸入想查詢的姓名:");
scanf("\t%s",s);
while(strcmp(p[j].name,s)!=0&&j<n) j++; //比較per[i].name與所輸入姓名是否相同//
if(j==n)
{
printf("無");
}
printf("\t學(xué)號(hào): %s\n",p[j].num);
printf("\t姓名: %s\n",p[j].name);
printf("\tC語言: %f\n",p[j].cyuyan);
printf("\t物理學(xué): %f\n",p[j].en);
printf("\原子物理: %f\n",p[j].ji);
printf("\t固體物理: %f\n",p[j].guti);
printf("\t材料學(xué): %f\n",p[j].cailiao);
}
if(m==3) //學(xué)號(hào)查詢
{
char s[15];
int i=0;
printf("請(qǐng)輸入想查詢的學(xué)號(hào):");
scanf("\t%s",s);
while(strcmp(p[i].num,s)!=0&&i<n) //比較per[i].name與所輸入學(xué)號(hào)是否相同//
i++;
if(i==n)
{
printf("\t通訊錄中沒有此人!\n");
system("pause");
return;
}
printf("\t學(xué)號(hào): %s\n",p[i].num);
printf("\t姓名: %s\n",p[i].name);
printf("\tC語言: %f\n",p[i].cyuyan);
printf("\t物理學(xué): %f\n",p[i].en);
printf("\原子物理: %f\n",p[i].ji);
printf("\t固體物理: %f\n",p[i].guti);
printf("\t材料學(xué): %d\f",p[i].cailiao);
}
fclose(fp1);
system("pause");
}
void date()
{
person per[200];
FILE *fp;
struct person temp; //定義臨時(shí)數(shù)組用于交換時(shí)存放數(shù)組信息用于后面的交換//
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----物理學(xué) │\n");
printf("\t│2--原子物理 │\n");
printf("\t│3---C語言 │\n");
printf("\t│4--固體物理 │\n");
printf("\t│5----材料學(xué) │\n");
printf("\t│6---- 總分 │\n");
printf("\t│7------返回 │\n");
printf("\t└──────┘\n");
printf("請(qǐng)輸入你要排序的方式\n");
scanf("%d",&m);
system("cls");
while(m!=1&&m!=2&&m!=3&&m!=4&&m!=5&&m!=6&&m!=7)
{
printf("輸入錯(cuò)誤請(qǐng)重新輸入\n");
scanf("%d",&m);
}
if((fp=fopen("studata.txt","r"))==NULL)//以2進(jìn)制方式讀取文件信息//
{
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++) //采用冒泡法進(jìn)行排序//
{
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; //當(dāng)符合條件時(shí)進(jìn)行數(shù)據(jù)交換//
}
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf(" 姓名 學(xué)號(hào) C語言 物理學(xué) 原子物理 固體物理 材料學(xué)\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(" 姓名 學(xué)號(hào) C語言 物理學(xué) 原子物理 固體物理 材料學(xué)\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(" 姓名 學(xué)號(hào) C語言 物理學(xué) 原子物理 固體物理 材料學(xué)\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(" 姓名 學(xué)號(hào) C語言 物理學(xué) 原子物理 固體物理 材料學(xué)\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(" 姓名 學(xué)號(hào) C語言 物理學(xué) 原子物理 固體物理 材料學(xué)\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;
} // 第一個(gè)數(shù)組用于數(shù)組間信息操作//
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(" 姓名 學(xué)號(hào) C語言 物理學(xué) 原子物理 固體物理 材料學(xué)\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");
}
//*********************************************************************//
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
// 數(shù)據(jù)修改//
void amend()
{
person p[200];
FILE *fp2;
int i=0;
int n=0;
char s[15];
int m;
// system("cls");
printf("\t\n請(qǐng)選擇修改方式:\n");
printf("\t┌──────┐\n");
printf("\t│1------姓名 │\n");
printf("\t│2------學(xué)號(hào) │\n");
printf("\t│3------返回 │\n");
printf("\t└──────┘\n");
printf("請(qǐng)輸入你要修改的方式\n");
scanf("%d",&m);
while(m!=1&&m!=2&&m!=3)
{
printf("輸入錯(cuò)誤請(qǐng)重新修改\n");
scanf("%d",&m);
}
if((fp2=fopen("studata.txt","r"))==NULL)//以2進(jìn)制方式讀取文件信息//
{
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請(qǐng)輸入想修改的姓名:");
scanf("\t%s",s);
while(strcmp(p[i].name,s)!=0&&i<n) i++; //進(jìn)行比較 找到所需要的信息
if(i==n)
{
printf("\t通訊錄中沒有此人!\n");
return;
}
else{
printf("學(xué)號(hào):\n");
scanf("\t%s",&newp.num);
printf("姓名:\n");
scanf("\t%s",&newp.name);
printf("C語言:\n");
scanf("\t%f",&newp.cyuyan);
printf("物理學(xué):\n");
scanf("\t%f",&newp.en);
printf("原子物理:\n");
scanf("\t%f",&newp.ji);
printf("固體物理:\n");
scanf("\t%f",&newp.guti);
printf("材料學(xué):\n");
scanf("\t%f",&newp.cailiao);
}
FILE *fin,*ftp;
fin=fopen("studata.txt","r");//讀打開原文件studata.txt
ftp=fopen("tmp.txt","w");//寫打開臨時(shí)文件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)//檢驗(yàn)是要?jiǎng)h除的行嗎?
{
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);//不是則將這一行寫入臨時(shí)文件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);//不是則將這一行寫入臨時(shí)文件tmp.txt
fclose(fin);
fclose(ftp);
fclose(fp2);
remove("studata.txt");//刪除原文件
rename("tmp.txt","studata.txt");//將臨時(shí)文件名改為原文件名
}
if(m==2)
{
person newp1;
char s[20];
int i=0;
printf("\t請(qǐng)輸入想修改的學(xué)號(hào):");
scanf("\t%s",s);
while(strcmp(p[i].num,s)!=0&&i<n) i++;//進(jìn)行比較 找到所需要的信息
if(i==n)
{
printf("\t通訊錄中沒有此人!\n");
return;
}
else{
printf("學(xué)號(hào):\n");
scanf("\t%s",&newp1.num);
printf("姓名:\n");
scanf("\t%s",&newp1.name);
printf("C語言:\n");
scanf("\t%f",&newp1.cyuyan);
printf("物理學(xué):\n");
scanf("\t%f",&newp1.en);
printf("原子物理:\n");
scanf("\t%f",&newp1.ji);
printf("固體物理:\n");
scanf("\t%f",&newp1.guti);
printf("材料學(xué):\n");
scanf("\t%f",&newp1.cailiao);
}
FILE *fin,*ftp;
fin=fopen("studata.txt","r");//讀打開原文件studata.txt
ftp=fopen("tmp.txt","w");//寫打開臨時(shí)文件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)//檢驗(yàn)是要?jiǎng)h除的行嗎?
{
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);//不是則將這一行寫入臨時(shí)文件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);//不是則將這一行寫入臨時(shí)文件tmp.txt
fclose(fin);
fclose(ftp);
fclose(fp2);
remove("studata.txt");//刪除原文件
rename("tmp.txt","studata.txt");//將臨時(shí)文件名改為原文件名
}
system("pause");
}
//*********************************************************************//
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
//數(shù)據(jù)刪除//
void delet()
{
person p[200];
FILE *fp;
char s[10];
int i=0,n=0;
if((fp=fopen("studata.txt","r"))==NULL) //以2進(jìn)制方式讀取文件信息//
{
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("學(xué)生學(xué)號(hào):");
scanf("%s",s);
i=0;
while(strcmp(p[i].num,s)!=0&&i<n)
{
i++;
} //進(jìn)行比較 找到所需要的信息
if(i==n)
{
printf("\t通訊錄中沒有此人!\n");
return;
}
else{
FILE *fin,*ftp;
fin=fopen("studata.txt","r");//讀打開原文件123.txt
ftp=fopen("tmp.txt","w");//寫打開臨時(shí)文件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)//檢驗(yàn)是要?jiǎng)h除的行嗎?
{
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);//不是則將這一行寫入臨時(shí)文件tmp.txt
}
kk++;
}
fclose(fin);
fclose(ftp);
remove("studata.txt");//刪除原文件
rename("tmp.txt","studata.txt");//將臨時(shí)文件名改為原文件名
printf("刪除成功!") ;
}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
//運(yùn)用switch語句進(jìn)行菜單選擇//
}
int main()
{
int n=0;
logon();
//menu_filename(); //引用全局變量文件名
for(;;) //循環(huán)使用主界面直到遇到結(jié)束命令
{
switch(menu_select()) // 函數(shù)的調(diào)用//
{
case 1:
printf("\t\t *^_^*學(xué)生記錄添加 *^_^*\n");
add();
break;
case 2:
printf("\t\t *^_^*學(xué)生信息瀏覽 *^_^*\n");
scan();
break;
case 3:
printf("\t\t *^_^*學(xué)生信息查詢 *^_^*\n");
query();
break;
case 4:
printf("\t\t *^_^*數(shù)據(jù)計(jì)算 *^_^*\n");
date();
break;
case 5:
printf("\t\t *^_^*數(shù)據(jù)修改 *^_^*\n");
amend();
break;
case 6:
printf("\t\t *^_^*數(shù)據(jù)刪除 *^_^*\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文件展示如下:
更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
上一篇:基于C語言航班信息查詢與檢索
欄 目:C語言
下一篇:使用devenv在命令行中編譯項(xiàng)目的方法
本文標(biāo)題:學(xué)生成績管理系統(tǒng)C語言代碼實(shí)現(xiàn)
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/969.html
您可能感興趣的文章
- 01-10c語言實(shí)現(xiàn)的貨物管理系統(tǒng)實(shí)例代碼(增加刪除 查找貨物信息等
- 01-10C++實(shí)現(xiàn)簡單的學(xué)生管理系統(tǒng)
- 01-10C++實(shí)現(xiàn)簡單的職工信息管理系統(tǒng)
- 01-10C++實(shí)現(xiàn)簡單的圖書管理系統(tǒng)
- 01-10C++基礎(chǔ)學(xué)生管理系統(tǒng)
- 01-10C++實(shí)現(xiàn)簡單的信息管理系統(tǒng)
- 01-10C++實(shí)現(xiàn)簡單的職工管理系統(tǒng)實(shí)訓(xùn)代碼
- 01-10C語言設(shè)計(jì)圖書登記系統(tǒng)與停車場管理系統(tǒng)的實(shí)例分享
- 01-10使用C語言打造通訊錄管理系統(tǒng)和教學(xué)安排系統(tǒng)的代碼示例
- 01-10C++學(xué)生信息管理系統(tǒng)


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子


