




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、程序設計課程設計報告題 目學生信息管理系統(tǒng) _學院計算機學院專業(yè)_計算機科學與技術年級班別 2014級A(4) 學 號 3114005953學生姓名 林超指導教師 曾安程序功能完成情況測試用例全面情況報告格式是否與要求相符報告內容是否準確全面2015年05月備注聲明(此程序在 dosbox上運行TC通過需要每個文件前面都需要聲明結構體,我自己 去機房TC則不需要,本程序在源代碼上暫時把每個結構體注銷掉,如果編譯不通過可以取消每個文件前面地結構體聲明)題目要求:C 課程設計題目第一套難度: 1題目 1:學生成績管理系統(tǒng)設計一個學生成績管理系統(tǒng),在動態(tài)鏈表程序地基礎上,設計要求如下:(必須使用結構
2、體和動態(tài)鏈表等數(shù)據(jù)結構)對在校學生幾學期幾門課程地考試成績進行統(tǒng)一管理,具有查詢和檢索功能,并且能夠對指定文件操作,也可將多個文件組成一個文件.一、設計內容1、學生個人信息包括學號、姓名、性別、專業(yè)、年級、電話號碼.示例如下 :學生個人信息:學號姓名性別專業(yè)年級電話號碼2015001 張三男計算機科學與技術一189000000012、選課記錄包括某個學生某學期所選地課程、課程編號、學分、平時成績、實驗成績、卷面成績、綜合成績.示例如下(綜合成績=平時成績*20%+ 實驗成績*40%+ 卷面成績 *40% ):學期課程編號課程名稱學分平時成績實驗成績卷面成績綜合成績第一1高等數(shù)學380 70第一
3、2大學英語377 70第一3大學物理285 7060第二1高等數(shù)學370 80第二4程序設計290 90903、錄入功能:可以一次完成若干條記錄地輸入 .4、統(tǒng)計功能:統(tǒng)計所有學生各學期所有課程地平均分;5、查找功能:完成按學號查找該學生地基本個人信息;或按學號查找該學生某學期所選地所有課程地成績;或按課程編號和學期查找所有學生該門課程該學期地成績;并顯示6、刪除功能:刪除某個學生地所有信息;刪除所有學生某門課程地成績6、排序功能:按某學期所選某門課程對所有學生地成績排序(升序或降序);對某學期所有學生所有課程地平均分進行排序(升序或降序) .7、系統(tǒng)集成:編寫程序主界面,調用各功能,調用界面
4、和各個功能地操作界面應盡可能清晰美觀 !二、設計要求已知有多名學生(至少15 名)地成績信息(學生個人信息和所有課程成績等)地文件student.dat (該文件自行建立),要求編程序實現(xiàn)成績錄入、統(tǒng)計、查詢、刪除、排序和退出等功能.具體要求如下:A 要求顯示如下界面*1 錄入2 統(tǒng)計3 查詢4 刪除5 排序6 退出*通過選擇 1-6 來確定要執(zhí)行哪一步操作B 若選 1 ,則出現(xiàn)如下界面*輸入學生個數(shù):請輸入第 1 名學生地信息:學號:姓名:性別:專業(yè):年級:電話號碼:學期:課程編號:課程名稱:(此處省略,請自行補充)*并保存數(shù)據(jù)保存到文件student.dat 中.C.若選2,統(tǒng)計所有學生各
5、學期所有課程地平均分;D 若選3,則出現(xiàn)如下界面*3.1 按學號查詢學生個人信息3.2 按學號查找該學生某學期所選地所有課程地成績3.3 按課程編號和學期查找所有學生該門課程該學期地成績*通過選擇 3.1-3.3 來確定要做哪一個操作,有符合地記錄輸出到屏幕,若無,則輸出相關提示信息 .E.若選4則出現(xiàn)如下界面:*4.1 刪除某個學生地所有信息4.2 刪除所有學生某門課程地成績*通過選擇 4.1-4.2 來確定要執(zhí)行哪一步操作,有符合地把刪除后剩下地數(shù)據(jù)保存到文件student1.dat,若無,則輸出相關提示信息.F.若選5,則出現(xiàn)如下界面:*5.1 某學期某門課程對所有學生地成績升序5.2
6、某學期某門課程對所有學生地成績降序5.3 某學期所有學生所有課程地平均分進行升序5.4 某學期所有學生所有課程地平均分進行降序*通過選擇5.1-5.4 來確定要執(zhí)行哪一步操作,有符合地記錄輸出到屏幕,若無,則輸出相關提示信息 .G.不同地模塊都要有出錯處理,并能給出出錯提示.如輸入數(shù)據(jù)錯誤,文件操作錯誤等等H 以上各個功能均編寫成子函數(shù),由主函數(shù)調用實現(xiàn).I 利用結構體和動態(tài)鏈表實現(xiàn)消費記錄地數(shù)據(jù)結構設計;三、測試數(shù)據(jù)要求1)不少于20名學生,不少于3個學期,不少于6門課程2)應保證測試用例測試到程序地各種邊緣情況題目:學生信息管理系統(tǒng)系統(tǒng)簡介本人設計地學生信息管理系統(tǒng)包括6個功能1. 錄入學
7、生信息,可以實現(xiàn)對學生學號,姓名,性別,專業(yè),年級,電話號碼,地錄入,對每個學期錄入某一門課程地分數(shù).2. 統(tǒng)計學生和課程信息,可以根據(jù)某一學期,某一門課程統(tǒng)計出這一門課程所有學生地平均分.3. 查詢學生信息,查詢信息分為3個子功能,3.1可以根據(jù)學生地學號查詢學生地個人信息;3.2可以根據(jù)學號和某一學期查詢某一位學生地所有課程地成績.;3.3可以按照課程編號和學期查找所有學生某門課程地成績4. 刪除學生信息,刪除功能分為2個子功能,4.1可以刪除某個學生地所有信息,4.2可以刪除所有學生某門課程地成績5. 對學生地課程分數(shù)進行排序,排序功能分為4個子功能,5.1可以根據(jù)某門課程對所有學生地成
8、績升序;5.2可以根據(jù)某門課程對所有學生地成績降序;5.3可以根據(jù)某學期所有學生地平均分進行升序;5.4可以根據(jù)某學期所有學生地平均分進行降序.6. 查找出某個學期某門課程不及格地學生.結構圖:詳細設計:主函數(shù)模塊:一個main函數(shù),用于調用各種功能函數(shù)創(chuàng)建鏈表模塊:void filewritecourse(struct course *chead)/* 用于把課程鏈表存入到course.dat文件中.參數(shù)就是傳入課程鏈表地頭節(jié)點*/void filewritestudent(struct student *head)/* 用于把學生鏈表存入到student.dat文件中參數(shù)是傳入學生鏈表地頭
9、結點*/將鏈表寫入地是時候是采取文本文件方式寫,用fprintf進行寫操作,原因是方便查看,雖然速度遠不如二進制文件寫,但是在后來測試數(shù)據(jù)時比較方便,容易看到文件里面地內容,這樣就能知道程序對數(shù)據(jù)地處理有沒有錯誤struct course *creatcourse(int studentnumber1,char studentname1)/* 用于創(chuàng)建一個課程鏈表,參數(shù)用于把某一門課程對應某一個學生*/struct student *creatstudent()/* 用于創(chuàng)建一個學生鏈表 */選擇錄入功能錄入輸入錄入學生個數(shù)錄入學生信息錄入課程信息從文件讀取鏈表模塊:struct course
10、* readcourse()/* 從文件讀取課程鏈表 */struct student* readstudent()/* 從文件中讀取學生鏈表 */因為采用了文本文件進行寫操作,所以讀出來也要用文本文件來讀這里采用fscanf函數(shù)來讀,在打程序是必須注意要“&”,當時因為忘記打了這個,程序運行到這里一直崩,也是讓我找了好久才發(fā)現(xiàn)統(tǒng)計模塊:void account(struct course*chead1,int cournumbelint terml)/* 統(tǒng)計學生平均分 */ void searchfail(int term1,int coursenumber1,struct cou
11、rse *head1)/* 統(tǒng)計不及格學生 */查找模塊:void searchstudent(int studentnumbelstruct student *head)/* 用于查找一個學生地信息,參數(shù) 是學生鏈表地頭結點,和學生編號*/void searchcourse(int studentnumber1,int term1,struct course *chead)/* 用于查找某一門課程, 參數(shù)是課程鏈表和要查找地學生號和學期*/ void searchallstudentscore(int coursenumber1,int term1,struct student *head,
12、struct course*chead)/*用于查找所有學生某門課程地分數(shù),參數(shù)是課程鏈表地頭結點,學生鏈表地頭節(jié) 點和要查找地課程號和學期*/選擇查找功能查找某學期的課程輸入數(shù)據(jù)讀取文件結果返回開頭查找所有學生輸入數(shù)據(jù)讀取文件卜查詢 結果無數(shù)據(jù)刪除模塊:struct student *delestudent(int studentnumber1,struct student *head)/* 用于刪除某個學生地信息,參數(shù)是傳入學生地頭結點,和被刪除學生地學號*/struct course *delethecourse(int studentnumbelstruct course*chead1
13、)/* 用于刪除 學生課程成績*/struct course*delecourse(int coursenumber1,int term1,struct course *chead1)/* 用于刪除某一門課程,參數(shù)是傳入課程鏈表地頭結點,和被刪除課程地課程編號*/刪除功能就是釋放一個節(jié)點,當輸入一個數(shù)據(jù),遍歷整個鏈表,查找到與這個數(shù)據(jù)相同地 鏈表,通過free ()函數(shù)釋放掉這個節(jié)點排序功能:struct newcourse*newcreatlist(int coursenumber1,int term1,struct course *chead1)/* 創(chuàng)建一個新地鏈表存放某門課程最終成績,
14、參數(shù)是傳入要排序地課程號和學期,還有課程鏈表地頭結點*/struct stuaver *creatnewlist1(int term1,struct course *chead1,struct student *head1)/* 創(chuàng)建一個新鏈表存放學生某學期平均分,參數(shù)是傳入要排序地課程號和學期,還有學生鏈表地頭結點*/struct newcourse *ascend(struct newcourse *nhead)/*對學生某門課程分數(shù)進行升序,參數(shù)是傳入新鏈表(存放課程分數(shù))地頭結點*/struct newcourse *descend(struct newcourse *nhead)/*
15、 對學生某門課程分數(shù)進行降序,參數(shù)是傳入新鏈表(存放課程分數(shù))地頭結點 */struct stuaver *ascend1(struct stuaver *shead)/*對學生某學期平均分進行升序參數(shù)是傳入新鏈表(存放課程平均分)地頭結點*/struct stuaver *dascend1(struct stuaver *shead)/*對學生某學期平均分進行降序傳入新鏈表(存放課程平均分)地頭結點*/排序是應用選擇排序法,通過循環(huán)找出最大(最小)地一個數(shù)據(jù),交換起始節(jié)點和當前節(jié) 點兩個節(jié)點里面地內容.muM序輸入數(shù)據(jù)序輸入數(shù)據(jù)升序輸入數(shù)據(jù)文件讀取文件讀取文件讀取排序輸出排序輸出排序輸出降序
16、輸入數(shù)據(jù)文件讀取1排序輸出數(shù)據(jù)結構:本程序采用兩條大鏈表地結構來存儲數(shù)據(jù),一條是學生鏈表,一條是課程鏈表,他們之間用一個學生號聯(lián)系起來,學生鏈表存儲在“student.dat文件中,課程鏈表儲存在“course.dat ”文件中.要用到里面地數(shù)據(jù)時,先用readcourse!(),和readstudent ()函數(shù)把里面地內容讀取出來進行操作,然后在操作完再存回文件中.其中學生結構體如struct studentint studentnumber。char name20。char sex。char profession30。char clas20。char tel20。struct stude
17、nt *next。 °課程結構:struct courseint studentnumber。int coursenumber。char studentname20。char coursename20。int term。float CR。float normalmark。float experimentmark。float testmark。float finalmark 。struct course *next。 °在排序地時候,為了對原數(shù)據(jù)保護,我也采取了新建一條鏈表來存儲排序需要用到地數(shù)據(jù),但這樣程序效率低下地問題也顯示了出來.這是在排序某門課程地分數(shù)時創(chuàng)建地一個新結
18、構體:struct newcoursechar stuname20。char courname20。int cournumber。float couscore。struct newcourse *next。這是排序學生某一學期平均分時創(chuàng)建地新結構體:struct stuaverchar name20。float aver。struct stuaver *next。 °通過這兩條鏈來實現(xiàn)排序功能.卜面是測試結果:DOSBok 0.72, Cpu Cycles: max, Framsskip 0dpegran:TC| izzr 1 回ue come 七口 my Studen-t Mkna
19、gemeint Infoi'inatiDTi Sys-tem please input a number to enterl這是一個開始見面,首先進去地時候根據(jù)提示,輸入一個數(shù)字進去,開始接下來程序(其 實這里本來是可以不用地,由于 TC沒有鏈接到浮點型庫,這里通過輸入一個浮點型數(shù)使 它鏈接到浮點型庫里面,就可以使用浮點型地數(shù)了)這是菜單界面輸入對應數(shù)字就能實現(xiàn)對應功能這是學生信息地錄入,在這里你可以選擇你要錄入地學生地數(shù)量,然后一次錄入學生地學期,和每學期地課程.當你不想錄入時,可以在學生number和學期term輸入時輸入。即可停止錄入.由于在測試前已經(jīng)做好了數(shù)據(jù)放在student
20、.dat和course.dat文件中.接下來地測試是采用已經(jīng)放在文件里面地數(shù)據(jù)來測試.DOS Box 0.72r Cpui Cycles: max. Frames kip 0r Program: TC回DOJE:Oi!please input the term: 1please input the cournumber:1 the 口3嗎匚 uf th is culifc in 71»149904welcome ta 1inchao student information JtKKXKM M:KMM.JO(NJ«:MXKX)C KMXMMM JCKJC JKXJHX H J
21、tMM1 recruit2 count3 inqn iry4 dele5 sort6 searcli the Jai student7 exit KJCJCXMMKXMltMK KKHKXMXKKKK MiMMIOffMKMKJCKMiKIff MXiCUMNUKmXMM:ese input your choice: _選才i 2后,選擇學期和課程編號就能統(tǒng)計某每門課程所有學生平均分DOSEom Q72, Cpu Cycles: max Franeskip 0r Procram:TOMM HMM K M M M M K M X K X M MM KM K M M M M K M KMMMKMX
22、MMMKMM KMMM MMMXMMM M 3C M M M X M X X M M M X Msearch student accord ing to student numbersearch 占ludcirt course accord ing tu the numljcrsearch ol1 course according to the course number and termNN苒*HXAXMNMNMXNHXMXMUHNNKNXHXXMKHNHXNK«MHMXHNMXMHXMXMXHHNXNKHMHMXp1e«se input your choice:1pIe
23、«se input the student number :160 _選才i 3進入如下界面,選擇其中地選項 輸入學生號出現(xiàn)下面地學生信息選才i 3-2輸入學生號碼和學期出現(xiàn)下面DOS Bom 0.72 Cpu Cycles: e目罵 Frarrieddp 0, Program: TCII 竊r 1> r-,-IP -» 1 . - u u- b-1r -a r-» -»,r .r n u»,T-r TJ _r«u,»_» r- WJi-r -rv_r、= B- " hjr 1 "&quo
24、t;-a,»_r uthe E's f inal score is 71,060003MWLM KM JKM: KM! M:M.M:KU MM.M: XJCIOC KM KM JCJOC XKJ«:MJ(:M1< MM.M:X:K JOCHM KM8 MKMwelcome to inchao student infornation1recruitZ-tount3 inquiry4 -deleSsort6 search ttefail student7 -exitX KNli lOf MXJCKMM MiXMM:* MKXKJClClliMlff MMMJtMK
25、 KKMMlffMltXliMlf MilOfflOfJCM: please input your choice:這里可以顯示這個學生所有成績,不過因為界面太小,上面地東西不能看到(其實是有A,B,C,D,E,F6 門課程地).18 DOSBox 0.72p Cpui Cycles: max Frarnesldp 0r Programi: TC口 : ®MKM: KM; JCX NX MM HKX MX 列筑旋 MKKMX 魏XMXHMMKMKX M X 墓 H M W - H M M K M X 就舞 M X M1-search student according to stude
26、urt numberZs«?aT*ch tiidenvi course scont'diniy tn the vnimlwr3-search all course according to the course number a¥)d termNNKMHHMMMMNNHXHHHHHMNXKNHHAHMXKNMKXXMMXMXHNNXMXHMHMXHKWXKNHHXMXHHplease input your choice:3plinput thp mirsfi numhfr: 1p1 ease input the term:l_輸入3-3,出現(xiàn)上述界面,輸入相應學期和
27、課程編號出現(xiàn)下面Bfl DOS Box 0.72, Cpu Cycles: mas. Frameskip 0r Program: TCHI回團course number is 1:ourse rame is A ;he nornal nark is 77.GO000G ;he expcr iwient nark is 68*060606 ;he test mark is 刃,80606 ;he final nwrk is 50.1397uelcome to 1inchaa student informationN K B K 汽 X * H .=. K H K K L r X. L. E K
28、.卜.一; H M K 月 K H .- K H L H M N X L. K HH K r F N H .-.recru 11 coimtinquirydele5 snrt6 search the fail student7 '-exitlease input your choice:選才i 4-1,輸入要刪除地學生編號,出現(xiàn)下面界面,表示刪除了這個學生地所有信息選才i 4-2,輸入要刪除地課程編號,學期,出現(xiàn)下面界面表示刪除了某學期某一門課程11dele a student s informationBdele a courseX M JfMIfXTCMMH WMTMXM:*KSM
29、Jf UM蕤 MMM M MH MSiMMltH* X iOffWH Wplease input your choicc;Zplease input tt)e course nunber:1 E)lease input the term:l aele success!welcoKE to 1inchao student information1recru itZcount3inquiry4dele5sortb-searcli the failstudent7KNXNXXMXXKNMNNOMHNNKWHXMXMNNKNXXXXMKNKNXNXXMXMKHplease input your cho
30、ice:選才i 5-1出現(xiàn)下面界面DOS Box 0.72r Cpu Cycles: max, Frameskip 0r Program: TC口 回|MK X XJCM 旄猶 M *CME 肥 K 演美 K MX X ME ;K Iff * M K X M Jt M *連:1course scare acengd ling in a term?ZRoiirse senrf? flnsTRngd in(j in a tftrm!3 course average Qweuxigding in a term?4 nniirsfi flu:rfl(je firscRngd infj in a tfi
31、rm!please input your choice:1please input the coursenumter:2please input the terml_輸入相應地學期和課程編號出現(xiàn)了每個學生這么課程地排序DOSBm 0.72p Cpu Cycles: max, Frameslcip 0 Program:TCI ° 回 ILp 1 ease 口 I easeinputinputsaranikf1tine cciursenumber* the terml,060606,WfWFifl.1羽町uelcome to 1 iucIkiq student informationN
32、-恭MH苒JtJf景犀黃及MX 注建葺聚聾景洪犀JtM 薜就ME 景情景薜JCJf :M MMErecru一一countimquirLide Ie sort -search the fail student exit垂聞*胃*Mi*%WTiifKXW;*%計/集/胃片3*%科悻計/胃注胃量胃*!科>easeuour c*o i ce :同理,選5-2,則出現(xiàn)降序排序選才i 5-3,則出現(xiàn)一下提示,輸入學期號即可查看平均分排序DOSBox O.72r Cpu Cycles: max, Frame5kip 0r Program: TCZl 回 | S3course ccursc course
33、 courseIXXXXXXMKKMXXHMXXMXKXXNKKXHXXXXXXXXXKHMKKMKKXXIMKXXKXXK X X KM X X K X M K MMscore ascerigdiing in a term, score duscEngding in 日 term? average Qscungdiiig in a ternT average descenqding in a term!MIfHHMiMHHHiMIrfXXHMMkHKlf MUM; :MMX *«: HUM: ”HtffHMliitltfiMliMi 口口 JC M Mi 就 H MXM:p1 ea
34、se input your choice;3p 1 ccisc input tlic term: 1_同理,輸入5-4即可查看平均分降序選才i 6輸入相應地學期和課程編號即可查看這門課程不及格地人DOSGoi 0-72, Cpu Cycles max, Frameskip 0, Program: TC口 I 叵I '| SS |plfiaSR input ithn term:1please input tJ*e course numberZ愿 DO5Bcm 0.72. Cpu Cycles: max. Frameskip 0, Program: TC三叵|p 1 Rase input
35、tlin term ; 1pI ease input the course numberZ jane score is 51.599998uielcanie to 1 inchao student informal ion1-recru itZcount3l-inquiry4dele5-0 bxearclithe fail student7-exitM JCXJMM MJIJCJOC JKMKH MX JCMLMJt JC JHJKJCM MMMMLMMJCJKMJMM MMMMLJCJCKJKJCXXM:"MMp I eaxe input youir cho i 匚紀:最后按7即可
36、退出整個程序總結:其實最開始在選這個地時候本來是不想選難度一地,因為那時有工作室地考核,所 以不想做得太難.但是后來發(fā)現(xiàn)大家都選了難度一,我看著既然別人可以,那我也就可以.所以意氣用事就選了難度一,那時確實是什么思路也沒有,所以就向別人請教,四處詢問別 人有什么思路,自己也構思了兩天,最后選擇了這種雙鏈表地結構來做,確實這種比較耗 時,效率低下.但是也容易上手.畢竟是自己第一次做一個工程出來,還是選擇自己最容易上 手地來做.然而在之前對鏈表也掌握地不是很熟悉,特別是對鏈表地刪除來說和鏈表排序不 能說是很熟悉.所以就盡量上網(wǎng)查資料,自己看書.本來對鏈表進行排序是打算對節(jié)點來排序地,但是在做地時候
37、發(fā)現(xiàn)節(jié)點在交換地時候里面地指針*next還需要控制好,稍微不注意就會指錯,因為時間有限,所以選擇了較為簡單地辦法,直接交換節(jié)點里面地內容.不過這種其實不好,占用地內存過大,所以在這次課程設計之后還需要多思考一下該怎么來做才能 使得程序較為高效.其次是文件地輸入輸出,這個也是較為陌生地領域,其實之前都只是編寫一些小小地程序,然后很少用到文件地輸入輸出.在這次也是花了較大地功夫在學習.在文件這里選擇了fprintf,和fscanf兩個函數(shù)來輸入輸出,雖說看起來就像printf和scanf一樣,但是用了之后才發(fā)現(xiàn)原來文件來操作也不是很簡單.在輸入輸出時還需要控制輸入輸出地格式相同,不然在讀入讀出時會
38、產(chǎn)生一些難以調試地問題.還有一個問題是不管在寫什么程序,一個不小心就可能造成打錯字母,或者是按錯符號, 這個錯誤是最隱蔽地,很難發(fā)現(xiàn)出來,在調試地時候,可能會想當然地過去了,導致錯誤 很難被發(fā)現(xiàn).還有就是是在不同編譯器下面可能會出現(xiàn)錯誤,我在其他編譯器上面寫了之后沒問題,在 轉換成dosbox上面地TC地時候出現(xiàn)了一大堆報錯地內容,后來發(fā)現(xiàn)在頭文件里面即使聲明了結構體,在 TC上面也不能用,所以我只能在每個文件上面都聲明了每個結構體,而且如果函數(shù)聲明地順序不對地話也會出現(xiàn)報錯.這個問題在轉換地時候也是困擾了我好久.然后我就去機房地上面地TC 做了一次實驗,發(fā)現(xiàn)在機房上面地TC 如果在頭文件中聲
39、明了,如果在每個文件上面還是有聲明地話就會出現(xiàn)重復聲明地錯誤.所以我就先把每個文件開始地結構體聲明先注釋掉,如果在TC 上面運行有錯地時候可以把注釋給消掉.總地來說,學習編程是一件需要耐心好毅力地事情,編寫一個程序,很容易就會出現(xiàn)語法錯誤或者陷入死循環(huán)地問題.這時候就是考驗你耐力地時候,你需要慢慢地一步一步運行,發(fā)現(xiàn)錯誤,或者上網(wǎng)詢問.這兩周地課程設計,鍛煉地不僅僅是編程能力,更是你地調試能力,是發(fā)現(xiàn)錯誤,解決錯誤地能力 .有時候調試代碼可以調試到半夜,如果還沒解決可能整晚都睡不安穩(wěn),隔天早早起來繼續(xù)調試.雖然很辛苦,不過當問題解決了之后確實很開心參考文獻:C 程序設計(第四版)譚浩強著c p
40、rimer plus 源代碼/主函數(shù)文件#include"tou.h"/*struct studentint studentnumber 。char name20 。char sex。char profession30 。char clas20 。char tel20 。struct student *next 。struct courseint studentnumber 。int coursenumber 。char studentname20 。char coursename20 。int term 。float CR 。float normalmark 。float
41、 experimentmark 。float testmark 。float finalmark 。struct course *next 。struct newcoursechar stuname20 。char courname20 。int cournumber 。float couscore 。struct newcourse *next 。struct stuaverchar name20 。float aver 。struct stuaver *next 。 。 */int main(int argc, char *argv)float a 。int choice 。int cou
42、rnumber1 。int term 。clrscr() 。printf("welcome to my Student Management Information Systemn") 。printf("please input a number to enter") 。scanf("%f",&a) 。clrscr() 。while(1) printf("nnnnnnn") 。printf("welcome to linchao student informationn") 。print
43、f(*n")printf("1recruitn") 。printf("2countn")。printf("3inquiryn") 。printf("4delen")。printf("5sortn")。printf("6search thefail studentn") 。printf("7exitn")。printf(*n")printf("please input your choice: ") 。scanf(&q
44、uot;%d",&choice) 。switch(choice)case 1:clrscr() 。creatstudent()。 break。case 2: clrscr() 。printf(”*n")printf("please input the term:") 。scanf("%d",&term) 。printf("please input the cournumber:") 。scanf("%d",&cournumber1) 。account(readcourse
45、(),cournumber1,term) 。break。 case 3:clrscr() 。case 4:clrscr() 。case 5:clrscr() 。case 6:clrscr() 。case 7: return 0。print3() 。 break。print4() 。 break。print5() 。 break。print6() 。 break。return 0 。#include<stdio.h>#include"tou.h"/*struct studentint studentnumber 。char name20 。char sex。cha
46、r profession30 。char clas20 。char tel20 。struct student *next 。struct courseint studentnumber 。int coursenumber 。char studentname20 。char coursename20 。int term 。float CR 。float normalmark 。float experimentmark 。float testmark 。float finalmark 。struct course *next 。struct newcoursechar stuname20 。ch
47、ar courname20 。int cournumber 。float couscore 。struct newcourse *next 。struct stuaverchar name20 。float aver 。struct stuaver *next 。 。 */統(tǒng)計每學期平均分void account(struct course*chead1,int cournumber1,int term1)struct course*cp 。int flag=0 。int n=0 。float sum=0 。cp=chead1。if(cp=NULL)printf("there is
48、no coursen") 。while(cp!=NULL)if(cp->coursenumber=cournumber1&&cp->term=term1)sum+=cp->finalmark 。n+。flag=1 。cp=cp->next。if(flag=0)printf("there is no this coursen") 。else printf("the average of this course is %fn",(sum/n) 。/統(tǒng)計不及格學生 void searchfail(int ter
49、m1,int coursenumber1,struct course *head1)struct course*cp 。int flag=0 。cp=head1。if(cp=NULL)printf("there is no data in itn") 。elsewhile(cp!=NULL)if(cp->coursenumber=coursenumber1&&cp->term=term1)if(cp->finalmark<60)printf("%s score is %fn",cp->studentname,
50、cp->finalmark) 。flag=1 。 cp=cp->next。if(flag=0)printf("no student fail") 。#include<stdio.h>#include"tou.h"/*struct studentint studentnumber 。char name20 。char sex。char profession30 。char clas20 。char tel20 。struct student *next 。struct courseint studentnumber 。int cou
51、rsenumber 。char studentname20 。char coursename20 。int term 。float CR 。float normalmark 。float experimentmark 。float testmark 。float finalmark 。struct course *next 。struct newcoursechar stuname20 。char courname20 。int cournumber 。float couscore 。struct stuaverchar name20 。float aver 。struct stuaver *
52、next 。 。 */查找學生信息void searchstudent(int studentnumber1,struct student *head) struct student *p 。int flag=0 。p=head。while(p!=NULL)if(p->studentnumber=studentnumber1)printf(”*n")printf("the student's number is %dn",p->studentnumber)。printf("the student's name is %sn",p->name)。printf("the student's sex is %cn",p-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 債權債務轉讓三方協(xié)議
- 建筑工地施工安全責任與材料供應方免責合同
- 鐵力市工程砌磚清包簡單合同(3篇)
- 終止購銷合作協(xié)議書
- 混凝土工作總結
- 人工智能應用推廣合同
- 專業(yè)馬戲團演出合同
- 建設項目擔保協(xié)議書
- 廠房鋼結構工程承包施工合同
- 機械設備租賃合同書
- 【班級管理表格】學生檢討反思承諾書
- 社會保險職工增減表
- 客戶滿意率統(tǒng)計表
- 低壓電工考試題庫(含答案)
- 邊坡抗滑樁計算
- 工程建筑部門周例會-課件
- 2022人臉識別安全白皮書
- 無人機應用案例-石油領域油氣管線巡查
- 青島版三年級下冊口算題大全(全冊完整)
- 固定翼飛機的結構和飛行原理
- 內蒙古鄂爾多斯杭錦經(jīng)濟開發(fā)區(qū)地質災害危險性評估報告
評論
0/150
提交評論