


版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C程序設(shè)計(jì)實(shí)習(xí)報(bào)告題目:學(xué)生證管理系統(tǒng)學(xué)院:機(jī)電學(xué)院專(zhuān)業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化姓名:奎奇班級(jí)學(xué)號(hào):072095-05指導(dǎo)教師:徐凱2011年7月16日目錄一、需求分析31.1題目要求3二、總體設(shè)計(jì)32.1設(shè)計(jì)思想32.2運(yùn)行平臺(tái)及開(kāi)發(fā)環(huán)境32.3數(shù)據(jù)結(jié)構(gòu)42.4系統(tǒng)結(jié)構(gòu)簡(jiǎn)圖43.1主函數(shù)43.2信息輸入53.3總信息的顯示63.4查詢(xún)信息63.4.1按學(xué)號(hào)查詢(xún)63.4.2按班級(jí)查詢(xún)73.5修改信息83.6刪除信息93.7統(tǒng)計(jì)信息93.7.1統(tǒng)計(jì)班級(jí)總?cè)藬?shù)93.7.2統(tǒng)計(jì)學(xué)院或?qū)I(yè)總?cè)藬?shù)103.7.3排序10四、測(cè)試結(jié)果分析104.1輸入信息部分效果圖104.2輸出總信息效果圖114.3查詢(xún)信
2、息效果圖124.4修改信息效果圖134.5刪除效果圖144.6統(tǒng)計(jì)信息效果圖15五、心得體會(huì)16六、參考文獻(xiàn)16七、附錄16一、需求分析1.1題目要求題目:學(xué)生證管理系統(tǒng)該系統(tǒng)應(yīng)該具有下列功能:(1) 錄入某位學(xué)生的學(xué)生證信息(2) 給定學(xué)號(hào),顯示某位學(xué)生的學(xué)生證信息(3) 給定某個(gè)班級(jí)的班號(hào),顯示該班所有學(xué)生的學(xué)生證信息(4) 給定某位學(xué)生的學(xué)號(hào),修改該學(xué)生的學(xué)生證信息(5) 給定某位學(xué)生的學(xué)號(hào),刪除該學(xué)生的學(xué)生證信息提供一些統(tǒng)計(jì)各類(lèi)信息的功能輸入要求:應(yīng)用程序運(yùn)行之后,在屏幕生顯示一個(gè)菜單。用戶(hù)可以根據(jù)需求,選定相應(yīng)的操作項(xiàng)目。進(jìn)入每個(gè)操作后,根據(jù)應(yīng)用程序的提示信息,從鍵盤(pán)輸入相應(yīng)的信息。
3、輸出要求:(1) 應(yīng)用程序運(yùn)行之后,要在屏幕上顯示一個(gè)菜單。(2) 要求用戶(hù)輸入數(shù)據(jù)時(shí),要給出清、晰明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式及結(jié)束方式等。提示:設(shè)計(jì)時(shí)可以采用結(jié)構(gòu)體類(lèi)型和以為數(shù)組類(lèi)型,用來(lái)保存學(xué)生證的內(nèi)容。二、總體設(shè)計(jì)2.1設(shè)計(jì)思想經(jīng)分析,整個(gè)系統(tǒng)可分為以下幾大塊:(1) 學(xué)生證信息的輸入和輸出:輸入輸出學(xué)號(hào)、班號(hào)、姓名、性另U、民族、學(xué)院、專(zhuān)業(yè)、生日、身份證號(hào)等信息。(2) 學(xué)生證信息的保存:在輸入、修改或刪除后,通過(guò)文件將學(xué)生的信息保存。(3) 學(xué)生證信息的的查詢(xún):根據(jù)學(xué)號(hào)查詢(xún)某學(xué)生的信息或者根據(jù)班號(hào)查找該班所有學(xué)生的信息。(4) 學(xué)生證信息的修改:根據(jù)學(xué)號(hào)修改該學(xué)生的信息
4、。(5) 學(xué)生證信息的刪除:根據(jù)學(xué)號(hào)刪除該學(xué)生的信息。(6) 信息的統(tǒng)計(jì):根據(jù)班號(hào)統(tǒng)計(jì)該班總?cè)藬?shù)、根據(jù)學(xué)院統(tǒng)計(jì)該學(xué)院的總?cè)藬?shù)或者根據(jù)專(zhuān)業(yè)統(tǒng)計(jì)該專(zhuān)業(yè)的總?cè)藬?shù)。(7) 信息的排序:按照學(xué)號(hào)從大到小對(duì)學(xué)生的信息進(jìn)行排序。2.2運(yùn)行平臺(tái)及開(kāi)發(fā)環(huán)境此程序是在MicrosoftVisualC+軟件平臺(tái)上編譯的,具有集成開(kāi)發(fā)環(huán)境,可提供編輯C語(yǔ)言,C+以及C+/CLI等等編程語(yǔ)言。VC+整合了便利的除錯(cuò)工具,特別是整合了微軟視窗程式設(shè)計(jì)(WindowsAPI)、三維動(dòng)畫(huà)DirectXAPI,Microsoft.NET框架2.3數(shù)據(jù)結(jié)構(gòu)綜合以上的分析及開(kāi)發(fā)平臺(tái)特點(diǎn),我決定采用結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu),將學(xué)生的基本信息與
5、成績(jī)?cè)O(shè)計(jì)為結(jié)構(gòu)體數(shù)據(jù),用來(lái)存放多個(gè)學(xué)生的信息,把學(xué)生的姓名、學(xué)號(hào)、宿舍號(hào)、成績(jī)作為結(jié)構(gòu)體成員,從而實(shí)現(xiàn)信息之間的對(duì)應(yīng)輸入輸出。但要注意的是要用兩個(gè)不同的結(jié)構(gòu)體分別定義學(xué)生基本信息和學(xué)生成績(jī),以便于后續(xù)的一些功能的實(shí)現(xiàn)。2.4系統(tǒng)結(jié)構(gòu)簡(jiǎn)圖圖2-1三、詳細(xì)設(shè)計(jì)3.1主函數(shù)主函數(shù)的功能是對(duì)各個(gè)子函數(shù)進(jìn)行調(diào)用,并且輸出一個(gè)菜單界面,只需按照菜單輸入相應(yīng)數(shù)字就可以選擇相應(yīng)功能。實(shí)現(xiàn)這一功能主要通過(guò)switch語(yǔ)句,首先通過(guò)printf函數(shù)打印出菜單,然后通過(guò)scanf函數(shù)輸入數(shù)字選擇菜單,經(jīng)過(guò)switch語(yǔ)句判斷調(diào)用相應(yīng)的函數(shù),從而實(shí)現(xiàn)預(yù)定的功能。3.2信息輸入在定義變量時(shí)采用結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu),學(xué)號(hào)、班號(hào)
6、、生日、身份證號(hào)是整型,姓名、性別民族、學(xué)院、專(zhuān)業(yè)是字符型,采用字符型數(shù)組,但數(shù)組長(zhǎng)度一定要足夠,否則會(huì)出現(xiàn)數(shù)據(jù)丟失錯(cuò)誤,考慮到姓名性別的字符長(zhǎng)度,定義它們?yōu)殚L(zhǎng)度為20的字符數(shù)組。且由于涉及到學(xué)生一系列的的基本信息,將基本信息定義為結(jié)構(gòu)體。在將學(xué)生的基本信息輸入時(shí),要將其保存為.txt文件,用來(lái)存放學(xué)生的信息。這時(shí)就涉及到文件的建立和寫(xiě)入,由于fwrite、fread函數(shù)是以二進(jìn)制形式將數(shù)據(jù)寫(xiě)入、讀出文件的,所以在文件中會(huì)出現(xiàn)舌L碼,而fprintf、fscanf煩函數(shù)則會(huì)將ASCII碼轉(zhuǎn)化為二進(jìn)制碼,不會(huì)出現(xiàn)亂碼,所以決定選取較為簡(jiǎn)單的fprintf函數(shù)作為寫(xiě)入文件的函數(shù)。首先定義一個(gè)指向文
7、件的指針,再定義一個(gè)整型的外部變量變量N,定義整形的外部變量是為了控制輸入的人數(shù),并用for函數(shù)進(jìn)行循環(huán),在輸入數(shù)據(jù)之后當(dāng)然,自動(dòng)調(diào)用save函數(shù),循環(huán)N次,通過(guò)指針打開(kāi)建立一個(gè)文本文件,fprintf函數(shù)自動(dòng)建立一個(gè)文本文件,實(shí)現(xiàn)向文件中寫(xiě)入N組數(shù)據(jù)的功能。循環(huán)結(jié)束后文件件中已經(jīng)寫(xiě)入要輸入的信息。在程序的最后通過(guò)一個(gè)if和else判斷語(yǔ)句,結(jié)合printf和scanf函數(shù)判斷是否繼續(xù)執(zhí)行輸入函數(shù)或者返回菜單。流程圖如圖3-2。圖3-23.3總信息的顯示這部分比較簡(jiǎn)單,主要是通過(guò)主函數(shù)調(diào)用,先打開(kāi)文件用fprintf函數(shù)將數(shù)據(jù)全部讀入,然后經(jīng)過(guò)for循環(huán),經(jīng)數(shù)據(jù)全部輸出,最后通過(guò)一個(gè)if和el
8、se判斷語(yǔ)句,結(jié)合printf和scanf函數(shù)判斷是否繼續(xù)執(zhí)行本函數(shù)或者返回菜單。流程圖如圖3-3。圖3-33.4查詢(xún)信息3.4.1按學(xué)號(hào)查詢(xún)此函數(shù)通過(guò)主函數(shù)調(diào)用,先將文件打開(kāi)讀入數(shù)據(jù),然后輸入學(xué)號(hào),經(jīng)過(guò)循環(huán)查找最終確定該學(xué)生的位置,進(jìn)行輸出;當(dāng)輸入的學(xué)號(hào)沒(méi)有時(shí),會(huì)重新執(zhí)行本函數(shù)。3.4.2按班級(jí)查詢(xún)此函數(shù)通過(guò)主函數(shù)調(diào)用,先將文件打開(kāi)讀入數(shù)據(jù),然后輸入班號(hào),經(jīng)過(guò)循環(huán)查找最終確定該班所有學(xué)生的位置,進(jìn)行輸出;當(dāng)輸入的班號(hào)沒(méi)有時(shí),會(huì)重新執(zhí)行本函數(shù)。圖3-53.5修改信息本程序采用的基本思路是先查找,找到之后再對(duì)信息逐條修改。查找仍是用for循環(huán),輸入一個(gè)學(xué)號(hào),然后逐個(gè)進(jìn)行比對(duì),找到之后再輸入你想修
9、改的信息,將原數(shù)據(jù)替換,最后保存。開(kāi)始仍然有對(duì)學(xué)號(hào)的判斷,最后仍然有返回主菜單的判斷。主函數(shù)圖3-63.6刪除信息刪除的基本思想就是后面的信息覆蓋前面的信息,后面的信息被0代替,從而實(shí)現(xiàn)刪除功能。具體實(shí)現(xiàn)方法就是選擇刪除功能,利用文件指針和fscanf函數(shù),將文件內(nèi)容讀出,顯示在屏幕上,讓用戶(hù)決定刪除哪一個(gè)學(xué)生的基本信息,然后輸入該學(xué)生的學(xué)號(hào)賦值給一個(gè)整型變量,利用for循環(huán)在文件中查找與該變量值相同的學(xué)生,找到之后將后面一個(gè)結(jié)構(gòu)體的全部信息賦值給前面一個(gè)結(jié)構(gòu)體,從而將該學(xué)生信息“刪除”同時(shí)要實(shí)現(xiàn)的是在存放成績(jī)的文件中也要該同學(xué)的成績(jī)信息刪除,原理相同,就是在找到該同學(xué)的信息之后,保留循環(huán)變量
10、的值,再對(duì)成績(jī)文件里該同學(xué)的進(jìn)行相同覆蓋操作,即可實(shí)現(xiàn)同時(shí)在B文件刪除信息。流程圖如下;圖3-73.7統(tǒng)計(jì)信息首先定義一個(gè)變量x=0,讀入數(shù)據(jù),然后輸入你想統(tǒng)計(jì)的班號(hào),學(xué)院或?qū)I(yè)名稱(chēng),然后通過(guò)for循環(huán),進(jìn)行比較,當(dāng)數(shù)據(jù)中的班號(hào),學(xué)院或?qū)I(yè)名稱(chēng)與你輸入的相同時(shí),x+1,循環(huán)結(jié)束最后將x的值輸出,即為統(tǒng)計(jì)的總?cè)藬?shù)。3.7.1統(tǒng)計(jì)班級(jí)總?cè)藬?shù)排序的基本思想即為“冒泡法”。在編寫(xiě)函數(shù)時(shí),要注意如何實(shí)現(xiàn)結(jié)構(gòu)體變量之間的交換,由于結(jié)構(gòu)體中成員較多,數(shù)據(jù)結(jié)構(gòu)較為復(fù)雜,因此需要采用中間變量進(jìn)行替換。具體的操作在程序開(kāi)始成績(jī)定義結(jié)構(gòu)體變量時(shí),需要定義兩組成績(jī)結(jié)構(gòu)體變量,一組用于存放數(shù)據(jù),另一組即用來(lái)作為零時(shí)替換
11、變量,用來(lái)接受將需要交換的變量值。首先還是需要進(jìn)行問(wèn)基金按內(nèi)容的讀出。再用冒泡法排序,冒泡法就是用第一個(gè)值分別與后面的每一個(gè)值進(jìn)行比較,如果小于后一個(gè)值則交換它們的值,再將已變換過(guò)的第一個(gè)值與后面的每一個(gè)值比較,直到一個(gè)for循環(huán)結(jié)束,然后再進(jìn)行相同的過(guò)程,直到一個(gè)大的for循環(huán)結(jié)束。然后將排序后的文件內(nèi)容顯示出來(lái),。流程圖如下:圖3-10以上就是各模塊的詳細(xì)設(shè)計(jì),在主菜單中選擇調(diào)用各個(gè)模塊子的函數(shù),從而實(shí)現(xiàn)不同功能四、測(cè)試結(jié)果分析MKtcNHX生日部M點(diǎn)翳性別,毛醫(yī)旋廠(chǎng)漢身份證:陽(yáng)招近回干蘋(píng)甲按N-重莉元:X技真他任茵數(shù)字一一將輸八散字后選洋菜單竹"D:iVExtDe!bjgVzh
12、uI日nshu-exe非M14*K業(yè)與A輸X-4£.7_y_7_退g.正-VFt.'T亍T.,莘旬計(jì)“息月士一芝卷京又釜宇1MH昭清T也第*也李*S下.1如號(hào)想班亍帥幾學(xué):1:44破電學(xué)10機(jī)圖4-3文件如圖4-4免百F)此(日梧式(。)M-:V幫乾H|10012李男漢機(jī)電機(jī)械1991202010023張女漢機(jī)電機(jī)械19915050圖4-44.3查詢(xún)信息效果圖匕'D:、WwtDe_:jL-'nuu-bhu'耳F一百JI口.!信宇艮*-MlTJ皂訂拜E3肓星磐證證業(yè)胃z_.15e改己'KM一4逐f基算.董某番剪景的叩一了,王生時(shí)仔7-:H蕾墨按有
13、輸入敬字J后誼擇縈單宙再藏學(xué)生-11款畿矗繭教壬二圖4-5由笙«,證的生色已尋學(xué).T:是雷登證訕芝所指藪ze一>4st牛某曲的的-E麝羞®有SM丈-珂學(xué)T-H1要基i裹feN-的序234Rb7A9_'lJ:AV<,ytDtbjgmLihir'*,吉輸人款學(xué)后恍峰斃單IW輸入塞蔓星示的學(xué)生的學(xué)號(hào)1HR1康學(xué):令目婦P岸號(hào)眺號(hào)舊渣爭(zhēng):季性別=再民族:漢懺院訐幾電專(zhuān)業(yè)"幾Vf生日”9”身彳帝正以?xún)zH圖4-6圖4-74.4修改信息效果圖U:vcYxiyU-ebugizhuhariishu-t-xte8臺(tái)輸人您要修改昭學(xué)生的學(xué)號(hào)原,倍島如下十號(hào):
14、!班.號(hào)m森.機(jī)電<1!姓名:季專(zhuān)業(yè):戒秘性別,男民族=溟主日”9*?1身仞證另瞳傍診輸八該學(xué)生的新信息字亭1003fig:V售膏:打:國(guó)業(yè).航襟.191'SjTj:MHMM亶ar饑疝怕.息加f<忍弩侃互.V°1003i>A°頂邙:拳學(xué)院=嘰聿軍業(yè)=嘰祿可以查御驗(yàn)UE)44荊=咒民"'口主日;t99d身份證:2B2fi翠魅浦任意教字二二圖4-8回文岸舊衰輯舊格式Q)萱看V幫勘0H)U035李男漢機(jī)電19以2020>10023張女投機(jī)電機(jī)械199150504圖4-9:StLiIkl-記事本4.5刪除效果圖MlDveXxtOeb
15、ugizhuihwnahci-ejce*MMMM奪=Q并-散序:營(yíng)奏;.意XK1胃稟的MMMMMK排序后的.真折急一詰輜人敬字后選擇菜單,請(qǐng)柚入您要?jiǎng)h除的孑生的學(xué)號(hào)該學(xué)生原信昌如二學(xué)號(hào)”做H班M并察,機(jī)電專(zhuān)業(yè)=張性刖=女k族=農(nóng)生3:lV9i身份證山甘W箴學(xué)生的信息已些AM除(已鯉保存,可以杳泊書(shū)曲)學(xué)號(hào)2班號(hào)2揪名:MULL懺割nNULL民形:NULL學(xué)院洶ULL專(zhuān)W=NULL=-0身份證泅-坂回工琴竺J專(zhuān)n4重新寂彩其他任意致宇一一圖4-114.6統(tǒng)計(jì)信息效果圖圖4-12序河出排序兀的總信息D:vxtDebiLigzhiJhanE-hu.eife'1,噬微in任章的的的蒙某某某蘋(píng)按
16、<-班改Mw,:退語(yǔ)輸人教字,旨旋揮荼單-打序后的信息如下(已經(jīng)保存.可以查詢(xún)眇證)芋耳泌J1I號(hào);由姓名地IE,性glsHILL民藏以ULL孕院WILL專(zhuān)業(yè):NULL生日邱身份證函輯旻擦g班號(hào)電1曾逢李-性別崩門(mén)民族成學(xué)曉;機(jī)電專(zhuān)業(yè)=君諼生日尊份證:2礎(chǔ)B返回足英單應(yīng)以一貧耕錄入奇貧他任童數(shù)字一一Istu_iist記事本旦癸00NULLNULLNULLNULLNULL001D035李男漢機(jī)電機(jī)械199120204卜圖4-14五、心得體會(huì)在本次實(shí)習(xí)中,我又重新熟悉了一遍c,感覺(jué)很多東西都已經(jīng)遺忘了,所以在編程的時(shí)候需要不斷的翻書(shū)查資料,用了很多時(shí)間,不過(guò)編程還算順利,遇到的問(wèn)題在看課本之
17、后都解決了。程序的缺點(diǎn)還有很多,比如沒(méi)有實(shí)現(xiàn)對(duì)文本的添加功能,不能在已有的數(shù)據(jù)上添加新的數(shù)據(jù),在程序的輸入和輸出的地方也有很多的不足,輸出的效果也不是很好。我會(huì)在以后進(jìn)一步熟悉c,改掉這些缺點(diǎn)和錯(cuò)誤。六、參考文獻(xiàn)1譚浩強(qiáng)«C程序設(shè)計(jì)第三版清華大學(xué)出版社20052張冬梅等«C語(yǔ)言課程設(shè)計(jì)與實(shí)習(xí)指導(dǎo)第一版中國(guó)鐵道出版社2008七、附錄主函數(shù)主函數(shù)通過(guò)菜單,用switch函數(shù)調(diào)用子函數(shù),來(lái)實(shí)現(xiàn)各個(gè)模塊的功能。voidmain()(inta;voiddi1();voiddi2();voiddi3();voiddi4();voiddi5();voiddi6();/*子函數(shù)的申明*/v
18、oiddi7();voiddi8();voiddi9();printf("nn");printf("學(xué)生證管理系統(tǒng)nn");printf("菜單n");printf("*");printf("*1.錄入學(xué)生的學(xué)生證信息*n");printf("*2.顯示所有學(xué)生的學(xué)生證信息*n");printf("*3.按學(xué)號(hào)查找某學(xué)生的學(xué)生證信息*n");printf("*4.按班級(jí)查找某班所有學(xué)生的學(xué)生證信息*n");printf("*5
19、.修改某學(xué)生的學(xué)生證信息*n");printf("*6.刪除某學(xué)生的學(xué)生證信息*n");printf("*7.統(tǒng)計(jì)某班的總?cè)藬?shù)*n");printf("*8.統(tǒng)計(jì)某學(xué)院或某專(zhuān)業(yè)的總?cè)藬?shù)*n");printf("*9.按照學(xué)號(hào)從小到大排序并輸出排序后的總信息*n");printf("*退出請(qǐng)按其余的任意鍵*n");printf("*");printf("nnn");printf("請(qǐng)輸入數(shù)字后選擇菜單n");scanf(&quo
20、t;%d",&a);switch(a)case1:di1();break;case2:di2();break;case3:di3();break;/*選擇菜單*/case4:di4();break;case5:di5();break;case6:di6();break;case7:di7();break;case8:di8();break;case9:di9();break;default:printf("按任意鍵確認(rèn)n");保存模塊voidsave()/*打開(kāi)一個(gè)文件并寫(xiě)入數(shù)據(jù)*/FILE*fp;inti;if(fp=fopen("stu_li
21、st.txt”,"w")=NULL)(printf("cannotopenfilen");return;for(i=0;i<N;i+)fprintf(fp,"%-5d%-5d%-10s%-5s%-5s%-10s%-10s%-5d%-5dnn",stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,stui.shengri,stui.shenfenzheng);fclose(fp);錄入函數(shù)voiddi1()/*錄入數(shù)據(jù)*/(
22、inti;intt;FILE*fp3;fp3=fopen("Num.txt”,"w”);printf("你需要錄入幾位學(xué)生的信息n");scanf("%d”,&N);putw(N,fp3);printf("請(qǐng)依次輸入n");for(i=0;i<N;i+)(printf("第%d個(gè)學(xué)生n",i+1);printf("學(xué)號(hào):”);scanf("%d",&stui.xuehao);printf("班號(hào):”);scanf("%d",
23、&stui.banhao);printf("姓名:”);scanf("%s",);printf("性別:”);scanf("%s",stui.sex);printf("民族:”);scanf("%s",stui.minzu);printf("學(xué)院:");scanf("%s",stui.xueyuan);printf("專(zhuān)業(yè):”);scanf("%s",stui.zhuanye);printf("生日:
24、");scanf("%d”,&stui.shengri);printf("身份證:");scanf("%d",&stui.shenfenzheng);)save();fclose(fp3);printf("錄入成功n");printf("-返回主菜單按:1-n");printf("-重新錄入按其他任意數(shù)字-n");scanf("%d",&t);if(t=1)main();elsedi1();)顯示所有學(xué)生的信息voiddi2()/*
25、顯示所有學(xué)生的數(shù)據(jù)*/inti;intt;FILE*fp;FILE*fp3;fp3=fopen("Num.txt","r");fp=fopen("stu_list.txt","r");N=getw(fp3);printf("所有學(xué)生信息如下n");for(i=0;i<N;i+)fscanf(fp,"%d%d%s%s%s%s%s%d%d",&stui.xuehao,&stui.banhao,,&stui.sex,&stui
26、.minzu,&stui.xueyuan,&stui.zhuanye,&stui.shengri,&stui.shenfenzheng);printf("第%d個(gè)學(xué)生n",i+1);printf("學(xué)號(hào):%-5d班號(hào):%-5d姓名:%-10s性別:-5s民族:%-5sn學(xué)院:%-10s專(zhuān)業(yè):%-10s生日:%-5d身份證:-5dnn",stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,stui.shengri,st
27、ui.shenfenzheng);)fclose(fp);fclose(fp3);printf("-返回主菜單按:1-n");printf("-重新錄入按其他任意數(shù)字-n");scanf("%d",&t);if(t=1)main();elsedi2();)按學(xué)號(hào)查找voiddi3()/*按學(xué)號(hào)查找學(xué)生信息*/(inti;intb;intt;intg=0;FILE*fp;FILE*fp3;fp3=fopen("Num.txt","r");fp=fopen("stu_list.tx
28、t”,"r”);N=getw(fp3);printf("請(qǐng)輸入您要顯示的學(xué)生的學(xué)號(hào)n");scanf("%d”,&b);for(i=0;i<N;i+)(fscanf(fp,"%d%d%s%s%s%s%s%d%d”,&stui.xuehao,&stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,&stui.shengri,&stui.shenfenzheng);if(stui.xuehao=b)g=g+1;if(g!=
29、0)(printf("該學(xué)生信息如下n");for(i=0;i<N;i+)(if(stui.xuehao=b)printf("學(xué)號(hào):%-5d班號(hào):%-5d姓名:%-10s性別:-5s民族:-5sn學(xué)院:%-10s專(zhuān)業(yè):%-10s生日:%-5d身份證:-5dnn”,stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,stui.shengri,stui.shenfenzheng);elseprintf("沒(méi)有該學(xué)生n");fclose(
30、fp);fclose(fp3);printf("n");printf("-返回主菜單按:1-n");printf("-重新錄入按其他任意數(shù)字-n");scanf("%d",&t);if(t=1)main();elsedi3();按班號(hào)查找voiddi4()/*顯示某班所有學(xué)生的數(shù)據(jù)*/(inti;intc;intt;intg=0;FILE*fp;FILE*fp3;fp3=fopen("Num.txt","r");fp=fopen("stu_list.txt”
31、,"r”);N=getw(fp3);printf("請(qǐng)輸入您要顯示的班的班號(hào)n");scanf("%d”,&c);for(i=0;i<N;i+)(fscanf(fp,"%d%d%s%s%s%s%s%d%d”,&stui.xuehao,&stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,&stui.shengri,&stui.shenfenzheng);if(stui.banhao=c)g=g+1;if(g!=0)(
32、printf("該班的所有學(xué)生的信息如下n");for(i=0;i<N;i+)(if(stui.banhao=c)printf("學(xué)號(hào):%-5d班號(hào):%-5d姓名:%-10s性別:-5s民族:%-5sn學(xué)院:%-10s專(zhuān)業(yè):%-10s生日:%-5d身份證:-5dnn”,stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,stui.shengri,stui.shenfenzheng);elseprintf("沒(méi)有該班n");fclos
33、e(fp);fclose(fp3);printf("n");printf("-返回主菜單按:1-n");printf("-重新錄入按其他任意數(shù)字-n");scanf("%d",&t);if(t=1)main();elsedi4();)修改voiddi5()/*按學(xué)號(hào)修改學(xué)生的信息*/(inti;intd;intm;intn;intt;intg=0;charp20;charq20;charr20;chars20;chart120;intu;intv;FILE*fp;FILE*fp3;fp3=fopen(&qu
34、ot;Num.txt","r");fp=fopen("stu_list.txt”,"r”);N=getw(fp3);printf("請(qǐng)輸入您要修改的學(xué)生的學(xué)號(hào)n");scanf("%d”,&d);for(i=0;i<N;i+)(fscanf(fp,"%d%d%s%s%s%s%s%d%d”,&stui.xuehao,&stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,&stui.she
35、ngri,&stui.shenfenzheng);if(stui.xuehao=d)g=g+1;)if(g!=0)(for(i=0;i<N;i+)(if(stui.xuehao=d)(printf("該學(xué)生的原信息如下n");printf("學(xué)號(hào):%-5d班號(hào):%-5d姓名:%-10s性別:-5s民族:-5sn學(xué)院:%-10s專(zhuān)業(yè):%-10s生日:%-5d身份證:-5dnn”,stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,stui.she
36、ngri,stui.shenfenzheng);printf(-請(qǐng)依次輸入該學(xué)生的新信息n");printf("學(xué)號(hào):”);scanf("%d”,&m);printf("班號(hào):”);scanf("%d",&n);printf("姓名:”);scanf("%s",p);printf("性別:”);scanf("%s",q);printf("民族:”);scanf("%s",r);printf("學(xué)院:");sca
37、nf("%s",s);printf("專(zhuān)業(yè):”);scanf("%s",t1);printf("生日:");scanf("%d",&u);printf("身份證:");scanf("%d”,&v);stui.xuehao=m;stui.banhao=n;strcpy(,p);strcpy(stui.sex,q);strcpy(stui.minzu,r);strcpy(stui.xueyuan,s);strcpy(stui.zhuanye,t1
38、);stui.shengri=u;stui.shenfenzheng=v;printf("n");printf("該學(xué)生的新信息如下(已經(jīng)保存,可以查詢(xún)驗(yàn)證)n");printf("學(xué)號(hào):-5d班號(hào):-5d姓名:%-10s性別:-5s民族:-5sn學(xué)院:%-10s專(zhuān)業(yè):%-10s生日:%-5d身份證:-5dnn",stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,stui.shengri,stui.shenfenzheng);
39、save();elseprintf("沒(méi)有該學(xué)生n");fclose(fp);fclose(fp3);printf("n");printf("-返回主菜單按:1-n");printf("-重新錄入按其他任意數(shù)字-n");scanf("%d”,&t);if(t=1)main();elsedi5();刪除voiddi6()/*按學(xué)號(hào)刪除學(xué)生的信息*/inti;inte;intt;intm=0;intn=0;charq20="NULL"charp20="NULL"
40、intg=0;charr20="NULL"chars20="NULL"chart120="NULL"intu=0;intv=0;FILE*fp;FILE*fp3;fp3=fopen("Num.txt","r");fp=fopen("stu_list.txt","r");N=getw(fp3);printf("請(qǐng)輸入您要?jiǎng)h除的學(xué)生的學(xué)號(hào)n");scanf("%d",&e);for(i=0;i<N;i+)f
41、scanf(fp,"%d%d%s%s%s%s%s%d%d",&stui.xuehao,&stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,&stui.shengri,&stui.shenfenzheng);if(stui.xuehao=e)g=g+1;if(g!=0)for(i=0;i<N;i+)if(stui.xuehao=e)printf("該學(xué)生的原信息如下n");printf("學(xué)號(hào):%-5d班號(hào):%-5d姓名:%
42、-10s性別:-5s民族:%-5sn學(xué)院:%-10s專(zhuān)業(yè):%-10s生日:%-5d身份證:-5dnn",stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,stui.shengri,stui.shenfenzheng);stui.xuehao=m;stui.banhao=n;strcpy(,p);strcpy(stui.sex,q);strcpy(stui.minzu,r);strcpy(stui.xueyuan,s);strcpy(stui.zhuanye,
43、t1);stui.shengri=u;stui.shenfenzheng=v;printf("該學(xué)生的信息已經(jīng)刪除(已經(jīng)保存,可以查詢(xún)驗(yàn)證)n");printf("學(xué)號(hào):%-5d班號(hào):%-5d姓名:%-10s性別:-5s民族:%-5sn學(xué)院:%-10s專(zhuān)業(yè):%-10s生日:%-5d身份證:-5dnn",stui.xuehao,stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,stui.shengri,stui.shenfenzheng);save();elseprint
44、f("沒(méi)有該學(xué)生n");fclose(fp);fclose(fp3);printf("n");printf("-返回主菜單按:1-n");printf("-重新錄入按其他任意數(shù)字-n");scanf("%d”,&t);if(t=1)main();elsedi6();統(tǒng)計(jì)某班學(xué)生總?cè)藬?shù)voiddi7()/*統(tǒng)計(jì)某班的學(xué)生總數(shù)*/inti;intf;intt;intg=0;FILE*fp;FILE*fp3;fp3=fopen("Num.txt","r");fp=
45、fopen("stu_list.txt","r");N=getw(fp3);for(i=0;i<N;i+)fscanf(fp,"%d%d%s%s%s%s%s%d%d",&stui.xuehao,&stui.banhao,,stui.sex,stui.minzu,stui.xueyuan,stui.zhuanye,&stui.shengri,&stui.shenfenzheng);printf("請(qǐng)輸入班號(hào)n");scanf("%d",&am
46、p;f);for(i=0;i<3;i+)if(stui.banhao=f)g=g+1;fclose(fp);fclose(fp3);if(g=0)printf("該班的總?cè)藬?shù)為:0或沒(méi)有該班n");elseprintf("該班的總?cè)藬?shù)為:%dn",g);printf("n");printf("-返回主菜單按:1-n");printf("-重新錄入按其他任意數(shù)字-n");scanf("%d",&t);if(t=1)main();elsedi7();統(tǒng)計(jì)學(xué)院或?qū)I(yè)的
47、總?cè)藬?shù)voiddi8()/*統(tǒng)計(jì)學(xué)院或?qū)I(yè)的總?cè)藬?shù)*/inti;charx20;inty;intt;intg=0;FILE*fp;FILE*fp3;fp3=fopen("Num.txt","r");fp=fopen("stu_list.txt","r");N=getw(fp3);for(i=0;i<N;i+)fscanf(fp,"%d%d%s%s%s%s%s%d%d",&stui.xuehao,&stui.banhao,,stui.sex,stui.min
48、zu,stui.xueyuan,stui.zhuanye,&stui.shengri,&stui.shenfenzheng);printf("請(qǐng)問(wèn)您要統(tǒng)計(jì)學(xué)院總?cè)藬?shù)還是專(zhuān)業(yè)總?cè)藬?shù)n");printf("學(xué)院按1n");printf("專(zhuān)業(yè)按其余任意數(shù)字n");scanf("%d",&y);if(y=1)printf("請(qǐng)輸入學(xué)院名稱(chēng)n");scanf("%s",&x);for(i=0;i<N;i+)if(strcmp(stui.xueyu
49、an,x)=0)g=g+1;if(g=0)printf("該學(xué)院的總?cè)藬?shù)為:0或沒(méi)有該學(xué)院n");elseprintf("該學(xué)院的總?cè)藬?shù)為:%dn",g);elseprintf("請(qǐng)輸入專(zhuān)業(yè)名稱(chēng)n");scanf("%s",&x);for(i=0;i<N;i+)if(strcmp(stui.zhuanye,x)=0)g=g+1;if(g=0)printf("該專(zhuān)業(yè)的總?cè)藬?shù)為:0或沒(méi)有該專(zhuān)業(yè)");elseprintf("該專(zhuān)業(yè)的總?cè)藬?shù)為:%d",g);fclose(fp);fclose(fp3);printf("n");printf("-返回主菜單按:1-n");printf("-重新錄入按其他任意數(shù)字-n");scanf("%d",&t);if(t=1)main();elsedi8();)3.11排序voiddi9()/*按學(xué)號(hào)的大小對(duì)所有學(xué)生的信息進(jìn)行排序*/(inti;inth;intt;ints;chark20;FILE*fp;FILE*fp3;fp3=fopen("Num.txt","
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省湛江一中2025屆高考化學(xué)三模試卷含解析
- 2025屆吉林省吉林市蛟河市蛟河一中高三第四次模擬考試化學(xué)試卷含解析
- 幼兒園國(guó)慶中秋主題教育
- 2025年泵配件項(xiàng)目可行性建設(shè)方案
- 五年級(jí)數(shù)學(xué)(小數(shù)乘除法)計(jì)算題專(zhuān)項(xiàng)練習(xí)及答案
- 2025年啤酒大麥新品種項(xiàng)目構(gòu)思建設(shè)方案
- 2025年車(chē)用交流發(fā)電機(jī)項(xiàng)目構(gòu)思建設(shè)方案
- 2025年通訊檢測(cè)儀器項(xiàng)目建議書(shū)
- 陜西西安市交大附中2024-2025學(xué)年初三下學(xué)期3月第二次診斷性檢測(cè)試題物理試題理試題含解析
- 隨州職業(yè)技術(shù)學(xué)院《園林制圖》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年中國(guó)尤加利精油市場(chǎng)調(diào)查研究報(bào)告
- 《環(huán)境設(shè)計(jì)工程計(jì)量與計(jì)價(jià)》課件-1.什么是裝飾工程預(yù)算
- 藥廠(chǎng)環(huán)保知識(shí)培訓(xùn)課件
- 某露天礦山剝離工程施工組織設(shè)計(jì)方案
- 基于A(yíng)I技術(shù)的小學(xué)數(shù)學(xué)智慧課堂教學(xué)研究
- 蜜雪冰城合作加盟合同
- UL489標(biāo)準(zhǔn)中文版-2019斷路器UL標(biāo)準(zhǔn)中文版
- 新聞社服務(wù)行業(yè)現(xiàn)狀分析及未來(lái)三至五年行業(yè)發(fā)展報(bào)告
- 《無(wú)人機(jī)培訓(xùn)教材》課件
- DB21-T 1642-2024 鎂質(zhì)耐火原料及制品單位產(chǎn)品能源消耗限額
- 移動(dòng)成都分公司城區(qū)營(yíng)業(yè)廳物業(yè)管理投標(biāo)書(shū)
評(píng)論
0/150
提交評(píng)論