版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-PAGE 0. z. - w -信息科學(xué)與技術(shù)學(xué)院程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告題目名稱(chēng): 學(xué)生考勤管理系統(tǒng) 學(xué)生:郭晨晨學(xué) 號(hào): 2013508093專(zhuān)業(yè)班級(jí):13級(jí)計(jì)科(3)班指導(dǎo)教師: 郭理 2013年6月6日目錄TOC o 1-3 h u HYPERLINK l _Toc390940576目錄 PAGEREF _Toc390940576 h 1HYPERLINK l _Toc3909405771. 課程設(shè)計(jì)題目與要求 PAGEREF _Toc390940577 h 2HYPERLINK l _Toc3909405781.1 課題目的和要求 PAGEREF _Toc390940578 h 2
2、HYPERLINK l _Toc3909405791.3 課題意義 PAGEREF _Toc390940579 h 2HYPERLINK l _Toc3909405802 總體設(shè)計(jì) PAGEREF _Toc390940580 h 3HYPERLINK l _Toc3909405812.1功能模塊設(shè)計(jì) PAGEREF _Toc390940581 h 3HYPERLINK l _Toc3909405822.2系統(tǒng)設(shè)計(jì)方案 PAGEREF _Toc390940582 h 3HYPERLINK l _Toc3909405833 詳細(xì)設(shè)計(jì) PAGEREF _Toc390940583 h 4HYPERLI
3、NK l _Toc3909405843.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc390940584 h 4HYPERLINK l _Toc3909405853.2 主模塊設(shè)計(jì) PAGEREF _Toc390940585 h 4HYPERLINK l _Toc390940586建立學(xué)生缺課記錄子模塊 PAGEREF _Toc390940586 h 4HYPERLINK l _Toc390940587修改學(xué)生缺課記錄子模塊 PAGEREF _Toc390940587 h 5HYPERLINK l _Toc390940588修改學(xué)生缺課記錄子模塊 PAGEREF _Toc390940588 h 6
4、HYPERLINK l _Toc390940589查看單科曠課記錄子模塊 PAGEREF _Toc390940589 h 7HYPERLINK l _Toc390940590查看學(xué)生曠課記錄子模塊 PAGEREF _Toc390940590 h 8HYPERLINK l _Toc390940591載入學(xué)生曠課記錄子模塊 PAGEREF _Toc390940591 h 9HYPERLINK l _Toc390940592儲(chǔ)存學(xué)生曠課記錄子???PAGEREF _Toc390940592 h 10HYPERLINK l _Toc3909405934. 運(yùn)行結(jié)果 PAGEREF _Toc390940
5、593 h 12HYPERLINK l _Toc3909405944.1運(yùn)行 PAGEREF _Toc390940594 h 12HYPERLINK l _Toc3909405955. 課程設(shè)計(jì)總結(jié) PAGEREF _Toc390940595 h 14HYPERLINK l _Toc390940596結(jié)束語(yǔ) PAGEREF _Toc390940596 h 14HYPERLINK l _Toc390940597參考文獻(xiàn) PAGEREF _Toc390940597 h 15HYPERLINK l _Toc390940598附錄:源代碼 PAGEREF _Toc390940598 h 151. 課程
6、設(shè)計(jì)題目與要求1.1 課題目的和要求設(shè)計(jì)目的:要現(xiàn)學(xué)生考勤管理程序”記錄學(xué)生的缺課情況,它包括:缺課日期、第幾節(jié)課、課程名稱(chēng)、學(xué)生、缺課類(lèi)型(遲到、早退、請(qǐng)假及曠課)。1.2 設(shè)計(jì)要求: 1.錄入學(xué)生的缺課記錄;2修改*個(gè)學(xué)生的缺課記錄;3查詢(xún)*個(gè)學(xué)生的缺課情況;4統(tǒng)計(jì)*段時(shí)間,*門(mén)課曠課學(xué)生及曠課次數(shù),按曠課次數(shù)由多到少排序; 5統(tǒng)計(jì)*段時(shí)間,有學(xué)生曠課的課程及曠課人次,按曠課人次由多到少排序;6.系統(tǒng)以菜單方式工作。1.3 課題意義程序?qū)嵺`是本科生重要教學(xué)環(huán)節(jié)之一。通過(guò)程序?qū)嵺`,強(qiáng)化學(xué)生的計(jì)算機(jī)應(yīng)用技能,使學(xué)生驗(yàn)證、鞏固和充實(shí)所學(xué)的理論知識(shí), 加深對(duì)相關(guān)容的理解,拓寬知識(shí)面,培養(yǎng)學(xué)生的創(chuàng)新
7、精神和實(shí)踐能力學(xué)生考勤管理程序可以大大減緩學(xué)生考勤人員的工作量, 方便了平時(shí)上課學(xué)生的出勤率的管理。2 總體設(shè)計(jì)2.1功能模塊設(shè)計(jì)根據(jù)分析整個(gè)系統(tǒng)主要?jiǎng)澐譃?個(gè)功能模塊,分別執(zhí)行要求中的功能。數(shù)據(jù)管理中可以對(duì)學(xué)生的基本信息、課程的基本信息、學(xué)生缺課的查詢(xún)、添加、刪除和修改。查詢(xún)管理通過(guò)根據(jù)學(xué)生,課程 時(shí)間段兒等信息,查詢(xún)單個(gè)學(xué)生的缺課記錄,單科課的曠課記錄,單個(gè)學(xué)生的曠課記錄。功能模塊圖如圖1所示:圖1功能模塊圖2.2系統(tǒng)設(shè)計(jì)方案這個(gè)程序是過(guò)程性語(yǔ)言設(shè)計(jì)的。運(yùn)用多種條件語(yǔ)句,主體采用的是鏈表指針。系統(tǒng)的設(shè)計(jì)采用了數(shù)組語(yǔ)句、選擇語(yǔ)句和循環(huán)語(yǔ)句,在需要處理大量同類(lèi)數(shù)據(jù)時(shí),這樣就使程序書(shū)寫(xiě)更加簡(jiǎn)潔。
8、程序使用了布爾函數(shù)。選擇語(yǔ)句多采用if多分支選擇結(jié)構(gòu)與switch語(yǔ)句。首先計(jì)算switch表達(dá)式,然后在caes子句中尋找值相等的常量表達(dá)式,并以此為入口符號(hào),由此開(kāi)始順序執(zhí)行。循環(huán)語(yǔ)句采用了for語(yǔ)句等、do-while語(yǔ)句,for語(yǔ)句用于已知循環(huán)次數(shù)的循環(huán)結(jié)構(gòu),括號(hào)中的三個(gè)量分別用來(lái)表示循環(huán)變量初值、循環(huán)終值和循環(huán)增量。do-while語(yǔ)句先循環(huán)后判斷, Break語(yǔ)句在switch語(yǔ)句中,保證多分支情況的正確執(zhí)行,在循環(huán)語(yǔ)句中,強(qiáng)制終止本層循環(huán)。保存和讀取函數(shù)是典型的函數(shù)功能,一個(gè)程序是由若干個(gè)函數(shù)組成的,保存和讀取函數(shù)是和其他函數(shù)互相調(diào)用的。3 詳細(xì)設(shè)計(jì)3.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)struc
9、t *uekechar *ueke_name50;int people_num;這是定義了一個(gè)*ueke結(jié)構(gòu)體,用來(lái)存放一個(gè)學(xué)科名及其相應(yīng)的曠課人數(shù);struct studentchar name50;long time;int lesson_time;char lesson_name50;int chidao_num;int zaotui_num;int qingjia_num;int kuangke_num;struct student *ne*t;這是定義了一個(gè)student的結(jié)構(gòu)體,用來(lái)存放一個(gè)學(xué)生的考勤記錄,其中有,字符數(shù)組name50,lesson_name50,分別存放學(xué)生名字,
10、缺課課程名字;int型變量lesson_time,chidao_num,zaotui_num,qingjia_num, kuangke_num,分別來(lái)存放,缺課節(jié)次,遲到次數(shù),早退次數(shù),請(qǐng)假次數(shù),曠課次數(shù) long型變量time,記錄時(shí)間。3.2 主模塊設(shè)計(jì)3.2.1建立學(xué)生缺課記錄子模塊要建立的學(xué)生人數(shù),學(xué)生基本信息(包括缺課時(shí)間、學(xué)生、課程名稱(chēng)、節(jié)次、遲到次數(shù)、早退次數(shù)、請(qǐng)假次數(shù)、曠課次數(shù))可用creat()函數(shù)如圖1. 圖13.2.2修改學(xué)生缺課記錄子模塊根據(jù)要修改的學(xué)生以及科目名稱(chēng)找到相應(yīng)的信息,再選擇要修改的項(xiàng)目進(jìn)行單項(xiàng)修改 如圖2圖23.2.3修改學(xué)生缺課記錄子模塊根據(jù)人名可以查出
11、該學(xué)生的所有缺課記錄 如圖3圖33.2.4查看單科曠課記錄子模塊根據(jù)學(xué)科名稱(chēng)和時(shí)間圍查出所有在該圍曠課的學(xué)生以及次數(shù) 如圖4圖43.2.5查看學(xué)生曠課記錄子模塊根據(jù)要查詢(xún)的學(xué)科名稱(chēng)及時(shí)間段查出在改時(shí)間段該門(mén)課上曠課的人數(shù) 如圖5圖53.2.6載入學(xué)生曠課記錄子模塊可以載入實(shí)現(xiàn)儲(chǔ)存在當(dāng)前文件夾中t*t文件中所儲(chǔ)存的數(shù)據(jù) 如圖6圖63.2.7儲(chǔ)存學(xué)生曠課記錄子??爝M(jìn)入系統(tǒng)界面,順序的完成各項(xiàng)操作,進(jìn)行數(shù)據(jù)的輸入,信息的保存調(diào)用相應(yīng)的函數(shù)打開(kāi)相應(yīng)的地址,查詢(xún)各項(xiàng)信息。如圖7圖74. 運(yùn)行結(jié)果4.1運(yùn)行開(kāi)始菜單圖1 開(kāi)始菜單主菜單圖2 主菜單建立學(xué)生缺課記錄圖2建立學(xué)生缺課記錄儲(chǔ)存學(xué)生曠課記錄圖3儲(chǔ)存
12、學(xué)生曠課記錄5. 課程設(shè)計(jì)總結(jié)課程設(shè)計(jì)順利完成,題目所要求的功能基本實(shí)現(xiàn),可以對(duì)學(xué)生的缺課信息進(jìn)行添加,修改,刪除以及查詢(xún)的顯示。不過(guò)這個(gè)程序還不夠完善,例如不能往當(dāng)前文件夾中的t*t文件中添加記錄。結(jié)束語(yǔ)整個(gè)系統(tǒng)的設(shè)計(jì)過(guò)程對(duì)于我來(lái)說(shuō)是個(gè)學(xué)習(xí)、探索的過(guò)程,通過(guò)借鑒別人,學(xué)習(xí)設(shè)計(jì)程序,在整個(gè)設(shè)計(jì)過(guò)程中,出現(xiàn)過(guò)很多的問(wèn)題,很多繁瑣的東西都需要反復(fù)的修改,主要是因?yàn)榍捌诘膶W(xué)習(xí)不認(rèn)真,對(duì)系統(tǒng)的需求分析的要求認(rèn)識(shí)不清楚,使得在后邊的工作中不得不經(jīng)常反復(fù)請(qǐng)教別人去修改。使我體會(huì)到設(shè)置中每一步的重要性。所以在分析一個(gè)問(wèn)題時(shí),我們需要站在一個(gè)有遠(yuǎn)見(jiàn)的高度。通過(guò)此次設(shè)計(jì),我對(duì)C+語(yǔ)言編程有了深刻的認(rèn)識(shí),積累了使
13、用軟件工程的思想來(lái)開(kāi)發(fā)軟件的經(jīng)驗(yàn),更重要的是學(xué)會(huì)了在對(duì)待問(wèn)題時(shí)應(yīng)該考慮到哪些方面和怎么解決問(wèn)題。雖然時(shí)間緊迫但我學(xué)會(huì)了不少,感到自身知識(shí)的貧乏,希望在日后積極學(xué)習(xí)并嘗試努力中能做出完善的系統(tǒng)。參考文獻(xiàn)譚浩強(qiáng).C+語(yǔ)言程序設(shè)計(jì).清華大學(xué)科技.Visual C+ 6.0信息系統(tǒng)開(kāi)發(fā).人民郵電附錄:源代碼 #include /cstdio是將stdio.h的容用C+頭文件的形式表示出來(lái)#include#include /malloc的全稱(chēng)是memory allocation,中文叫動(dòng)態(tài)存分配,當(dāng)無(wú)法知道存具體位置的時(shí)候,想要綁定真正的存空間,就需要用到動(dòng)態(tài)的分配存。#include /當(dāng)調(diào)用庫(kù)函數(shù),
14、客戶(hù)程序提供的是string類(lèi)型參數(shù),而庫(kù)函數(shù)部實(shí)現(xiàn)用的是c-串,因此需要將string對(duì)象,轉(zhuǎn)化為char*對(duì)象,而c_str()提供了這樣一種方法,它返回一個(gè)客戶(hù)程序可讀不可改的指向字符數(shù)組的指針。#include /I/O流控制頭文件#define NULL 0#define guding 10#define LEN sizeof(struct student)using namespace std;int student_num;FILE *fp1;struct *uekechar *ueke_name50;int people_num;struct studentchar name5
15、0;long time;int lesson_time;char lesson_name50;int chidao_num;int zaotui_num;int qingjia_num;int kuangke_num;struct student *ne*t;void cha*un(struct student *head)int i;char cha*un_name50;coutcha*un_name;struct student *p;if(head=NULL)cout聯(lián)系人為空;p=head;for(i=0;iname)=0)cout缺課時(shí)間:time 學(xué)生:name 課程名稱(chēng):less
16、on_name 節(jié)次:lesson_timeendl 遲到次數(shù):chidao_num 早退次數(shù):zaotui_num 請(qǐng)假次數(shù):qingjia_num 曠課次數(shù):kuangke_numne*t; struct student *iugai(struct student *head)char *iugai_name50;char *iugai_*ueke_name50;int k;cout*iugai_name*iugai_*ueke_name;struct student *p1,*p2; p2=(struct student *)malloc(LEN);p1=head;if(head=NUL
17、L)coutname)!=0|strcmp(*iugai_*ueke_name,p1-lesson_name)!=0)&(p1-ne*t!=NULL)p1=p1-ne*t; if(strcmp(*iugai_name,p1-name)=0&strcmp(*iugai_*ueke_name,p1-lesson_name)=0) cout= 修改信息 =n; cout 1-修改缺課時(shí)間 n;cout 2-修改學(xué)生 n;cout 3-修改課程名稱(chēng) n;cout 4-修改第幾節(jié)缺課 n;cout 5-修改遲到次數(shù) n;cout 6-修改早退次數(shù) n;cout 7-修改請(qǐng)假次數(shù) n;cout 8-修改曠
18、課次數(shù) nn;coutk;switch(k)case 1:coutp1-time;break;case 2:coutp1-name;break;case 3:coutp1-lesson_name;break;case 4:coutp1-lesson_time;break;case 5:coutp1-chidao_num;break;case 6:coutp1-zaotui_num;break;case 7:coutp1-qingjia_num;break;case 8:coutp1-kuangke_num;break; return head;struct student *creat()in
19、t i,b;struct student *head,*p1,*p2; coutb;head=p2=NULL;p1=(struct student *)malloc(LEN);cout【輸入格式:缺課時(shí)間(空格)學(xué)生(空格)課程名稱(chēng)(空格)第幾節(jié)(空格)遲到次數(shù)(空格)早退次數(shù)(空格)請(qǐng)假次數(shù)(空格)曠課次數(shù)】n;coutp1-timep1-namep1-lesson_namep1-lesson_timep1-chidao_nump1-zaotui_nump1-qingjia_nump1-kuangke_num;head=p1;p2=p1;student_num+=1;for(i=1;ib;i
20、+)p1=(struct student*)malloc(LEN);cout請(qǐng)輸入第i+1p1-timep1-namep1-lesson_namep1-lesson_timep1-chidao_nump1-zaotui_nump1-qingjia_nump1-kuangke_num;p2-ne*t=p1;p2=p1;student_num+=1; p2-ne*t=NULL; return head;void print(struct student *head)struct student *p;p=head;if(p=NULL)cout沒(méi)有學(xué)生信息n;while(p!=NULL) cout缺
21、課時(shí)間:time 學(xué)生:setw(10)name 課程名稱(chēng):lesson_name 節(jié)次:lesson_timeendl 遲到次數(shù):chidao_num 早退次數(shù):zaotui_num 請(qǐng)假次數(shù):qingjia_num 曠課次數(shù):kuangke_numne*t;struct student *tongji_lesson(struct student *head)struct student *p1,*p2,*p3;char lesson50;long look_time1,look_time2;int *unhuan_num=0;p3=(struct student *)malloc(LEN)
22、;if(head=NULL)coutne*t;while(*unhuan_numkuangke_nump1-kuangke_num)p3-chidao_num=p2-chidao_num;p3-kuangke_num=p2-kuangke_num;p3-qingjia_num=p2-qingjia_num;p3-zaotui_num=p2-zaotui_num;p3-lesson_time=p2-lesson_time;p3-time=p2-time;strcpy(p3-lesson_name,p2-lesson_name);strcpy(p3-name,p2-name);p2-chidao_
23、num=p1-chidao_num;p2-kuangke_num=p1-kuangke_num;p2-qingjia_num=p1-qingjia_num;p2-zaotui_num=p1-zaotui_num;p2-lesson_time=p1-lesson_time;p2-time=p1-time;strcpy(p2-lesson_name,p1-lesson_name);strcpy(p2-name,p1-name);p1-chidao_num=p3-chidao_num;p1-kuangke_num=p3-kuangke_num;p1-qingjia_num=p3-qingjia_nu
24、m;p1-zaotui_num=p3-zaotui_num; p1-lesson_time=p3-lesson_time;p1-time=p3-time;strcpy(p1-lesson_name,p3-lesson_name);strcpy(p1-name,p3-name);p1=p2;p2=p2-ne*t;p1=head;p2=p1-ne*t;*unhuan_num+;coutlesson;coutlook_time1look_time2;p1=head; while(p1!=NULL)if(strcmp(lesson,p1-lesson_name)=0&look_time1time&p1
25、-time=look_time2)cout學(xué)生:name 曠課次數(shù):kuangke_numne*t; return head;struct student *tongji_student(struct student *head) struct *ueke a10;int n,i,j,zhongjian;struct student *p1;char zhongjian_name50;long look_time1,look_time2;if(head=NULL)cout沒(méi)有學(xué)生信息n;return head; coutn;for(i=0;in;i+)cout請(qǐng)輸入第i+1ai.*ueke_n
26、ame;ai.people_num=0; coutlook_time1look_time2;p1=head;for(i=0;in;i+)while(p1!=NULL&look_time1time&p1-timelesson_name)ai.people_num+=p1-kuangke_num; p1=p1-ne*t;p1=head; for(j=0;jn-1;j+) for(i=0;in-1-j;i+)if(ai.people_num0) zhongjian=ai+1.people_num;ai+1.people_num=ai.people_num;ai.people_num=zhongjia
27、n;strcpy(zhongjian_name,ai+1.*ueke_name);strcpy(ai+1.*ueke_name,ai.*ueke_name);strcpy(ai.*ueke_name,zhongjian_name);for(i=0;in;i+)cout學(xué)科名稱(chēng):ai.*ueke_name 曠課次數(shù):ai.people_numendl;return head;return head;struct student *zairu()struct student *p1=NULL,*p2=NULL,*head=NULL;struct student student_ziliao100;
28、int i=0,n=0;if(fp1=fopen(*ueshengziliao.t*t,rb+)=NULL) printf(cannot open filen);return(head); while(!feof(fp1)if(fread(&student_ziliaoi,LEN,1,fp1)!=1)if(feof(fp1)fclose(fp1); break; printf(file read errorn);i+;n=i;student_num=n;p1=p2=(struct student *)malloc(LEN);head=p1;for(i=0;ichidao_num=student_ziliaoi.chidao_num;p1-kuangke_num=student_ziliaoi.kuangke_num;strcpy(p1-lesson_name,student_ziliaoi.lesson_name);p1-lesson_time=student_ziliaoi.lesson_time;strcpy(p1-name,student_ziliaoi.n
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 摩托車(chē)運(yùn)輸合同范本3篇
- 旅游中心租賃合同范本3篇
- 攝影作品發(fā)行合同3篇
- 安徽銷(xiāo)售行業(yè)兼職勞動(dòng)合同模板3篇
- 排污管道改造工程合同書(shū)版3篇
- 敬老院出租合同范本3篇
- 安居房施工合同風(fēng)險(xiǎn)管理3篇
- 方式購(gòu)銷(xiāo)合同范本版樣式3篇
- 搖號(hào)定標(biāo)招標(biāo)文件范本3篇
- 旅游導(dǎo)游勞動(dòng)合同電子版3篇
- 提高感染性休克集束化治療達(dá)標(biāo)率
- 2024建筑消防設(shè)施檢測(cè)報(bào)告書(shū)模板
- 目前會(huì)計(jì)行業(yè)現(xiàn)狀分析
- 跟單員工作總結(jié)匯報(bào)
- 醫(yī)美項(xiàng)目水光培訓(xùn)課件
- 網(wǎng)絡(luò)運(yùn)維與安全管理培訓(xùn)內(nèi)容
- 國(guó)開(kāi)電大可編程控制器應(yīng)用課程實(shí)驗(yàn)參考答案
- 廣東省深圳市寶安區(qū)和平中英文實(shí)驗(yàn)學(xué)校2023-2024學(xué)年九年級(jí)上學(xué)期期末物理測(cè)試卷
- 2023年人教版九年級(jí)數(shù)學(xué)全冊(cè)期末試題試題(含答案)
- 水站運(yùn)維服務(wù)投標(biāo)方案
- 廉政知識(shí)競(jìng)賽大題庫(kù)及答案(共500道)
評(píng)論
0/150
提交評(píng)論