




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
西安鄴雷孥院
西安鄴雷孥院C語(yǔ)言課程設(shè)計(jì)報(bào)告書(xianyoudiandaxue)系部名稱電子信息與工程系學(xué)生姓名張倩專業(yè)名稱電子信息工程一班級(jí)電子0701班學(xué)號(hào)05071013指導(dǎo)教師 街霞2008年06月09日至?xí)r間2008年06月20日實(shí)驗(yàn)題目 學(xué)生信息管理系統(tǒng)一、 實(shí)驗(yàn)?zāi)康模海?) 本課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,自學(xué),查資料,獨(dú)立實(shí)踐的機(jī)會(huì)。將本學(xué)期課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來(lái),鍛煉學(xué)生實(shí)際分析問(wèn)題和解決問(wèn)題的能力,提高學(xué)生適應(yīng)實(shí)際、實(shí)踐編程的能力,使對(duì)C語(yǔ)言系統(tǒng)編程有一個(gè)大致的了解。(2) C語(yǔ)言的實(shí)踐。掌握C語(yǔ)言函數(shù)的定義方法,函數(shù)的聲明及函數(shù)的調(diào)用過(guò)程。掌握結(jié)構(gòu)體類型變量的定義和使用,綜合應(yīng)用C語(yǔ)言的知識(shí),實(shí)現(xiàn)一個(gè)完整的系統(tǒng),提高編程能力,體會(huì)軟件程序的開發(fā)過(guò)程。二、 實(shí)驗(yàn)內(nèi)容:(1) 運(yùn)用結(jié)構(gòu)體數(shù)組編輯一個(gè)簡(jiǎn)單的學(xué)生管理系統(tǒng),使之能夠完成學(xué)生信息的創(chuàng)建、添加,查詢、修改,刪除、統(tǒng)計(jì)、排序等操作,并對(duì)文件進(jìn)行保存和讀取。(2) 執(zhí)行編譯操作,并根據(jù)提示調(diào)試此程序,排除所有的錯(cuò)誤和警告。直到編譯成功為止。(3) 執(zhí)行運(yùn)行操作,逐一對(duì)每個(gè)模塊進(jìn)行調(diào)試。直到全部程序運(yùn)行成功為止。(4) 請(qǐng)老師檢查,向老師演練此程序,并能回答老師提出的相關(guān)問(wèn)題。三、 需求分析:(1) 根據(jù)學(xué)生信息管理的需要,建立一個(gè)“學(xué)生信息管理系統(tǒng)”系統(tǒng)具有輸入、輸出、查詢、修改、刪除、統(tǒng)計(jì)、排序等基本功能;以方便對(duì)信息的管理操作。每一條記錄包括一個(gè)學(xué)生的學(xué)號(hào)、姓名、成績(jī)、性別,年齡,出生年月日,家庭住址.系統(tǒng)的各個(gè)功能模塊都用函數(shù)的形式來(lái)實(shí)現(xiàn);可以將學(xué)生成績(jī)信息保存在文件中,并從文件中讀取出來(lái)。有一個(gè)清晰美觀界面來(lái)調(diào)用各個(gè)功能。本程序是由C語(yǔ)言的基本單位一函數(shù)來(lái)設(shè)計(jì)實(shí)現(xiàn)與其功能的多次使用函數(shù)調(diào)用以及函數(shù)的嵌套調(diào)用。本程序分為7個(gè)模塊,分別為創(chuàng)建學(xué)生資料;添加學(xué)生的資料;查詢學(xué)生的成績(jī);修改學(xué)生的資料;刪除學(xué)生的資料;統(tǒng)計(jì)學(xué)生的成績(jī);對(duì)學(xué)生的資料進(jìn)行排序。本程序可以處理多個(gè)學(xué)生的成績(jī)的輸入、添加、修改、排序等問(wèn)題。本程序的使用特別方便,每做完一個(gè)模塊,下面都有提示信息。使用環(huán)境為Tc。(2) 創(chuàng)建該學(xué)生成績(jī)管理系統(tǒng)目的就是能夠?qū)W(xué)生基本信息進(jìn)行創(chuàng)建、追加、查詢、修改、刪除、統(tǒng)計(jì)、排序等功能,這樣可以簡(jiǎn)化許多人工做起來(lái)很復(fù)雜的問(wèn)題。譬如:“排序”,有了此程序只需將信息輸入,計(jì)算機(jī)就可自動(dòng)執(zhí)行,省時(shí)、省力。另外,它還可以重復(fù)使用,方便、快捷。(3) 該學(xué)生基本信息管理系統(tǒng)是在WIN-TC中文簡(jiǎn)體環(huán)境下運(yùn)行。該系統(tǒng)要測(cè)試的數(shù)據(jù)如下:輸入模塊:(輸入5個(gè)學(xué)生的信息)
序號(hào)姓名學(xué)號(hào)成績(jī)年齡性別家庭住址出生年月日01MaryA10019818femaleshandong1988-5-602LindaA10028618fameladalian1988-12-2303TomA10249519malenanshang1988-9-804JimA10258019malebeishang1988-5-2305SusanA10477818femalexishan1988-8-9添加模塊:(再加1個(gè)信息)06KingA10485619malenanjing1989-9-23查詢模塊:(查詢Jim的基本信息)A1024(按學(xué)號(hào)即可查詢)或Jim(按姓名也可查詢)修改模塊:(修改Linda的信息)(輸入)1(修改名字)(輸入)2(修改學(xué)號(hào))(輸入)3(修改成績(jī))(輸入)4(修改性別)(輸入)5(修改年齡)(輸入)6(修改家庭住址)(輸入)7(修改出生年月日)刪除模塊:(刪除King的基本信息)學(xué)號(hào)即可刪除)統(tǒng)計(jì)模塊:可統(tǒng)計(jì)男女人數(shù),統(tǒng)計(jì)各分?jǐn)?shù)段人數(shù)。排序模塊:按成績(jī),學(xué)號(hào),分別進(jìn)行排序。四、概要設(shè)計(jì)(1)主函數(shù)結(jié)構(gòu)圖:(2)模塊功能詳細(xì)說(shuō)明:入、輸入模塊:此模塊可以連續(xù)輸入30個(gè)學(xué)生的資料,若學(xué)生數(shù)少于30,則可以在輸入序號(hào)處輸入0便可退出此模塊,并把輸入的信息保存到c:\\students文件中。B、輸出模塊:此模塊中先打開c:\\students文件中的學(xué)生信息,后輸出要學(xué)生信息."更新模塊:此模塊包括添加,修改,刪除模塊.修改模塊:此模塊中可以修改學(xué)生的任何一個(gè)信息。修改完畢后輸入尸可以繼續(xù)修改,輸入口則退出此模塊。刪除模塊:此模塊中用到的刪除原理為覆蓋要?jiǎng)h除的學(xué)生的資料。過(guò)程簡(jiǎn)述,先輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào),系統(tǒng)找到此學(xué)生的信息后給它復(fù)制下一個(gè)學(xué)生的信息,給下一個(gè)學(xué)生的紀(jì)錄復(fù)制下下一個(gè)學(xué)生的信息,一直到最后一個(gè)學(xué)生的信息復(fù)制給倒數(shù)第二個(gè)學(xué)生的信息為止。然后文件中的學(xué)生總數(shù)減一含了三個(gè)小模塊.添加模塊:此模塊中先打開c:\\students統(tǒng)計(jì)文件中的學(xué)生,后輸入要添加的學(xué)生的學(xué)號(hào),系統(tǒng)確認(rèn)此學(xué)號(hào)在c:\\students不存在時(shí)開始紀(jì)錄新學(xué)生的資料,便清楚使用者。D.查詢模塊:此模塊中使用者可以用三種方式查詢學(xué)生成績(jī)。分別為(1)按學(xué)號(hào)查詢(2)按姓名查詢。在這里以按學(xué)號(hào)查詢?yōu)榱校合冗x擇按學(xué)號(hào)查詢,輸入要查詢的學(xué)生的學(xué)號(hào),系統(tǒng)確認(rèn)此學(xué)號(hào)在c:\\stud存在后讀取信息并在屏幕上輸出學(xué)生紀(jì)錄。F、 排序模塊:此模塊用的為指針。在此模塊中可以按兩種方法進(jìn)行排序,分別為(1)按成績(jī)排序(2)按學(xué)號(hào)排序(3)按序號(hào)排序輸出時(shí)分別以從大到小和從小到大從小到大的循序進(jìn)行輸出。G、 此模塊較簡(jiǎn)單,統(tǒng)計(jì)文件c:\\students中的男和女的學(xué)生個(gè)數(shù)和各成績(jī)段的人數(shù)。五、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果(1)各個(gè)模塊的程序流程圖添加模塊:刪除模塊:排序模塊:
(2)函數(shù)之間相互調(diào)用的圖示:(3)主要函數(shù)之間相互調(diào)用如下:主函數(shù)的調(diào)用:main(){intchoice;sum=read_message();bioskey(0);printf("pressanykeytocontinue:\n");getch();do{**************studentmanagesystemsystem("cls");**************studentmanagesystemprintf("\n\n\n**************\n\n");l.inputmessage\n\n");2.outputmessage\n\n");l.inputmessage\n\n");2.outputmessage\n\n");3.renewmessage\n\n");4.inquiremessage\n\n");5.sortmessage\n\n");printf("printf("printf("printf("printf(" 6.countmessage\n\n");printf(" 0.exitthesystem\n\n");printf(" pleaseselectthechoice");scanf("%d",&choice);switch(choice){case1:input_message();break;case2:output_message();break;case3:renew_message();break;case4:inquire_message();break;case5:sort_message();break;case6:count_message();break;case0:break;}}while(choice!=0);save_message(sum);printf("\n-messagehassaved!-(filename:students.txt)\n");刪除函數(shù)的調(diào)用delete_message()(chardelete_number[10];inti;system("cls");printf("pleaseinputthenumberyouwanttodelete:");scanf("%s”,delete_number);for(i=0;i<sum;i++){if(strcmp(stud[i].number,delete_number)==0){for(;i<sum;i++)stud[i]=stud[i+1];sum=sum-1;printf("themessagehasbeendeleted!");}elseprintf("thestudentisnotexist!");}}
添加函數(shù)的調(diào)用insert_message(){inti=sum,j,flag=0;charchoice;system("cls");printf("\n\n addanewstudent\n");printf(" \n");do{stud[i].num=++sum;printf("\n thenewstudent'snum:%d",stud[i].num);printf("\n thenewstudent'sname:");scanf("%s",stud[i].name);printf("\n thenewstudent'snumber:");scanf("%s",stud[i].number);printf("\n thenewstudent'sscore:");scanf("%d",&stud[i].score);printf("\n thenewstudent'sage:");scanf("%d",&stud[i].age);printf("\n thenewstudent'ssex:");scanf("%s",stud[i].sex);printf("\n thenewstudent'saddress:");scanf("%s",stud[i].address);printf("\n thenewstudent'sbirthday:");scanf("%d %d %d",&stud[i].birthday.year,&stud[i].birthday.month,&stud[i].birthday.(ay);printf("\nDoyouwanttocontinue?(Y/N)");choice=getch();if(choice=='y'||choice=='Y'){printf("\ncontinue!\n");i++;flag=1;}elseflag=0;六、調(diào)試情況,設(shè)計(jì)技巧及體會(huì)(1)、調(diào)試中的問(wèn)題:剛開始沒(méi)有那個(gè)初始化函數(shù),程序運(yùn)行后沒(méi)有輸入任何數(shù)據(jù)就試得去執(zhí)行顯示功能,結(jié)果output_message顯示的是一些亂碼!加入初始化函數(shù)后,這種現(xiàn)象也隨之消失。在輸入函數(shù)中設(shè)了最大值,可以輸入30個(gè)學(xué)生的成績(jī)信息,當(dāng)輸入數(shù)字‘0’時(shí)停止,并保存信息。在沒(méi)有輸入任何信息的情況下,不能執(zhí)行查詢、修改、刪除、統(tǒng)計(jì)、排序功能。有時(shí)候,忘記定義就直接調(diào)用,使得出錯(cuò)。定義的成績(jī)是浮點(diǎn)型的,但輸入數(shù)據(jù)的時(shí)候卻忘記輸成整型,導(dǎo)致輸入和輸出均錯(cuò)誤。最后,將定義的成績(jī)改為整型才正確。我這時(shí)候才真正體會(huì)到了一致性的重要。檢查程序很多遍但卻始終不知道輸入的數(shù)據(jù)有錯(cuò),很令人頭疼。(2)對(duì)自己程序的總結(jié)與評(píng)價(jià):本程序是由C語(yǔ)言的基本單位一函數(shù)來(lái)設(shè)計(jì)實(shí)現(xiàn)與其功能的多次使用函數(shù)調(diào)用以及函數(shù)的嵌套調(diào)用。本程序分為7個(gè)模塊,分別為(1)輸入學(xué)生資料。(2)輸出學(xué)生的資料(3)更新學(xué)生的成績(jī)(4)查詢學(xué)生的資料(5)排序?qū)W生的資料(6)統(tǒng)計(jì)學(xué)生的成績(jī)(7)退出信息管理系統(tǒng)。本程序可以處理多個(gè)學(xué)生的信息的輸入、添加、修改、排序等問(wèn)題。本程序的使用特別方便,每做完一個(gè)模塊,下面都有提示信息。使用環(huán)境為Tc。此程序的不足之處在學(xué)生基本信息方面還不夠完善,另一方面就是在運(yùn)行此程序時(shí),需要執(zhí)行操作的提示語(yǔ)不夠具體和完善.改進(jìn)方法:可以在學(xué)生基本信息的結(jié)構(gòu)體中添加更多的學(xué)生信息,像是多輸入幾門課的成績(jī),刪除的時(shí)候,應(yīng)多加一個(gè)按照序號(hào)刪除,查詢時(shí)也應(yīng)加入一個(gè)按照序號(hào)查詢,使得學(xué)生信息更加完善,應(yīng)用的時(shí)候更加的方便,快捷。此外,還可以在編程時(shí)加一些必要的提示語(yǔ),用printf("”);語(yǔ)句直接可輸入.(3)、在設(shè)計(jì)過(guò)程中的感受:首先經(jīng)過(guò)兩周的編程實(shí)習(xí),并在后一段的報(bào)告總結(jié),我對(duì)C語(yǔ)言這門科有新的認(rèn)識(shí),本人實(shí)在是獲益不淺!要想編寫一個(gè)準(zhǔn)確、高效并有使用價(jià)值的程序,一定先要對(duì)課本知識(shí)熟悉,還要掌握必要的上機(jī)操作能力,寫程序其實(shí)很容易而關(guān)鍵在于調(diào)試程序。這次設(shè)計(jì),讓我重新掌握了C語(yǔ)言,而且還得到了用C語(yǔ)言解決實(shí)際問(wèn)題的寶貴經(jīng)驗(yàn)。其次,通過(guò)此次編程我也發(fā)現(xiàn)了自己在學(xué)習(xí)中的錯(cuò)誤和不足,復(fù)習(xí)了以前學(xué)過(guò)的知識(shí)。同時(shí)也學(xué)到了一些沒(méi)學(xué)過(guò)的知識(shí),讓我從中收益非淺,也為期末考試準(zhǔn)備了一下!更重要的是培養(yǎng)了獨(dú)立思考問(wèn)題和解決問(wèn)題的能力,熟悉了一些基本操作和解決問(wèn)題的方法!再則,因?yàn)槌醮谓佑|等原因此次設(shè)計(jì)遇到了許多問(wèn)題,我深刻體會(huì)到老師發(fā)揮的重要作用,C語(yǔ)言程序?qū)ξ覀儊?lái)說(shuō)比較難,在匆忙的學(xué)習(xí)中更是難上加難,似乎覺(jué)得自己僅是個(gè)匆匆過(guò)客,但在老師的幫助下我學(xué)會(huì)了如何調(diào)試,如何查找系統(tǒng)沒(méi)有提示的錯(cuò)誤,最后終于排除萬(wàn)難把程序搞定,體會(huì)到原來(lái)編程也挺有意思的快感.我想沒(méi)有老師的幫助我很難在短期內(nèi)把程序設(shè)計(jì)做的這樣好,在此特地感謝老師的幫助。(4)測(cè)試數(shù)據(jù):輸入模塊:序號(hào):01姓名:mary學(xué)號(hào):a1005成績(jī):89年齡:19性別:女家庭住址fangdong:出生年月曰:1988-9-16序號(hào):02姓名:jim學(xué)號(hào):a1021成績(jī):76年齡:18性別:男家庭住址linhe:出生年月曰:1989-6-12序號(hào):03姓名:ham學(xué)號(hào):a1012成績(jī):68年齡:18性別:男家庭住址kongtou:出生年月日:1989-1-23輸出模塊:序號(hào)姓名學(xué)號(hào)成績(jī)年齡性別家庭住址出生年月日01marya10058919女fangdong1988-9-1602jima10217618男Linhe1989-6-1203hama10126818男kongtou1989-1-23添加模塊:序號(hào):04姓名:susan學(xué)號(hào):a1025成績(jī):78年齡:18性別:女家庭住址kongtou:
出生年月日:1989-6-30輸出:序號(hào)姓名學(xué)號(hào)成績(jī)年齡性別家庭住址出生年月日01marya10058919女fangdong1988-9-1602jima10217618男Linhe1989-6-1203hama10126818男kongtou1989-1-2304susana10257818女kongtou1989-6-30刪除模塊:輸入要?jiǎng)h除的學(xué)號(hào):a1025輸出:序號(hào)姓名學(xué)號(hào)成績(jī)年齡性別家庭住址出生年月日01Marya10058919女fangdong1988-9-1602Jima10217618男Linhe1989-6-1203Hama10126818男kongtou1989-1-23修改模塊:輸入要修改的學(xué)號(hào):a1021你想修改哪一項(xiàng)?姓名學(xué)號(hào)成績(jī)年齡性別家庭住址出生年月日:請(qǐng)選擇(廣7)3成績(jī):98序號(hào)姓名學(xué)號(hào)成績(jī)年齡性別家庭住址出生年月日02Jima10219818男l(wèi)inhe1989-6-12查詢模塊:按學(xué)號(hào)查詢:輸入你要查詢的學(xué)號(hào):a1021序號(hào)姓名學(xué)號(hào)成績(jī)年齡性別家庭住址出生年月日02Jima10219818男l(wèi)inhe1989-6-12按姓名查詢:輸入你要查找的姓名:jim序號(hào)姓名學(xué)號(hào)成績(jī)年齡性別家庭住址出生年月日02Jima10219818男l(wèi)inhe1989-6-12統(tǒng)計(jì)模塊:統(tǒng)計(jì)男女人數(shù):男的:2女的:2統(tǒng)計(jì)成功!按任意鍵返回!統(tǒng)計(jì)各分?jǐn)?shù)段人數(shù):90分以上:080分以上:170分以上:260分以上:360分以下:無(wú)統(tǒng)計(jì)成功!按任意鍵返回!排序模塊:按學(xué)號(hào):序號(hào)姓名學(xué)號(hào)成績(jī)年齡性別家庭住址出生年月日01Marya10058919女fangdong1988-9-1603Hama10126818男kongtou1989-1-2302jima10217618男l(wèi)inhe1989-6-122.按成績(jī):序號(hào)姓名學(xué)號(hào)成績(jī)年齡性別家庭住址出生年月日01Marya10058919女fangdong1988-9-1602Jima10217618男Linhe1989-6-1203Hama10126818男kongtou1989-1-233.按序號(hào):序號(hào)姓名學(xué)號(hào)成績(jī)年齡性別家庭住址出生年月日01Marya10058919女fangdong1988-9-1602Jima10217618男Linhe1989-6-1203Hama10126818男kongtou1989-1-23程序運(yùn)行:主 函NNNNKNNNNKNNNNStlldentFianagCSystemNNNKNNNNKNNNNN1.inputmessage2.outputmessagerenewmessage4.inquiremessagesortmessagecountmessageO.exitthesystempleaseselectthechoice1.輸入模塊:enterthestudents1messages<notmorethan30>the1thstudentstudentfsnun:lstudentfsname:marystudent1snumber:al008student1sscore:78student1sage:18studentfssex:fenalestudentfsaddress:111student1sbirthday:1988-5-6the2thstudentstudent1snum:2studentfsname:jinstudentfsnumber:al028student1sscore:89student1sage:19studentfssex:nalestudentfsaddress:fffstudent1sbirthday:1989-5-23the3thstudent
student1snum:0——2studentsmessagehauebeeninput?——pressan</keyreturntomenu?輸出模塊: studentmessagelist the1thpageum—name—number—score—age—sex—address—birtlidaij<year-month-day>,mary,al008,78,18,female,111,1988-5-6,jin,al028,89,19,male,ff£,1989-5-23ressanpkeytomenuf3 ^ 更新模塊MMJO<J<XMMXJO<MMXMXJOfnEWtllEStudentllEWWHgEMMMXMMMJOCMXMMXM1.insertmessagedeletemessagereuisemessage0.returntomenupleaseselectyourchoice:.插入模塊:addaneustudenttheneustudent1sinun:3theneustudent1sinane:dauidtheneustudent1sinunber:alO58theneustudent1j>score:89theneustudent1jiage:18theneustudent1j>sex:maletheneustudent1j>address:ssssstheneustudent1j;birthday:1989-6-20Doyou.uanttocontinue?<¥/N>pressanykeytomenu, studentmessagelist the1thpagenum一一name—number—score一一age一一sex—address一一birthd己y<year-nonth-day>mari/,al008,78,18,female,111,1988-5-6jim,al028,89,19,nale,fff,1989-5-233J.dauidJ.al058,89,18,maleJ.sssssJ.1989—6—20pressan^Fkeytomenuf.刪除模塊pleaseinputthenumberyouuanttodelete:al028 studentmessagelist the1thpagenum—name—number—score—age—sex—address—birthdav《year-month-day>nariF,al008,78,18,fenale,111,1988-5-6dauid,al058,89,18,male,sssss,1989——6——20pressmnykeytomenu!.修改模塊:inputthestudent1snumberijouuanttoreuise:al008——studentsmessage——num——name——number——score——age——sex——address——birtlida^r<year-month-day>1,al008,78,18,female,111,1988-5-6whichonedoyouwanttoreuise?namenumberscoresex5.ageaddressbirthdaypleaseselectyourchoice:3peuisedscore:98num一一name一一number一一score一一age一一sex一一address一一birthda<year-nonth-day>1,al008,98,18,female,111,1988-5-6Doi/ouuanttocontinuetoreuise?<¥/N>pressanykeyreturntonenuf studentmessagelist the1thpagenurn——name——number——score——age——sex——address——birth曲y<year-nontli-day>1,mari/,al008,98,18,female,111,1988-5-6dauid,al058,89,18,male,sssss,1989—6—20pressan</keytomenu!查詢模塊:1)按學(xué)號(hào)查詢:inputrequirednLimber:al008——studentsmessage——num一一name一一number一一score一一age一一sex一一address一一bii't}iday<yeai'-iiont}i-day>l,mary,al008,98,18,female,111,1988-5-62)按姓名查詢:inputtheinquiredname:dauid——studentsmessage——num一一name一一number一一score一一age一一sex一一address一一birthdavyear-month-day>3J.dauidJ.al058J.89,18J.male,sssss,1989—6—20排序模塊:MUOOCMJOOCMJOOCMMJCwtudEnt:SOFtIDEWW丑如><><>*JOCKXMJOCKMMMsortnumbersortscoresortnunB.retiiFntomenupleaseselectyourchoice:1)按學(xué)號(hào)排序:sortnumbersortnunnamenumberscoreagesexaddressbirthdaiF1nwyal0089818fenale1111988562dauida!0588918malesssss19896202)按成績(jī)排序:sortscoresortnumnamenumberscoreagesexaddressbirthday1marual0089818female1111988562dauidal0588918malesssss19896203)按序號(hào)排序:sortnumsortnumnamenumberscoreagesexaddressbirthdaymaryal0089818female111198856dauidal0588918malesssss19896206.統(tǒng)計(jì)模塊:
MMMMlOOOCMMMMMMMMMMMcDUnttheStudents^IDESS己卵***MMMMMMMMMMX1_countsex2.countscore0.returntomenupleaseselectyourchoice:1)統(tǒng)計(jì)男女:themale:1thefemale:lcountsuccessfully.pressanvkeytomenu2)統(tǒng)計(jì)成績(jī):themorethanstudents:1themorethan80themorethan70themorethemorethanstudents:1themorethan80themorethan70themorethan60passedstudents:passedstudents:0countsuccessfully,pressanvkeytomenu?7.退出模塊七、源程序清單:#include<stdio.h>#include<string?h>#defineMAX30#definePAGE5#define PRINT1printf(" -\n")#define PRINT2printf("num--name--number--score--age--sex--address--birthday(year-month-day)\n")#define PRINT3printf("%d,%s,%s,%d,%d,%s,%s,%d-%d-%d\n〃,stud[i].num,stud[i].name,stud[i].number,stud[i].score,stud[i].age,stud[i].sex,stud[i].address,stud[i]?birthday?year,stud[i]?birthday.month,stud[i].birthday?day)intsum;structDATE{intyear;intint};struct{intmonth;day;studnum;charname[21];charnumber[10];intscore;intage;charsex[11];charaddress[27];structDATEbirthday;}stud[MAX];save_message(intsum){FILE*fp;inti;if((fp=fopen("students.txt","wb"))==NULL){printf("readfilewrong!\n");return;}for(i=0;i<sum;i++)if(fwrite(&stud[i],sizeof(structstud),1,fp)!=1)printf("writefilewrong!\n");fclose(fp);}input_message(){inti=0,s=MAX;system("cls");enterthestudents'messages(notmoreprintf("\n\nenterthestudents'messages(notmorethan%d)\n",s);printf("\n");do\n");do{printf("\nthe%dthstudent”,i+1);printf("\nstudent'snum:");scanf("%d",&stud[i].num);if(stud[i].num―0)break;printf("\nstudent'sname:");scanf("%s",stud[i].name);printf("\nstudent'snumber:");scanf("%s”,stud[i].number);printf("\nscanf("%d”,&stud[i].score);printf("\nscanf("%d",&stud[i].age);printf("\nscanf("%s",stud[i].sex);printf("\nscanf("%s",stud[i].address);printf("\nstudent'sscore:");student'sage:");student's 5、sex:);student'saddress:");student'sbirthday:");stud),1,fp)inti=0,j=0,page=1;system("cls");printf("\n\n--printf("\n\nstud),1,fp)inti=0,j=0,page=1;system("cls");printf("\n\n--printf("\n\nstudentmessagelistthe%dthscanf("%d-%d-%d",&stud[i]?birthday.year,&stud[i].birthday,month,&stud[i].birthday.day);i++;}while(i<MAX);printf("\n --%dstudentsmessagehavebeeninput!--\n",i);sum=i;printf("\npressanykeyreturntomenu!");bioskey(0);intread_message(){FILE*fp;inti=0;if((fp=fopen("students.txt","rb"))==NULL){printf("\n\n**thereisnomessage,pressanykeytomenuandinputmessage!*****\n");return;while(feof(fp)!=1)fread(&stud[i],sizeof(structstud),1,fp);if(stud[i].num==0)break;elsei++;fclose(fp);return;output_message()page\n\n",page);PRINT2;PRINT1;do{if(stud[i].num!=0){j++;if(j%PAGE!=0){PRINT3;PRINT1;}else{PRINT3;PRINT1;if(stud[i+1].num!=0){printf("pressanykeytocontinue!");bioskey(0);system("cls");printf("\n\n studentsmessagelistthe%dthpages\n\n",++page);PRINT2;PRINT1;}}}i++;}while(stud[i].num!=0);printf("pressanykeytomenu!");bioskey(0);}insert_message(){inti=sum,j,flag=0;charchoice;system("cls");printf("\n\naddanewstudent\n");printf(" \n");do{stud[i].num=++sum;printf("\n thenewstudent'snum:%d",stud[i].num);printf("\n thenewstudent'sname:");scanf("%s”,stud[i].name);printf("\n thenewstudent'snumber:");scanf("%s”,stud[i].number);printf("\n thenewstudent'sscore:");scanf("%d",&stud[i].score);printf("\n thenewstudent'sage:");scanf("%d",&stud[i].age);printf("\n thenewstudent'ssex:");scanf("%s",stud[i].sex);printf("\n thenewstudent'saddress:");scanf("%s",stud[i].address);printf("\n thenewstudent'sbirthday:");scanf("%d %d %d",&stud[i]?birthday,year,&stud[i]?birthday,month,&stud[i]?birthday.day);printf("\nDoyouwanttocontinue?(Y/N)");choice=getch();if(choice=='y'||choice=='Y'){printf("\ncontinue!\n");i++;flag=1;}elseflag=0;}while(flag==1);printf("\n pressanykeytomenu!");bioskey(0);}delete_message(){chardelete_number[10];inti;system("cls");printf("pleaseinputthenumberyouwanttodelete:");scanf("%s",delete_number);for(i=0;i<sum;i++){if(strcmp(stud[i].number,delete_number)==0){for(;i<sum;i++)stud[i]=stud[i+1];sum=sum-1;printf("themessagehasbeendeleted!");}elseprintf("thestudentisnotexist!");}}revise_message(){inti=0;intchoice,flag;charrevise_number[10];do{system("cls");printf("\n inputthestudent'snumberyouwanttorevise:");scanf("%s",revise_number);for(i=0;i<sum;i++)if(strcmp(stud[i].number,revise_number)==0){printf("\n --studentsmessage--\n");PRINT1;PRINT2;PRINT3;printf("\nwhichonedoyouwanttorevise?\n");printf("\n 1.name\n");printf("\n 2.number\n");printf("\n 3.score\n");printf("\n 4.sex\n");printf("\n 5.age\n");printf("\n 6.address\n");printf("\n 7.birthday\n");printf("\n pleaseselectyourchoice:");scanf("%d",&choice);switch(choice){case1:printf("\n revisedname:");scanf("%s",stud[i].name);break;case2:printf("\n revisednumber:");scanf("%s",stud[i].number);break;case3:printf("\n revisedscore:");scanf("%d",&stud[i].score);break;case4:printf("\n revisedage:");scanf("%d",&stud[i].age);break;case5:printf("\n revisedsex:");scanf("%s",stud[i].sex);break;case6:printf("\n revisedaddress:");scanf("%s",stud[i].address);break;case7:printf("\n revisedbirthday:");scanf("%d%d%d”,&stud[i].birthday.year,&stud[i].birthday.month,&stud[i].birthday.day);}PRINT1;PRINT2;PRINT3;break;}if(i==sum){printf("\n thestudentisnotexist!");bioskey(0);}printf("\n\nDoyouwanttocontinuetorevise?(Y/N)");choice=getch();if(choice==,Y,||choice==,y,){flag=1;printf("\ncontinue!\n");}elseflag=0;}while(flag==1);printf("\npressanykeyreturntomenu!");bioskey(0);}renew_message(){intchoice;do{system("cls");printf("\n\n\n ******************renewthestudentmessage***************\n\n");printf(" 1.insert message\n\n");printf(" 2.delete message\n\n");printf(" 3.revise message\n\n");printf(" 0.return tomenu\n\n");printf(" pleaseselectyourchoice:");scanf("%d",&choice);switch(choice){case1:insert_message();break;case2:delete_message();break;case3:revise_message();break;case0:break;}}while(choice!=0);}inquire_number(){inti,choice,j=0;charinquire_number[10];system("cls");printf("\ninputrequirednumber:");scanf("%s”,inquire_number);for(i=0;i<sum;i++)if(strcmp(stud[i].number,inquire_number)==0){printf("\n --studentsmessage--\n");PRINT1;PRINT2;PRINT3;}elsej++;if(j==sum)printf("\nthestudentnotexist!");bioskey(0);}inquire_name(){inti,choice,j=0;charinquire_name[10];system("cls");printf("\ninputtheinquiredname:");scanf("%s",inquire_name);for(i=0;i<sum;i++)if(strcmp(stud[i].name,inquire_name)==0&&stud[i].num!=0){printf("\n --studentsmessage--\n");PRINT1;PRINT2;PRINT3;}elsej++;if(j==sum)printf("\nthestudentnotexist!");bioskey(0);}inquire_message(){intchoice;do{system("cls");printf("\n\n\n **************inquirethestudents'message****************\n\n");printf(" 1.inquirenumber\n\n");printf(" 2.inquirename\n\n");printf(" 0.returntomenu\n\n");printf(" pleaseselectyourchoice:");scanf("%d”,&choice);switch(choice){case1:inquire_number();break;case2:inquire_name();break;case0:break;}}while(choice!=0);}count_sex(){structstud*p,*q[MAX];intm_num=0,f_num=0,i;system("cls");p=stud;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i++){if(strcmp(q[i]->sex,"male")==0||strcmp(q[i]->sex,"MALE")==0)m_num++;elsef_num++;}printf("\nthemale:%d",m_num);printf("\nthefemale:%d",f_num);printf("countsuccessfully.pressanykeytomenu\n");bioskey(0);}count_score(){structstud*p,*q[MAX];inta=0,b=0,c=0,d=0,e=0;inti;system("cls");p=stud;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i++)TOC\o"1-5"\h\z{if(q[i]->score>=90) a++;if(q[i]->score>=80) b++;if(q[i]->score>=70) c++;if(q[i]->score>=60) d++;else e++;}printf("\nthemorethan90students:%d\n”,a);printf("\nthemorethan80students:%d\n”,b);printf("\nthemorethan70students:%d\n”,c);printf("\nthemorethan60students:%d\n",d);printf("\nnotpassedstudents:%d\n”,e);printf("countsuccessfully.pressanykeytomenu!");bioskey(0);}count_message(){intchoice;do{system("cls");printf("\n\n\n *******************countthestudents'message**************\n\n");printf(" 1.countsex\n\n");printf(" 2.countscore\n\n");printf(" 0.returntomenu\n\n");printf(" pleaseselectyourchoice:");scanf("%d",&choice);switch(choice){case1:count_sex();break;case2:count_score();break;case0:break;}}while(choice!=0);}sort_number(){structstud*p,*q[MAX];inti,j,k;system("cls");sortnumber\n");printf("\nsortnumber\n");printf(" \n");printf("\nsortnumnamenumberscoreagesexaddressbirthday\n");p=stud;for(i=0;i<sum;i++)q[i]=p++;for(i=0;i<sum;i++){k=i;for(j=i+1;j<sum;j++)if(strcmp(q[k]->number,q[j]->number)>0)k=j;if(k!=i){p=q[i];q[i]=q[k];q[k]=p;}}for(i=0;i<sum;i++)printf("\n%d%d%s%s%d%d%s%s%d%d%d\n",i+1,q[i]->num,q[i]->name,q[i]->number,q[i]->score,q[i]->age,q[i]->sex,q[i]->address,q[i]->birthday.year,q[i]->birthday.month,q[i]->birthday.day);bioskey(0);}sort_score(){structstud*p,*q[MAX];inti,j,k;system("cls");printf("\n sortscore\n");printf(" ——\n");printf("\nsortnumn
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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屆上海市金山區(qū)高三下學(xué)期4月二模政治試題(原卷版+解析版)
- 員工培訓(xùn)財(cái)務(wù)制度
- 汽車產(chǎn)品上市培訓(xùn)
- 廣告服務(wù)代理服務(wù)合同模板二零二五年
- 二零二五幼兒園用工合同模板
- 基辛格對(duì)中國(guó)的告誡
- 離婚冷靜期離婚協(xié)議模板二零二五年
- 全新公司股權(quán)期權(quán)協(xié)議書二零二五年
- 全新辦理協(xié)議離婚程序
- 李大小學(xué)創(chuàng)建民族團(tuán)結(jié)示范校工作方案
- 執(zhí)行力、心態(tài)管理培訓(xùn)課件
- 河北省廊坊市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)及行政區(qū)劃代碼
- (最新)信貸資產(chǎn)風(fēng)險(xiǎn)分類管理辦法
- 五年級(jí)下冊(cè)書法教學(xué)課件第9課-上下結(jié)構(gòu)(二)-西泠印社版(共18張)課件
- 不甘屈辱奮勇抗?fàn)幍谌n時(shí)甲午風(fēng)云課件五年級(jí)道德與法治
- 家具廠安全生產(chǎn)臺(tái)帳
- ESC700培訓(xùn)(PPT35頁(yè))(PPT 36頁(yè))
- JIS G3141-2021 冷軋鋼板及鋼帶標(biāo)準(zhǔn)
- 市政工程類建筑施工項(xiàng)目危險(xiǎn)源辨識(shí)及風(fēng)險(xiǎn)管控清單
- 精神科應(yīng)急預(yù)案PPT課件
- 物資編碼手冊(cè)
評(píng)論
0/150
提交評(píng)論