學生學籍信息管理系統_第1頁
學生學籍信息管理系統_第2頁
學生學籍信息管理系統_第3頁
學生學籍信息管理系統_第4頁
學生學籍信息管理系統_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

C語言課程設計綜合實習報告題目:學籍信息管理系統姓名:

黃凱

學號:20081000153班級號:

052081院(系):工程學院專業:

土木工程指導教師:

曹弘一,題目要求學生學籍信息管理系統設計

[要求]

使用下面的數據設計一個簡單的學籍管理系統。

學生基本信息文件(A.TXT)極其內容:

學號姓名性別宿舍號碼電話號碼

01張成成男50187732111

02李成華女10187723112

03王成鳳女10187723112

04張明明男50287734333

05陳東男50187732111

06李果男50287734333

07張園園女10287756112

學生成績基本信息文件(B.TXT)極其內容:

.....................................................................................................................

學號課程編號課程名稱學分平時成績實驗成績卷面成績綜合成績實得學分

01A01大學物理3667882

02B03高等數學478-190

01B03高等數學445-188

02C01VF3657666

................................................................................................................

功能要求極其說明:

(1)數據錄入功能:錄入每個學生的學號、課程編號、課程名稱、學分、平時成績、實驗成績、卷面成績共7個數據。實得成績、實得學分根據條件自動運算。

綜合成績的計算:

a.如果本課程的實驗成績為-1,則表無實驗成績,綜合成績=平時成績*30%+卷面成績*70%

b.如果實驗成績不為-1,表示本課程有實驗成績,綜合成績=平時成績*15%+實驗成績*15%+卷面成績*70%

實得學分的計算:采用等級學分制。

綜合成績在90~100之間,應得學分=學分*100%

綜合成績在80~90之間,應得學分=學分*80%

綜合成績在70~80之間,應得學分=學分*75%

綜合成績在60~70之間,應得學分=學分*60%

綜合成績在60分以下,應得學分=學分*0%

(2)查詢功能:分為學生基本情況查詢和成績查詢兩種

學生基本情況查詢:

輸入一個學號或姓名(可實現選擇)查出此學生的基本信息并顯示輸出。

輸入一個宿舍號碼,可查出本室所有學生的基本信息并顯示輸出。

稱號查詢:

輸入一個學號時,查出此學生所有課程情況,格式如下:

學號:XX課程名稱:XXXX綜合成績:XX實得學分:XXX

...............................................................................

共修:X科,實得總分為:XXX

(3)刪除功能:當在A.TXT中刪除一個學生時,自動地在B.TXT中刪除此學生所有信息。

(4)排序功能:能實現選擇按綜合成績或實得學分升序或降序排序并顯示數據。

[提示]

數據結構采用結構體數組,提供學生基本信息和學生成績基本信息結構體數組。二,需求分析根據題目要求,該程序應具備的功能有:(1)數據錄入功能:錄入每個學生的學號、課程編號、課程名稱、學分、平時成績、實驗成績、卷面成績共7個數據。實得成績、實得學分根據條件自動運算。(2)查詢功能:分為學生基本情況查詢和成績查詢兩種(3)刪除功能:當在A.TXT中刪除一個學生時,自動地在B.TXT中刪除此學生所有信息。(4)排序功能:能實現選擇按綜合成績或實得學分升序或降序排序并顯示數據。三,程序總體設計學生學籍信息管理系統學生學籍信息管理系統MENUMENU(菜單)退出排序功能模塊刪除功能模塊查詢功能模塊數據錄入功能模塊退出排序功能模塊刪除功能模塊查詢功能模塊數據錄入功能模塊按學分降序排列按綜合成績降序排列按綜合成績升序排列按學分升序排列查詢功能模塊查詢功能模塊按學分降序排列按綜合成績降序排列按綜合成績升序排列按學分升序排列查詢功能模塊查詢功能模塊退出退出四,程序詳細設計 ⒈主函數主函數一般設計得比較簡潔,只提供輸入,處理和輸出部分的函數調用。其中各功能模塊用菜單方式選擇。[流程圖][程序]voidmain() while(1)printf("\n<<<<<<<<<<<<<<welcometousestudentmanage>>>>>>>>>>>>>>>>>\n\n");printf("*=========================================================*\n");printf("*1>input2>chazhao*\n");printf("*3>delete4>paixuxianshi*\n");printf("*5>exit*\n");printf("**\n");printf("*---------------------------------------------------------*\n");printf("Pleaseinputwhichyouwant(1-5):");ch=getch();switch(ch)case'1':input();break;case'2':search();getch();break;case'3':delete();getch();break; case'4':sort();getch();break;case'5':exit(0);default:continue;⒉個功能模塊設計⑴數據錄入。[數據結構]我們需要錄入的信息數據有兩類:一類是學生基本信息,包括學號,學號姓名性別宿舍號碼電話號碼,存放在文件S_INFO.TXT中。另一類信息是學生成績基本信息,包括學號、課程編號、課程名稱、學分、平時成績、實驗成績、卷面成績共7個數據。實得成績、實得學分根據條件自動運算。這些信息存放在文件S_SCORE.TXT中。學生基本信息的存放格式為:structinfointsMingci; //名次charxuehao[8];charname[10];charsex[2];chard_num[4]; //宿舍號碼chartel_num[9]; //宿舍電話號碼}data,s_info[100];成績基本信息的存放格式為: structcourse charxuehao[8];charcourse_No[6];//課程代號charcourse_name[10]; //課程名字floatxuefen; //學分floatp_chengji;//平時成績floats_chengji; //實驗成績floatj_chengji; //卷面成績floatz_chengji; //綜合成績floats_xuefen; //實際學分 }course_data,s_course[100];[需求分析]數據錄入模塊的功能是用戶通過輸入選項在基本信息和成績信息的輸入之間進行選擇。[程序]voidinput() while(1) printf("\nwhichinformationdoyouwanttoinput:b(base)s(socre)e(exit)"); ch=getch(); if(ch=='b'||ch=='B') if((fp=fopen("s_info.txt","at+"))==NULL) printf("cannotopenthisfile.\n"); getch();exit(0); printf("\nPleaseinputxuehao:"); gets(sn); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(sn,data.xuehao)==0) flag=1; if(flag==1) printf("\nthenumberhasexist,pressangkeycontinue:\n"); flag=0; getch(); continue; else strcpy(data.xuehao,sn); printf("Pleaseinputname:"); gets(); printf("Pleaseinputsex:M(male)/F(female):\n"); gets(data.sex); printf("PleaseinputyourdormitoryNo:"); gets(data.d_num); printf("PleaseinputtelephoneNumber:"); gets(data.tel_num); fwrite(&data,sizeof(data),1,fp);//寫入數據 fclose(fp); }//if elseif(ch=='s'||ch=='S') if((fp1=fopen("s_score.txt","at+"))==NULL||(fp=fopen("s_info.txt","rt"))==NULL) printf("cannotopenthisfile.\n"); getch();exit(0); printf("\nPleaseinputxuehao:"); gets(sn); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(sn,data.xuehao)==0) { flag=1; if(!flag) { printf("\nthisnumberisnotexist\n"); continue; else {flag=0; strcpy(course_data.xuehao,sn); printf("\nPleaseinputcourseNo:"); gets(course_data.course_No); printf("\nPleaseinputcoursename:"); gets(course_data.course_name); printf("\nPleaseinputcoursexuefeng:"); gets(temp); course_data.xuefen=atof(temp);printf("\nPleaseinputpingshichengji:"); gets(temp); course_data.p_chengji=atof(temp); printf("\nPleaseinputshiyanchengji:"); gets(temp); course_data.s_chengji=atof(temp); printf("\nPleaseinputjuanmianchengji:"); gets(temp); course_data.j_chengji=atof(temp); //以下是綜合成績計算 if(course_data.s_chengji==-1)//如果有實驗 course_data.z_chengji=(course_data.p_chengji)*0.3+(course_data.j_chengji)*0.7; else//如果無實驗 course_data.z_chengji=(course_data.p_chengji)*0.15+(course_data.s_chengji)*0.15+(course_data.j_chengji)*0.7; //以下是實際學分計算 if((course_data.z_chengji)<60) {course_data.s_xuefen=0;} elseif((course_data.z_chengji)<70) {course_data.s_xuefen=course_data.xuefen*0.6;} elseif((course_data.z_chengji)<80) {course_data.s_xuefen=course_data.xuefen*0.75;} elseif((course_data.z_chengji)<90) {course_data.s_xuefen=course_data.xuefen*0.8;} else {course_data.s_xuefen=course_data.xuefen; fwrite(&course_data,sizeof(course_data),1,fp1);//寫入數據 fclose(fp1); fclose(fp); } //elseif else {break; printf("anothery/n"); ch=getch(); if(ch=='n'||ch=='N') break;} //input⑵查詢功能模塊。[需求分析]該模塊的功能分為學生基本情況查詢和成績查詢兩種。學生基本情況查詢是根據輸入的學號或姓名查出此學生的基本信息并顯示輸出;或者根據輸入的宿舍號碼,查出本室所有學生的基本信息并顯示輸出。成績查詢的功能是根據輸入的學號,查出此學生的所有課程情況。[流程圖]選擇基本信息查詢還是成績查詢選擇基本信息查詢還是成績查詢b/Ba/Ab/Ba/A學生成績查詢學生基本情況查詢學生成績查詢學生基本情況查詢輸入學號選擇根據學號,姓名,宿舍號碼查找輸入學號選擇根據學號,姓名,宿舍號碼查找是否找到信息根據選擇,輸入學號是否找到信息根據選擇,輸入學號/姓名/宿舍號碼是否找到信息是否找到信息提示沒找到,按任意鍵繼續顯示找到的信息提示沒找到,按任意鍵繼續顯示找到的信息提示沒找到,按任意鍵繼續顯示找到的信息提示沒找到,按任意鍵繼續顯示找到的信息[程序]voidsearch() printf("\nselectform:a(studentinformation)b(socreinformation)"); ch=getch(); if(ch=='a'||ch=='A') if((fp=fopen("s_info.txt","rt"))==NULL) printf("\nCannotopenthisfile.\n"); exit(0); printf("\nselectway:a(studentNumber)b(studentname)c(dormitoryNO):\n"); ch1=getch(); //按照學號查找 if(ch1=='a'||ch1=='A') printf("\npleaseinputthestudentnumber:"); gets(temp_NO); printf("xuehaonamesexsushehaotelephone"); printf("\n------------------------------------------------------------------------------\n"); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(temp_NO,data.xuehao)==0) { flag=1; printf("\n%8s%10s%12s%14s%20s\n",data.xuehao,,data.sex,data.d_num,data.tel_num); if(!flag) { printf("\nthisnumberisnotexist,pressanykeytocontinue\n"); getch(); else { flag=0;//按照名字查找 elseif(ch1=='b'||ch1=='B') printf("\npleaseinputthename:"); gets(temp_name); printf("xuehaonamesexsushehaotelephone"); printf("\n------------------------------------------------------------------------------\n"); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(temp_name,)==0) { flag=1; printf("\n%8s%10s%12s%14s%20s\n",data.xuehao,,data.sex,data.d_num,data.tel_num); if(!flag) { printf("\nthisnameisnotexist,pressanykeytocontinue:\n"); getch(); else { flag=0; //按照宿舍號碼查找 elseif(ch1=='c'||ch1=='C') printf("\npleaseinputthedormitorynumber:"); gets(temp_dnum); printf("xuehaonamesexsushehaotelephone"); printf("\n------------------------------------------------------------------------------\n"); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(temp_dnum,data.d_num)==0) { flag=1; printf("\n%8s%10s%12s%14s%20s\n",data.xuehao,,data.sex,data.d_num,data.tel_num); if(!flag) { printf("thisdormitoryisnotexist,pressanykeycontinue:"); getch(); else flag=0; else {printf("\nselecterror\n"); fclose(fp); } //chif //學生成績查找 elseif(ch=='b'||ch=='B') j=0; z_fen=0; z_xuefen=0; if((fp1=fopen("s_score.txt","rt"))==NULL) printf("\nCannotopenthisfile.\n"); exit(0); printf("\npleaseinputstudentnumber:"); gets(temp_NO); printf("xuehaocourse_Nocourse_name xuefen chengji"); printf("\n------------------------------------------------------------------------------\n"); while((fread(&course_data,sizeof(course_data),1,fp1))==1) if(strcmp(temp_NO,course_data.xuehao)==0) { flag=1; j++; z_fen=z_fen+course_data.z_chengji; z_xuefen=z_xuefen+course_data.s_xuefen; printf("\n%10s%10s%10s%15.1f%18.1f\n",course_data.xuehao,course_data.course_No,course_data.course_name,course_data.s_xuefen,course_data.z_chengji); if(!flag) { printf("isnotexist"); else flag=0; printf("\n------------------------------------------------------------------------------\n"); printf("z_gong:%3dkez_xuefen:%3.1fz_chengji:%6.1f",j,z_xuefen,z_fen); else printf("error");fclose(fp1);⑶刪除功能模塊。[需求分析]該模塊的功能是當在學生基本信息文件中刪除一個學生時,自動在成績信息文件中刪除此人的所有信息。[程序]voiddelete() printf("\ninputthenumberofstudentyouwanttodelete:"); gets(temp_NO); if((fp1=fopen("s_score.txt","rt"))==NULL||(fp=fopen("s_info.txt","rt"))==NULL||(fp2=fopen("temp.txt","wt+"))==NULL) printf("cannotopenthisfile.\n"); getch();exit(0); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(temp_NO,data.xuehao)!=0) fwrite(&data,sizeof(data),1,fp2); remove("s_info.txt"); rename("temp.txt","s_info.txt"); fclose(fp); fclose(fp2); if((fp1=fopen("s_score.txt","rt"))==NULL||(fp2=fopen("temp.txt","wt+"))==NULL) printf("cannotopenthisfile.\n"); getch();exit(0); while((fread(&course_data,sizeof(course_data),1,fp1))==1) if(strcmp(temp_NO,course_data.xuehao)!=0) fwrite(&course_data,sizeof(course_data),1,fp2); remove("s_score.txt"); rename("temp.txt","s_score.txt"); fclose(fp1); fclose(fp2); printf("\ndeletesuccessful");⑷排序功能模塊。[需求分析]該模塊的功能是能實現選擇根據綜合成績或實得學分升序或降序排序顯示數據。[流程圖]輸入要排序的課程名稱輸入要排序的課程名稱是否找到該課程是否找到該課程YNYN選擇排序根據:根據學分還是綜合成績提示沒找到選擇排序根據:根據學分還是綜合成績提示沒找到退出選擇排序方法:升序還是降序退出選擇排序方法:升序還是降序根據選擇對數據進行排序顯示根據選擇對數據進行排序顯示[程序]voidsort() printf("\npleaseinputcoursenumber:"); gets(tempcn); if((fp1=fopen("s_score.txt","rt"))==NULL) printf("cannotopenthisfile.\n"); getch();exit(0); i=0; while((fread(&course_data,sizeof(course_data),1,fp1))==1) if(strcmp(tempcn,course_data.course_No)==0) s_course[i]=course_data; i++; flag=1; if(!flag) printf("\nnosuchcourse\n"); else flag=0; printf("\npleaseselectway:a(xuefen)b(zhonghechengji)\n"); ch=getch(); printf("\nselect:s(shengxu)j(jiangxu)"); ch1=getch(); if(ch=='a'||ch=='A') //升序排列 if(ch1=='s') for(j=0;j<i-1;j++) for(k=j;k<i;k++) if(s_course[j].s_xuefen>s_course[k].s_xuefen) temp_course=s_course[j]; s_course[j]=s_course[k]; s_course[k]=temp_course; printf("\n\nxuehaocourse_numbercourse_namexuefenchengji\n"); printf("\n----------------------------------------------------------------\n"); for(j=0;j<i;j++) printf("\n%6s%10s%16s%13.1f%13.1f\n",s_course[j].xuehao,s_course[j].course_No,s_course[j].course_name,s_course[j].s_xuefen,s_course[j].z_chengji); //降序排列 else for(j=0;j<i-1;j++) for(k=j;k<i;k++) if(s_course[j].s_xuefen<s_course[k].s_xuefen) temp_course=s_course[j]; s_course[j]=s_course[k]; s_course[k]=temp_course; printf("\n\nxuehaocourse_numbercourse_namexuefenchengji\n"); printf("\n----------------------------------------------------------------\n"); for(j=0;j<i;j++) printf("\n%6s%10s%16s%13.1f%13.1f\n",s_course[j].xuehao,s_course[j].course_No,s_course[j].course_name,s_course[j].s_xuefen,s_course[j].z_chengji); } //ch1 } //chif elseif(ch=='b'||ch=='B') //升序排列 if(ch1=='s'||ch1=='S') for(j=0;j<i-1;j++) for(k=j;k<i;k++) if(s_course[j].z_chengji>s_course[k].z_chengji) temp_course=s_course[j]; s_course[j]=s_course[k]; s_course[k]=temp_course; printf("\n\nxuehaocourse_numbercourse_namexuefenchengji\n"); printf("\n----------------------------------------------------------------\n"); for(j=0;j<i;j++) printf("\n%6s%10s%16s%13.1f%13.1f\n",s_course[j].xuehao,s_course[j].course_No,s_course[j].course_name,s_course[j].s_xuefen,s_course[j].z_chengji); //降序排列 else for(j=0;j<i-1;j++) for(k=j;k<i;k++) if(s_course[j].z_chengji<s_course[k].z_chengji) temp_course.z_chengji=s_course[j].z_chengji; s_course[j].z_chengji=s_course[k].z_chengji; s_course[k].z_chengji=temp_course.z_chengji; printf("\n\nxuehaocourse_numbercourse_namexuefenchengji\n"); printf("\n----------------------------------------------------------------\n"); for(j=0;j<i;j++) printf("\n%6s%10s%16s%13.1f%13.1f\n",s_course[j].xuehao,s_course[j].course_No,s_course[j].course_name,s_course[j].s_xuefen,s_course[j].z_chengji); } //ch1 else printf("illegalselect"); getch();五,上機操作編譯、連接和運行下面是運行后各個模塊的界面圖:1主菜單函數2.數據錄入3,查詢功能(1)學生基本信息查詢(2)學生成績查詢4刪除功能5排序功能源程序:#include"stdio.h"/*I/O函數*/#include"stdlib.h"/*其它說明*/#include"string.h"/*字符串函數*/#include"conio.h"/*屏幕操作函數*/#include"memory.h"/*內存操作函數*/#include"ctype.h"/*字符操作函數*/#include"malloc.h"/*動態地址分配函數*/structcourse charxuehao[8];charcourse_No[6];//課程代號charcourse_name[10]; //課程名字floatxuefen; //學分floatp_chengji;//平時成績floats_chengji; //實驗成績floatj_chengji; //卷面成績floatz_chengji; //綜合成績floats_xuefen; //實際學分 }course_data,s_course[100];structinfointsMingci; //名次charxuehao[8];charname[10];charsex[2];chard_num[4]; //宿舍號碼chartel_num[9]; //宿舍電話號碼}data,s_info[100];inti,j,k=0;inta,b;intflag=0;chartemp[20],ch,ch1,ch2;chartemp_NO[8],temp_name[10],temp_dnum[4];chartempcn[6];charsn[8]; //臨時學號floatz_fen,z_xuefen;structcoursetemp_course;structinfo*inf;FILE*fp,*fp1,*fp2;voidinput() while(1) printf("\nwhichinformationdoyouwanttoinput:b(base)s(socre)e(exit)"); ch=getch(); if(ch=='b'||ch=='B') if((fp=fopen("s_info.txt","at+"))==NULL) printf("cannotopenthisfile.\n"); getch();exit(0); printf("\nPleaseinputxuehao:"); gets(sn); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(sn,data.xuehao)==0) flag=1; if(flag==1) printf("\nthenumberhasexist,pressangkeycontinue:\n"); flag=0; getch(); continue; else strcpy(data.xuehao,sn); printf("Pleaseinputname:"); gets(); printf("Pleaseinputsex:M(male)/F(female):\n"); gets(data.sex); printf("PleaseinputyourdormitoryNo:"); gets(data.d_num); printf("PleaseinputtelephoneNumber:"); gets(data.tel_num); fwrite(&data,sizeof(data),1,fp);//寫入數據 fclose(fp); }//if elseif(ch=='s'||ch=='S') if((fp1=fopen("s_score.txt","at+"))==NULL||(fp=fopen("s_info.txt","rt"))==NULL) printf("cannotopenthisfile.\n"); getch();exit(0); printf("\nPleaseinputxuehao:"); gets(sn); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(sn,data.xuehao)==0) { flag=1; if(!flag) { printf("\nthisnumberisnotexist\n"); continue; else {flag=0; strcpy(course_data.xuehao,sn); printf("\nPleaseinputcourseNo:"); gets(course_data.course_No); printf("\nPleaseinputcoursename:"); gets(course_data.course_name); printf("\nPleaseinputcoursexuefeng:"); gets(temp); course_data.xuefen=atof(temp); printf("\nPleaseinputpingshichengji:"); gets(temp); course_data.p_chengji=atof(temp); printf("\nPleaseinputshiyanchengji:"); gets(temp); course_data.s_chengji=atof(temp); printf("\nPleaseinputjuanmianchengji:"); gets(temp); course_data.j_chengji=atof(temp); //以下是綜合成績計算 if(course_data.s_chengji==-1)//如果有實驗 course_data.z_chengji=(course_data.p_chengji)*0.3+(course_data.j_chengji)*0.7; else//如果無實驗 course_data.z_chengji=(course_data.p_chengji)*0.15+(course_data.s_chengji)*0.15+(course_data.j_chengji)*0.7; //以下是實際學分計算 if((course_data.z_chengji)<60) {course_data.s_xuefen=0;} elseif((course_data.z_chengji)<70) {course_data.s_xuefen=course_data.xuefen*0.6;} elseif((course_data.z_chengji)<80) {course_data.s_xuefen=course_data.xuefen*0.75;} elseif((course_data.z_chengji)<90) {course_data.s_xuefen=course_data.xuefen*0.8;} else {course_data.s_xuefen=course_data.xuefen; fwrite(&course_data,sizeof(course_data),1,fp1);//寫入數據 fclose(fp1); fclose(fp); } //elseif else {break; printf("anothery/n"); ch=getch(); if(ch=='n'||ch=='N') break;} //inputvoidsearch() printf("\nselectform:a(studentinformation)b(socreinformation)"); ch=getch(); if(ch=='a'||ch=='A') if((fp=fopen("s_info.txt","rt"))==NULL) printf("\nCannotopenthisfile.\n"); exit(0); printf("\nselectway:a(studentNumber)b(studentname)c(dormitoryNO):\n"); ch1=getch(); //按照學號查找 if(ch1=='a'||ch1=='A') printf("\npleaseinputthestudentnumber:"); gets(temp_NO); printf("xuehaonamesexsushehaotelephone"); printf("\n------------------------------------------------------------------------------\n"); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(temp_NO,data.xuehao)==0) { flag=1; printf("\n%8s%10s%12s%14s%20s\n",data.xuehao,,data.sex,data.d_num,data.tel_num); if(!flag) { printf("\nthisnumberisnotexist,pressanykeytocontinue\n"); getch(); else { flag=0;//按照名字查找 elseif(ch1=='b'||ch1=='B') printf("\npleaseinputthename:"); gets(temp_name); printf("xuehaonamesexsushehaotelephone"); printf("\n------------------------------------------------------------------------------\n"); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(temp_name,)==0) { flag=1; printf("\n%8s%10s%12s%14s%20s\n",data.xuehao,,data.sex,data.d_num,data.tel_num); if(!flag) { printf("\nthisnameisnotexist,pressanykeytocontinue:\n"); getch(); else { flag=0; //按照宿舍號碼查找 elseif(ch1=='c'||ch1=='C') printf("\npleaseinputthedormitorynumber:"); gets(temp_dnum); printf("xuehaonamesexsushehaotelephone"); printf("\n------------------------------------------------------------------------------\n"); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(temp_dnum,data.d_num)==0) { flag=1; printf("\n%8s%10s%12s%14s%20s\n",data.xuehao,,data.sex,data.d_num,data.tel_num); if(!flag) { printf("thisdormitoryisnotexist,pressanykeycontinue:"); getch(); else flag=0; else {printf("\nselecterror\n"); fclose(fp); } //chif //學生成績查找 elseif(ch=='b'||ch=='B') j=0; z_fen=0; z_xuefen=0; if((fp1=fopen("s_score.txt","rt"))==NULL) printf("\nCannotopenthisfile.\n"); exit(0); printf("\npleaseinputstudentnumber:"); gets(temp_NO); printf("xuehaocourse_Nocourse_name xuefen chengji"); printf("\n------------------------------------------------------------------------------\n"); while((fread(&course_data,sizeof(course_data),1,fp1))==1) if(strcmp(temp_NO,course_data.xuehao)==0) { flag=1; j++; z_fen=z_fen+course_data.z_chengji; z_xuefen=z_xuefen+course_data.s_xuefen; printf("\n%10s%10s%10s%15.1f%18.1f\n",course_data.xuehao,course_data.course_No,course_data.course_name,course_data.s_xuefen,course_data.z_chengji); if(!flag) { printf("isnotexist"); else flag=0; printf("\n------------------------------------------------------------------------------\n"); printf("z_gong:%3dkez_xuefen:%3.1fz_chengji:%6.1f",j,z_xuefen,z_fen); else printf("error");fclose(fp1);} //searchvoiddelete() printf("\ninputthenumberofstudentyouwanttodelete:"); gets(temp_NO); if((fp1=fopen("s_score.txt","rt"))==NULL||(fp=fopen("s_info.txt","rt"))==NULL||(fp2=fopen("temp.txt","wt+"))==NULL) printf("cannotopenthisfile.\n"); getch();exit(0); while((fread(&data,sizeof(data),1,fp))==1) if(strcmp(temp_NO,data.xuehao)!=0) fwrite(&data,sizeof(data),1,fp2); remove("s_info.txt"); rename("temp.txt","s_info.txt"); fclose(fp); fclose(fp2); if((fp1=fopen("s_score.txt","rt"))==NULL||(fp2=fopen("temp.txt","wt+"))==NULL) printf("cannotopenthisfile.\n"); getch();exit(0); while((fread(&course_data,sizeof(course_data),1,fp1))==1) if(strcmp(temp_NO,course_data.xuehao)!=0) fwrite(&course_data,sizeof(course_data),1,fp2); remove("s_score.txt"); rename("temp.txt","s_score.txt"); fclose(fp1); fclose(fp2); printf("\ndeletesuccessful");voidsort() printf("\npleaseinputcoursenumber:"); gets(tempcn); if((fp1=fopen("s_score.txt","rt"))==NULL) printf("cannotopenthisfile.\n"); getch();exit(0); i=0; while((fread(&course_data,sizeof(course_data),1,fp1))==1) if(strcmp(tempcn,course_data.course_No)==0) s_course[i]=course_data; i++; flag=1; if(!flag) printf("\nnosuchcourse\n"); else flag=0; printf("\npleaseselectway:a(xuefen)b(zhonghechengji)\n"); ch=getch(); printf("\nselect:s(shengxu)j(jiangxu)"); ch1=getch(); if(ch=='a'||ch=='A') //升序排列 if(ch1=='s') for(j=0;j<i-1;j++) for(k=j;k<i;k++) if(s_course[j].s_xuefen>s_course[k].s_xuefen) temp_course=s_course[j]; s_course[j]=s_course[k]; s_course[k]=temp_course; printf("\n\nxuehaocourse_numbercourse_namexuefenchengji\n"); printf("\n----------------------------------------------------------------\n"); for(j=0;j<i;j++) printf("\n%6s%10s%16s%13.1f%13.1f\n",s_course[j].xuehao,s_course[j].course_No,s_course[j].course_name,s_course[j].s_xuefen,s_course[j].z_chengji); //降序排列 else for(j=0;j<i-1;j++) for(k=j;k<i;k++) if(s_course[j].s_xuefen<s_course[k].s_xuefen) temp_course=s_course[j]; s_course[j]=s_course[k]; s_course[k]=temp_course; printf("\n\nxuehaocourse_numbercourse_namexuefenchengji\n"); printf("\n----------------------------------------------------------------\n"); for(j=0;j<i;j++) printf("\n%6s%10s%16s%13.1f%13.1f\n",s_course[j].xuehao,s_course[j].co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論