




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程程課程實實驗報告告系統名稱稱 _ 學生信信息管理理系統_學 院_ 計算機機學院信信息_ _學生信息息管理系系統設計計文檔可行性研研究 1.1技技術可行行性已經有人人開發過過,并且且我們也也都使用用過相類類似系統統,對其其一般性性的軟件件和操作作環境、編譯環環境都比比較熟悉悉,所以以說在技技術上來來說是可可行的。1.2經經濟可行行性當前系統統只對服服務器有有關的要要求,在在服務費費用方面面,支出出在你那那個承擔擔的范圍圍,以后后的維護護及其他他設備的的總共費費用在可可以承擔擔的范圍圍。用當當前系統統可以節節約出能能夠支付付當前系系統的直直接支出出,以后后維護費費用更是是比以前前的機制制節
2、約很很多錢。1.3操操作可行行性系統的操操作方式式在這個個用戶組組織內能能行得通通。需求分析析2.1輸輸入讓學生在在紙面上上填寫相相關內容容,然后后等待輔輔導員或或管理員員的審批批確認后后,再輸輸入數據據庫中保保存。2.2輸輸出學生選擇擇用戶選選項進入入系統后后,系統統可經有有算法程程序輸出出學生基基本信息息表,學學習成績績表等。2.2.1打印印輸出可打印基基本信息息、學習習成績等等各種表表格以及及在對相相應信息息進行統統計操作作后的表表格。2.2.2文件件輸出可將所有有打印表表格輸出出到EXXCELL文件中中,以便便用戶使使用其它它的EXXCELL軟件改改變表格格的大小小及字體體。2.3故故
3、障處理理2.3.1內部部故障處處理在開發階階段可以以隨即修修改數據據庫里的的相應內內容。 2.3.2外部部故障處處理對編輯的的程序進進行重裝裝載時,第一次次裝載認認為錯,修改。第二次次運行,在需求求調用時時出錯,有錯誤誤提示,重試。2.4性性能要求求分析2.4.1系統統易操作作性所開發的的系統應應做到操操作簡單單,盡量量使系統統操作不不受用戶戶對電腦腦知識水水平的限限制。2.4.2系統統具有可可維護性性由于系統統涉及的的信息比比較廣,數據庫庫中的數數據需定定期修改改,系統統可利用用的空間間及性能能也隨之之下降,為了使使系統更更好地運運轉,學學院可以以對系統統數據及及一些簡簡單的功功能進行行獨立
4、的的維護及及調整。2.4.3系統統具有開開放性該系統能能夠在開開放的硬硬件體系系結構中中運行,并且能能與其他他系統順順利連接接,不會會因外部部系統的的不同面面要做在在量的修修改工作作。3.概要要設計3.1基基本設計計概念和和處理流流程管理員通通過密碼碼認證,進入信信息管理理頁面對對學生相相關信息息的錄入入、更新新、修改改、添加加等操作作,也可可以通過過查詢界界面對學學生信息息進行完完全的查查詢,而而學生和和相關人人員只能能通過公公共的查查詢界面面對學生生信息進進行查詢詢,如要要對學生生信息進進行完全全查詢就就需要得得到管理理員的同同意。管理界面數據中 心處理處理打印查詢管理員操作信息輸出查詢用
5、戶界面3.2接接口設計計 本系統統采用快快速原型型開發工工具Viisuaal BBasiic 66.0進進行開發發,所提提供的不不同層次次的接口口,都具具有高度度的集成成性,本本系統沒沒有采用用低級語語言設計計和完成成自定義義接口,因此接接口設計計部分已已經由不不同方式式的組件件來完成成了,以以下只做做簡單說說明。3.2.1用戶戶接口 說明將向向用戶提提供的命命令和它它們的語語法結構構,以及及軟件的的回答信信息。命令語法信息正確確信息錯誤誤提交IF ELSSE進入系統統返回到當當前界面面重設點擊事件件清空輸入入的數據據無取消點擊事件件返回到當當前界面面無3.2.2外部部接口說明本系系統同外外界
6、的所所有接口口的安排排包括軟軟件與硬硬件之間間的接口口、本系系統與各各支持軟軟件直接接的關系系。硬件接口口軟件接口口鍵盤鼠標打印機主模塊管理模塊塊查詢模塊塊3.2.3內部部接口說明本系系統之內內的各個個系統元元素之間間的接口口的安排排。數據據庫接口口設計采采用ADDO連接接方式。模塊名稱稱主模塊管理員驗驗證模塊塊用戶查詢詢界面管理界面面主模塊管理員驗驗證模塊塊用戶查詢詢界面管理界面面4.詳細細設計4.1控控制流程程圖4.1.1主模模塊軟件件結構4.1.2管理理員登陸陸軟件結結構4.1.3用戶戶查詢軟軟件結構構用戶查詢模塊輸入查詢條件IF正確輸出結果ELSE打印出結果返回重新輸入條件4.2源源程
7、序流流程圖5、項目目測試功能截圖圖: 5.1 登 陸陸 界 面 5.2 學學生用戶戶功能界界面 55.3 學學生查詢詢功能 5.4 管理員員管理界界面 5.55 管理理員輸入入功能 55.6 管管理員刪刪除功能能 5.7 管理員員查詢功功能 5.8 管管理員修修改功能能 5.99 管理理員插入入功能 5.10 統計功功能 5.11 分類功功能 5.12 顯顯示功能能 5.13 管管理員保保存功能能文件保存存名為:STUUDENNT 路路徑為:C:6、項目目管理6、1 人員管管理 團隊隊負責人人:陶修修赟 小組組成員:萬富,洪鑫,汪賢惠惠,項鑫鑫6、2產產品管理理 本產產品工作作于iin-TTC
8、工作作環境,用于對對學生成成績的管管理。學學生用戶戶,可進進行查詢詢課程成成績;管管理員可可對學生生及其成成績進行行錄入、修改、查詢、排列等等功能。本系統統可進行行維護,修改。6、3進進程管理理可行性分分析:55月233日55月244日 標志:提交可可行性分分析報告告項目開發發計劃:5月225日5月226日 標標志:提提交項目目開發計計劃需求分析析:5月月27日日5月月27日日 標志志:完成成需求分分析報告告軟件設計計:5月月30日日6月月1日 標志志:完成成軟件分分析與設設計文檔檔編程實現現:6月月2日6月110日 標標志:代代碼編寫寫全部完完成軟件測試試:6月月13日日6月月14日日 標標
9、志:完完成軟件件測試,可投入入使用可行性分析:5月25日5月26日 標志:提交可行性分析報告項目開發計劃:5月27日5月30日 標志:提交項目開發計劃需求分析:5月31日5月31日 標志:完成需求分析報告軟件設計:6月1日6月3日 標志:完成軟件分析與設計文檔軟件實現:6月6日6月14日 標志:代碼編寫全部完成測試與實施:6月15日6月16日 標志:完成軟件測試,可投入使用可行性分析:5月25日5月26日 標志:提交可行性分析報告項目開發計劃:5月27日5月30日 標志:提交項目開發計劃需求分析:5月31日5月31日 標志:完成需求分析報告軟件設計:6月1日6月3日 標志:完成軟件分析與設計文
10、檔軟件實現:6月6日6月14日 標志:代碼編寫全部完成測試與實施:6月15日6月16日 標志:完成軟件測試,可投入使用6、4項項目計劃劃甘特圖圖7、編 碼#inccludde #inccludde #inccludde strringg.h#inccludde connio.h#deffinee HEEADEER1 -SSTUDDENTT- n#deffinee HEEADEER2 | nnumbber | nnamee |Commp|MMathh|Enng | summ | aave |mmicii | n#deffinee HEEADEER3 |-|-|-|-|-|-|-|-| #deff
11、inee FOORMAAT | %-100s |%-115s|%4dd|%44d|%4d| %44d | %.22f |%4dd |n#deffinee DAATA p-daata.numm,p-daata.namme,pp-ddataa.eggradde,pp-ddataa.mggradde,pp-ddataa.cggradde,pp-ddataa.tootall,p-daata.avee,p-daata.minngcii#deffinee ENND - nint savvefllag=0; /*是否需需要存盤盤的標志志變量*/typeedeff sttrucct sstuddentt /*
12、標記記為sttudeent*/ chaar nnum10; /*學號*/ chaar nnamee155; /*姓名*/ intt cggradde; /*C語言言成績*/ intt mggradde; /*數學成成績*/ intt eggradde; /*英語成成績*/ intt tootall; /*總分*/ flooat avee; /*平均分分*/ intt miingcci; /*名次*/;typeedeff sttrucct nnodee /*定定義每條條記錄或或結點的的數據結結構,標標記為nnodee*/ strructt sttudeent datta; strructt no
13、ode *neext;Nodde,*Linnk;voidd meenucchoiice() sysstemm(ccls); /*清屏屏.與cclrsscr()功能能相同*/ texxtcoolorr(100); /*在文文本模式式中選擇擇新的字字符顏色色*/ gottoxyy(7,5); cprrinttf( TThe Stuudennts Grradee Maanaggemeent Sysstemm nn); gottoxyy(7,8); priintff(nPlleasse EEnteer yyourr chhoicce; 0 entter stuudennts syysteemnnttt
14、t); priintff( ); priintff(11 ennterr teeachherss ssysttemn);voidd meenu() /*菜菜單函數數*/ sysstemm(ccls); /*清屏屏.與cclrsscr()功能能相同*/ texxtcoolorr(100); /*在文文本模式式中選擇擇新的字字符顏色色*/ gottoxyy(7,5); /*在文文本窗口口中設置置光標,下同*/ cprrinttf( TThe Stuudennts Grradee Maanaggemeent Sysstemm nn); gottoxyy(7,8); cprrinttf( *Mennu
15、*n); gottoxyy(7,9); cprrinttf( * 11 innputt reccordd 2 delletee reecorrd *n); gottoxyy(7,10); cprrinttf( * 33 seearcch reccordd 4 moddifyy reecorrd *n); gottoxyy(7,11); cprrinttf( * 55 innserrt reccordd 6 couunt reecorrd *n); gottoxyy(7,12); cprrinttf( * 77 soort reoord 8 savve reecorrd *n); gottoxy
16、y(7,13); cprrinttf( * 99 diispllay reccordd 0 quiit syysteem *n); gottoxyy(7,14); cprrinttf( *n); /*cpprinntf()送格格式化輸輸出至文文本窗口口屏幕中中*/voidd meenusstuddentt() sysstemm(ccls); /*清屏屏.與cclrsscr()功能能相同*/ texxtcoolorr(100); /*在文文本模式式中選擇擇新的字字符顏色色*/ gottoxyy(7,5); /*在文文本窗口口中設置置光標,下同*/ cprrinttf( TThe Stuudenn
17、ts Grradee Maanaggemeent Sysstemm nn); gottoxyy(7,8); cprrinttf( *Mennu*n); gottoxyy(7,9); cprrinttf( *3 ssearrch reecorrd 00 quuit ssysttem*n); gottoxyy(7,10); cprrinttf( *n); /*cpprinntf()送格格式化輸輸出至文文本窗口口屏幕中中*/voidd prrinttheaaderr() /*格格式化輸輸出表頭頭*/ priintff(HEEADEER1); priintff(HEEADEER2); priintff
18、(HEEADEER3);voidd prrinttdatta(NNodee *ppp) /*格格式化輸輸出表中中數據*/ Nodde* p; p=ppp; priintff(FOORMAAT,DDATAA);voidd Wrrongg() /*輸出按按鍵錯誤誤信息*/ priintff(nnnnnnn*EErroor:iinpuut hhas wroong! prresss anny kkey to conntinnue*n); gettchaar();voidd Noofinnd() /*輸出出未查找找此學生生的信息息*/ priintff(n=Noot ffindd thhis stuud
19、ennt!n);voidd Diisp(Linnk ll) /*顯顯示單鏈鏈表l中中存儲的的學生記記錄,內內容為sstuddentt結構中中定義的的數據項項*/ Nodde *p; p=ll-nnextt; /*l存存儲的是是單鏈表表中頭結結點的指指針,該該頭結點點沒有存存儲學生生信息,指針域域指向的的后繼結結點才有有學生信信息*/ if(!p) prrinttf(n=NNot stuudennt rrecoord!n); geetchhar(); reeturrn; priintff(nnn); priinthheadder(); /*輸輸出表格格頭部*/ whiile(p) /*逐逐條輸出
20、出鏈表中中存儲的的學生信信息*/ prrinttdatta(pp); p=p-nexxt; /*移動至至下一個個結點*/ prrinttf(HHEADDER33); gettchaar();Nodee* LLocaate(Linnk ll,chhar finndmeess,ccharr naameoornuum) /*用于于定位鏈鏈表中符符合要求求的節點點,并返返回指向向該節點點的指針針,fiindmmesss保保存要查查找的具具體內容容; nnameeornnum保存存按什么么查找;在單鏈鏈表l中中查找;*/ Nodde *r; if(strrcmpp(naameoornuum,numm)=
21、0) /*按學號號查詢*/ r=l-nexxt; whhilee(r) iif(sstrccmp(r-datta.nnum,finndmeess)=00) /*若找找到fiindmmesss值的學學號*/ rretuurn r; rr=r-neext; elsse iif(sstrccmp(nammeorrnumm,nnamee)=0) /*按姓姓名查詢詢*/ r=l-nexxt; whhilee(r) iif(sstrccmp(r-datta.nnamee,fiindmmesss)=0) /*若若找到ffinddmesss值的的學生姓姓名*/ rretuurn r; rr=r-neext;
22、retturnn 0;voidd sttrinnginnputt(chhar *t,intt leens,chaar *notticee) /*輸入字字符串,并進行行長度驗驗證(長長度llenss)prrinttf(n Excceedd thhe rrequuireed llenggth! nn); /*進行長長度校驗驗,超過過lenns值重重新輸入入*/ wwhille(sstrllen(n)lenns); sstrccpy(t,nn); /*將將輸入的的字符串串拷貝到到字符串串t中*/int nummberrinpput(chaar *notticee) /*輸輸入分數數,0分數數1000
23、 | t1000 | tnnextt; sysstemm(ccls); Dissp(ll); /*先先打印出出已有的的學生信信息*/ whiile(r-nexxt!=NULLL) r=rr-nnextt; /*將指指針移至至于鏈表表最末尾尾,準備備添加記記錄*/ whiile(1) /*一一次可輸輸入多條條記錄,直至輸輸入學號號為0的的記錄結結點添加加操作*/ whhilee(1) /*輸入學學號,保保證該學學號沒有有被使用用,若輸輸入學號號為0,則退出出添加記記錄操作作*/ sstriingiinpuut(nnum,10,Innputt nuumbeer(ppresss 0rretuurn
24、mennu):); /*格式化化輸入學學號并檢檢驗*/ fflagg=0; iif(sstrccmp(numm,00)=0) /*輸入為為0,則則退出添添加操作作,返回回主界面面*/ reeturrn; ss=l-neext; wwhille(ss) /*查詢詢該學號號是否已已經存在在,若存存在則要要求重新新輸入一一個未被被占用的的學號*/ if(strrcmpp(s-daata.numm,nuum)=0) fllag=1; brreakk; s=ss-nnextt; iif(fflagg=11) /*提示示用戶是是否重新新輸入*/ gettchaar(); priintff(=TThe nu
25、mmberr %ss iss noot eexisstinng,ttry agaain?(y/n):,nnum); scaanf(%cc,&ch); if(ch=yy|ch=YY) coontiinuee; elsse reeturrn; eelsee brreakk; p=(Noode *)mmallloc(sizzeoff(Noode); iff(!pp) pprinntf(nn Allloccatee meemorry ffailluree ); /*如沒沒有申請請到,打打印提示示信息*/ rretuurn ; sttrcppy(pp-ddataa.nuum,nnum); /*將字字符串
26、nnum拷拷貝到pp-ddataa.nuum中*/ sttrinnginnputt(p-daata.namme,115,Namme:); p-daata.cgrradee=nuumbeerinnputt(CC laanguuagee Sccoree0-1000:); /*輸輸入并檢檢驗分數數,分數數必須在在01100之之間*/ p-daata.mgrradee=nuumbeerinnputt(MMathh Sccoree0-1000:); p-daata.egrradee=nuumbeerinnputt(EEngllishh Sccoree0-1000:); p-daata.tottal=p-
27、datta.eegraade + pp-ddataa.cggradde + p-daata.mgrradee; /*計算算總分*/ p-daata.avee=(ffloaat)(p-datta.ttotaal/33); /*計算平平均分*/ p-daata.minngcii=0; p-neext=NULLL; /*表表明這是是鏈表的的尾部結結點*/ r-neext=p; /*將新建建的結點點加入鏈鏈表尾部部中*/ r=p; saavefflagg=1; /*在mmainn()有有對該全全局變量量的判斷斷,若為為1,則則進行存存盤操作作*/ retturnn ;voidd Quur(LLinkk
28、 l) /*按學號號或姓名名,查詢詢學生記記錄*/ intt seelecct; /*11:按學學號查,2:按按姓名查查,其他他:返回回主界面面(菜單單)*/ chaar ssearrchiinpuut220; /*保存用用戶輸入入的查詢詢內容*/ Nodde *p; if(!l-neext) /*若鏈表表為空*/ syysteem(clss); prrinttf(n=NNo sstuddentt reecorrd!n); geetchhar(); reeturrn; sysstemm(ccls); priintff(n =1 SSearrch by nummberr =22 Seearcch
29、 bby nnameen); priintff( ppleaase chooicee1,2:); scaanf(%dd,&sellectt); if(sellectt=11) /*按學號號查詢*/ sttrinnginnputt(seearcchinnputt,100,IInpuut tthe exiistiing stuudennt nnumbber:); p=Loccatee(l,seaarchhinpput,nuum);/*在l中中查找學學號為ssearrchiinpuut值的的節點,并返回回節點的的指針*/ iff(p) /*若p!=NUULL*/ pprinntheeadeer();
30、 pprinntdaata(p); pprinntf(ENDD); pprinntf(prresss anny kkey to retturnn); ggetccharr(); ellse NNofiind(); geetchhar(); elsse iif(sseleect=2) /*按姓名名查詢*/ sttrinnginnputt(seearcchinnputt,155,iinpuut tthe exiistiing stuudennt nnamee:); p=Loccatee(l,seaarchhinpput,naame); iff(p) pprinntheeadeer(); pprin
31、ntdaata(p); pprinntf(ENDD); pprinntf(prresss anny kkey to retturnn); ggetccharr(); ellse NNofiind(); geetchhar(); elsse Wrrongg(); geetchhar();voidd Deel(LLinkk l) /*刪刪除學生生記錄:先找到到保存該該學生記記錄的節節點,然然后刪除除該節點點*/ intt seel; Nodde *p,*r; chaar ffinddmesss220; if(!l-neext) syysteem(clss); prrinttf(n=NNo sstu
32、ddentt reecorrd!n); geetchhar(); reeturrn; sysstemm(ccls); Dissp(ll); priintff(n =1 DDeleete by nummberr =2 Delletee byy naamen); priintff( plleasse cchoiice1,22:); scaanf(%dd,&sell); if(sell=11) sttrinnginnputt(fiindmmesss,100,iinpuut tthe exiistiing stuudennt nnumbber:); p=Loccatee(l,finndmeess,nu
33、um); iff(p) /*p!=NUULL*/ rr=l; wwhille(rr-nnextt!=pp) r=rr-nnextt; rr-nnextt=p-neext;/*將將p所指指節點從從鏈表中中去除*/ ffreee(p); /*釋放放內存空空間*/ pprinntf(nn=Delletee suucceess!n); ggetccharr(); ssaveeflaag=11; ellse NNofiind(); geetchhar(); elsse iif(ssel=2) sttrinnginnputt(fiindmmesss,155,iinpuut tthe exiistiing
34、stuudennt nnamee); p=Loccatee(l,finndmeess,naame); /*先按姓姓名查詢詢到該記記錄所在在的節點點*/ iff(p) rr=l; wwhille(rr-nnextt!=pp) r=rr-nnextt; rr-nnextt=p-neext; ffreee(p); pprinntf(nn=Delletee suucceess!n); ggetccharr(); ssaveeflaag=11; ellse NNofiind(); geetchhar(); elsse Wrrongg(); geetchhar();voidd Moodiffy(LLink
35、k l) /*修修改學生生記錄。先按輸輸入的學學號查詢詢到該記記錄,然然后提示示用戶修修改學號號之外的的值,學學號不能能修改*/ Nodde *p; chaar ffinddmesss220; if(!l-neext) syysteem(clss); prrinttf(n=NNo sstuddentt reecorrd!n); geetchhar(); reeturrn; sysstemm(ccls); priintff(MModiify stuudennt rrecoordeer:); Dissp(ll); strringginpput(finndmeess,10,nnInpput thee
36、 exxisttingg sttudeent nummberr:); /*輸入入并檢驗驗該學號號*/ p=LLocaate(l,ffinddmesss,numm); /*查詢到到該節點點*/ if(p) /*若若p!=NULLL,表表明已經經找到該該節點*/ prrinttf(Nummberr:%ss,nn,pp-ddataa.nuum); prrinttf(Namme:%s,p-daata.namme); sttrinnginnputt(p-daata.namme,115,inpput neww naame:); prrinttf(C llangguagge sscorre:%d,p-daa
37、ta.cgrradee); p-daata.cgrradee=nuumbeerinnputt(CC laanguuagee Sccoree0-1000:); prrinttf(Matth sscorre:%d,p-daata.mgrradee); p-daata.mgrradee=nuumbeerinnputt(MMathh Sccoree0-1000:); prrinttf(Engglissh sscorre:%d,p-daata.egrradee); p-daata.egrradee=nuumbeerinnputt(EEngllishh Sccoree0-1000:); p-daata.t
38、ottal = pp-ddataa.eggradde + p-daata.cgrradee + p-datta.mmgraade; p-daata.avee=(ffloaat)(p-datta.ttotaal/33); p-daata.minngcii=0; prrinttf(n=MModiify succcesss!n); Diisp(l); saavefflagg=1; elsse Noofinnd(); geetchhar();voidd Innserrt(LLinkk l) /*插入入記錄,按學號號查詢到到要插入入的節點點的位置置,然后后在該學學號之后后插入一一個新節節點*/ Linn
39、k pp,v,newwinffo; /*pp指向插插入位置置,neewinnfo指指新插入入記錄*/ chaar cch,nnum10,s10; /*ss保保存插入入點位置置之前的的學號,numm保保存輸入入的新記記錄的學學號*/ intt fllag=0; v=ll-nnextt; sysstemm(ccls); Dissp(ll); whiile(1) sttrinnginnputt(s,10,nnPleeasee innputt Innserrt llocaatioon aftter thee Nuumbeer:); fllag=0; v=l-nexxt; whhilee(v) /*查詢
40、該該學號是是否存在在,fllag=1表示示該學號號存在*/ iif(sstrccmp(v-datta.nnum,s)=0) flaag=11;brreakk; vv=v-neext; iff(fllag=1) bbreaak; /*若若學號存存在,則則進行插插入之前前的新記記錄的輸輸入操作作*/ ellse ggetccharr(); pprinntf(nn=Thee nuumbeer %s iis nnot exiistiing,tryy aggainn?(yy/n):,s); sscannf(%c,&cch); iif(cch=y|cch=Y) conntinnue; eelsee ret
41、turnn; strringginpput(numm,100,IInpuut nnew stuudennt NNumbber:); /*以新新記錄的的輸入操操作與AAdd()相同同*/ v=ll-nnextt; whiile(v) iff(sttrcmmp(vv-ddataa.nuum,nnum)=00) pprinntf(=Soorryy,thhe nnew nummberr:%s is exiistiing !nn,nnum); pprinntheeadeer(); pprinntdaata(v); pprinntf(nn); ggetccharr(); rretuurn; v=v-nex
42、xt; newwinffo=(Nodde *)maallooc(ssizeeof(Nodde); if(!neewinnfo) prrinttf(n Alllocaate memmoryy faailuure ); /*如沒有有申請到到,打印印提示信信息*/ reeturrn ; /*返回主主界面*/ strrcpyy(neewinnfo-daata.numm,nuum); strringginpput(newwinffo-datta.nnamee,155,NNamee:); newwinffo-datta.ccgraade=nummberrinpput(C lannguaage Scoore
43、0-1100:); newwinffo-datta.mmgraade=nummberrinpput(Maath Scoore0-1100:); newwinffo-datta.eegraade=nummberrinpput(Enngliish Scoore0-1100:); newwinffo-datta.ttotaal=nnewiinfoo-ddataa.eggradde+nnewiinfoo-ddataa.cggradde+nnewiinfoo-ddataa.mggradde; newwinffo-datta.aave=(flloatt)(nnewiinfoo-ddataa.tootall
44、/3); newwinffo-datta.mminggci=0; newwinffo-nexxt=NNULLL; savvefllag=1; p=ll-nnextt; /*將將指針賦賦值給pp,因為為l中的的頭節點點的下一一個節點點才實際際保存著著學生的的記錄*/ whiile(1) iff(sttrcmmp(pp-ddataa.nuum,ss)=0) /*在在鏈表中中插入一一個節點點*/ nnewiinfoo-nnextt=p-neext; pp-nnextt=neewinnfo; bbreaak; p=p-nexxt; DDispp(l); pprinntf(nnn); ggetcchar
45、r();voidd Toongjji(LLinkk l) /*統計計總分,單科第第一和各各科不及及格人數數*/ Nodde *pm,*pee,*ppc,*pt; /*用于指指向分數數最高的的節點*/ Nodde *r=ll-nnextt; intt coounttc=00,coounttm=00,coountte=00; /*保存存三門成成績中不不及格的的人數*/ if(!r) syysteem(clss); prrinttf(n=NNo sstuddentt reecorrd!n); geetchhar(); reeturrn ; sysstemm(ccls); Dissp(ll); pm=
46、pe=pc=pt=r; whiile(r) iff(r-daata.cgrradeedaata.mgrradeedaata.egrradeedaata.cgrradee=ppc-datta.ccgraade) pcc=r; iff(r-daata.mgrradee=ppm-datta.mmgraade) pmm=r; iff(r-daata.egrradee=ppe-datta.eegraade) pee=r; iff(r-daata.tottal=ptt-ddataa.tootall) ptt=r; r=r-nexxt; priintff(n-thhe TTonggJi ressultt-n
47、); priintff(CC Laanguuagee600: %d (reen)n,couuntcc); priintff(MMathh 600: %d (reen)n,couuntmm); priintff(EEngllishh datta.nnamee,ptt-ddataa.tootall); priintff(TThe higghesst sstuddentt byy Enngliish scoore nnamee:%ss tootoaal sscorre:%dnn,ppe-datta.nnamee,pee-ddataa.eggradde); priintff(TThe higghess
48、t sstuddentt byy Maath scoore nnamee:%ss tootoaal sscorre:%dnn,ppm-datta.nnamee,pmm-ddataa.mggradde); priintff(TThe higghesst sstuddentt byy C scoore nnamee:%ss tootoaal sscorre:%dnn,ppc-datta.nnamee,pcc-ddataa.cggradde); priintff(nnnpreess anyy keey tto rretuurn); gettchaar();voidd Soort(Linnk ll)
49、/*利利用插入入法排序序實現單單鏈表的的按總分分字段的的降序排排序,從從高到低低*/ Linnk lll; Nodde *p,*rr,*s; intt i=0; if(l-nexxt=NULLL) syysteem(clss); prrinttf(n=NNo sstuddentt reecorrd!n); geetchhar(); reeturrn ; ll=(Noode*)maallooc(ssizeeof(Nodde); if(!lll) prrinttf(n Alllocaate memmoryy faailuure ); /*如沒有有申請到到,打印印提示信信息*/ reeturrn ;
50、 ll-neext=NULLL; sysstemm(ccls); Dissp(ll); p=ll-nnextt; whiile(p) s=(Noode*)maallooc(ssizeeof(Nodde); /*s用用于保存存從原鏈鏈表中取取出的節節點信息息*/ iff(!ss) pprinntf(nn Allloccatee meemorry ffailluree ); rretuurn ; s-daata=p-datta; s-neext=NULLL; rrr=lll; /*rr鏈鏈表存儲儲插入單單個節點點后保持持排序的的鏈表,ll是是這個鏈鏈表的頭頭指針,每次從從頭開始始查找插插入位置置*
51、/ whhilee(rrr-nnextt != NUULL & rr-neext-daata.tottal = p-datta.ttotaal) rrr=rrr-nexxt; /*指指針移至至總分比比p所指指的節點點的總分分小的節節點位置置*/ iff(rrr-nnextt=NNULLL)/*若新鏈鏈表lll中的所所有節點點的總分分值都比比p-datta.ttotaal大時時,就將將p所指指節點加加入鏈表表尾部*/ rrr-nexxt=ss; ellse /*否否則將該該節點插插入至第第一個總總分字段段比它小小的節點點的前面面*/ ss-nnextt=rrr-nnextt; rrr-nexxt
52、=ss; p=p-nexxt; /*原原鏈表中中的指針針下移一一個節點點*/ l-nexxt=lll-nexxt; /*lll中存存儲是的的已排序序的鏈表表的頭指指針*/ p=ll-nnextt; /*已已排好序序的頭指指針賦給給p,準準備填寫寫名次*/ whiile(p) /*當p不不為空時時,進行行下列操操作*/ i+; /*結結點序號號*/ p-daata.minngcii=i; /*將將名次賦賦值*/ p=p-nexxt; /*指針針后移*/ Dispp(l);prinntf(nn =Soort commpleete!n);saveeflaag=11;voidd Saave(Linnk
53、 ll) /*數數據存盤盤,若用用戶沒有有專門進進行此操操作且對對數據有有修改,在退出出系統時時, 會會提示用用戶存盤盤*/ FILLE *fp; Nodde *p; intt coountt=0; fp=foppen(c:sstuddentt,wb); /*以以只寫方方式打開開二進制制文件*/ if(fp=NUULL) /*打開文文件失敗敗*/ prrinttf(n=oopenn fiile errror!n); geetchhar(); reeturrn ; p=ll-nnextt; whiile(p) iff(fwwritte(pp,siizeoof(NNodee),11,fpp)=1)
54、/*每次次寫一條條記錄或或一個節節點信息息至文件件*/ pp=p-neext; ccounnt+; ellse bbreaak; if(couunt0) geetchhar(); prrinttf(nnnnnn=Saave fille ccompplette,ttotaal ssaveedss reecorrd nnumbber is:%dn,couunt); geetchhar(); saavefflagg=0; elsse syysteem(clss); prrinttf(Thee cuurreent linnk iis eemptty,nno sstuddentt reecorrd ii
55、s ssaveed!n); geetchhar(); fcllosee(fpp); /*關關閉此文文件*/int maiin(vvoidd) Linnk ll; /*定義鏈鏈表*/ FILLE *fp; /*文件指指針*/ intt seelecct; /*保保存選擇擇結果變變量*/ chaar cch; /*保存(y,YY,n,N)*/ intt coountt=0; /*保存文文件中的的記錄條條數*/ Nodde *p,*r; /*定義義記錄指指針變量量*/ l=(Nodde*)malllocc(siizeoof(NNodee); if(!l) prrinttf(n Alllocaate memmoryy faailuure ); reeturrn ; l-nexxt=NNULLL; r=ll; fp=foppen(C:sstuddentt,ab+); /*以追加加方式打打開一個個二進制制文件,可讀可可寫,若若此文件件不存在在,會創創建此文文件*/ if(fp=NUULL) prrinttf(n=CCan not
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆維吾爾哈密地區巴里坤哈薩克自治縣2025屆五下數學期末考試模擬試題含答案
- 2025-2030家私行業市場深度分析及供需形勢與投資價值研究報告
- 新疆職業大學《數據挖掘與統計應用》2023-2024學年第二學期期末試卷
- 邢臺市新河縣2024-2025學年三下數學期末學業質量監測模擬試題含解析
- 2025至2031年中國秸稈氣化機行業投資前景及策略咨詢研究報告
- 2025-2030年中國CNG纏繞瓶行業市場投資商機與風險評估報告
- 2025-2030寵物玩具行業競爭格局及“”企業投資戰略研究報告
- 2024-2025企業安全培訓考試試題附完整答案(考點梳理)
- 2025年職工安全培訓考試試題帶解析答案
- 2025工廠職工安全培訓考試試題【奪冠】
- 2024年全國甲卷高考語文試卷(真題+答案)
- JT-T-1227-2018滾裝船汽車理貨作業規程
- 醫藥行業并購重組研究
- 公司債權債務轉讓協議范本
- 《化工園區有毒有害氣體環境預警體系技術規范》
- 第10課和諧校園共同維護(課件)-【中職專用】高一思想政治《心理健康與職業生涯》(高教版2023·基礎模塊)
- 《調相機運行規程》
- 口才與演講實訓教程智慧樹知到期末考試答案2024年
- 污水管網巡查及養護投標方案(技術標)
- web頁面常用測試方法
- 打造消費天堂(百貨公司與近代城市文化)
評論
0/150
提交評論