![C語(yǔ)言實(shí)訓(xùn)報(bào)告-學(xué)分管理系統(tǒng)解析_第1頁(yè)](http://file4.renrendoc.com/view12/M07/04/2B/wKhkGWXVPC-AYYWUAAG3HDvcgsQ447.jpg)
![C語(yǔ)言實(shí)訓(xùn)報(bào)告-學(xué)分管理系統(tǒng)解析_第2頁(yè)](http://file4.renrendoc.com/view12/M07/04/2B/wKhkGWXVPC-AYYWUAAG3HDvcgsQ4472.jpg)
![C語(yǔ)言實(shí)訓(xùn)報(bào)告-學(xué)分管理系統(tǒng)解析_第3頁(yè)](http://file4.renrendoc.com/view12/M07/04/2B/wKhkGWXVPC-AYYWUAAG3HDvcgsQ4473.jpg)
![C語(yǔ)言實(shí)訓(xùn)報(bào)告-學(xué)分管理系統(tǒng)解析_第4頁(yè)](http://file4.renrendoc.com/view12/M07/04/2B/wKhkGWXVPC-AYYWUAAG3HDvcgsQ4474.jpg)
![C語(yǔ)言實(shí)訓(xùn)報(bào)告-學(xué)分管理系統(tǒng)解析_第5頁(yè)](http://file4.renrendoc.com/view12/M07/04/2B/wKhkGWXVPC-AYYWUAAG3HDvcgsQ4475.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
HUBEIUNIVERSITYOFAUTOMOTIVETECHNOLOGYC語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)題目:學(xué)分管理程序?qū)I(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):K1273-5姓名:涂瑞成績(jī):完成日期:2014年7月8日指導(dǎo)教師:張吳波目錄1.實(shí)訓(xùn)題目與要求…………………32.系統(tǒng)設(shè)計(jì)…………43.程序測(cè)試與運(yùn)行結(jié)果……………74.實(shí)訓(xùn)總結(jié)…………105.程序源代碼………121.實(shí)訓(xùn)題目與要求學(xué)分管理程序問(wèn)題描述:請(qǐng)?jiān)O(shè)計(jì)一個(gè)學(xué)生的學(xué)分管理程序,以方便教務(wù)部門對(duì)學(xué)生已完成學(xué)分的管理。假設(shè)每位學(xué)生必須完成根底課50學(xué)分、專業(yè)課50學(xué)分、選修課24學(xué)分、人文類課程8個(gè)學(xué)分、實(shí)驗(yàn)性課程20學(xué)分才能畢業(yè)。因此在管理學(xué)分時(shí),要考慮每個(gè)學(xué)分所屬于的課程類別。其中各類別的課程所完成的學(xué)分最多不會(huì)超過(guò)100分。該程序應(yīng)該具有以下功能:(1)能從鍵盤輸入某位學(xué)生的信息〔不包含學(xué)分〕。(2)給定學(xué)號(hào),顯示該學(xué)生的所完成的學(xué)分。(3)給定學(xué)號(hào),能修改該學(xué)生所完成的學(xué)分。(4)給定學(xué)號(hào),將學(xué)生從程序中刪除。(5)能顯示已完成學(xué)分可以畢業(yè)的學(xué)生。題目要求:(1)按照分析、設(shè)計(jì)、編碼、調(diào)試、測(cè)試的軟件過(guò)程完成這個(gè)應(yīng)用程序。(2)學(xué)分信息應(yīng)該包括學(xué)生信息〔學(xué)號(hào)、姓名、班級(jí)、入學(xué)時(shí)間〕、根底課學(xué)分、專業(yè)課學(xué)分、選修課學(xué)分、人文類課程學(xué)分、實(shí)驗(yàn)性課程學(xué)分。(3)為程序設(shè)計(jì)windows窗口,在該窗口上以按鈕的形式為用戶提供“菜單”,通過(guò)點(diǎn)擊各個(gè)功能項(xiàng)對(duì)應(yīng)的按鈕完成操作。輸入要求:(1)用戶可以根據(jù)需求,選定相應(yīng)的操作工程。進(jìn)入每個(gè)操作后,通過(guò)窗口的文本框,從鍵盤輸入相應(yīng)的信息。程序根據(jù)用戶輸入的信息完成相應(yīng)的處理,實(shí)現(xiàn)要求的功能。(2)能對(duì)輸入的數(shù)據(jù)進(jìn)行簡(jiǎn)單的校驗(yàn),例如,學(xué)生的學(xué)分是[0,100]范圍內(nèi)的數(shù),入學(xué)時(shí)間必須是合法的日期,學(xué)號(hào)是唯一的〔一個(gè)學(xué)號(hào)對(duì)應(yīng)一個(gè)學(xué)生的學(xué)分信息〕。輸出要求:(1)應(yīng)用程序運(yùn)行后,要在屏幕上顯示一個(gè)按鈕形式的“菜單”。(2)要求用戶輸入數(shù)據(jù)時(shí),給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式以及結(jié)束方式等。(3)在程序完成處理后,要清楚地給出程序的處理結(jié)果。例如,在給定學(xué)號(hào)修改學(xué)生學(xué)分時(shí),如果該學(xué)生不存在,要提示不能修改,如果修改成功要提示修改成功。實(shí)現(xiàn)要求:(1)在程序中使用鏈表存儲(chǔ)學(xué)生的學(xué)分信息。(2)采用模塊化程序設(shè)計(jì)的方法,將程序中的各項(xiàng)功能用函數(shù)實(shí)現(xiàn)。提示:(1)使用結(jié)構(gòu)體表示學(xué)生的學(xué)分信息,一個(gè)結(jié)點(diǎn)保存一條學(xué)分信息。擴(kuò)展功能:(1)提供一些統(tǒng)計(jì)功能。例如統(tǒng)計(jì)每個(gè)班學(xué)生已完成學(xué)分可以畢業(yè)人數(shù)。統(tǒng)計(jì)每類別課程的平均學(xué)分等。(2)學(xué)生的學(xué)分信息從文件讀入。(3)將學(xué)生的學(xué)分信息保存到文件中。2.系統(tǒng)設(shè)計(jì)WindowsWindows編程WindowsWindows操作系統(tǒng)是一種基于圖形界面的多任務(wù)〔即:同時(shí)執(zhí)行多個(gè)程序〕操作系統(tǒng)。一個(gè)Windows應(yīng)用程序是被Windows調(diào)用或在Windows下運(yùn)行的一個(gè)程序。Windows編程與Dos的區(qū)別:學(xué)分管理系統(tǒng)學(xué)分管理系統(tǒng)函數(shù)家族WinMaincreateShowWindowshowallcommanddeletestudentshowbiyecleartextinitstudentxiugaixuefenbaocunclearcacheseexuefenWinMaincreateShowWindowshowallcommanddeletestudentshowbiyecleartextinitstudentxiugaixuefenbaocunclearcacheseexuefenUpdateWindoUpdateWindow【函數(shù)介紹】1.voidcreate(HWNDhwnd,LPARAMlParam);注冊(cè)窗口函數(shù)2.ShowWindow(hWnd,nShowCmd);顯示窗口3.voidcommand();命令消息4.UpdateWindow(hWnd);更新窗口5.voidinitstudent();初始化鏈表6.voidbaocun();保存7.voidshowall();顯示所有學(xué)生信息8.voidcleartext();清空文本框9.voidclearcache();清空緩存10.voidshowbiye();顯示可以畢業(yè)的學(xué)生11.voiddeletestudent();刪除學(xué)生12.voidseexuefen();查詢學(xué)分13.voidxiugaixuefen();修改學(xué)分3.程序測(cè)試與運(yùn)行結(jié)果運(yùn)行界面:保存界面:顯示所有學(xué)生信息界面:查詢學(xué)分界面:修改學(xué)分界面:刪除學(xué)生界面:4.實(shí)訓(xùn)總結(jié)對(duì)這個(gè)系統(tǒng)需求分析,學(xué)分管理系統(tǒng)需要有保存學(xué)生信息、刪除學(xué)生信息、查詢學(xué)分、修改學(xué)分、顯示所有學(xué)生信息、顯示可以畢業(yè)的學(xué)生等根本功能。在實(shí)訓(xùn)中,我將各種功能模塊化,以便進(jìn)行設(shè)計(jì)。具體模塊如下:保存信息模塊、刪除信息模塊、輸入信息模塊、顯示信息模塊、清空文本框模塊。然后根據(jù)各模塊分別設(shè)計(jì)程序。萬(wàn)事開(kāi)頭難,在本次實(shí)訓(xùn)過(guò)程中,剛開(kāi)始寫這個(gè)程序的時(shí)候感覺(jué)很吃力,用了結(jié)構(gòu)體,但卻不知道自己要編寫的函數(shù)怎樣和結(jié)構(gòu)體聯(lián)系起來(lái),弄了很久,總是有錯(cuò)誤,去問(wèn)其他同學(xué),他們也不知道,后來(lái)苦思冥想了幾個(gè)小時(shí),才發(fā)現(xiàn)是變量類型不同,結(jié)構(gòu)體中定義的變量都是int型或long型,而win程序從文本框中獲取的內(nèi)容是字符串型的,變量類型不同,所以無(wú)法直接賦值,導(dǎo)致編譯錯(cuò)誤。后來(lái)我用atoi函數(shù)把字符串轉(zhuǎn)換為整型之后再賦值,就成功了。整個(gè)程序中,我最先編的函數(shù)是保存函數(shù),編這個(gè)函數(shù)時(shí),我啟用了指針followp來(lái)進(jìn)行掛鏈,掛鏈語(yǔ)句為followp->next=newstudent,其實(shí)這個(gè)比擬簡(jiǎn)單,難點(diǎn)在于對(duì)學(xué)生信息的限制條件,比方對(duì)入學(xué)時(shí)間的限制,對(duì)學(xué)分范圍的限制等等,這些都要編在程序中,這就需要在合理的位置使用if語(yǔ)句進(jìn)行判斷,由于限制條件比擬多,就要使用多個(gè)if語(yǔ)句來(lái)判斷,甚至是if里面再if,多個(gè)if語(yǔ)句嵌套判斷,最后終于成功了。再程序的整體設(shè)計(jì)中,我還定義了一個(gè)全局變量assistp,為了其他功能便于實(shí)現(xiàn),我讓assistp始終指著頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn),但在判斷學(xué)號(hào)是否重復(fù)的過(guò)程中,我使用了assistp來(lái)查找學(xué)號(hào),所以當(dāng)保存功能結(jié)束時(shí),assistp已經(jīng)不再指著headp的下一個(gè)結(jié)點(diǎn),所以在保存功能結(jié)束前,一定要讓assistp歸位,所以應(yīng)再加一句assistp=headp->next,這樣assistp在其他功能中使用時(shí)也不會(huì)出錯(cuò),保持了程序的健壯性和穩(wěn)定性。很多時(shí)候,程序一編譯,就會(huì)出現(xiàn)很多錯(cuò)誤,心里非常凌亂,但是當(dāng)自己把一個(gè)個(gè)錯(cuò)誤改正來(lái)以后,會(huì)常常的舒一口氣,然而,到連接時(shí),十有八九會(huì)出問(wèn)題,一般是邏輯上的問(wèn)題,由于是需要前后改動(dòng)程序的,所以會(huì)出現(xiàn)語(yǔ)句的出現(xiàn)先后問(wèn)題,這時(shí),就需要冷靜,靜下心年來(lái),慢慢思考。有時(shí)候一個(gè)小小的錯(cuò)誤會(huì)消耗我?guī)讉€(gè)小時(shí)時(shí)間,甚至是好幾天,百思不得其解,然而,有時(shí)也會(huì)過(guò)一會(huì)兒就會(huì)理解。有時(shí)候,當(dāng)自己看著一個(gè)程序,不知道錯(cuò)在哪里的時(shí)候,別人一眼就看出來(lái)問(wèn)題的所在。這就是當(dāng)局者迷,旁觀者清吧。這一次編寫實(shí)訓(xùn)題目的程序又讓我感受到學(xué)程序可以鍛煉縝密的思維。因?yàn)橐郧熬帉懙某绦虼a都比擬少,出現(xiàn)一些錯(cuò)誤都是很容易被檢查出來(lái)的,但是這次實(shí)訓(xùn)卻是幾百行的語(yǔ)句,而且是Windows編程,更是難以檢查,似乎也沒(méi)有經(jīng)驗(yàn)告訴你該怎么去檢查,那一剎那感覺(jué)到很急,但又不知如何是好,可是又不輕易的向老師詢問(wèn),因?yàn)楹盟菩U簡(jiǎn)單,總相信自己能夠檢查出來(lái),結(jié)果花了大量的時(shí)間。這次實(shí)訓(xùn)也讓我明白了:不在乎你的根底怎么樣,只要多練習(xí),必能做到勤能補(bǔ)拙,編出一個(gè)自己滿意的界面,一個(gè)滿意的程序出來(lái)的。有時(shí)候程序會(huì)檢測(cè)出一大堆錯(cuò)誤。有時(shí)程序本身不存在語(yǔ)法錯(cuò)誤,也能夠順利運(yùn)行,但是運(yùn)行結(jié)果顯然是錯(cuò)誤的,不是我所期望的。開(kāi)發(fā)環(huán)境所提供的編譯系統(tǒng)無(wú)法發(fā)現(xiàn)這種程序邏輯錯(cuò)誤,只能靠自己的上機(jī)經(jīng)驗(yàn)分析判斷錯(cuò)誤所在。程序的調(diào)試是一個(gè)技巧性很強(qiáng)的工作,對(duì)于初學(xué)者來(lái)說(shuō),盡快掌握程序調(diào)試方法是非常重要的。5.程序源代碼#include<windows.h>LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);//函數(shù)聲明voidinitstudent();//初始化voidbaocun();//保存voidshowall();//顯示所有學(xué)生信息voidcleartext();//清空文本框voidclearcache();//清空緩存voidshowbiye();//顯示可以畢業(yè)的學(xué)生voiddeletestudent();//刪除學(xué)生voidseexuefen();//查詢學(xué)分voidxiugaixuefen();//修改學(xué)分RECTrect1;RECTrect2;RECTrect3;RECTrect4;RECTrect5;RECTrect6;RECTrect7;RECTrect8;RECTrect9;RECTrect10;RECTrect11;RECTrect12;HDChDC;HWNDhWnd;PAINTSTRUCTpaint;staticcharstr1[20],str2[20],str3[100],str4[20],str5[20],str6[20],str7[20],str8[20],str9[20],str10[100],str11[20],str13[20],str12[10000],str14[10000];structstudent{ longxuehao; charname[20]; charbanji[20]; intyear; intmonth; intdate; intjichu; intzhuanye; intxuanxiu; intrenwen; intshiyan; student*next;};structstudent*headp,*followp,*assistp;voidinitstudent()//初始化{ headp=newstudent; headp->next=NULL; followp=headp; assistp=headp->next;}intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd){char*cName="myWindow";//定義個(gè)字符指針表示窗口類的名字WNDCLASSwc;//定義變量MSGMsg;wc.cbClsExtra=0;wc.cbWndExtra=0;wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);;//設(shè)置窗口背景為白色wc.hCursor=NULL;//窗口的光標(biāo)不設(shè)置wc.hIcon=NULL;//窗口圖標(biāo)設(shè)置wc.hInstance=hInstance;//當(dāng)前程序的句柄,hInstance是由主函數(shù)傳遞wc.lpfnWndProc=WinProc;//窗口處理過(guò)程的窗口函數(shù)。wc.lpszClassName=(LPSTR)cName;//窗口類的名字。wc.lpszMenuName=NULL;//目錄名,不設(shè)置wc.style=CS_HREDRAW|CS_VREDRAW;//窗口類的風(fēng)格RegisterClass(&wc);//在系統(tǒng)中注冊(cè)窗口hWnd=CreateWindow(cName,TEXT("學(xué)分管理系統(tǒng)"),WS_OVERLAPPEDWINDOW,25,25,1330,690,NULL,NULL,hInstance,NULL);ShowWindow(hWnd,nShowCmd);//顯示窗口UpdateWindow(hWnd);//更新窗口 initstudent();while(GetMessage(&Msg,NULL,0,0)){TranslateMessage(&Msg);//翻譯消息DispatchMessage(&Msg);//分派消息}returnMsg.message;//程序結(jié)束后返回消息}LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam){//處理消息過(guò)程 staticHWNDbtnHwnd; staticHWNDinputHwnd1; staticHWNDinputHwnd2; staticHWNDinputHwnd3; staticHWNDinputHwnd4; staticHWNDinputHwnd5; staticHWNDinputHwnd6; staticHWNDinputHwnd7; staticHWNDinputHwnd8; staticHWNDinputHwnd9; staticHWNDinputHwnd10; staticHWNDinputHwnd11; staticHWNDinputHwnd12; staticHWNDhwndbutton13; staticHWNDhwndbutton14; staticHWNDhwndbutton15; staticHWNDhwndbutton16; staticHWNDhwndbutton17; staticHWNDhwndbutton18; staticHWNDhwndbutton19;switch(Msg)//對(duì)消息進(jìn)行判斷{ caseWM_PAINT: hDC=BeginPaint(hWnd,&paint);//獲取設(shè)備上下文 rect1.top=20;//設(shè)置矩形框的屬性 rect1.right=120; rect1.bottom=40; rect1.left=20; rect2.top=20;//設(shè)置矩形框的屬性 rect2.right=580; rect2.bottom=40; rect2.left=480; rect3.top=20;//設(shè)置矩形框的屬性 rect3.right=1040; rect3.bottom=40; rect3.left=940; rect4.top=70;//設(shè)置矩形框的屬性 rect4.right=120; rect4.bottom=90; rect4.left=20; rect5.top=70;//設(shè)置矩形框的屬性 rect5.right=620; rect5.bottom=90; rect5.left=480; rect6.top=70;//設(shè)置矩形框的屬性 rect6.right=1040; rect6.bottom=90; rect6.left=940; rect7.top=120;//設(shè)置矩形框的屬性 rect7.right=160; rect7.bottom=140; rect7.left=20; rect8.top=120;//設(shè)置矩形框的屬性 rect8.right=620; rect8.bottom=140; rect8.left=480; rect9.top=120;//設(shè)置矩形框的屬性 rect9.right=1060; rect9.bottom=140; rect9.left=940; rect10.top=70;//設(shè)置矩形框的屬性 rect10.right=190; rect10.bottom=90; rect10.left=170; rect11.top=70;//設(shè)置矩形框的屬性 rect11.right=270; rect11.bottom=90; rect11.left=250; rect12.top=70;//設(shè)置矩形框的屬性 rect12.right=350; rect12.bottom=90; rect12.left=330; DrawText(hDC,"姓名:",-1,&rect1,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"班級(jí):",-1,&rect2,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"學(xué)號(hào):",-1,&rect3,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"入學(xué)時(shí)間:",-1,&rect4,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"根底課學(xué)分:",-1,&rect5,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"專業(yè)課學(xué)分:",-1,&rect6,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"選修課學(xué)分:",-1,&rect7,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"人文類課程學(xué)分:",-1,&rect8,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"實(shí)驗(yàn)類課程學(xué)分:",-1,&rect9,DT_SINGLELINE|DT_LEFT|DT_VCENTER); DrawText(hDC,"年",-1,&rect10,DT_SINGLELINE|DT_CENTER|DT_VCENTER); DrawText(hDC,"月",-1,&rect11,DT_SINGLELINE|DT_CENTER|DT_VCENTER); DrawText(hDC,"日",-1,&rect12,DT_SINGLELINE|DT_CENTER|DT_VCENTER); EndPaint(hWnd,&paint); return0; caseWM_CREATE: //響應(yīng)窗口的創(chuàng)立事件 inputHwnd1=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,110,20,240,20,hWnd,(HMENU)1,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd2=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,600,20,240,20,hWnd,(HMENU)2,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd3=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,1060,20,240,20,hWnd,(HMENU)3,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd4=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_RIGHT|ES_MULTILINE,110,70,60,20,hWnd,(HMENU)4,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd5=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,600,70,240,20,hWnd,(HMENU)5,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd6=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,1060,70,240,20,hWnd,(HMENU)6,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd7=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,110,120,240,20,hWnd,(HMENU)7,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd8=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,600,120,240,20,hWnd,(HMENU)8,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd9=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,1060,120,240,20,hWnd,(HMENU)9,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd10=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_MULTILINE,20,180,1280,400,hWnd,(HMENU)10,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd11=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_RIGHT|ES_MULTILINE,190,70,60,20,hWnd,(HMENU)11,((LPCREATESTRUCT)lParam)->hInstance,NULL); inputHwnd12=CreateWindow(TEXT("edit"),NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_RIGHT|ES_MULTILINE,270,70,60,20,hWnd,(HMENU)12,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton13=CreateWindow(TEXT("BUTTON"),TEXT("保存"),WS_CHILD|WS_VISIBLE,170,600,60,30,hWnd,(HMENU)13,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton14=CreateWindow(TEXT("BUTTON"),TEXT("查詢學(xué)分"),WS_CHILD|WS_VISIBLE,230,600,70,30,hWnd,(HMENU)14,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton15=CreateWindow(TEXT("BUTTON"),TEXT("修改學(xué)分"),WS_CHILD|WS_VISIBLE,300,600,70,30,hWnd,(HMENU)15,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton16=CreateWindow(TEXT("BUTTON"),TEXT("刪除學(xué)生"),WS_CHILD|WS_VISIBLE,370,600,70,30,hWnd,(HMENU)16,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton17=CreateWindow(TEXT("BUTTON"),TEXT("顯示所有可以畢業(yè)的學(xué)生"),WS_CHILD|WS_VISIBLE,440,600,200,30,hWnd,(HMENU)17,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton18=CreateWindow(TEXT("BUTTON"),TEXT("顯示所有學(xué)生信息"),WS_CHILD|WS_VISIBLE,640,600,140,30,hWnd,(HMENU)18,((LPCREATESTRUCT)lParam)->hInstance,NULL);hwndbutton19=CreateWindow(TEXT("BUTTON"),TEXT("清空文本框"),WS_CHILD|WS_VISIBLE,780,600,100,30,hWnd,(HMENU)19,((LPCREATESTRUCT)lParam)->hInstance,NULL); return0; { switch(LOWORD(wParam)) { case13: clearcache(); baocun(); return0; case14: clearcache(); seexuefen(); return0; case15: clearcache(); xiugaixuefen(); return0; case16: clearcache(); deletestudent(); return0; case17: clearcache(); cleartext(); showbiye(); return0; case18: clearcache(); cleartext(); showall(); return0; case19: clearcache(); cleartext(); return0; } return0; }PostQuitMessage(0);//退出消息隊(duì)列return0;//返回0,結(jié)束函數(shù)} //如果是其余的消息,調(diào)用默認(rèn)消息處理函數(shù),將消息該函數(shù)處理并將返回值返回returnDefWindowProc(hWnd,Msg,wParam,lParam);}voidclearcache()//清空緩存{ ZeroMemory(str1,sizeof(str1)); ZeroMemory(str2,sizeof(str2)); ZeroMemory(str3,sizeof(str3)); ZeroMemory(str4,sizeof(str4)); ZeroMemory(str5,sizeof(str5)); ZeroMemory(str6,sizeof(str6)); ZeroMemory(str7,sizeof(str7)); ZeroMemory(str8,sizeof(str8)); ZeroMemory(str9,sizeof(str9)); ZeroMemory(str10,sizeof(str10)); ZeroMemory(str11,sizeof(str11)); ZeroMemory(str12,sizeof(str12)); ZeroMemory(str13,sizeof(str13)); ZeroMemory(str14,sizeof(str14));}voidcleartext()//清空文本框{ SetDlgItemText(hWnd,1,str4); SetDlgItemText(hWnd,2,str4); SetDlgItemText(hWnd,3,str4); SetDlgItemText(hWnd,4,str4); SetDlgItemText(hWnd,5,str4); SetDlgItemText(hWnd,6,str4); SetDlgItemText(hWnd,7,str4); SetDlgItemText(hWnd,8,str4); SetDlgItemText(hWnd,9,str4); SetDlgItemText(hWnd,10,str4); SetDlgItemText(hWnd,11,str4); SetDlgItemText(hWnd,12,str4);}voidbaocun()//保存{ structstudent*newstudent; newstudent=newstudent; GetDlgItemText(hWnd,3,str1,sizeof(str1)/sizeof(char)); newstudent->xuehao=atol(str1); if(newstudent->xuehao==0) { MessageBox(NULL,TEXT("保存失??!您輸入的學(xué)號(hào)不合法,請(qǐng)檢查學(xué)號(hào)是否正確!"),TEXT("提示"),MB_OK); deletenewstudent; } else { while(assistp!=NULL&&assistp->xuehao!=newstudent->xuehao) { assistp=assistp->next; } if(assistp==NULL) { GetDlgItemText(hWnd,1,newstudent->name,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,2,newstudent->banji,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,4,str5,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,5,str6,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,6,str7,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,7,str8,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,8,str9,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,9,str10,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,11,str11,sizeof(str1)/sizeof(char)); GetDlgItemText(hWnd,12,str13,sizeof(str1)/sizeof(char)); newstudent->year=atoi(str5); newstudent->jichu=atoi(str6); newstudent->zhuanye=atoi(str7); newstudent->xuanxiu=atoi(str8); newstudent->renwen=atoi(str9); newstudent->shiyan=atoi(str10); newstudent->month=atoi(str11); newstudent->date=atoi(str13); newstudent->next=NULL; if(newstudent->year<1999||newstudent->year>2014||newstudent->month<1||newstudent->month>12||newstudent->date<1||newstudent->date>31) { MessageBox(NULL,TEXT("保存失??!您輸入的入學(xué)時(shí)間超出范圍,請(qǐng)注意入學(xué)時(shí)間的范圍為1999年1月1日至2014年12月31日,請(qǐng)檢查更正后再保存!"),TEXT("提示"),MB_OK); deletenewstudent; } elseif(newstudent->jichu<0||newstudent->jichu>100||newstudent->zhuanye<0||newstudent->zhuanye>100||newstudent->xuanxiu<0||newstudent->xuanxiu>100||newstudent->renwen<0||newstudent->renwen>100||newstudent->shiyan<0||newstudent->shiyan>100) { MessageBox(NULL,TEXT("保存失??!您輸入的學(xué)分超出范圍,請(qǐng)注意學(xué)分的范圍為0至100,請(qǐng)檢查更正后再保存!"),TEXT("提示"),MB_OK); deletenewstudent; } else { followp->next=newstudent; followp=followp->next; MessageBox(NULL,TEXT("保存成功!"),TEXT("提示"),MB_OK); } } else { strcat(str3,"保存失??!學(xué)號(hào)為"); ltoa(newstudent->xuehao,str4,10); strcat(str3,str4); strcat(str3,"的學(xué)生已存在,請(qǐng)勿重復(fù)保存!"); MessageBox(NULL,str3,"提示",MB_OK); deletenewstudent; } } assistp=headp->next;}voidshowall()//顯示所有學(xué)生信息{ student*searchp; searchp=headp->next; while(searchp!=NULL) { strcat(str12,"姓名:"); strcat(str12,searchp->name); strcat(str12,""); strcat(str12,"班級(jí):"); strcat(str12,searchp->banji); strcat(str12,""); strcat(str12,"學(xué)號(hào):"); ltoa(searchp->xuehao,str1,10); strcat(str12,str1); strcat(str12,""); strcat(str12,"入學(xué)時(shí)間:"); ltoa(searchp->year,str2,10); strcat(str12,str2); strcat(str12,"年"); ltoa(searchp->month,str3,10); strcat(str12,str3); strcat(str12,"月"); ltoa(searchp->date,str4,10); strcat(str12,str4); strcat(str12,"日"); strcat(str12,""); strcat(str12,"根底課學(xué)分:"); ltoa(searchp->jichu,str5,10); strcat(str12,str5); strcat(str12,""); strcat(str12,"專業(yè)課學(xué)分:"); ltoa(searchp->zhuanye,str6,10); strcat(str12,str6); strcat(str12,""); strcat(str12,"選修課學(xué)分:"); ltoa(searchp->xuanxiu,str7,10); strcat(str12,str7); strcat(str12,""); strcat(str12,"人文類課程學(xué)分:"); ltoa(searchp->renwen,str8,10); strcat(str12,str8); strcat(str12,""); strcat(str12,"實(shí)驗(yàn)類課程學(xué)分:"); ltoa(searchp->shiyan,str9,10); strcat(str12,str9); strcat(str12,"\r\n"); strcat(str12,"\r\n"); searchp=searchp->next; } SetDlgItemText(hWnd,10,str12);}voidshowbiye()//顯示可以畢業(yè)的學(xué)生{ student*midp; midp=headp->next; while(midp!=NULL) { if(midp->jichu<50||midp->zhuanye<50||midp->xuanxiu<24||midp->renwen<8||midp->shiyan<20) { midp=midp->next; } else { strcat(str14,"姓名:"); strcat(str14,midp->name); strcat(str14,""); strcat(str14,"班級(jí):"); strcat(str14,midp->banji); strcat(str14,""); strcat(str14,"學(xué)號(hào):"); ltoa(midp->xuehao,str1,10); strcat(str14,str1); strcat(str14,""); strcat(str14,"入學(xué)時(shí)間:"); ltoa(midp->year,str2,10); strcat(str14,str2); strcat(str14,"年"); ltoa(midp->month,str3,10); strcat(str14,str3); strcat(str14,"月"); ltoa(midp->date,str4,10); strcat(str14,str4); strcat(str14,"日"); strcat(str14,""); strcat(str14,"根底課學(xué)分:"); ltoa(midp->jichu,str5,10); strcat(str14,str5); strcat(str14,""); strcat(str14,"專業(yè)課學(xué)分:"); ltoa(midp->zhuanye,str6,10); strcat(str14,str6); strcat(str14,""); strcat(str14,"選修課學(xué)分:"); ltoa(midp->xuanxiu,str7,10); strcat(str14,str7); strcat(str14,""); strcat(str14,"人文類課程學(xué)分:"); ltoa(midp->renwen,str8,10); strcat(str14,str8); strcat(str14,""); strcat(str14,"實(shí)驗(yàn)類課程學(xué)分:"); ltoa(midp->shiyan,str9,10); strcat(str14,str9); strcat(str14,""); strcat(str14,"狀態(tài):可畢業(yè)"); strcat(str14,"\r\n"); strcat(str14,"\r\n"); midp=midp->next; } } SetDlgItemText(hWnd,10,str14);}voiddeletestudent()//刪除學(xué)生{ longs; student*deletep,*shadowp; shadowp=headp; deletep=headp->next; GetDlgItemText(hWnd,3,str1,sizeof(str1)/sizeof(char)); s=atol(str1); if(s==0) { MessageBox(NULL,TEXT("請(qǐng)輸入正確的學(xué)號(hào)后再刪除!"),TEXT("提示"),MB_OK); } else { while(deletep!=NULL&&deletep->xuehao!=s) { deletep=deletep->next; shadowp=shadowp->next; } if(deletep!=NULL) { if(deletep->next==NULL) { shadowp->next=NULL; deletedeletep; assistp=headp->next; followp=shadowp; MessageBox(NULL,TEXT("刪除成功!"),TEXT("提示"),MB_OK); } else { shadowp->next=deletep->next; deletedeletep; assistp=headp->next; MessageBox(NULL,TEXT("刪除成功!"),TEXT("提示"),MB_OK); } } else { strcat(str3,"學(xué)號(hào)為"); strcat(str3,str1); strcat(str3,"的學(xué)生不存在,無(wú)法刪除!"); MessageBox(NULL,str3,TEXT("提示"),MB_OK); } }}voidseexuefen()//查詢學(xué)分{ longs; GetDlgItemText(hWnd,3,str1,sizeof(str1)/sizeof(char)); s=atol(str1); if(s==0) { MessageBox(NULL,TEXT("請(qǐng)輸入正確的學(xué)號(hào)后再查詢!"),TEXT("提示"),MB_OK); } else { while(assistp!=NULL&&assistp->xuehao!=s) { assistp=assistp->next; } if(assistp!=NULL) { ltoa(assistp->date,str2,10); ltoa(assistp->jichu,str3,10); ltoa(assistp->month,str4,10); ltoa(assistp->renwen,str5,10); ltoa(assistp->shiyan,str6,10); ltoa(assistp->xuanxiu,str7,10); ltoa(assistp->year,str8,10); ltoa(assistp->zhuanye,str9,10); SetDlgItemText(hWnd,1,assistp->name); SetDlgItemText(hWnd,2,assistp->banji); SetDlgItemTex
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代家庭教育與孩子未來(lái)職業(yè)規(guī)劃的聯(lián)動(dòng)
- Unit 5 The colourful world Part C Reading time大單元整體說(shuō)課稿表格式-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)001
- Unit 1 Wish you were here Integrated skills (1) 說(shuō)課稿-2024-2025學(xué)年高中英語(yǔ)牛津譯林版(2020)選擇性必修第三冊(cè)
- 2023三年級(jí)英語(yǔ)下冊(cè) Unit 10 Is he a farmer第2課時(shí)說(shuō)課稿 湘少版
- Unit 4 History and Traditions Reading for Writing 說(shuō)課稿-2024-2025學(xué)年高中英語(yǔ)人教版(2019)必修第二冊(cè)
- 2024年五年級(jí)語(yǔ)文下冊(cè) 第六單元 17 跳水說(shuō)課稿 新人教版
- 《3 熱空氣和冷空氣》說(shuō)課稿-2023-2024學(xué)年科學(xué)三年級(jí)上冊(cè)蘇教版
- 2025地質(zhì)災(zāi)害治理工程施工合同
- 2024年四年級(jí)英語(yǔ)下冊(cè) Unit 4 There are seven days in a week Lesson 22說(shuō)課稿 人教精通版(三起)
- 2025工程建設(shè)招標(biāo)投標(biāo)合同(投標(biāo)書)范文
- GA/T 718-2007槍支致傷力的法庭科學(xué)鑒定判據(jù)
- 核醫(yī)學(xué)內(nèi)分泌系統(tǒng)課件
- 非常規(guī)天然氣課件
- 振動(dòng)標(biāo)線設(shè)計(jì)規(guī)范
- 生育保險(xiǎn)待遇申請(qǐng)表
- XX區(qū)XXX灌區(qū)水資源論證報(bào)告書
- 新教材教科版五年級(jí)下冊(cè)科學(xué)全冊(cè)課時(shí)練(課后作業(yè)設(shè)計(jì))(含答案)
- 電廠鋼結(jié)構(gòu)施工方案(53頁(yè))
- 7.5正態(tài)分布課件(共26張PPT)
- 水體國(guó)產(chǎn)載體固化微生物
- 七年級(jí)語(yǔ)文課外閱讀理解練習(xí)
評(píng)論
0/150
提交評(píng)論