版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言程程序設(shè)計(jì)計(jì)課程設(shè)計(jì)計(jì)報(bào)告設(shè)計(jì)題目目:學(xué)生生考勤管管理系統(tǒng)統(tǒng)設(shè)計(jì)院系:生生命科技技學(xué)院班級(jí):農(nóng)農(nóng)學(xué)1222姓名:劉劉玉柱學(xué)號(hào):220122011142003河南科技技學(xué)院20133年 冬季 學(xué)期設(shè)計(jì)任務(wù)務(wù):C語語言課程程設(shè)計(jì)任任務(wù)書110題目:學(xué)學(xué)生考勤勤系統(tǒng)設(shè)設(shè)計(jì)功能:學(xué)學(xué)生考勤勤系統(tǒng)應(yīng)應(yīng)包含各各班學(xué)生生的全部部信息。每個(gè)學(xué)學(xué)生是一一條記錄錄,包括括姓名、性別、學(xué)號(hào)、日期、節(jié)次、出勤情情況等信信息。本本系統(tǒng)可可以模擬擬考勤過過程、記記錄考勤勤結(jié)果,并并能在課課程結(jié)束束后按照照設(shè)定的的考勤評(píng)評(píng)分標(biāo)準(zhǔn)準(zhǔn)自動(dòng)給給出每個(gè)個(gè)學(xué)生的的考勤分分?jǐn)?shù)。要求:11、用CC語言實(shí)實(shí)現(xiàn)程序序設(shè)計(jì);2、利用用結(jié)
2、構(gòu)體體進(jìn)行相相關(guān)信息息處理;3、系統(tǒng)統(tǒng)的各個(gè)個(gè)功能模模塊要求求用函數(shù)數(shù)的形式式實(shí)現(xiàn);4、界面面友好(良良好的人人機(jī)交互互),程程序加必必要的注注釋。平時(shí)成績績:驗(yàn)收答辯辯成績:設(shè)計(jì)報(bào)告告成績:總評(píng)成績績:指導(dǎo)教師師:一、總體體設(shè)計(jì)1程序序的總體體設(shè)計(jì)確定界界面,使使用戶可可選擇操操作項(xiàng)目目(錄入入,修改改,查詢詢,評(píng)分分,界面面美化)。錄入功功能:使使用結(jié)構(gòu)構(gòu)體,要要求用戶戶輸入姓姓名、性性別、學(xué)學(xué)號(hào)、日日期、節(jié)節(jié)次、當(dāng)當(dāng)前出勤勤情況等等信息,并并寫入文文件。 修改功功能:使使用戶輸輸入學(xué)號(hào)號(hào),姓名名其中一一項(xiàng)可以以修改考考勤其信信息。對對于修改改功能的的實(shí)現(xiàn),是是先將所所有文件件內(nèi)容讀讀入到
3、內(nèi)內(nèi)存中,然然后修改改考勤值值,最后后再重新新覆蓋寫寫入文件件。查詢模模塊:使使用字符符串比較較函數(shù),利利用循環(huán)環(huán)找到對對應(yīng)結(jié)構(gòu)構(gòu)體數(shù)組組元素,然然后輸出出需要信信息。對對于查詢詢功能的的實(shí)現(xiàn),同同修改,是是先將所所有文件件內(nèi)容讀讀入到內(nèi)內(nèi)存中,然然后查找找到其中中某項(xiàng),最最后輸出出到屏幕幕。評(píng)分模模塊:系系統(tǒng)根據(jù)據(jù)總的應(yīng)應(yīng)道考勤勤數(shù)按照照百分制制,求出出每個(gè)學(xué)學(xué)生的分分?jǐn)?shù),并并輸出到到屏幕。界面設(shè)設(shè)置模塊塊:系統(tǒng)統(tǒng)提供背背景及前前景顏色色選項(xiàng),用用戶通過過選擇可可以自由由調(diào)節(jié)界界面顏色色。2. 數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)學(xué)生信息息用結(jié)構(gòu)構(gòu)體記錄錄,包括括姓名(字字符數(shù)組組)、性性別(字字符型)、日期(年年
4、月日三三個(gè)字符符數(shù)組)、節(jié)次(整整型)、出情況況(整型型)。3. 函函數(shù)原型型聲明 vooid maiin() /主函數(shù)數(shù)voidd reecorrd(); /錄入入數(shù)據(jù)函函數(shù)voiid aamennd(); /修修改數(shù)據(jù)據(jù)函數(shù)voiid ssearrch(); /查查詢數(shù)據(jù)據(jù)函數(shù)voiid ggoall(); /計(jì)計(jì)算總評(píng)評(píng)函數(shù)voiid llookk(); /界界面設(shè)置置函數(shù)二、詳細(xì)細(xì)設(shè)計(jì)1.maain( )函函數(shù)voidd maain()voiid rrecoord(); /錄錄入數(shù)據(jù)據(jù)函數(shù)voiid aamennd(); /修修改數(shù)據(jù)據(jù)函數(shù)voiid ssearrch(); /查查詢數(shù)
5、據(jù)據(jù)函數(shù)voiid ggoall(); /計(jì)計(jì)算總評(píng)評(píng)函數(shù) viiod koook(); /界面設(shè)設(shè)置函數(shù)數(shù) chaar iitemm; priintff( nn);priintff( n);priintff( 學(xué) 生 考 勤 管 理 系 統(tǒng) n);priintff( n);priintff( 劉玉柱柱河南科科技學(xué)院院農(nóng)學(xué)1122n);priintff( n); priintff( n);priintff( n); priintff( 1.學(xué)生信信息及考考勤情況況錄入 n); priintff( n);priintff( 2.學(xué)生信信息及考考勤情況況修改 n); priintff( n);pr
6、iintff( 3.學(xué)生信信息及考考勤情況況查詢 n); priintff( n);priintff( 4.學(xué)生考考勤總評(píng)評(píng)分?jǐn)?shù)查查詢 n);priintff( n); priintff( nn); /用用戶界面面設(shè)置priintff(n);priintff( 請選選擇您需需要的操操作nn);scaanf(%cc,&iteem); swiitchh(ittem) casse 1: reecorrd();brreakk; casse 2: ammendd();breeak; casse 3: seearcch();brreakk; casse 4: gooal();bbreaak; casse
7、5;loook();bbreaak; /實(shí)實(shí)現(xiàn)功能能選擇流程圖:開 始45Look()1breakgoal()search()amend()record()32switch(item) switch(item)switch(item)輸出界面結(jié)束2.reecorrd() 函數(shù)數(shù)voidd reecorrd()intt i,j=00,jxx=1;priintff( *學(xué) 生生 基 本 信信 息 錄 入入*n);if(fpp=foopenn(ddatee.txxt,w)=NUULL)prrinttf(文件打打開失敗敗n); exxit(0);forr(i=0;jjx=1;ii+) /輸入入信息循循
8、環(huán) foor(;j=0;) /輸輸入確認(rèn)認(rèn)循環(huán)geetchhar();prrinttf(請輸入入第%dd個(gè)學(xué)生生的姓名名 ,i+11);geets(stuui.naame);prrinttf(請輸入入第%dd個(gè)學(xué)生生的學(xué)號(hào)號(hào) ,i+11);geets(stuui.nuumbeer);prrinttf(請輸入入第%dd個(gè)學(xué)生生的性別別(男:m 女女:f) ,i+11);sttuii.ssex=gettchaar();prrinttf(請輸入入第%dd個(gè)學(xué)生生的生日日(格式式:年 月 日日) ,i+1);sccanff(%d%dd%d,&sstui.yeaar,&stuui.moonthh,&ss
9、tui.dayy); prrinttf(請輸入入第%dd個(gè)學(xué)生生的當(dāng)前前考勤次次數(shù) ,i+1);scannf(%d,&sstui.kq);prrinttf(您輸入入的信息息為姓名名 %ss 學(xué)號(hào)號(hào) %ss 性別別 %cc 生日日 %dd年%d月%d日n 0 重輸 11 確認(rèn)認(rèn),sstui.namme,sstui.nummberr,sttuii.ssex,stuui.yeear,stuui.moonthh,sttuii.dday);scannf(%d,&jj); /輸輸入確認(rèn)認(rèn) j=0; iff(fwwritte(&stuui,siizeoof(sstruuct stuudennt),1,ffp
10、)!=1) prrinttf(文件寫寫入錯(cuò)誤誤n); /寫寫入文件件prrinttf( 是否繼繼續(xù)輸入入下一個(gè)個(gè)學(xué)生信信息 00 終止止 11 繼續(xù)續(xù)n);sccanff(%d,&jxx); /繼續(xù)續(xù)輸入選選擇fcllosee(fpp); priintff(00 返回回主菜單單n);gettchaar();a=geetchhar();gettchaar();if(a=0) mmainn(); /返回主主菜單流程圖:開始0=j打開文件1=jx0=ijx=1?Yj=0?Y輸入i+1個(gè)學(xué)生信息生信息N輸入j值選擇是否確認(rèn)寫入文件i+1=i輸入jx值選擇是否繼續(xù)結(jié)束3. aamennd()函數(shù)void
11、d ammendd() intt i=0,jj=0,swaay,tt,x; chaar nnamee100,nnumbber10;priintff( *學(xué)學(xué) 生 考 勤勤 修 改*n); if(fpp=foopenn(ddatee.txxt,r)=NUULL) /將文件件內(nèi)容讀讀入內(nèi)存存prrinttf(文件打打開失敗敗n); exxit(0);forr(i=0;ffeoff(fpp)=0;ii+) frreadd(&sstui,sizzeoff(sttrucct sstuddentt),11,fpp); /讀讀取文件件內(nèi)容fcllosee(fpp); /關(guān)關(guān)閉文件件priintff(選選擇查
12、找找方式 1 按按照姓名名查找 2 按照學(xué)學(xué)號(hào)查找找);scaanf(%dd,&swaay); /*按照照姓名查查找開始始*/if(swaay=1)prrinttf(請輸入入需要修修改學(xué)生生的姓名名 );/priintff(ii=%dd,ii);sccanff(%s,namme);foor(jj=0;t!=0;jj+) tt=sttrcmmp(sstuj.namme,nnamee);iif(jj=ii) t=00;priintff(未未找到您您所查詢詢的數(shù)據(jù)據(jù),請重重新輸入入n); if(jii) /查詢成成功pprinntf(您查查找的學(xué)學(xué)生信息息如下n 姓姓名 %s 學(xué)學(xué)號(hào) %s 性性別
13、%c 生生日 %d年%d月%d日 當(dāng)前考考勤次數(shù)數(shù) %ddn,sttujj-1.naame,stuuj-1.nummberr,sttujj-1.seex,sstuj-11.yyearr,sttujj-1.moonthh,sttujj-1.daay,sstuj-11.kkq); pprinntf(是否否修改該該生考勤勤信息 0 否 1 是是); /選擇是是否修改改考勤 sscannf(%d,&xx); /輸輸入選擇擇變量值值iif(xx=11)priintff(請請輸入新新的考勤勤值 );scaanf(%dd,&stuuj-1.kq); /輸入新新的考勤勤值 if(fpp=foopenn(dda
14、tee.txxt,w)=NUULL) /以只只寫方式式打開文文件 pprinntf(文件件打開失失敗nn); eexitt(0); forr(j=0;jji;j+) iif(ffwriite(&sttujj,ssizeeof(strructt sttudeent),1,fp)!=11) pprinntf(文件件寫入錯(cuò)錯(cuò)誤nn); /寫入文文件 fcllosee(fpp); /關(guān)關(guān)閉文件件prrinttf(是否繼繼續(xù)修改改其他學(xué)學(xué)生考勤勤 0 否 1 是是);sccanff(%d,&x);iff(x=1) ammendd();/*按照照姓名查查找結(jié)束束*/ /*按按照學(xué)號(hào)號(hào)查找開開始*/if(s
15、waay=2)prrinttf(請輸入入需要修修改學(xué)生生的學(xué)號(hào)號(hào) );/priintff(ii=%dd,ii);sccanff(%s,nummberr);foor(jj=0;t!=0;jj+) tt=sttrcmmp(sstuj.nummberr,nuumbeer);iif(jj=ii) t=00;priintff(未未找到您您所查詢詢的數(shù)據(jù)據(jù),請重重新輸入入n); if(jii) /查詢成成功pprinntf(您查查找的學(xué)學(xué)生信息息如下n 姓姓名 %s 學(xué)學(xué)號(hào) %s 性性別 %c 生生日 %d年%d月%d日 當(dāng)前考考勤次數(shù)數(shù) %ddn,sttujj-1.naame,stuuj-1.nummb
16、err,sttujj-1.seex,sstuj-11.yyearr,sttujj-1.moonthh,sttujj-1.daay,sstuj-11.kkq); pprinntf(是否否修改該該生考勤勤信息 0 否 1 是是); /選擇是是否修改改考勤 sscannf(%d,&xx); /輸輸入選擇擇變量值值iif(xx=11)priintff(請請輸入新新的考勤勤值 );scaanf(%dd,&stuuj-1.kq); /輸入新新的考勤勤值 if(fpp=foopenn(ddatee.txxt,w)=NUULL) /以只只寫方式式打開文文件 pprinntf(文件件打開失失敗nn); eexi
17、tt(0); forr(j=0;jji;j+) iif(ffwriite(&sttujj,ssizeeof(strructt sttudeent),1,fp)!=11) pprinntf(文件件寫入錯(cuò)錯(cuò)誤nn); /寫入文文件 fcllosee(fpp); /關(guān)關(guān)閉文件件prrinttf(是否繼繼續(xù)修改改其他學(xué)學(xué)生考勤勤 0 否 1 是是);sccanff(%d,&x);iff(x=1) ammendd();/*按照照學(xué)號(hào)查查找結(jié)束束*/priintff(00 返回回主菜單單n);gettchaar();a=ggetccharr();gettchaar();if(a=0) mmainn();開
18、始打開文件將文件內(nèi)容全部讀入結(jié)構(gòu)體數(shù)組輸入sway值選擇查找方式Sway=1?NSway=2?Y輸入要查找的學(xué)號(hào)輸入要查找的姓名N查找學(xué)號(hào)查找姓名輸入X值選擇是否修改考勤X=1?Y輸入新的考勤值寫入文件結(jié)束4. ssearrch()函數(shù)數(shù)voidd seearcch() intt i=0,jj=0,swaay,tt,x; chaar nnamee100,nnumbber10;priintff( *學(xué) 生生 信 息 查查 詢*n); if(fpp=foopenn(ddatee.txxt,r)=NUULL) /將文文件內(nèi)容容讀入內(nèi)內(nèi)存prrinttf(文件打打開失敗敗n); exxit(0);fo
19、rr(i=0;ffeoff(fpp)=0;ii+) frreadd(&sstui,sizzeoff(sttrucct sstuddentt),11,fpp); /讀讀取文件件內(nèi)容fcllosee(fpp); /關(guān)關(guān)閉文件件priintff(選選擇查找找方式 1 按按照姓名名查找 2 按照學(xué)學(xué)號(hào)查找找);scaanf(%dd,&swaay); /*按照照姓名查查找開始始*/if(swaay=1)prrinttf(請輸入入需要修修改學(xué)生生的姓名名 );/priintff(ii=%dd,ii);sccanff(%s,namme);foor(jj=0;t!=0;jj+) tt=sttrcmmp(sst
20、uj.namme,nnamee);iif(jj=ii) t=00;priintff(未未找到您您所查詢詢的數(shù)據(jù)據(jù),請重重新輸入入n); if(jii) /查詢成成功pprinntf(您查查找的學(xué)學(xué)生信息息如下n 姓姓名 %s 學(xué)學(xué)號(hào) %s 性性別 %c 生生日 %d年%d月%d日 當(dāng)前考考勤次數(shù)數(shù) %ddn,sttujj-1.naame,stuuj-1.nummberr,sttujj-1.seex,sstuj-11.yyearr,sttujj-1.moonthh,sttujj-1.daay,sstuj-11.kkq); prrinttf(是否繼繼續(xù)查詢詢其他學(xué)學(xué)生信息息 0 否 1 是是);s
21、ccanff(%d,&x);iff(x=1) seearcch();/*按按照姓名名查找結(jié)結(jié)束*/ /*按按照學(xué)號(hào)號(hào)查找開開始*/if(swaay=2)prrinttf(請輸入入需要修修改學(xué)生生的學(xué)號(hào)號(hào) );/priintff(ii=%dd,ii);sccanff(%s,nummberr);foor(jj=0;t!=0;jj+) tt=sttrcmmp(sstuj.nummberr,nuumbeer);iif(jj=ii) t=00;priintff(未未找到您您所查詢詢的數(shù)據(jù)據(jù),請重重新輸入入n); if(jii) /查詢成成功pprinntf(您查查找的學(xué)學(xué)生信息息如下n 姓姓名 %s 學(xué)
22、學(xué)號(hào) %s 性性別 %c 生生日 %d年%d月%d日 當(dāng)前考考勤次數(shù)數(shù) %ddn,sttujj-1.naame,stuuj-1.nummberr,sttujj-1.seex,sstuj-11.yyearr,sttujj-1.moonthh,sttujj-1.daay,sstuj-11.kkq);prrinttf(是否繼繼續(xù)查詢詢其他學(xué)學(xué)生信息息 0 否 1 是是);sccanff(%d,&x);iff(x=1) seearcch();/*按照照學(xué)號(hào)查查找結(jié)束束*/priintff(00 返回回主菜單單n);gettchaar();a=ggetccharr();gettchaar();if(a=
23、0) mmainn(); 流程圖圖:開始打開文件將文件內(nèi)容全部讀入結(jié)構(gòu)體數(shù)組輸入sway值選擇查找方式Sway=1?NSway=2?Y輸入要查找的學(xué)號(hào)輸入要查找的姓名查找學(xué)號(hào)查找姓名輸出該生信息5.gooal()函數(shù)數(shù)voidd gooal() intt i=0,jj=0,swaay,tt,x; flooat scoore; chaar nnamee100,nnumbber10;priintff( *學(xué) 生生 考 勤 分分 數(shù) 計(jì) 算算*n);if(kqccs=0)priintff(請請輸入應(yīng)應(yīng)到考勤勤總數(shù) ); /請請輸入應(yīng)應(yīng)到考勤勤總數(shù)scaanf(%ff,&kqccs); if(fpp=
24、foopenn(ddatee.txxt,r)=NUULL) /將將文件內(nèi)內(nèi)容讀入入內(nèi)存prrinttf(文件打打開失敗敗n); exxit(0);forr(i=0;ffeoff(fpp)=0;ii+) frreadd(&sstui,sizzeoff(sttrucct sstuddentt),11,fpp); /讀讀取文件件內(nèi)容fcllosee(fpp); /關(guān)關(guān)閉文件件priintff(選選擇查找找方式 1 按按照姓名名查找 2 按照學(xué)學(xué)號(hào)查找找);scaanf(%dd,&swaay); /*按照照姓名查查找開始始*/if(swaay=1)prrinttf(請輸入入需要修修改學(xué)生生的姓名名 )
25、;/priintff(ii=%dd,ii);sccanff(%s,namme);foor(jj=0;t!=0;jj+) tt=sttrcmmp(sstuj.namme,nnamee);iif(jj=ii) t=00;priintff(未未找到您您所查詢詢的數(shù)據(jù)據(jù),請重重新輸入入n); if(jii) /查詢成成功pprinntf(您查查找的學(xué)學(xué)生信息息如下n 姓姓名 %s 學(xué)學(xué)號(hào) %s 性性別 %c 生生日 %d年%d月%d日 當(dāng)前考考勤次數(shù)數(shù) %ddn,sttujj-1.naame,stuuj-1.nummberr,sttujj-1.seex,sstuj-11.yyearr,sttujj-1
26、.moonthh,sttujj-1.daay,sstuj-11.kkq); sscorre=(stuuj-1.kq)/kqqcs*1000; pprinntf(該生生當(dāng)前考考勤分?jǐn)?shù)數(shù)為 %5.22f,scoore);prrinttf(是否繼繼續(xù)計(jì)算算其他學(xué)學(xué)生考勤勤分?jǐn)?shù) 0 否否 11 是);sccanff(%d,&x);iff(x=1) gooal();/*按按照姓名名查找結(jié)結(jié)束*/ /*按按照學(xué)號(hào)號(hào)查找開開始*/if(swaay=2)prrinttf(請輸入入需要修修改學(xué)生生的學(xué)號(hào)號(hào) );/priintff(ii=%dd,ii);sccanff(%s,nummberr);foor(jj=0
27、;t!=0;jj+) tt=sttrcmmp(sstuj.nummberr,nuumbeer);iif(jj=ii) t=00;priintff(未未找到您您所查詢詢的數(shù)據(jù)據(jù),請重重新輸入入n); if(jii) /查詢成成功pprinntf(您查查找的學(xué)學(xué)生信息息如下n 姓姓名 %s 學(xué)學(xué)號(hào) %s 性性別 %c 生生日 %d年%d月%d日 當(dāng)前考考勤次數(shù)數(shù) %ddn,sttujj-1.naame,stuuj-1.nummberr,sttujj-1.seex,sstuj-11.yyearr,sttujj-1.moonthh,sttujj-1.daay,sstuj-11.kkq);sscorre
28、=(stuuj-1.kq)/kqqcs*1000; pprinntf(該生生當(dāng)前考考勤分?jǐn)?shù)數(shù)為 %5.22f,scoore);prrinttf(是否繼繼續(xù)計(jì)算算其他學(xué)學(xué)生考勤勤分?jǐn)?shù) 0 否否 11 是);sccanff(%d,&x);iff(x=1) gooal();/*按照照學(xué)號(hào)查查找結(jié)束束*/priintff(00 返回回主菜單單n);gettchaar();a=ggetccharr();gettchaar();if(a=0) mmainn();流程圖:開始輸入應(yīng)到考勤次數(shù)kqcs值打開文件將文件內(nèi)容全部讀入結(jié)構(gòu)體數(shù)組輸入sway值選擇查找方式Sway=1?YNSway=2?輸入要查找的學(xué)
29、號(hào)輸入要查找的姓名查找學(xué)號(hào)查找姓名輸出該生信息計(jì)算考勤分?jǐn)?shù)輸出考勤分?jǐn)?shù)結(jié)束Lookk()函函數(shù):voidd loook() intt i,j;priintff(背背景顏色色:0:黑、11:藍(lán)、2:綠綠、3:湖藍(lán)色色、4:紅、55:紫、6:黃黃、7:白);scaanf(%dd,&i);swiitchh(i)casse 00:pprinntf(前景景顏色:0:黑黑、1:藍(lán)、22:綠、3:湖湖藍(lán)色、4:紅紅、5:紫、66:黃、7:白白);sscannf(%d,&jj);sswittch(j)ccasee 0:priintff(輸輸入無效效!背景景和前景景顏色相相同!n);breeak;ccasee
30、1:sysstemm(ccoloor 001);breeak;ccasee 2:sysstemm(ccoloor 002);breeak;ccasee 3:sysstemm(ccoloor 003);breeak;ccasee 4:sysstemm(ccoloor 004);breeak;ccasee 5:sysstemm(ccoloor 005);breeak;ccasee 6:sysstemm(ccoloor 006);breeak;ccasee 7:sysstemm(ccoloor 007);breeak;bbreaak;casse 11:pprinntf(前景景顏色:0:黑黑、1:藍(lán)、
31、22:綠、3:湖湖藍(lán)色、4:紅紅、5:紫、66:黃、7:白白);sscannf(%d,&jj);sswittch(j)ccasee 0:sysstemm(ccoloor 110);breeak;ccasee 1:priintff(輸輸入無效效!背景景和前景景顏色相相同!n);breeak;ccasee 2:sysstemm(ccoloor 112);breeak;ccasee 3:sysstemm(ccoloor 113);breeak;ccasee 4:systtem(coolorr 144);breeak;ccasee 5:sysstemm(ccoloor 115);breeak;ccas
32、ee 6:sysstemm(ccoloor 116);breeak;ccasee 7:sysstemm(ccoloor 117);breeak;bbreaak;casse 22:pprinntf(前景景顏色:0:黑黑、1:藍(lán)、22:綠、3:湖湖藍(lán)色、4:紅紅、5:紫、66:黃、7:白白);sscannf(%d,&jj);sswittch(j)ccasee 0:sysstemm(ccoloor 220);breeak;ccasee 1:sysstemm(ccoloor 221);breeak;ccasee 2:priintff(輸輸入無效效!背景景和前景景顏色相相同!n);breeak;ccas
33、ee 3:sysstemm(ccoloor 223);breeak;ccasee 4:sysstemm(ccoloor 224);breeak;ccasee 5:sysstemm(ccoloor 225);breeak;ccasee 6:sysstemm(ccoloor 226);breeak;ccasee 7:sysstemm(ccoloor 227);breeak;bbreaak;casse 33:pprinntf(前景景顏色:0:黑黑、1:藍(lán)、22:綠、3:湖湖藍(lán)色、4:紅紅、5:紫、66:黃、7:白白);sscannf(%d,&jj);sswittch(j)ccasee 0:sysst
34、emm(ccoloor 330);breeak;ccasee 1:sysstemm(ccoloor 331);breeak;ccasee 2:sysstemm(ccoloor 332);breeak;ccasee 3:priintff(輸輸入無效效!背景景和前景景顏色相相同!n);breeak;ccasee 4:sysstemm(ccoloor 334);breaak;ccasee 5:sysstemm(ccoloor 335);breeak;ccasee 6:sysstemm(ccoloor 336);breeak;ccasee 7:sysstemm(ccoloor 337);breeak;
35、bbreaak;casse 44:pprinntf(前景景顏色:0:黑黑、1:藍(lán)、22:綠、3:湖湖藍(lán)色、4:紅紅、5:紫、66:黃、7:白白);sscannf(%d,&jj);sswittch(j)ccasee 0:sysstemm(ccoloor 440);breeak;ccasee 1:sysstemm(ccoloor 441);breeak;ccasee 2:sysstemm(ccoloor 442);breeak;ccasee 3:sysstemm(ccoloor 443);breeak;ccasee 4:priintff(輸輸入無效效!背景景和前景景顏色相相同!n);breeak;
36、ccasee 5:sysstemm(ccoloor 445);breeak;ccasee 6:sysstemm(ccoloor 446);breeak;ccasee 7:sysstemm(ccoloor 447);breeak;bbreaak;casse 55:pprinntf(前景景顏色:0:黑黑、1:藍(lán)、22:綠、3:湖湖藍(lán)色、4:紅紅、5:紫、66:黃、7:白白);sscannf(%d,&jj);sswittch(j)casse 00:sysstemm(ccoloor 550);breeak;ccasee 1:sysstemm(ccoloor 551);breeak;ccasee 2:s
37、ysstemm(ccoloor 552);breeak;ccasee 3:sysstemm(ccoloor 553);breeak;ccasee 4:sysstemm(ccoloor 554);breeak;ccasee 5:priintff(輸輸入無效效!背景景和前景景顏色相相同!n);breeak;ccasee 6:sysstemm(ccoloor 556);breeak;ccasee 7:sysstemm(ccoloor 557);breeak;bbreaak;casse 66:pprinntf(前景景顏色:0:黑黑、1:藍(lán)、22:綠、3:湖湖藍(lán)色、4:紅紅、5:紫、66:黃、7:白白)
38、;sscannf(%d,&jj);sswittch(j)ccasee 0:sysstemm(ccoloor 660);breeak;ccasee 1:sysstemm(ccoloor 661);breeak;ccasee 2:sysstemm(ccoloor 662);breeak;ccasee 3:sysstemm(ccoloor 663);breeak;ccasee 4:sysstemm(ccoloor 664);breeak;ccasee 5:sysstemm(ccoloor 665);breeak;ccasee 6:priintff(輸輸入無效效!背景景和前景景顏色相相同!n);bre
39、eak;ccasee 7:sysstemm(ccoloor 667);breeak;bbreaak;casse 77:pprinntf(前景景顏色:0:黑黑、1:藍(lán)、22:綠、3:湖湖藍(lán)色、4:紅紅、5:紫、66:黃、7:白白);sscannf(%d,&jj);sswittch(j)ccasee 0:sysstemm(ccoloor 770);breeak;ccasee 1:sysstemm(ccoloor 771);breeak;ccasee 2:sysstemm(ccoloor 772);breeak;ccasee 3:sysstemm(ccoloor 773);breeak;ccasee
40、 4:sysstemm(ccoloor 774);breeak;ccasee 5:sysstemm(ccoloor 775);breeak;ccasee 6:sysstemm(ccoloor 776);breeak;ccasee 7:priintff(輸輸入無效效!背景景和前景景顏色相相同!n);breeak;bbreaak;priintff(00 返回回主菜單單、1 重新設(shè)設(shè)置界面面顏色n);gettchaar();a=ggetccharr();gettchaar();if(a=0) maain(); elsse iif(aa=1)loook();elsseprrinttf(輸入錯(cuò)錯(cuò)誤!n)
41、;三、測試試及調(diào)試試(測試試方案、存在的的問題及及解決方方法)測試方案案:按照照每個(gè)函函數(shù)功能能進(jìn)行測測試,在在做完每每個(gè)函數(shù)數(shù)對其進(jìn)進(jìn)行測試試,主函函數(shù)測試試,先將將所有需需要的功功能模塊塊函數(shù)設(shè)設(shè)置為空空,每個(gè)個(gè)函數(shù)用用一個(gè)pprinntf語語句來測測試主函函數(shù)。存在問題題:開始始將生日日定義為為字符數(shù)數(shù)組,當(dāng)當(dāng)用sccanff來輸入入年月日日時(shí),年年月日之之間用空空格分隔隔,但在在輸出時(shí)時(shí)發(fā)現(xiàn)年年月日出出現(xiàn)錯(cuò)誤誤。分析原因因:用sscannf輸入入年月日日時(shí),系系統(tǒng)會(huì)把把用來分分隔的空空格當(dāng)做做字符讀讀入。解決方法法:將年年月日定定義為整整型,這這樣就可可以用sscannf輸入入,用空空
42、格隔開開。存在問題題2:在在查找數(shù)數(shù)據(jù)時(shí),需需要先將將所有數(shù)數(shù)據(jù)讀入入一個(gè)結(jié)結(jié)構(gòu)體數(shù)數(shù)組,在在讀取后后未關(guān)閉閉文件,執(zhí)執(zhí)行查找找時(shí)查找找不到相相關(guān)信息息。分析原因因:再利利用foor循環(huán)環(huán)讀取全全部文件件內(nèi)容后后,文件件指針將將會(huì)移至至文件末末尾,這這樣再執(zhí)執(zhí)行查找找時(shí)就會(huì)會(huì)從文件件末尾開開始,顯顯然不符符合要求求,所以以會(huì)出現(xiàn)現(xiàn)錯(cuò)誤。解決方法法:在讀讀取完數(shù)數(shù)據(jù)后先先關(guān)閉文文件,在在查找時(shí)時(shí)再次打打開文件件,這時(shí)時(shí)文件指指針就會(huì)會(huì)指向文文件開頭頭。存在問題題3:再再多個(gè)使使用geetchhar或或者geets輸輸入的時(shí)時(shí)候,會(huì)會(huì)出現(xiàn)直直接跳過過輸入的的情況。分析原因因:在使使用geetchh
43、ar或或者geets輸輸入的時(shí)時(shí)候,系系統(tǒng)會(huì)將將前一步步用來確確認(rèn)執(zhí)行行的回車車當(dāng)成字字符讀入入,導(dǎo)致致跳過該該步輸入入。解決方法法:再ggetccharr或者ggetss前面加加上geetchhar()語句句,讀掉掉回車,下下面的ggetccharr或者ggetss就可以以正常輸輸入。4. 存存在的問問題:ssysttem(“collor atttr”)命令令中,aattrr不能是是變量!解決方方法:使使用swwitcch語句句一個(gè)一一個(gè)寫。四、小結(jié)結(jié)通過編寫寫該程序序,熟悉悉了C語語言的基基本語法法,選擇擇,循環(huán)環(huán)等結(jié)構(gòu)構(gòu),深入入練習(xí)了了函數(shù)的的調(diào)用方方法,和和文件的的讀寫方方法,熟熟悉了
44、結(jié)結(jié)構(gòu)體的的使用,更更加深化化了面向向過程語語言思想想,和一一些基本本算法。通過對程程序的后后期調(diào)試試,熟悉悉了C常常見錯(cuò)誤誤,鍛煉煉了思維維的嚴(yán)密密性,和和完備性性。通過對程程序的注注釋和畫畫流程圖圖,形成成了一套套自己編編程的風(fēng)風(fēng)格,和和清晰地地思路,使使思維更更加條理理化,清清晰化。附件:主主要源程程序代碼碼(需打打?。?inccludde#inccludde#inccluddeFILEE *ffp; charr a; floaat kkqcss=0; struuct stuudennt chaar nnamee100;chaar nnumbber11;chaar ssex;intt y
45、eear;intt moonthh;intt daay;intt kqq;stuu1000; /定義義儲(chǔ)存學(xué)學(xué)生信息息的結(jié)構(gòu)構(gòu)體數(shù)組組/*主 函函 數(shù) 開 始始*voidd maain()voiid llookk(); /系系統(tǒng)界面面顏色這這只函數(shù)數(shù)voiid rrecoord(); /錄錄入數(shù)據(jù)據(jù)函數(shù)voiid aamennd(); /修修改數(shù)據(jù)據(jù)函數(shù)voiid ssearrch(); /查查詢數(shù)據(jù)據(jù)函數(shù)voiid ggoall(); /計(jì)計(jì)算總評(píng)評(píng)函數(shù)chaar iitemm;priintff( nn);priintff( n);priintff( 學(xué) 生 考 勤 管 理 系 統(tǒng) n);p
46、riintff( n);priintff( 劉劉玉柱 河南科科技學(xué)院院 農(nóng)農(nóng)學(xué)1222 n);priintff( n);priintff( nn);priintff( n);priintff( 1.學(xué)生信信息及考考勤情況況錄入 n);priintff( n);priintff( 2.學(xué)生信信息及考考勤情況況修改 n);priintff( n);priintff( 3.學(xué)生信信息及考考勤情況況查詢 n);priintff( n);priintff( 4.學(xué)生考考勤總評(píng)評(píng)分?jǐn)?shù)查查詢 n);priintff( n);priintff( 5.系統(tǒng)界界面設(shè)置置 n);priintff( n);priin
47、tff( nn); priintff(n);priintff( 請選選擇您需需要的操操作nn);scaanf(%cc,&iteem);swiitchh(ittem)caase 5: llookk();breeak;caase 1: rrecoord();bbreaak;caase 2: aamennd();brreakk;caase 3: ssearrch();bbreaak;caase 4: ggoall();breeak; /*主 函函 數(shù) 結(jié) 束束*/*錄入入數(shù)據(jù)函函數(shù)內(nèi)容容開始*voidd reecorrd()intt i,j=00,jxx=1;priintff( *學(xué) 生生 基 本
48、信信 息 錄 入入*n);if(fpp=foopenn(ddatee.txxt,w)=NUULL)prrinttf(文件打打開失敗敗n);exxit(0);forr(i=0;jjx=1;ii+) /輸入入信息循循環(huán) foor(;j=0;) /輸輸入確認(rèn)認(rèn)循環(huán)ggetccharr();pprinntf(請輸輸入第%d個(gè)學(xué)學(xué)生的姓姓名 ,i+1);ggetss(sttuii.nnamee);pprinntf(請輸輸入第%d個(gè)學(xué)學(xué)生的學(xué)學(xué)號(hào) ,i+1);ggetss(sttuii.nnumbber);pprinntf(請輸輸入第%d個(gè)學(xué)學(xué)生的性性別(男男:m 女:ff) ,i+1);sstui.se
49、xx=geetchhar();pprinntf(請輸輸入第%d個(gè)學(xué)學(xué)生的生生日(格格式:年年 月 日) ,ii+1);sscannf(%d%d%dd,&stuui.yeear,&sttuii.mmontth,&stuui.daay);pprinntf(請輸輸入第%d個(gè)學(xué)學(xué)生的當(dāng)當(dāng)前考勤勤次數(shù) ,ii+1);sscannf(%d,&sstui.kq);pprinntf(您輸輸入的信信息為 姓名 %s 學(xué)號(hào) %s 性別 %c 生日 %d年年%d月月%d日日n 0 重輸 1 確確認(rèn),stuui.naame,stuui.nuumbeer,sstui.sexx,sttuii.yyearr,sttuii.
50、mmontth,sstui.dayy);sscannf(%d,&jj); /輸輸入確認(rèn)認(rèn)j=0;iff(fwwritte(&stuui,siizeoof(sstruuct stuudennt),1,ffp)!=1) prrinttf(文件寫寫入錯(cuò)誤誤n); /寫寫入文件件prrinttf( 是否繼繼續(xù)輸入入下一個(gè)個(gè)學(xué)生信信息 00 終止止 11 繼續(xù)續(xù)n);sccanff(%d,&jxx); /繼續(xù)續(xù)輸入選選擇fcllosee(fpp);priintff(00 返回回主菜單單n);gettchaar();a=ggetccharr();gettchaar();if(a=0) mmainn();
51、/返回主主菜單/*錄入入數(shù)據(jù)函函數(shù)內(nèi)容容結(jié)束*/*修改改數(shù)據(jù)函函數(shù)內(nèi)容容開始*voidd ammendd() intt i=0,jj=0,swaay,tt,x;chaar nnamee100,nnumbber10;priintff( *學(xué)學(xué) 生 考 勤勤 修 改*n);if(fpp=foopenn(ddatee.txxt,r)=NUULL) /將文件件內(nèi)容讀讀入內(nèi)存存prrinttf(文件打打開失敗敗n);exxit(0);forr(i=0;ffeoff(fpp)=0;ii+) frreadd(&sstui,sizzeoff(sttrucct sstuddentt),11,fpp); /讀讀取
52、文件件內(nèi)容fcllosee(fpp); /關(guān)關(guān)閉文件件priintff(選選擇查找找方式 1 按按照姓名名查找 2 按照學(xué)學(xué)號(hào)查找找);scaanf(%dd,&swaay);/*按照照姓名查查找開始始*/if(swaay=1)prrinttf(請輸入入需要修修改學(xué)生生的姓名名 );sccanff(%s,namme);foor(jj=0;t!=0;jj+)tt=sttrcmmp(sstuj.namme,nnamee);iif(jj=ii)t=00;priintff(未未找到您您所查詢詢的數(shù)據(jù)據(jù),請重重新輸入入n);iff(ji) /查詢詢成功pprinntf(您查查找的學(xué)學(xué)生信息息如下n 姓姓名
53、 %s 學(xué)學(xué)號(hào) %s 性性別 %c 生生日 %d年%d月%d日 當(dāng)前考考勤次數(shù)數(shù) %ddn,sttujj-1.naame,stuuj-1.nummberr,sttujj-1.seex,sstuj-11.yyearr,sttujj-1.moonthh,sttujj-1.daay,sstuj-11.kkq);pprinntf(是否否修改該該生考勤勤信息 0 否 1 是是); /選擇是是否修改改考勤sscannf(%d,&xx); /輸輸入選擇擇變量值值iif(xx=11)priintff(請請輸入新新的考勤勤值 );scaanf(%dd,&stuuj-1.kq); /輸入新新的考勤勤值if(fpp
54、=foopenn(ddatee.txxt,w)=NUULL) /以只只寫方式式打開文文件priintff(文文件打開開失敗n);exiit(00);forr(j=0;jji;j+) iif(ffwriite(&sttujj,ssizeeof(strructt sttudeent),1,fp)!=11) pprinntf(文件件寫入錯(cuò)錯(cuò)誤nn); /寫入文文件fcllosee(fpp); /關(guān)關(guān)閉文件件prrinttf(是否繼繼續(xù)修改改其他學(xué)學(xué)生考勤勤 0 否 1 是是);sccanff(%d,&x);iff(x=1) ammendd();/*按照照姓名查查找結(jié)束束*/*按照照學(xué)號(hào)查查找開始始*
55、/if(swaay=2)prrinttf(請輸入入需要修修改學(xué)生生的學(xué)號(hào)號(hào) );sccanff(%s,nummberr);foor(jj=0;t!=0;jj+)tt=sttrcmmp(sstuj.nummberr,nuumbeer);iif(jj=ii)t=00;priintff(未未找到您您所查詢詢的數(shù)據(jù)據(jù),請重重新輸入入n);iff(ji) /查詢詢成功pprinntf(您查查找的學(xué)學(xué)生信息息如下n 姓姓名 %s 學(xué)學(xué)號(hào) %s 性性別 %c 生生日 %d年%d月%d日 當(dāng)前考考勤次數(shù)數(shù) %ddn,sttujj-1.naame,stuuj-1.nummberr,sttujj-1.seex,s
56、stuj-11.yyearr,sttujj-1.moonthh,sttujj-1.daay,sstuj-11.kkq);pprinntf(是否否修改該該生考勤勤信息 0 否 1 是是); /選擇是是否修改改考勤sscannf(%d,&xx); /輸輸入選擇擇變量值值iif(xx=11)priintff(請請輸入新新的考勤勤值 );scaanf(%dd,&stuuj-1.kq); /輸入新新的考勤勤值if(fpp=foopenn(ddatee.txxt,w)=NUULL) /以只只寫方式式打開文文件priintff(文文件打開開失敗n);exiit(00);forr(j=0;jji;j+) ii
57、f(ffwriite(&sttujj,ssizeeof(strructt sttudeent),1,fp)!=11) pprinntf(文件件寫入錯(cuò)錯(cuò)誤nn); /寫入文文件fcllosee(fpp); /關(guān)關(guān)閉文件件prrinttf(是否繼繼續(xù)修改改其他學(xué)學(xué)生考勤勤 0 否 1 是是);sccanff(%d,&x);iff(x=1) ammendd();/*按照照學(xué)號(hào)查查找結(jié)束束*/priintff(00 返回回主菜單單n);gettchaar();a=ggetccharr();gettchaar();if(a=0) mmainn();/*修改改數(shù)據(jù)函函數(shù)內(nèi)容容結(jié)束*/*查詢詢數(shù)據(jù)函函數(shù)內(nèi)容
58、容開始*voiid ssearrch() innt ii=0,j=00,swway,t,xx;chhar namme110,nummberr100;prrinttf( *學(xué) 生 信信 息 查 詢詢*n);iff(ffp=ffopeen(datte.ttxt,rr)=NNULLL) /將將文件內(nèi)內(nèi)容讀入入內(nèi)存pprinntf(文件件打開失失敗nn);eexitt(0);foor(ii=0;feoof(ffp)=0;i+) ffreaad(&stuui,siizeoof(sstruuct stuudennt),1,ffp); /讀取文文件內(nèi)容容fcclosse(ffp); /關(guān)閉文文件prrint
59、tf(選擇查查找方式式 1 按照姓姓名查找找 22 按照照學(xué)號(hào)查查找);sccanff(%d,&swway);/*按照照姓名查查找開始始*/iff(swway=1)pprinntf(請輸輸入需要要修改學(xué)學(xué)生的姓姓名 );sscannf(%s,naame);ffor(j=00;t!=0;j+)t=sstrccmp(stuuj.naame,namme);if(j=i)t=00;priintff(未未找到您您所查詢詢的數(shù)據(jù)據(jù),請重重新輸入入n);iif(jji) /查查詢成功功pprinntf(您查查找的學(xué)學(xué)生信息息如下n 姓姓名 %s 學(xué)學(xué)號(hào) %s 性性別 %c 生生日 %d年%d月%d日 當(dāng)前考
60、考勤次數(shù)數(shù) %ddn,sttujj-1.naame,stuuj-1.nummberr,sttujj-1.seex,sstuj-11.yyearr,sttujj-1.moonthh,sttujj-1.daay,sstuj-11.kkq);prrinttf(是否繼繼續(xù)查詢詢其他學(xué)學(xué)生信息息 0 否 1 是是);sccanff(%d,&x);iff(x=1) seearcch();/*按照照姓名查查找結(jié)束束*/*按照照學(xué)號(hào)查查找開始始*/if(swaay=2)prrinttf(請輸入入需要修修改學(xué)生生的學(xué)號(hào)號(hào) );sccanff(%s,nummberr);foor(jj=0;t!=0;jj+)tt=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)境設(shè)計(jì)的藝術(shù)性與審美培養(yǎng)探討
- 生產(chǎn)線作業(yè)計(jì)劃與實(shí)時(shí)調(diào)度分析
- 班級(jí)紀(jì)律執(zhí)行與校園文化建設(shè)的互動(dòng)關(guān)系
- 生態(tài)城市規(guī)劃中的綠色交通系統(tǒng)建設(shè)
- 現(xiàn)代辦公中的網(wǎng)絡(luò)教育平臺(tái)應(yīng)用
- Unit 6 My family(說課稿)-2024-2025學(xué)年滬教版(五四制)(2024)英語一年級(jí)上冊
- 2024年二年級(jí)品生下冊《大自然的奧秘》說課稿 冀教版001
- 2024-2025學(xué)年高中歷史 專題一 古代中國經(jīng)濟(jì)的基本結(jié)構(gòu)與特點(diǎn) 1.3 古代中國的商業(yè)經(jīng)濟(jì)說課稿 人民版必修2
- 10的認(rèn)識(shí)和加減法(說課稿)-2024-2025學(xué)年一年級(jí)上冊數(shù)學(xué)人教版(2024)001
- 14《圓明園的毀滅》第二課時(shí)(說課稿)2024-2025學(xué)年語文五年級(jí)上冊統(tǒng)編版
- 中國人口研究專題報(bào)告-中國2025-2100年人口預(yù)測與政策建議-西南財(cái)經(jīng)大學(xué)x清華大學(xué)-202501
- 2025年度廚師職業(yè)培訓(xùn)學(xué)院合作辦學(xué)合同4篇
- 《組織行為學(xué)》第1章-組織行為學(xué)概述
- 25版六年級(jí)寒假特色作業(yè)
- 浙江省杭州市9+1高中聯(lián)盟2025屆高三一診考試英語試卷含解析
- GB/T 19228.1-2024不銹鋼卡壓式管件組件第1部分:卡壓式管件
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫380題(含答案)
- (高清版)DZT 0399-2022 礦山資源儲(chǔ)量管理規(guī)范
- 初一英語英語閱讀理解專項(xiàng)訓(xùn)練15篇
- 實(shí)現(xiàn)結(jié)構(gòu)化:初中語文大單元教學(xué)設(shè)計(jì)的核心
- FZ∕T 54088-2016 錦綸6全牽伸單絲
評(píng)論
0/150
提交評(píng)論