學(xué)生成績(jī)管理系統(tǒng)C語(yǔ)言代碼實(shí)現(xiàn)
C語(yǔ)言實(shí)現(xiàn)了學(xué)生成績(jī)管理系統(tǒng),可以進(jìn)行學(xué)生成績(jī)的增加,刪除,更新,查詢,計(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語(yǔ)言成績(jī) float en; //物理學(xué)成績(jī) float ji; //原子物理成績(jī) float guti; //固體物理成績(jī) float cailiao; //材料學(xué)成績(jī) }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日\(chéng)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() //成績(jī)的錄入與添加函數(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語(yǔ)言:\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語(yǔ)言 物理學(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)用于下一語(yǔ)句的查找 { 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語(yǔ)言: %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("無(wú)"); } printf("\t學(xué)號(hào): %s\n",p[j].num); printf("\t姓名: %s\n",p[j].name); printf("\tC語(yǔ)言: %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語(yǔ)言: %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語(yǔ)言 │\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語(yǔ)言 物理學(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語(yǔ)言 物理學(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語(yǔ)言 物理學(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語(yǔ)言 物理學(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語(yǔ)言 物理學(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語(yǔ)言 物理學(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語(yǔ)言:\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語(yǔ)言:\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語(yǔ)句進(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ā)》。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
欄 目:C語(yǔ)言
下一篇:使用devenv在命令行中編譯項(xiàng)目的方法
本文標(biāo)題:學(xué)生成績(jī)管理系統(tǒng)C語(yǔ)言代碼實(shí)現(xiàn)
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/969.html
您可能感興趣的文章
- 01-10c語(yǔ)言實(shí)現(xiàn)的貨物管理系統(tǒng)實(shí)例代碼(增加刪除 查找貨物信息等
- 01-10C++實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng)
- 01-10C++實(shí)現(xiàn)簡(jiǎn)單的職工信息管理系統(tǒng)
- 01-10C++實(shí)現(xiàn)簡(jiǎn)單的圖書管理系統(tǒng)
- 01-10C++基礎(chǔ)學(xué)生管理系統(tǒng)
- 01-10C++實(shí)現(xiàn)簡(jiǎn)單的信息管理系統(tǒng)
- 01-10C++實(shí)現(xiàn)簡(jiǎn)單的職工管理系統(tǒng)實(shí)訓(xùn)代碼
- 01-10C語(yǔ)言設(shè)計(jì)圖書登記系統(tǒng)與停車場(chǎng)管理系統(tǒng)的實(shí)例分享
- 01-10使用C語(yǔ)言打造通訊錄管理系統(tǒng)和教學(xué)安排系統(tǒng)的代碼示例
- 01-10C++學(xué)生信息管理系統(tǒng)


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子