版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)(實(shí)習(xí)、實(shí)訓(xùn))報(bào)告課程(項(xiàng)目)名稱:程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)學(xué)院:專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):_________學(xué)號(hào):______姓名:成績(jī):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. 個(gè)人總結(jié) 5五、參考資料 6六、評(píng)語 6一、問題定義實(shí)訓(xùn)題目10:學(xué)生宿舍管理系統(tǒng)系統(tǒng)至少應(yīng)該包含以下功能,鼓勵(lì)在此基礎(chǔ)上進(jìn)行完善創(chuàng)新:該系統(tǒng)只有合法用戶才能登陸,登陸成功后,顯示系統(tǒng)功能提示信息,如圖a所示。選擇主菜單中的1,添加學(xué)生住宿信息,學(xué)生住宿信息包括學(xué)號(hào)、姓名、性別、年齡、班級(jí)、宿舍樓、樓層號(hào)、宿舍號(hào)等。選擇主菜單中的2、3,可以根據(jù)學(xué)號(hào)對(duì)學(xué)生住宿信息進(jìn)行修改和刪除操作。選擇主菜單中的4會(huì)輸出所有住宿學(xué)生的信息。選擇主菜單中的5會(huì)打開子菜單如圖b所示。根據(jù)不同關(guān)鍵字查詢學(xué)生住宿信息。選擇主菜單中的6會(huì)打開子菜單,如圖c所示,可以對(duì)住宿信息進(jìn)行多種統(tǒng)計(jì),如輸入要統(tǒng)計(jì)的宿舍號(hào),輸出該宿舍里的所有成員,并顯示宿舍里的總?cè)藬?shù)。在主菜單中選擇0顯示結(jié)束信息“感謝使用本軟件”,按任意鍵后退出系統(tǒng)。菜單要求:主菜單和子菜單能夠循環(huán),每一項(xiàng)菜單執(zhí)行之后詢問用戶是否繼續(xù)進(jìn)行,從子菜單可以返回到主菜單。如需要其它菜單請(qǐng)自行設(shè)計(jì)。1.添加學(xué)生住宿信息2.1.添加學(xué)生住宿信息2.瀏覽學(xué)生住宿信息3.查詢學(xué)生住宿信息4.修改學(xué)生住宿信息5.刪除學(xué)生住宿信息6.統(tǒng)計(jì)住宿信息0.退出系統(tǒng)圖a1.按學(xué)號(hào)查詢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ù)組:用來存放編號(hào) charS_name[10];//字符數(shù)組:用來存放姓名 charsex[10];//字符數(shù)組:用來存放學(xué)生性別 charB_num[10];//字符數(shù)組:用于存放宿舍樓號(hào) charF_num[10];//字符數(shù)組:用于存放樓層 charD_num[10];//字符數(shù)組:用于存放宿舍號(hào)定義字符變量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é)號(hào)查詢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é)號(hào)刪除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ù)(從鍵盤上輸入一個(gè)數(shù)字,打開對(duì)應(yīng)的功能)intmain(void){ mainmenu(); return0;}voidmyprint(){ system("cls");//清屏 printf("||\n"); printf("|請(qǐng)輸入選項(xiàng)編號(hào)(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();//在控制臺(tái)打印顯示操作主界面 printf(""); choose=getch();//從控制臺(tái)無回顯地取一個(gè)字符 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ù),打印對(duì)應(yīng)的功能界面voidmyprint(){ system("cls");//清屏 printf("||\n"); printf("|請(qǐng)輸入選項(xiàng)編號(hào)(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("|請(qǐng)輸入選項(xiàng)編號(hào)(0-5):|\n"); printf("||\n"); printf("|1--按學(xué)號(hào)查詢 |\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("|請(qǐng)輸入選項(xiàng)編號(hào)(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í)行控制臺(tái)命令cls,就是CMD下面的cls,功能是清屏,清除所有顯示的信息。 printf("\n請(qǐng)輸入第1個(gè)記錄:\n"); printf("學(xué)號(hào)(用#結(jié)束輸入):"); do//該循環(huán)確保學(xué)號(hào)不能為空 { gets(temp.num);//gets()函數(shù)和scanf()函數(shù)都可用于輸入字符串:gets可以接收空格;而scanf遇到空格、回車和Tab鍵都會(huì)認(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("樓層號(hào)(用#結(jié)束輸入):"); gets(temp.F_num); printf("宿舍號(hào)(用#結(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請(qǐng)輸入第%d個(gè)記錄:\n",i); printf("學(xué)號(hào)(用#結(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é)號(hào)姓名性別宿舍樓樓層號(hào)宿舍號(hào)\n");printf("\n"); while(feof(fp)==0)//feof(fp):檢測(cè)流上的文件結(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個(gè)記錄!\n",n); fclose(fp);}(4)查詢函數(shù),查詢已有的記錄voidmysearch(){ charchoose='\0',yes_no='\0'; do { myprint1();//在控制臺(tái)打印顯示操作主界面 printf(""); choose=getch();//從控制臺(tái)無回顯地取一個(gè)字符 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請(qǐng)輸入要查詢記錄的學(xué)號(hào):"); gets(tempnum);//從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù)??梢詿o限讀取,不會(huì)判斷上限,以回車結(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é)號(hào)姓名性別宿舍樓樓層宿舍\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請(qǐng)輸入要查詢記錄的姓名:"); gets(tempname);//控制臺(tái)輸入姓名并存放到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é)號(hào)姓名性別宿舍樓樓層宿舍\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請(qǐng)輸入要查詢記錄的宿舍樓:"); gets(tempname);//控制臺(tái)輸入姓名并存放到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é)號(hào)姓名性別宿舍樓樓層宿舍\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請(qǐng)輸入要查詢記錄的樓層:"); gets(tempname);//控制臺(tái)輸入姓名并存放到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é)號(hào)姓名性別宿舍樓樓層宿舍\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請(qǐng)輸入要查詢記錄的宿舍:"); gets(tempname);//控制臺(tái)輸入姓名并存放到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é)號(hào)姓名性別宿舍樓樓層宿舍\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請(qǐng)輸入要修改記錄的學(xué)號(hào):"); 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請(qǐng)輸入正確的學(xué)號(hào):"); do { gets(temp.num); }while(strcmp(temp.num,"")==0); printf("請(qǐng)輸入正確的姓名:"); gets(temp.S_name); printf("請(qǐng)輸入正確的性別:"); gets(temp.sex); printf("請(qǐng)輸入正確的宿舍樓:"); gets(temp.B_num); printf("請(qǐng)輸入正確的樓層:"); gets(temp.F_num); printf("請(qǐng)輸入正確的宿舍:"); gets(temp.D_num); for(p=record;p<record+n;p++) if((strcmp(temp.num,p->num)==0)&&(p!=find)) { printf("\n學(xué)號(hào)重復(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ào)刪除(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請(qǐng)輸入要?jiǎng)h除記錄的學(xué)號(hào):");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請(qǐng)輸入要?jiǎng)h除記錄的姓名:");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ù),可按照宿舍,宿舍樓,樓層號(hào)統(tǒng)計(jì)voidmycount(){charchoose='\0',yes_no='\0'; do { myprint2();//在控制臺(tái)打印顯示操作子界面 printf(""); choose=getch();//從控制臺(tái)無回顯地取一個(gè)字符 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請(qǐng)輸入要查詢記錄的宿舍:"); gets(tempB_num);//從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù)??梢詿o限讀取,不會(huì)判斷上限,以回車結(jié)束讀取.換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為'\0'空字符,并由此來結(jié)束字符串。 printf("學(xué)號(hào)姓名性別宿舍樓樓層號(hào)宿舍號(hào)\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請(qǐng)輸入要查詢記錄的宿舍樓:"); gets(tempF_num);//從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù)??梢詿o限讀取,不會(huì)判斷上限,以回車結(jié)束讀取.換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為'\0'空字符,并由此來結(jié)束字符串。 printf("學(xué)號(hào)姓名性別宿舍樓樓層號(hào)宿舍號(hào)\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號(hào)樓入住的學(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請(qǐng)輸入要查詢記錄的樓層號(hào):"); gets(tempD_num);//從標(biāo)準(zhǔn)輸入設(shè)備讀字符串函數(shù)??梢詿o限讀取,不會(huì)判斷上限,以回車結(jié)束讀取.換行符不作為讀取串的內(nèi)容,讀取的換行符被轉(zhuǎn)換為'\0'空字符,并由此來結(jié)束字符串。 printf("學(xué)號(hào)姓名性別宿舍樓樓層號(hào)宿舍號(hào)\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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版苗圃苗木線上線下銷售渠道合作協(xié)議4篇
- 2025年度個(gè)人房產(chǎn)抵押貸款還款協(xié)議書模板4篇
- 2025年度航空航天模具研發(fā)制造合同4篇
- 二零二五版豪華車型購車指標(biāo)使用權(quán)租賃協(xié)議3篇
- 2025年物業(yè)廣告位租賃與環(huán)保理念推廣合作協(xié)議3篇
- 2025版企業(yè)內(nèi)部員工技能培訓(xùn)學(xué)員協(xié)議3篇
- 2025年環(huán)保打印機(jī)購銷合同綠色環(huán)保版4篇
- 個(gè)人招標(biāo)工作心得:2024年實(shí)踐與思考3篇
- 二零二五年度航空器租賃合同租賃期限與維護(hù)保養(yǎng)責(zé)任4篇
- 2025年農(nóng)業(yè)大棚租賃與智能灌溉系統(tǒng)安裝合同4篇
- 開展課外讀物負(fù)面清單管理的具體實(shí)施舉措方案
- 2025年云南中煙工業(yè)限責(zé)任公司招聘420人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025-2030年中國(guó)洗衣液市場(chǎng)未來發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(解析版)
- 2023年江蘇省南京市中考化學(xué)真題
- 供電副所長(zhǎng)述職報(bào)告
- 校園欺凌問題成因及對(duì)策分析研究論文
- 技術(shù)支持資料投標(biāo)書
- 老年人意外事件與與預(yù)防
- 預(yù)防艾滋病、梅毒和乙肝母嬰傳播轉(zhuǎn)介服務(wù)制度
- 《高速鐵路客運(yùn)安全與應(yīng)急處理》課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論