c語言實(shí)訓(xùn)報(bào)告宿舍管理系統(tǒng)_第1頁
c語言實(shí)訓(xùn)報(bào)告宿舍管理系統(tǒng)_第2頁
c語言實(shí)訓(xùn)報(bào)告宿舍管理系統(tǒng)_第3頁
c語言實(shí)訓(xùn)報(bào)告宿舍管理系統(tǒng)_第4頁
c語言實(shí)訓(xùn)報(bào)告宿舍管理系統(tǒng)_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

實(shí)驗(yàn)(實(shí)習(xí)、實(shí)訓(xùn))報(bào)告課程(項(xiàng)目)名稱:程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)學(xué)院:專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級:_________學(xué)號:______姓名:成績:2015年7月2日目錄一、問題定義 3二、算法設(shè)計(jì) 31. 模塊圖 32. 數(shù)據(jù)結(jié)構(gòu) 33. 菜單設(shè)計(jì) 34. 功能模塊函數(shù)設(shè)計(jì) 35. 流程圖設(shè)計(jì) 36. 程序代碼設(shè)計(jì) 4三、系統(tǒng)運(yùn)行結(jié)果及說明 5四、課程設(shè)計(jì)總結(jié) 51. 遇到的問題及解決方法 52. 個人總結(jié) 5五、參考資料 6六、評語 6一、問題定義實(shí)訓(xùn)題目10:學(xué)生宿舍管理系統(tǒng)系統(tǒng)至少應(yīng)該包含以下功能,鼓勵在此基礎(chǔ)上進(jìn)行完善創(chuàng)新:該系統(tǒng)只有合法用戶才能登陸,登陸成功后,顯示系統(tǒng)功能提示信息,如圖a所示。選擇主菜單中的1,添加學(xué)生住宿信息,學(xué)生住宿信息包括學(xué)號、姓名、性別、年齡、班級、宿舍樓、樓層號、宿舍號等。選擇主菜單中的2、3,可以根據(jù)學(xué)號對學(xué)生住宿信息進(jìn)行修改和刪除操作。選擇主菜單中的4會輸出所有住宿學(xué)生的信息。選擇主菜單中的5會打開子菜單如圖b所示。根據(jù)不同關(guān)鍵字查詢學(xué)生住宿信息。選擇主菜單中的6會打開子菜單,如圖c所示,可以對住宿信息進(jìn)行多種統(tǒng)計(jì),如輸入要統(tǒng)計(jì)的宿舍號,輸出該宿舍里的所有成員,并顯示宿舍里的總?cè)藬?shù)。在主菜單中選擇0顯示結(jié)束信息“感謝使用本軟件”,按任意鍵后退出系統(tǒng)。菜單要求:主菜單和子菜單能夠循環(huán),每一項(xiàng)菜單執(zhí)行之后詢問用戶是否繼續(xù)進(jìn)行,從子菜單可以返回到主菜單。如需要其它菜單請自行設(shè)計(jì)。1.添加學(xué)生住宿信息2.1.添加學(xué)生住宿信息2.瀏覽學(xué)生住宿信息3.查詢學(xué)生住宿信息4.修改學(xué)生住宿信息5.刪除學(xué)生住宿信息6.統(tǒng)計(jì)住宿信息0.退出系統(tǒng)圖a1.按學(xué)號查詢2.按姓名查詢3.按宿舍樓查詢4.按樓層查詢5.按宿舍查詢6.返回0.退出系統(tǒng)圖b1.按宿舍統(tǒng)計(jì)2.按樓層統(tǒng)計(jì)3.按宿舍樓統(tǒng)計(jì)4.返回0.退出系統(tǒng)圖c二、算法設(shè)計(jì)模塊圖數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)體structstudent{ charnum[10];//字符數(shù)組:用來存放編號 charS_name[10];//字符數(shù)組:用來存放姓名 charsex[10];//字符數(shù)組:用來存放學(xué)生性別 charB_num[10];//字符數(shù)組:用于存放宿舍樓號 charF_num[10];//字符數(shù)組:用于存放樓層 charD_num[10];//字符數(shù)組:用于存放宿舍號定義字符變量charchoose='\0',yes_no='\0';choose用來存放選擇,yes_no判斷是否繼續(xù);定義整形變量inti,n,flag;其中i,n為循環(huán)變量,flag為標(biāo)記變量菜單設(shè)計(jì)主菜單子菜單1查找住宿信息子菜單2統(tǒng)計(jì)住宿情況功能模塊函數(shù)設(shè)計(jì)1.voidmyprint();//用于打印主菜單2.voidmyprint1();//用于打印查詢子菜單3.voidmyprint2();//用于打印統(tǒng)計(jì)子菜單4.voidmycreate();//創(chuàng)建新紀(jì)錄5.voidmydisplay();//顯示記錄6.voidmysearch();//查詢功能7.voidsch_num();//按學(xué)號查詢8.voidsch_S_name();//按姓名查詢9.voidsch_sex();//按性別查詢10.voidsch_B_num();//按宿舍樓查詢11.voidsch_F_num();//按樓層查詢12.voidsch_D_num();//按宿舍查詢13.voidmymodify();//修改功能14.voidmyadd();//添加功能15.voidmydelete();//刪除功能16.voiddel_S_name();//按姓名刪除17.voiddel_num();//按學(xué)號刪除18.voidmycount();//統(tǒng)計(jì)功能19.voidcount_B_num();//按宿舍樓統(tǒng)計(jì)20.voidcount_D_num();//按宿舍統(tǒng)計(jì)21.voidcount_F_num();//按樓層統(tǒng)計(jì)22.voidmainmenu();//主菜單1.主函數(shù)(從鍵盤上輸入一個數(shù)字,打開對應(yīng)的功能)intmain(void){ mainmenu(); return0;}voidmyprint(){ system("cls");//清屏 printf("||\n"); printf("|請輸入選項(xiàng)編號(0-7):|\n"); printf("||\n"); printf("|1--添加學(xué)生住宿信息 |\n"); printf("|2--瀏覽學(xué)生住宿信息|\n"); printf("|3--查詢住宿信息 |\n"); printf("|4--修改學(xué)生住宿信息 |\n"); printf("|5--刪除學(xué)生住宿信息|\n"); printf("|6--統(tǒng)計(jì)住宿信息 |\n"); printf("|0--退出系統(tǒng)|\n"); printf("||\n");}voidmainmenu(){ charchoose='\0',yes_no='\0'; do { myprint();//在控制臺打印顯示操作主界面 printf(""); choose=getch();//從控制臺無回顯地取一個字符 switch(choose)//根據(jù)用戶鍵入的字符選擇不同的操作 { case'1':mycreate();break; case'2':mydisplay();break; case'3':mysearch();break; case'4':mymodify();break; case'5':myprint2(); mydelete();break; case'6':mycount();break; case'0':printf("感謝制作人李抽抽!\n"); exit(0); default:printf("\n%c為非法選項(xiàng)!\n",choose); } printf("\n要繼續(xù)選擇嗎(Y/N)?\n"); do { yes_no=getche(); }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y');}2.功能函數(shù)(1)打印函數(shù),打印對應(yīng)的功能界面voidmyprint(){ system("cls");//清屏 printf("||\n"); printf("|請輸入選項(xiàng)編號(0-7):|\n"); printf("||\n"); printf("|1--添加學(xué)生住宿信息 |\n"); printf("|2--瀏覽學(xué)生住宿信息|\n"); printf("|3--查詢住宿信息 |\n"); printf("|4--修改學(xué)生住宿信息 |\n"); printf("|5--刪除學(xué)生住宿信息|\n"); printf("|6--統(tǒng)計(jì)住宿信息 |\n"); printf("|0--退出系統(tǒng)|\n"); printf("||\n");}voidmyprint1(){ system("cls");//清屏 printf("||\n"); printf("|請輸入選項(xiàng)編號(0-5):|\n"); printf("||\n"); printf("|1--按學(xué)號查詢 |\n"); printf("|2--按姓名查詢 |\n"); printf("|3--按宿舍樓查詢 |\n"); printf("|4--按樓層查詢|\n"); printf("|5--按宿舍查詢|\n"); printf("|6--返回 |\n"); printf("|0--退出系統(tǒng)|\n"); printf("||\n");}voidmyprint2(){ system("cls");//清屏 printf("||\n"); printf("|請輸入選項(xiàng)編號(0-4):|\n"); printf("||\n"); printf("|1--按宿舍統(tǒng)計(jì) |\n"); printf("|2--按樓層統(tǒng)計(jì) |\n"); printf("|3--按宿舍樓統(tǒng)計(jì) |\n"); printf("|4--返回 |\n"); printf("|0--退出系統(tǒng)|\n"); printf("||\n");}(2)添加函數(shù),添加學(xué)生宿舍記錄voidmycreate(){ inti=1; structstudenttemp={0}; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","w");//以寫方式打開文件。 if(fp==NULL) { printf("\n打開文件失??!\n"); exit(0); } system("cls");//執(zhí)行控制臺命令cls,就是CMD下面的cls,功能是清屏,清除所有顯示的信息。 printf("\n請輸入第1個記錄:\n"); printf("學(xué)號(用#結(jié)束輸入):"); do//該循環(huán)確保學(xué)號不能為空 { gets(temp.num);//gets()函數(shù)和scanf()函數(shù)都可用于輸入字符串:gets可以接收空格;而scanf遇到空格、回車和Tab鍵都會認(rèn)為輸入結(jié)束,所有它不能接收空格。 }while(strcmp(temp.num,"")==0); printf("姓名(用#結(jié)束輸入):"); gets(temp.S_name); printf("性別(用#結(jié)束輸入):"); gets(temp.sex); printf("宿舍樓(用#結(jié)束輸入):"); gets(temp.B_num); printf("樓層號(用#結(jié)束輸入):"); gets(temp.F_num); printf("宿舍號(用#結(jié)束輸入):"); gets(temp.D_num); while(temp.num[0]!='#'&&temp.S_name[0]!='#'&&temp.sex[0]!='#'&&temp.B_num[0]!='#'&&temp.F_num[0]!='#'&&temp.D_num[0]!='#')//全部輸入#時(shí),結(jié)束輸入 { fprintf(fp,"%18s%9s%9s%9s%9s%9s\n",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num); i++; printf("\n請輸入第%d個記錄:\n",i); printf("學(xué)號(用#結(jié)束輸入):"); do { gets(temp.num); }while(strcmp(temp.num,"")==0); printf("姓名(用#結(jié)束輸入):"); gets(temp.S_name); printf("性別(用#結(jié)束輸入):"); gets(temp.sex); printf("宿舍樓(用#結(jié)束輸入):"); gets(temp.B_num); printf("樓層(用#結(jié)束輸入):"); gets(temp.F_num); printf("宿舍(用#結(jié)束輸入):"); gets(temp.D_num); } fclose(fp);}顯示函數(shù),顯示已有的記錄voidmydisplay(){ intn=0; structstudenttemp={0}; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r");//以只讀方式打開文件JiLu.dat if(fp==NULL)//如果文件不存在,則退出程序 { printf("\n打開文件失??!\n"); exit(0); } system("cls");//清屏 printf("學(xué)號姓名性別宿舍樓樓層號宿舍號\n");printf("\n"); while(feof(fp)==0)//feof(fp):檢測流上的文件結(jié)束符,如果文件結(jié)束,則返回非0值,否則返回0 { fscanf(fp,"%18s%9s%9s%9s%9s%9s\n",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num); printf("%18s%9s%9s%9s%9s%9s\n",temp.num,temp.S_name,temp.B_num,temp.F_num,temp.D_num); n++; } if(n==0) printf("\n文件中無記錄!\n"); else printf("\n文件中共有%d個記錄!\n",n); fclose(fp);}(4)查詢函數(shù),查詢已有的記錄voidmysearch(){ charchoose='\0',yes_no='\0'; do { myprint1();//在控制臺打印顯示操作主界面 printf(""); choose=getch();//從控制臺無回顯地取一個字符 switch(choose)//根據(jù)用戶鍵入的字符選擇不同的操作 { case'1':sch_num();break; case'2':sch_S_name();break; case'3':sch_B_num();break; case'4':sch_F_num();break; case'5':sch_D_num();break; case'6':mainmenu();break; myprint2(); mycount();break; case'0':printf("感謝制作人李抽抽!\n"); exit(0); default:printf("\n%c為非法選項(xiàng)!\n",choose); } printf("\n要繼續(xù)選擇嗎(Y/N)?\n"); do { yes_no=getche(); }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y');}voidsch_num(){ intflag=0,n=0; chartempnum[10]=""; structstudenttemp={0}; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r"); if(fp==NULL) { printf("\n打開文件失??!\n"); exit(0); } printf("\n請輸入要查詢記錄的學(xué)號:"); gets(tempnum);//從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù)??梢詿o限讀取,不會判斷上限,以回車結(jié)束讀取.換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為‘\0’空字符,并由此來結(jié)束字符串。 while(feof(fp)==0) { fscanf(fp,"%18s%9s%9s%9s%9s%9s\n",&temp.num,&temp.S_name,&temp.sex,&temp.B_num,&temp.F_num,&temp.D_num);//讀數(shù)據(jù) if(strcmp(tempnum,temp.num)==0)//匹配:即找到結(jié)果 { if(flag==0) printf("學(xué)號姓名性別宿舍樓樓層宿舍\n"); printf("%18s%9s%9s%9s%9s%9s\n",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num); flag=1; } n++; } if(n==0) printf("\n文件中無記錄!\n"); elseif(flag==0) printf("\n文件中無此人!\n"); fclose(fp);}voidsch_S_name(){ intflag=0,n=0; chartempname[10]=""; structstudenttemp={0}; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r"); if(fp==NULL) { printf("\n打開文件失?。n"); exit(0); } printf("\n請輸入要查詢記錄的姓名:"); gets(tempname);//控制臺輸入姓名并存放到tempname中 while(feof(fp)==0) { fscanf(fp,"%18s%9s%9s%9s%9s%9s\n",&temp.num,&temp.S_name,&temp.sex,&temp.B_num,&temp.F_num,&temp.D_num);//讀數(shù)據(jù) if(strcmp(tempname,temp.S_name)==0) { if(flag==0) printf("學(xué)號姓名性別宿舍樓樓層宿舍\n"); printf("%18s%9s%9s%9s%9s%9s\n",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num); flag=1; n++; } if(n==0) printf("\n文件中無記錄!\n");elseif(flag==0) printf("\n文件中無此人!\n");// fclose(fp); }}voidsch_B_num(){ intflag=0,n=0; chartempname[10]=""; structstudenttemp={0}; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r"); if(fp==NULL) { printf("\n打開文件失??!\n"); exit(0); } printf("\n請輸入要查詢記錄的宿舍樓:"); gets(tempname);//控制臺輸入姓名并存放到tempname中 while(feof(fp)==0) { fscanf(fp,"%18s%9s%9s%9s%9s%9s\n",&temp.num,&temp.S_name,&temp.sex,&temp.B_num,&temp.F_num,&temp.D_num);//讀數(shù)據(jù) if(strcmp(tempname,temp.B_num)==0) { if(flag==0) printf("學(xué)號姓名性別宿舍樓樓層宿舍\n"); printf("%18s%9s%9s%9s%9s%9s\n",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num); flag=1; n++; } if(n==0) printf("\n文件中無記錄!\n"); elseif(flag==0) printf("\n文件中無此人!\n");// fclose(fp); }}voidsch_F_num(){ intflag=0,n=0; chartempname[10]=""; structstudenttemp={0}; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r"); if(fp==NULL) { printf("\n打開文件失?。n"); exit(0); } printf("\n請輸入要查詢記錄的樓層:"); gets(tempname);//控制臺輸入姓名并存放到tempname中 while(feof(fp)==0) { fscanf(fp,"%18s%9s%9s%9s%9s%9s\n",&temp.num,&temp.S_name,&temp.sex,&temp.B_num,&temp.F_num,&temp.D_num);//讀數(shù)據(jù) if(strcmp(tempname,temp.F_num)==0) { if(flag==0) printf("學(xué)號姓名性別宿舍樓樓層宿舍\n"); printf("%18s%9s%9s%9s%9s%9s",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num); flag=1; n++; } if(n==0) printf("\n文件中無記錄!\n"); elseif(flag==0) printf("\n文件中無此人!\n"); // fclose(fp); }}voidsch_D_num(){ intflag=0,n=0; chartempname[10]=""; structstudenttemp={0}; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r"); if(fp==NULL) { printf("\n打開文件失?。n"); exit(0); } printf("\n請輸入要查詢記錄的宿舍:"); gets(tempname);//控制臺輸入姓名并存放到tempname中 while(feof(fp)==0) { fscanf(fp,"%18s%9s%9s%9s%9s%9s\n",&temp.num,&temp.S_name,&temp.sex,&temp.B_num,&temp.F_num,&temp.D_num);//讀數(shù)據(jù) if(strcmp(tempname,temp.D_num)==0) { if(flag==0) printf("學(xué)號姓名性別宿舍樓樓層宿舍\n"); printf("%18s%9s%9s%9s%9s%9s\n",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num); flag=1; n++; } if(n==0) printf("\n文件中無記錄!\n"); elseif(flag==0) printf("\n文件中無此人!\n"); // fclose(fp); }}修改函數(shù),修改已有的記錄voidmymodify(){ charc='\0';intn=0; structstudent*find=NULL,temp={0},record[100]={0},*p=NULL; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r"); if(fp==NULL) { printf("\n打開文件失敗!\n"); exit(0); } p=record; while(feof(fp)==0) { fscanf(fp,"%18s%9s%9s%9s%9s%9s\n",p->num,p->S_name,p->B_num,p->F_num,p->D_num); p++; n++; } fclose(fp); if(n==0) { printf("\n文件中無記錄!\n"); return; } printf("\n請輸入要修改記錄的學(xué)號:"); gets(temp.num); for(p=record;p<record+n;p++) if(strcmp(temp.num,p->num)==0) { find=p; break; } if(p==record+n) { printf("\n無此人!\n"); return; } do { printf("\n請輸入正確的學(xué)號:"); do { gets(temp.num); }while(strcmp(temp.num,"")==0); printf("請輸入正確的姓名:"); gets(temp.S_name); printf("請輸入正確的性別:"); gets(temp.sex); printf("請輸入正確的宿舍樓:"); gets(temp.B_num); printf("請輸入正確的樓層:"); gets(temp.F_num); printf("請輸入正確的宿舍:"); gets(temp.D_num); for(p=record;p<record+n;p++) if((strcmp(temp.num,p->num)==0)&&(p!=find)) { printf("\n學(xué)號重復(fù),要重新輸入嗎(Y/N)?"); do { c=getche(); }while(c!='Y'&&c!='y'&&c!='N'&&c!='n'); putchar('\n'); break; } if(p==record+n) { *find=temp; break; } }while(c=='y'||c=='Y'); fp=fopen("D:\\JiLu.dat","w"); if(fp==NULL) { printf("\n打開文件失?。n"); exit(0); } for(p=record;p<record+n;p++) fprintf(fp,"%18s%9s%9s%9s%9s%9s\n",&temp.num,&temp.S_name,&temp.sex,&temp.B_num,&temp.F_num,&temp.D_num); fclose(fp);}(6)刪除函數(shù),刪除已有記錄voidmydelete(){ charc='\0'; printf("\n按學(xué)號刪除(h),還是按姓名刪除(m)?");c=getche(); if(c=='h'||c=='H')del_num(); elseif(c=='m'||c=='M')del_S_name(); elseprintf("\n非法字符!\n");}voiddel_num(){ chartempnum[10]="";intn=0; structstudentrecord[N]={0},*p=NULL,*k=NULL; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r");if(fp==NULL){printf("\n打開文件失??!\n");exit(0);} p=record; while(feof(fp)==0){fscanf(fp,"%18s%9s%9s%9s%9s%9s\n",p->num,p->S_name,p->B_num,p->F_num,p->D_num);p++;n++;} fclose(fp); printf("\n請輸入要刪除記錄的學(xué)號:");gets(tempnum); for(k=record;k<record+n;k++) if(strcmp(tempnum,k->num)==0)break; if(k<record+n) for(p=k;p<k+n-1;p++) *p=*(p+1); elseprintf("\n無此人!\n"); fp=fopen("D:\\JiLu.dat","w"); if(fp==NULL){printf("\n打開文件失?。n");exit(0);} for(p=record;p<record+n-1;p++) fprintf(fp,"%18s%9s%9s%9s%9s%9s\n",p->num,p->S_name,p->B_num,p->F_num,p->D_num); fclose(fp);}voiddel_S_name(){ chartempS_name[10]="";intn=0; structstudentrecord[N]={0},*p=NULL,*k=NULL; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r");if(fp==NULL){printf("\n打開文件失??!\n");exit(0);} p=record; while(feof(fp)==0){ fscanf(fp,"%18s%9s%9s%9s%9s%9s\n",p->num,p->S_name,p->B_num,p->F_num,p->D_num);p++;n++;} fclose(fp); printf("\n請輸入要刪除記錄的姓名:");gets(tempS_name); for(k=record;k<record+n;k++) if(strcmp(tempS_name,k->S_name)==0)break; if(k<record+n) for(p=k;p<k+n-1;p++) *p=*(p+1); elseprintf("\n無此人!\n"); fp=fopen("C:\\JiLu.dat","w"); if(fp==NULL){printf("\n打開文件失?。n");exit(0);} for(p=record;p<record+n-1;p++) fprintf(fp,"%18s%9s%9s%9s%9s%9s\n",p->num,p->S_name,p->B_num,p->F_num,p->D_num); fclose(fp);}(7)統(tǒng)計(jì)函數(shù),可按照宿舍,宿舍樓,樓層號統(tǒng)計(jì)voidmycount(){charchoose='\0',yes_no='\0'; do { myprint2();//在控制臺打印顯示操作子界面 printf(""); choose=getch();//從控制臺無回顯地取一個字符 switch(choose)//根據(jù)用戶鍵入的字符選擇不同的操作 { case'1':count_B_num();break; case'2':count_F_num();break; case'3':count_D_num();break; case'4':mainmenu();break; case'0':printf("感謝制作人李抽抽!\n"); exit(0); default:printf("\n%c為非法選項(xiàng)!\n",choose); } printf("\n要繼續(xù)選擇嗎(Y/N)?\n"); do { yes_no=getche(); }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y');}voidcount_B_num(){ intflag=0,n=0,i=0; chartempB_num[10]=""; structstudenttemp={0}; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r"); if(fp==NULL) { printf("\n打開文件失?。n"); exit(0); } printf("\n請輸入要查詢記錄的宿舍:"); gets(tempB_num);//從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù)??梢詿o限讀取,不會判斷上限,以回車結(jié)束讀取.換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為'\0'空字符,并由此來結(jié)束字符串。 printf("學(xué)號姓名性別宿舍樓樓層號宿舍號\n"); while(feof(fp)==0) { fscanf(fp,"%8s%9s%9s%10s%10s%10s\n",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num);//讀數(shù)據(jù) if(strcmp(tempB_num,temp.B_num)==0)//匹配:即找到結(jié)果 { printf("%8s%9s%9s%10s%10s%10s\n",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num); flag=1; i++; } n++; } if(n==0) printf("\n文件中無記錄!\n"); elseif(flag==0) printf("\n文件中無此人!\n"); elseif(i!=0) printf("\n宿舍中入住的%s班學(xué)生共有%d人",tempB_num,i); fclose(fp);}voidcount_F_num(){ intflag=0,n=0,i=0; chartempF_num[10]=""; structstudenttemp={0}; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r"); if(fp==NULL) { printf("\n打開文件失敗!\n"); exit(0); } printf("\n請輸入要查詢記錄的宿舍樓:"); gets(tempF_num);//從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù)??梢詿o限讀取,不會判斷上限,以回車結(jié)束讀取.換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為'\0'空字符,并由此來結(jié)束字符串。 printf("學(xué)號姓名性別宿舍樓樓層號宿舍號\n"); while(feof(fp)==0) { fscanf(fp,"%8s%9s%9s%10s%10s%10s\n",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num);//讀數(shù)據(jù) if(strcmp(tempF_num,temp.F_num)==0)//匹配:即找到結(jié)果 { printf("%8s%9s%9s%10s%10s%10s\n",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num); flag=1; i++; } n++; } if(n==0) printf("\n文件中無記錄!\n"); elseif(flag==0) printf("\n文件中無此人!\n"); elseif(i!=0) printf("\n宿舍中%s號樓入住的學(xué)生共有%d人",tempF_num,i); fclose(fp);}voidcount_D_num(){ intflag=0,n=0,i=0; chartempD_num[10]=""; structstudenttemp={0}; FILE*fp=NULL; fp=fopen("D:\\JiLu.dat","r"); if(fp==NULL) { printf("\n打開文件失??!\n"); exit(0); } printf("\n請輸入要查詢記錄的樓層號:"); gets(tempD_num);//從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù)。可以無限讀取,不會判斷上限,以回車結(jié)束讀取.換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為'\0'空字符,并由此來結(jié)束字符串。 printf("學(xué)號姓名性別宿舍樓樓層號宿舍號\n"); while(feof(fp)==0) { fscanf(fp,"%8s%9s%9s%10s%10s%10s\n",temp.num,temp.S_name,temp.sex,temp.B_num,temp.F_num,temp.D_num);//讀數(shù)據(jù) if(strcmp(tempD_num,temp.D_num)==0)//匹配:即找到結(jié)果 { printf("%8s%9s%9s%10s%10s%10s\n",temp.num,temp.

溫馨提示

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

評論

0/150

提交評論