




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)( 屆)×××系題 目: 學(xué) 號(hào): 姓 名: 專業(yè)班級(jí): 指導(dǎo)教師: 職稱: 職稱: 年 月 日專心-專注-專業(yè)目錄1. 系統(tǒng)需求分析考勤信息記錄了學(xué)生的缺課情況,它包括:缺課日期、第幾節(jié)課(連續(xù)用begin-end的形式表示)、課程名稱(課程名稱中不會(huì)出現(xiàn)空格)、學(xué)生姓名、缺課類型(遲到、早退、請(qǐng)假及曠課)。試設(shè)計(jì)考勤管理系統(tǒng),使之能提供以下功能:1)錄入學(xué)生的缺課記錄:從鍵盤輸入數(shù)據(jù)(提示:為避免重復(fù)從鍵盤輸入數(shù)據(jù),測(cè)試時(shí)可將數(shù)據(jù)存儲(chǔ)在文件中,利用輸入重定向功能讀入),輸入格式為:缺課日期 第幾節(jié)課 課程名稱學(xué)
2、生姓名 缺課類型每行一條紀(jì)錄。例如:2009-04-29 2-4 中國(guó)近現(xiàn)代文學(xué)史 李云龍 遲到2009-04-28 2-4 大學(xué)生社交禮儀 馬志鵬 曠課2)修改某個(gè)學(xué)生的缺課記錄:可以對(duì)缺課紀(jì)錄的任意部分進(jìn)行修改,然后顯示一下修改后的紀(jì)錄。3)查詢某個(gè)學(xué)生的缺課情況:查詢結(jié)果按照日期升序排序,同一天內(nèi)按照所缺課程的時(shí)間升序排序。4)統(tǒng)計(jì)某段時(shí)間內(nèi)(以天為單位),曠課學(xué)生姓名及曠課節(jié)數(shù),查詢結(jié)果先按曠課節(jié)數(shù)降序排序,曠課節(jié)數(shù)相同的學(xué)生按姓名升序排序;5)統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次,按曠課人次由多到少排序,曠課人次相同的課程按課程名稱升序排序; 6)系統(tǒng)以菜單方式工作。(所謂菜單
3、指用戶可以自由選擇所要執(zhí)行的功能。學(xué)生可以通過以上功能錄入信息、修改信息、查詢信息、整理統(tǒng)計(jì)出所要了解的信息,除了要實(shí)現(xiàn)上述的基本功能之外,本系統(tǒng)還應(yīng)該在細(xì)節(jié)上下工夫,使用戶使用方便,在使用的過程中保持一個(gè)愉快的心情。學(xué)生考勤管理系統(tǒng)有廣大的用戶群,這其中有老師、有教務(wù)處主任、有公司管理人員,也可以供給一般用戶使用??傊撓到y(tǒng)可以滿足用戶需求,實(shí)現(xiàn)對(duì)其管理的人員的考勤工作。2. 總體設(shè)計(jì)學(xué)生考勤管理系統(tǒng)包含五個(gè)大的功能,分別是:錄入學(xué)生缺課信息、修改學(xué)生缺課信息、查詢某個(gè)學(xué)生的缺課情況、統(tǒng)計(jì)某段時(shí)間內(nèi)(以天為單位),曠課學(xué)生姓名及曠課節(jié)數(shù)和統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次。學(xué)生的缺課
4、信息主要包含缺課日期,第幾節(jié)課、課程名稱,學(xué)生姓名,缺課類型。在錄入學(xué)生缺課信息時(shí)根據(jù)系統(tǒng)提示逐一輸入。每輸入完一條信息,系統(tǒng)會(huì)提示是否繼續(xù)輸入,用戶可以選擇繼續(xù)或返回主菜單。在修改學(xué)生缺課信息時(shí),用戶首先輸入要修改的學(xué)生姓名,系統(tǒng)會(huì)檢索如果系統(tǒng)中有該學(xué)生的相關(guān)信息則系統(tǒng)首先會(huì)提示用戶修改該學(xué)生的那一部分信息,用戶可自行選擇。如果系統(tǒng)中沒有該學(xué)生的相關(guān)信息,則系統(tǒng)會(huì)給相關(guān)提示,用戶可以選擇繼續(xù)輸入要修改的學(xué)生姓名或選擇退出返回主菜單。在查詢學(xué)生缺課信息時(shí),用戶先輸入要查詢的學(xué)生姓名,系統(tǒng)檢索判斷是否存在該學(xué)生的信息然后做出相應(yīng)的提示??傊?,用戶可以方便的在系統(tǒng)提示下進(jìn)行使用。學(xué)生考勤管理系統(tǒng)中
5、功能模塊圖:修改某學(xué)生的缺課信息查詢某學(xué)生的缺課信息統(tǒng)計(jì)某段時(shí)間內(nèi)曠課學(xué)生姓名及曠課節(jié)數(shù)統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次錄入學(xué)生的缺課信息學(xué)生考勤管理系統(tǒng)錄入缺課學(xué)生的姓名、缺課日期、缺課節(jié)次、缺課課程名稱、缺課類型修改某學(xué)生的缺課日期、缺課節(jié)次、缺課課程名稱、缺課類型查詢某學(xué)生的缺課日期、缺課節(jié)次、缺課課程名稱、缺課類型按時(shí)間升序顯示曠課學(xué)生姓名及曠課節(jié)數(shù)按時(shí)間升序顯示有學(xué)生曠課的課程及曠課人次3. 詳細(xì)設(shè)計(jì)學(xué)生考勤管理系統(tǒng)中四個(gè)類的類層次圖為:圖表 31學(xué)生考勤管理系統(tǒng)中中四個(gè)類的類層次圖Time類Xinxi類qstu類qkechen類學(xué)生考勤管理系統(tǒng)中各功能模塊的實(shí)現(xiàn):圖表 3
6、2學(xué)生考勤管理系統(tǒng)中菜單函數(shù)的功能圖菜單 錄入學(xué)生的缺課信息查詢某學(xué)生的缺課信息修改某學(xué)生的缺課信息統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次統(tǒng)計(jì)某段時(shí)間內(nèi)曠課學(xué)生姓名及曠課節(jié)數(shù)1、 學(xué)生缺課信息錄用功能模塊: 學(xué)生缺課信息錄用功能錄入學(xué)生缺課節(jié)次錄入學(xué)生缺課日期錄入學(xué)生缺課課程名稱錄入缺課學(xué)生姓名錄入學(xué)生缺課類型圖4 學(xué)生缺課信息錄入的功能2、 修改某學(xué)生缺課信息功能的模塊圖修改某學(xué)生缺課信息功能修改某學(xué)生的缺課節(jié)次修改某學(xué)生的缺課日期修改某學(xué)生的缺課課程修改某學(xué)生的缺課類型圖5 學(xué)生考勤管理系統(tǒng)修改學(xué)生缺課信息功能圖3 查詢某學(xué)生缺課信息功能圖:查詢某學(xué)生缺課信息功能輸入要查詢的學(xué)生姓名顯
7、示要查詢的學(xué)生缺課信息繼續(xù)查詢或返回菜單圖6 學(xué)生考勤管理系統(tǒng)查詢學(xué)生缺課信息功能圖4、 統(tǒng)計(jì)某段時(shí)間內(nèi)曠課學(xué)生姓名及曠課節(jié)數(shù)功能模塊:統(tǒng)計(jì)某段時(shí)間內(nèi)曠課學(xué)生姓名及曠課節(jié)數(shù)功能統(tǒng)計(jì)某段時(shí)間內(nèi)曠課學(xué)生姓名及曠課節(jié)數(shù)顯示某段時(shí)間內(nèi)曠課學(xué)生姓名及曠課節(jié)數(shù)返回菜單圖7統(tǒng)計(jì)某段時(shí)間內(nèi)曠課學(xué)生姓名及曠課節(jié)數(shù)功能圖5、統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次功能模塊統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次功能顯示某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次返回菜單圖8 統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次功能圖Tine-year:int-month:int-da
8、y:int+time()+time()Xinxi-name20:char-kechen10:char-jieci3:char- queke10:char-tm3:char-tiaoshu:int=0+xinxi()+xinxi()+setname(n:char*):void +settime(y:int, m:int,d:int):void+setqklx(qk: char*): void+setjieci(jc: char*):void+setkechen(kc: char*):void+getname():char*+getqklx():char*+getjieci():char*+get
9、kechen():char* +gettime():int*qkechen-renci:int-kcshu:int=0+qkechen()+qkechen()+getrc(st1:xinxi,n:int ,j:int):int+qkn20:charqstu-jieshu:int -qst:int+qstu()+qstu()+print(st1:xinxi &):void+getjs( st1:xinxi,n:int, j:int):int+setjs(js:int=0):int +qstn20:char基類派生類派生類派生類 圖 9 學(xué)生考勤管理系統(tǒng)中四個(gè)類的UML圖4. 系統(tǒng)調(diào)試程序
10、編寫完成后,我進(jìn)行了程序調(diào)試。調(diào)試過程中,出現(xiàn)了以下問題:當(dāng)錄入學(xué)生缺課信息時(shí),出現(xiàn)了無法退出錄入函數(shù)的情況,主要原因是輸入函數(shù)中while循環(huán)語句沒有設(shè)置跳出循環(huán)的條件。除此之外,修改某學(xué)生缺課信息時(shí),如果沒有該學(xué)生的缺課信息,系統(tǒng)沒有提示要用戶沒有該學(xué)生信息,也沒有建議用戶重新輸入要修改的學(xué)生姓名。由此我發(fā)現(xiàn)了該系統(tǒng)修改學(xué)生缺課信息的不足。于是,我對(duì)修改函數(shù)進(jìn)行了修改和完善。在該函數(shù)中,我設(shè)置了if語句用來判斷系統(tǒng)中是否存有用戶要修改的學(xué)生缺課信息。如果沒有,則提示用戶沒有該學(xué)生的缺課信息,用戶可以選擇繼續(xù)輸入要修改的學(xué)生姓名或者退出修改環(huán)節(jié),可以在循環(huán)語句中改變循環(huán)進(jìn)行的條件從而終止循環(huán)
11、。至于在修改后顯示該學(xué)生的缺課信息,運(yùn)行時(shí)發(fā)現(xiàn)系統(tǒng)并沒有做到這一點(diǎn),對(duì)源代碼檢查之后發(fā)現(xiàn)是修改函數(shù)中顯示函數(shù)的調(diào)用出了點(diǎn)問題,顯示函數(shù)的實(shí)參有誤,應(yīng)該把要修改缺課信息的學(xué)生所在的信息類對(duì)象作為實(shí)參,然后用顯示函數(shù)的形參引用實(shí)參對(duì)象,通過對(duì)象調(diào)用信息類的成員函數(shù),從而實(shí)現(xiàn)顯示功能。至于該系統(tǒng)的查詢功能的實(shí)現(xiàn),在調(diào)試時(shí)發(fā)現(xiàn)還有欠缺,當(dāng)隨便輸入一個(gè)學(xué)生姓名時(shí),系統(tǒng)沒有顯示該學(xué)生的缺課信息,也沒有提示系統(tǒng)沒有找到該學(xué)生的有關(guān)信息,經(jīng)過在查詢函數(shù)while循環(huán)中加入一個(gè)if條件語句后,系統(tǒng)實(shí)現(xiàn)了提示用戶的功能,如果系統(tǒng)中沒有你要查詢的學(xué)生缺課信息,系統(tǒng)將會(huì)提示用戶,用戶可以繼續(xù)輸入要查詢的學(xué)生姓名也可以
12、通過按系統(tǒng)設(shè)置的退出鍵選擇退出查詢環(huán)節(jié)。至于兩個(gè)統(tǒng)計(jì)功能至今沒有完善,主要是特定時(shí)間學(xué)生缺課次數(shù)和課程的缺課人次的統(tǒng)計(jì)問題尚待解決,現(xiàn)如今只完成了一兩條學(xué)生缺課信息的統(tǒng)計(jì)。主要問題是特定時(shí)間這個(gè)前提條件對(duì)我造成了一定的障礙。對(duì)系統(tǒng)中存儲(chǔ)的信息進(jìn)行查找和統(tǒng)計(jì)運(yùn)用對(duì)象指針比較方便,但我沒有使用,也算有點(diǎn)遺憾。在調(diào)試過程中我出現(xiàn)的最嚴(yán)重的問題是函數(shù)形參引用對(duì)象數(shù)組,結(jié)果系統(tǒng)提示將近幾十個(gè)錯(cuò)誤,在我把函數(shù)形參改為對(duì)象數(shù)組后,錯(cuò)誤一下減少了很多。還有比較突出的問題是整個(gè)程序不知哪掉了個(gè) 號(hào)系統(tǒng)會(huì)提示有錯(cuò),但就不懂那專業(yè)術(shù)語啥意思。還有就是我以為派生類公有繼承的基類的保護(hù)成員在派生類內(nèi)為公有成員,可編譯時(shí)
13、才發(fā)現(xiàn)是不對(duì)的。通過認(rèn)真調(diào)試,我發(fā)現(xiàn)我有了收獲。5. 結(jié)果分析這次的課設(shè),我寫的程序也沒有什么獨(dú)到之處,我覺得唯一可以從我的程序可以看出的是數(shù)組用得比較多,反正是沒啥特色,不僅如此,還寫得功能不全,實(shí)在是慚愧?,F(xiàn)在在這里也只能說說它的不足之處了。類層次不夠清晰,縱觀整個(gè)程序可以發(fā)現(xiàn)四個(gè)類之間的關(guān)系不甚恰當(dāng),我有這個(gè)感覺,但我不知如何改進(jìn)。函數(shù)參數(shù)設(shè)定不夠完美,整個(gè)程序中對(duì)指針的運(yùn)用比較少。對(duì)于指針的巧妙運(yùn)用把握得不夠。還有就是容易missing;或者是,這都是些應(yīng)該改掉的毛病。除此以外,我對(duì)于怎樣用文件保存數(shù)據(jù)還沒深入了解,但我將數(shù)據(jù)保存到文件后又因文件打不開而無法訪問文件中的數(shù)據(jù),對(duì)于動(dòng)態(tài)鏈
14、表,我不是很清晰,也就是說無法做到熟稔運(yùn)用。在調(diào)試過程中我發(fā)現(xiàn)在主函數(shù)中把字符數(shù)組名name賦值給字符指針p即p=name;然后用cout<<p;語句可以輸出字符數(shù)組里全部的內(nèi)容,但利用函數(shù)返回指針值卻不能做到這一點(diǎn),在我思考一番后終于明白了,這和內(nèi)存中的地址值有關(guān)。具體為什么我是解釋不清了在調(diào)用系統(tǒng)的顯示功能時(shí),如果在getname()函數(shù)前加一個(gè)*號(hào)輸出的只是一個(gè)字符,不加反而能輸出所有字符。getname()函數(shù)的返回值為指針類型,但前面說過利用函數(shù)返回指針類型的值并不能輸出字符數(shù)組中所有的字符,為什么這里又可以呢?老天,這是為什么?我不知道這一知識(shí),這也算我的程序的不足之處
15、吧!對(duì)于兩個(gè)統(tǒng)計(jì)函數(shù)的功能不全,我感到無能為力,我為了這兩函數(shù)苦思了兩天,硬是沒湊合來。到后來,腦子里都亂了,運(yùn)行時(shí)屏幕上盡是些亂七八糟的東西。老師幫我看看,看有沒有什么簡(jiǎn)單的方法一下搞定它。結(jié)果不是很好,但過程夠了就行。這也是自欺欺人的看法,讓我再一次自責(zé)吧。6. 總結(jié)這次的程序設(shè)計(jì)相對(duì)于上學(xué)期還是有了進(jìn)步的。學(xué)生考勤管理系統(tǒng)要求至少要有四個(gè)類,在起初,對(duì)于定義哪四個(gè)類我是不清楚的,通過仔細(xì)的研讀問題描敘終于在腦海里確定了這四個(gè)類。既然是學(xué)生考勤管理系統(tǒng),那由學(xué)生缺課信息中的日期我想到了時(shí)間類,這是一個(gè)很簡(jiǎn)單的類。從系統(tǒng)的幾大功能我又想到了系統(tǒng)的基礎(chǔ)就是缺課學(xué)生的缺課信息,于是我又想到了一個(gè)
16、信息類,還有兩個(gè)類是根據(jù)兩個(gè)統(tǒng)計(jì)功能想到的,在現(xiàn)在看來似乎有些不妥。通過這次的課程設(shè)計(jì)我明白了學(xué)習(xí)程序設(shè)計(jì)語言必須要勤做實(shí)驗(yàn),通過實(shí)驗(yàn)總結(jié)經(jīng)驗(yàn)。平時(shí)遇到的一些小問題一定要重視,越是基礎(chǔ)的知識(shí)越要理解透徹。比如指針和數(shù)組方面的知識(shí),一旦沒有弄清楚,在設(shè)計(jì)程序時(shí)就會(huì)吃虧。這次的課設(shè)中,我遇到了很多的問題,有的通過思考或查看書本解決了,有的還留在腦子里,只有通過孜孜不倦的求索我們才會(huì)有進(jìn)步,不懂得思考就不能真正的掌握一門知識(shí)。這次的實(shí)驗(yàn)給以了我警示,它讓我明白我所掌握的知識(shí)還很欠缺,對(duì)于繼承和派生這一章的知識(shí),我以為自己勉強(qiáng)掌握了,這次實(shí)驗(yàn)后我發(fā)現(xiàn)我掌握得還不夠?;惖谋Wo(hù)成員公有繼承到派生類,類外
17、是否可以通過對(duì)象來訪問呢,原先我認(rèn)為是可以的,經(jīng)過這次程序設(shè)計(jì),我知道我錯(cuò)了。 總之,我覺得做學(xué)問不應(yīng)該馬虎,對(duì)于所學(xué)一定要有深入的理解,這也是我這次課設(shè)得到的啟示。7. 附錄:源程序清單 #include<iostream>#include<cstring>#include<windows.h>using namespace std; /時(shí)間類class timepublic: time(int y=0,int m=0,int d=0) year=y;month=m;day=d; time()protected: int year,month,day; /
18、信息類 class xinxi:public time public: xinxi() tiaoshu+; xinxi()tiaoshu-; void setname(char *n)strcpy(name,n); void settime(int y,int m,int d)year=y;month=m;day=d; void setqklx(char *qk)strcpy(queke,qk); void setjieci(char *jc)strcpy(jieci,jc); void setkechen(char *kc)strcpy(kechen,kc); char *getname()
19、char *n;n=name;return n; char *getqklx()char *qk=queke;return qk; char *getjieci()char *jc;jc=jieci;return jc; char *getkechen()char *gk;gk=kechen;return gk; int *gettime(); private: char name20;/姓名 char jieci3,kechen10,queke10; int tm3; static int tiaoshu; ; int xinxi:tiaoshu=0; int *xinxi:gettime(
20、) int *t; t=tm; tm0=year; tm1=month; tm2=day; return t; /缺課課程類 class qkechen:public xinxi public: qkechen()kcshu+; qkechen()kcshu-; int getrc(xinxi st1,int n,int j); char qkn20;/公有數(shù)據(jù)成員 private: int renci; static int kcshu;/靜態(tài)數(shù)據(jù)成員; int qkechen:kcshu=0; int qkechen:getrc(xinxi st1,int n,int j) renci=0
21、; renci+; for(int i=0;i<n;i+) if(*(st1i+1.gettime()+1)=*(st1j.gettime()+1)&&*(st1i+1.gettime()+2)=*(st1j.gettime()+2)if(strcmp(qkn,st1i.getkechen()=0) renci+; return renci; /缺課學(xué)生類 class qstu:public xinxi public: qstu()qst+; qstu()qst-; void print(xinxi &st1); int getjs(xinxi st1,int n
22、,int j); int setjs(int js=0) jieshu=js; char qstn20; private: int jieshu; static int qst; /靜態(tài)數(shù)據(jù)成員; int qstu:qst=0; /類的實(shí)現(xiàn) void qstu:print(xinxi &st1) cout<<"| 缺課日期 |"<<" 第幾節(jié)課 |"<<" 課程名稱 |"<<" 缺課類型|"<<endl; cout<<"|&q
23、uot;<<*st1.gettime()<<"|"<<*(st1.gettime()+1)<<*(st1.gettime()+2)<<"|"<<st1.getjieci()<<"|" <<st1.getkechen()<<"|"<<st1.getqklx()<<"|"<<endl; int qstu:getjs(xinxi st1,int n,int j
24、) int i=0,js=0; xinxi min; if(*(st1j.getjieci()+2)!='0') js=+2; else js+; for(i=0;i<n;i+) if(*(st1i+1.gettime()+1)=*(st1j.gettime()+1)&&*(st1i+1.gettime()+2)=*(st1j.gettime()+2) if(strcmp(st1i+1.getname(),qstn)=0) if(*(st1i.getjieci()+2)!='0') js=+2; else js+; jieshu=js; r
25、eturn jieshu; / 函數(shù)聲明int shuru(xinxi st1);void chaxun(xinxi st1,qstu qt);void xiugai(xinxi st1,int n);void tongji1(xinxi st1,qstu qt1);void tongji2(xinxi st1,qkechen qk1);void caidan();void xiansi(xinxi &st1);void setqstn(xinxi st1,qstu qt1,int n);void setqkn(xinxi st1,qkechen qk,int n);/全局變量int
26、g,k=1,b=1;int q=-1;char name20,kechen10,queke10,jieci3;int y,m,d; /主函數(shù)int main() xinxi tl15;/定義15條信息類對(duì)象 qstu qt10; qkechen qk6; int ch; while(1)cout<<"*歡迎進(jìn)入學(xué)生考勤管理系統(tǒng)!*"<<endl; caidan(); cout<<"-請(qǐng)選擇菜單項(xiàng):"<<endl; cin>>ch; switch(ch) case 1: g=shuru(tl);
27、break; case 2: xiugai(tl,g); break; case 3: chaxun(tl,qt); break; case 4: tongji1(tl,qt); break; case 5: tongji2(tl,qk); break; case 6: exit(0); return 0; /菜單函數(shù) void caidan() system("color A");cout<<"*"<<endl;cout<<"* 學(xué)生考勤管理系統(tǒng) *"<<endl;cout<&l
28、t;"*"<<endl; cout<<"1.-錄入學(xué)生的缺課記錄-*"<<endl; cout<<"2.-修改學(xué)生的缺課記錄-*"<<endl;cout<<"3.-查詢學(xué)生的缺課情況-*"<<endl;cout<<"4.-統(tǒng)計(jì)某段時(shí)間內(nèi)曠課學(xué)生姓名及曠課節(jié)數(shù)-*"<<endl; cout<<"5.-統(tǒng)計(jì)某段時(shí)間內(nèi)曠課的課程及曠課人次-*"<<en
29、dl;cout<<"6.-退出系統(tǒng)-*"<<endl; /輸入函數(shù) int shuru(xinxi st1) char a; cout<<"-輸入開始!-"<<endl; do q+; cout<<"請(qǐng)輸入學(xué)生姓名"<<endl; cin>>name; st1q.setname(name); cout<<"請(qǐng)輸入課程名稱"<<endl; cin>>kechen; st1q.setkechen(ke
30、chen); cout<<"請(qǐng)輸入缺課日期"<<endl; cin>>y>>m>>d; st1q.settime(y,m,d); cout<<"請(qǐng)輸入缺課類型"<<endl; cin>>queke; st1q.setqklx(queke); cout<<"請(qǐng)輸入缺課節(jié)次"<<endl; cin>>jieci; st1q.setjieci(jieci); cout<<"是否還要繼續(xù)輸入
31、:(y/n)"<<endl; cin>>a;while(a='y');return q+1; /修改函數(shù) void xiugai(xinxi st1,int n) int k=1,j=0,a10; int flgh; int h; while(k=1) cout<<"請(qǐng)輸入你要修改缺課記錄的學(xué)生姓名"<<endl; cin>>name; flgh=0; for(int i=0;i<n;i+) if(strcmp(name,st1i.getname()=0) do aj=i; cout
32、<<"1.修改日期2.修改節(jié)次3.修改課程名稱4.修改缺課類型"<<endl; cout<<"請(qǐng)輸入要選擇的數(shù)值(1,2,3,4)"<<endl; int b; cin>>b; if(b=1) cout<<"請(qǐng)輸入新日期"<<endl; cin>>y>>m>>d;st1i.settime(y,m,d); else if(b=2) cout<<"請(qǐng)輸入新節(jié)次"<<endl;
33、cin>>jieci; st1i.setjieci(jieci); else if(b=3) cout<<"請(qǐng)輸入新課程名稱"<<endl; cin>>kechen; st1i.setkechen(kechen); else if(b=4) cout<<"請(qǐng)輸入新缺課類型"<<endl; cin>>queke; st1i.setqklx(queke); flgh=1;j+;while(b<1|b>4);if(flgh=0)cout<<"沒
34、有你要找的學(xué)生姓名,請(qǐng)重試要退出請(qǐng)按0"<<endl; cin>>k; else cout<<"還要繼續(xù)嗎(10)退出請(qǐng)按0"<<endl; cin>>k; for(int i=0;i<j;i+) h=ai; xiansi(st1h); / 查詢函數(shù) void chaxun(xinxi st1,qstu qt) char n='y'int u10;while(n='y') int j=0;cout<<"輸入你要查詢的學(xué)生姓名:"<
35、<endl; cin>>name; int i=0;for(;i<g;i+) if(strcmp(name,st1i.getname()=0) uj=i; j+; if(j=0) cout<<"沒有你所要的學(xué)生名字!"/沒有找到 cout<<"是否退出退出請(qǐng)按nn" cin>>n; for(int a=0;a<j;a+) /只有一條信息if(j<2) i=ua; cout<<"| 缺課日期 |"<<" 第幾節(jié)課 |"&l
36、t;<" 課程名稱 |"<<" 缺課類型|"<<endl; cout<<"| "<<*st1i.gettime()<<"| "<<*(st1i.gettime()+1)<<"| "<<*(st1i.gettime()+2)<<"| "<<st1i.getjieci()<<"| " <<st1i.getkech
37、en()<<"| "<<st1i.getqklx()<<"| "<<endl; /兩條信息以上排序 else i=ua; if(*(st1i.gettime()+1)<*(st1i+1.gettime()+1) qti.print(st1i); else if(*(st1i.gettime()+1)=*(st1i+1.gettime()+1)&&*(st1i.gettime()+2)<*(st1i+1.gettime()+2) qti.print(st1i);else if(*(
38、st1i.gettime()+1)=*(st1i+1.gettime()+1)&&*(st1i.gettime()+2)=*(st1i+1.gettime()+2) if(strcmp(st1i.getjieci(),st1i+1.getjieci()=-1) qti.print(st1i); cout<<"是否繼續(xù)查詢(y/n)繼續(xù)請(qǐng)按y退出按n"<<endl; cin>>n; /統(tǒng)計(jì)某段時(shí)間內(nèi)曠課學(xué)生姓名及曠課節(jié)數(shù) void tongji1(xinxi st1,qstu qt1) int d1=0,js=0;xinxi
39、 min;if(g=0)cout<<"沒有你要統(tǒng)計(jì)的學(xué)生信息請(qǐng)返回菜單錄入學(xué)生缺課信息"<<endl; else if(g=1)cout<<"姓名:"<<st10.getname()<<endl; if(*(st10.getjieci()+2)!='0') js=+2; else js+;cout<<"節(jié)數(shù):"<<js<<endl; else/信息按時(shí)間排序int i=0;for(;i<(g-1);i+) if(*(s
40、t1i.gettime()+1)<*(st1i+1.gettime()+1) min=st1i;st1i=st1i+1;st1i+1=st1i; else if(*(st1i.gettime()+1)=*(st1i+1.gettime()+1)&&*(st1i.gettime()+2)<*(st1i+1.gettime()+2) min=st1i;st1i=st1i+1;st1i+1=st1i; else if(*(st1i.gettime()+1)=*(st1i+1.gettime()+1)&&*(st1i.gettime()+2)=*(st1i+
41、1.gettime()+2) d1+; for(int j=0;j<(g-d1);j+) cout<<*st1j.gettime()<<*(st1j.gettime()+1)<<*(st1j.gettime()+2)<<endl; for(i=0;i<k;i+) setqstn(st1,qt1,g); cout<<"姓名:"<<qt1i.qstn<<endl; cout<<"節(jié)數(shù):"<<qt1i.getjs(st1,g,i)<&l
42、t;endl; /統(tǒng)計(jì)某段時(shí)間內(nèi)曠課的課程及曠課人次 void tongji2(xinxi st1,qkechen qk1) int d1=0,rc=0; xinxi min; if(g=0)cout<<"沒有你要統(tǒng)計(jì)的學(xué)生信息請(qǐng)返回菜單錄入學(xué)生缺課信息"<<endl;else if(g=1)cout<<"課程名:"<<st10.getkechen()<<endl; rc+; cout<<"人數(shù):"<<rc<<endl; elseint i=0; for(;i<g;i+) if(*(st1i.gettime()+1)<*(st1i+1.gettime()+1) min=st1i;st1i=st1i+1;st1i+1=st1i; else if(*(st1i.gettime()+1)=*(st1i+1.getti
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025租房合同樣本范文
- 2025建筑工人勞務(wù)派遣合同模板
- 2025技術(shù)咨詢合同書「正式版」
- 護(hù)理業(yè)務(wù)查房流程
- 臨床護(hù)理常規(guī)
- 人教版小學(xué)一年級(jí)語文上冊(cè)第一單元模擬試題
- 2025年藥理知識(shí)試題
- 核聚變:人類終極能源的鑰匙646mb
- 眶底骨折的臨床護(hù)理
- 保安押運(yùn)工作者愛崗敬業(yè)心得體會(huì)模版
- DB37-T 5310-2025《城鎮(zhèn)排水管渠養(yǎng)護(hù)維修服務(wù)規(guī)范》
- 2025年上海市崇明區(qū)中考英語一模試卷
- 2025中考復(fù)習(xí)必背初中英語單詞1600打印版(上)
- 2025年廣州市番禺區(qū)九年級(jí)語文中考一模試卷附答案解析
- 留隊(duì)申請(qǐng)書消防
- 2024審計(jì)常用法規(guī)定性表述及適用
- 2025-2030年中國(guó)電力勘察設(shè)計(jì)行業(yè)現(xiàn)狀分析規(guī)劃研究報(bào)告新版
- 2025福建省晉江水務(wù)集團(tuán)限公司招聘17人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 亞文化認(rèn)同與身份建構(gòu)-洞察分析
- 深度學(xué)習(xí)完整版本
- AI培訓(xùn)課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論