




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
廣東東軟學(xué)院_____2023_學(xué)年度實(shí)踐學(xué)期學(xué)生實(shí)踐報(bào)告2023年8月24日—2023年9月14日工程名稱:學(xué)生考勤管理系統(tǒng)指導(dǎo)教師:呂永國(guó)課題:系別:計(jì)算機(jī)系專業(yè)班級(jí):13應(yīng)用一班學(xué)號(hào):1321010505學(xué)生姓名:梅允邦1.1課題背景程序?qū)嵺`是本科生重要教學(xué)環(huán)節(jié)之一。通過程序?qū)嵺`,強(qiáng)化學(xué)生的計(jì)算機(jī)應(yīng)用技能,使學(xué)生驗(yàn)證、穩(wěn)固和充實(shí)所學(xué)的理論知識(shí),加深對(duì)相關(guān)內(nèi)容的理解,拓寬知識(shí)面,培養(yǎng)學(xué)生的創(chuàng)新精神和實(shí)踐能力學(xué)生考勤管理程序是學(xué)校管理工作中一個(gè)比擬重要的任務(wù),過多的學(xué)生考勤管理程序工作給學(xué)校管理人員帶來了很大麻煩的。雖然原始的記錄方法在一定的程度上可以解決問題,可是現(xiàn)在計(jì)算機(jī)已經(jīng)走到了我們的生活,它的缺乏之處就顯而易見了。學(xué)生考勤管理程序,是一個(gè)對(duì)于學(xué)生考勤的管理系統(tǒng),不僅大大減少了考勤管理人員的大量的工作,而且還方便了班級(jí)和學(xué)校對(duì)學(xué)生出課率的查詢,只要通計(jì)算機(jī)登入本系統(tǒng)就能及時(shí)修改、更正學(xué)生的考勤信息,使信息真實(shí)、有效。這樣節(jié)省了大量人力物力,節(jié)省了珍貴的時(shí)間,大大提高了工作效率.用C語(yǔ)言進(jìn)行了該系統(tǒng)的編寫。操作上力爭(zhēng)實(shí)現(xiàn)人性化、合理化,滿足學(xué)校、老師、非計(jì)算機(jī)管理人員的使用和查看。1.2課題目的和要求目的:要求實(shí)現(xiàn)---“學(xué)生考勤管理程序〞記錄學(xué)生的缺課情況,它包括:缺課日期、第幾節(jié)課、課程名稱、學(xué)生姓名、缺課類型〔遲到、早退、請(qǐng)假及曠課〕。要求:1.錄入學(xué)生的缺課記錄;2.修改某個(gè)學(xué)生的缺課記錄;3.查詢某個(gè)學(xué)生的缺課情況;4.統(tǒng)計(jì)某段時(shí)間內(nèi),某門課曠課學(xué)生姓名及曠課次數(shù),按曠課次數(shù)由多到少排序;5.統(tǒng)計(jì)某段時(shí)間內(nèi),有學(xué)生曠課的課程及曠課人次,按曠課人次由多到少排序。1.3課題意義程序?qū)嵺`是本科生重要教學(xué)環(huán)節(jié)之一。通過程序?qū)嵺`,強(qiáng)化學(xué)生的計(jì)算機(jī)應(yīng)用技能,使學(xué)生驗(yàn)證、穩(wěn)固和充實(shí)所學(xué)的理論知識(shí),加深對(duì)相關(guān)內(nèi)容的理解,拓寬知識(shí)面,培養(yǎng)學(xué)生的創(chuàng)新精神和實(shí)踐能力學(xué)生考勤管理程序可以大大減緩學(xué)生考勤人員的工作量,方便了平時(shí)上課學(xué)生的出勤率的管理。2.系統(tǒng)分析開發(fā)一個(gè)好的軟件,進(jìn)行深入細(xì)致的可行性研究是極其必要的,而且還必須做大量的,全面的需求分析,需求分析是軟件定義時(shí)期的最后一個(gè)階段,它更是開發(fā)一個(gè)好的軟件的根底。它的根本任務(wù)是準(zhǔn)確地答復(fù)“需要此軟件的人都需要哪些功能?〞這個(gè)問題。需求分析的主要任務(wù)是確定系統(tǒng)必須完成哪些工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整的﹑準(zhǔn)確的﹑具體的﹑清晰的要求,確定系統(tǒng)必須具有的功能和性能,系統(tǒng)要求的運(yùn)行環(huán)境,以及預(yù)測(cè)系統(tǒng)開展的前景,并仔細(xì)分析系統(tǒng)中的數(shù)據(jù),以便完善良好的軟件環(huán)境。在需求分析階段系統(tǒng)分析員將仔細(xì)研究軟件所需要完成的具體功能。2.1功能需求本系統(tǒng)主要是學(xué)校和老師對(duì)學(xué)生出課情況的統(tǒng)計(jì)系統(tǒng)。該系統(tǒng)需要有建立,修改,查詢,載入,儲(chǔ)存,退出功能,利用查詢功能分開查看某一門課程或者某一個(gè)學(xué)生的缺課記錄,方便老師與學(xué)校統(tǒng)計(jì)。2.2數(shù)據(jù)需求本系統(tǒng)主要涉及的數(shù)據(jù)有學(xué)生缺課信息。學(xué)生缺課信息包括缺課時(shí)間,學(xué)生姓名,課程名稱,第幾節(jié),學(xué)生遲到次數(shù),早退次數(shù),請(qǐng)假次數(shù),曠課次數(shù)。2.3性能需求要求系統(tǒng)具有可靠性,速度要快。3.總體設(shè)計(jì)3.1功能模塊設(shè)計(jì)根據(jù)分析整個(gè)系統(tǒng)主要?jiǎng)澐譃?個(gè)功能模塊,分別執(zhí)行要求中的功能。數(shù)據(jù)管理中實(shí)現(xiàn)對(duì)學(xué)生的根本信息、課程的根本信息、學(xué)生缺課的查詢、添加、刪除和修改,以及具體缺課缺課內(nèi)容,是遲到、早退、請(qǐng)假、曠課。查詢管理通過根據(jù)學(xué)生姓名,課程姓名時(shí)間段兒等信息,查詢單個(gè)學(xué)生的缺課記錄,單科課的曠課記錄,單個(gè)學(xué)生的曠課記錄。功能模塊圖如圖1所示。、圖1功能模塊圖3.2系統(tǒng)設(shè)計(jì)方案此程序是過程性語(yǔ)言設(shè)計(jì)的。運(yùn)用多種條件語(yǔ)句,主體采用的是鏈表指針。系統(tǒng)的設(shè)計(jì)采用了數(shù)組語(yǔ)句、選擇語(yǔ)句和循環(huán)語(yǔ)句,在需要處理大量同類數(shù)據(jù)時(shí),這樣就使程序書寫更加簡(jiǎn)潔。程序使用了布爾函數(shù)。選擇語(yǔ)句多采用if多分支選擇結(jié)構(gòu)與switch語(yǔ)句。首先計(jì)算switch表達(dá)式,然后在caes子句中尋找值相等的常量表達(dá)式,并以此為入口符號(hào),由此開始順序執(zhí)行。循環(huán)語(yǔ)句采用了for語(yǔ)句等、do-while語(yǔ)句,for語(yǔ)句用于循環(huán)次數(shù)的循環(huán)結(jié)構(gòu),括號(hào)中的三個(gè)量分別用來表示循環(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è)程序是由假設(shè)干個(gè)函數(shù)組成的,保存和讀取函數(shù)是和其他函數(shù)互相調(diào)用的。4.詳細(xì)設(shè)計(jì)4.1建立學(xué)生缺課記錄子模塊要建立的學(xué)生人數(shù),學(xué)生根本信息〔包括缺課時(shí)間、學(xué)生姓名、課程名稱、第幾節(jié)、遲到次數(shù)、早退次數(shù)、請(qǐng)假次數(shù)、曠課次數(shù)〕可用creat〔〕函數(shù)如圖1.圖14.2修改學(xué)生缺課記錄子模塊根據(jù)要修改的學(xué)生姓名以及科目名稱找到相應(yīng)的信息,再選擇要修改的工程進(jìn)行單項(xiàng)修改如圖2圖24.3修改學(xué)生缺課記錄子模塊根據(jù)人名可以查出該學(xué)生的所有缺課記錄如圖3圖34.4查看單科曠課記錄子模塊根據(jù)學(xué)科名稱和時(shí)間范圍查出所有在該范圍內(nèi)曠課的學(xué)生以及次數(shù)如圖4圖44.5查看學(xué)生曠課記錄子模塊根據(jù)要查詢的學(xué)科名稱及時(shí)間段查出在改時(shí)間段內(nèi)該門課上曠課的人數(shù)如圖5圖54.6載入學(xué)生曠課記錄子模塊可以載入實(shí)現(xiàn)儲(chǔ)存在當(dāng)前文件夾中txt文件中所儲(chǔ)存的數(shù)據(jù)如圖6圖64.7儲(chǔ)存學(xué)生曠課記錄子??爝M(jìn)入系統(tǒng)界面,順序的完成各項(xiàng)操作,進(jìn)行數(shù)據(jù)的輸入,信息的保存調(diào)用相應(yīng)的函數(shù)翻開相應(yīng)的地址,查詢各項(xiàng)信息。如圖7圖75.調(diào)試與測(cè)試5.1調(diào)試〔1〕此程序是用VC程序編寫,調(diào)試過程中在菜單中選擇乍看學(xué)生曠課記錄,程序不執(zhí)行。因?yàn)闆]有參加選擇的case語(yǔ)句。后在switch后加一個(gè)case就可以自動(dòng)執(zhí)行了。5.2測(cè)試〔2〕由于程序的源代碼是在記事本文本中復(fù)制到VC中的,有些printf后比擬長(zhǎng)的語(yǔ)句會(huì)被放到下一行,使程序出現(xiàn)多處類似的錯(cuò)誤,經(jīng)過在VC中的修改,程序得以正常的運(yùn)行6.結(jié)論課程設(shè)計(jì)順利完成,題目所要求的功能也都一一實(shí)現(xiàn),可以對(duì)學(xué)生的缺課信息進(jìn)行添加,修改,刪除以及查詢的顯示。不過這個(gè)程序還有些不夠完善,例如不能往當(dāng)前文件夾中的txt文件中添加記錄。結(jié)束語(yǔ)整個(gè)系統(tǒng)的設(shè)計(jì)過程對(duì)于我來說算是個(gè)學(xué)習(xí)、探索的過程,通過實(shí)踐和比照別人開發(fā)程序的過程。在整個(gè)設(shè)計(jì)過程中,出現(xiàn)過很多的問題,很多繁瑣的東西都需要反復(fù)的修改,主要是前期工作不徹底,對(duì)系統(tǒng)的需求分析的要求認(rèn)識(shí)不夠清楚,使得在后邊的工作中不得不經(jīng)常反復(fù)去修改。使我體會(huì)到設(shè)置中每一步的重要性。所以在分析一個(gè)問題時(shí),我們需要站在一個(gè)有遠(yuǎn)見的高度。通過此次設(shè)計(jì),我不但對(duì)C語(yǔ)言編程有了更深刻的認(rèn)識(shí),積累了使用軟件工程的思想來開發(fā)軟件的經(jīng)驗(yàn),更重要的是學(xué)會(huì)了在對(duì)待問題時(shí)應(yīng)該考慮到哪些方面和怎么解決問題。雖然時(shí)間緊迫但我學(xué)會(huì)了很多,也感到自身知識(shí)的貧乏,希望在日后的努力中能做出更完善的系統(tǒng)。參考文獻(xiàn)譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)〔第三版〕.清華大學(xué)出版社林碧英.C語(yǔ)言程序設(shè)計(jì)教程.中國(guó)電力出版社,2006美赫伯特.希爾特,王子恢等譯.C語(yǔ)言大全.電子工業(yè)出版社.2006姜靈芝,余健.C語(yǔ)言課程設(shè)計(jì)案例精選.清華大學(xué)出版社,2023附錄1—用戶手冊(cè)主菜單圖1主菜單1.建立學(xué)生缺課記錄圖2建立學(xué)生缺課記錄2.修改學(xué)生缺課記錄圖3修改學(xué)生缺課記錄3.查詢學(xué)生缺課記錄圖4查詢學(xué)生缺課記錄4.查看單科曠課記錄圖5查看單科曠課記錄5.查看學(xué)生曠課記錄圖6查看學(xué)生曠課記錄6.儲(chǔ)存學(xué)生曠課記錄圖7儲(chǔ)存學(xué)生曠課記錄7.載入學(xué)生曠課記錄圖8載入學(xué)生曠課記錄8.退出程序圖9退出程序附錄2—源程序#include<stdio.h>#include<malloc.h>#include<string.h>#defineNULL0#defineLENsizeof(structstudent)intstudent_num;FILE*fp1;structxueke{charxueke_name[50]; intpeople_num;};structxuekea[10];structstudent{ charname[50]; longtime; intlesson_time; charlesson_name[50]; intchidao_num; intzaotui_num; intqingjia_num; intkuangke_num; structstudent*next;};voidchaxun(structstudent*head){ inti; charchaxun_name[50]; printf("請(qǐng)輸入要查詢的人名【假設(shè)沒有這個(gè)人那么不顯示】:");scanf("%s",chaxun_name); structstudent*p; if(head==NULL) printf("聯(lián)系人為空"); p=head; for(i=0;i<student_num;i++) {if(strcmp(chaxun_name,p->name)==0) printf("缺課時(shí)間:%ld學(xué)生姓名:%s課程名稱:%s第%d節(jié)遲到次數(shù):%d早退次數(shù):%d請(qǐng)假次數(shù):%d曠課次數(shù):%d\n",p->time,p->name,p->lesson_name,p->lesson_time,p->chidao_num,p->zaotui_num,p->qingjia_num,p->kuangke_num); p=p->next;}}structstudent*xiugai(structstudent*head){charxiugai_name[50]; charxiugai_xueke_name[50]; intk; printf("請(qǐng)輸入要修改的學(xué)生姓名與學(xué)科名稱【格式:學(xué)生姓名(空格)學(xué)科名稱】:"); scanf("%s%s",xiugai_name,xiugai_xueke_name); structstudent*p1,*p2; p2=(structstudent*)malloc(LEN); p1=head; if(head==NULL) {printf("沒有學(xué)生信息\n"); return(head);} while(strcmp(xiugai_name,p1->name)!=0&&(p1->next!=NULL)&&strcmp(xiugai_xueke_name,p1->lesson_name)!=0) p1=p1->next;if(strcmp(xiugai_name,p1->name)==0&&strcmp(xiugai_xueke_name,p1->lesson_name)==0) { printf("=======================================\n"); printf("1-修改缺課時(shí)間\n"); printf("2-修改學(xué)生姓名\n"); printf("3-修改課程名稱\n"); printf("4-修改第幾節(jié)缺課\n"); printf("5-修改遲到次數(shù)\n"); printf("6-修改早退次數(shù)\n"); printf("7-修改請(qǐng)假次數(shù)\n"); printf("8-修改曠課次數(shù)\n"); printf("=======================================\n"); scanf("%d",&k); switch(k) {case1: printf("請(qǐng)輸入新的缺課時(shí)間"); scanf("%ld",&p1->time); break; case2: printf("請(qǐng)輸入新的學(xué)生姓名"); scanf("%s",p1->name); break; case3: printf("請(qǐng)輸入新的課程名稱"); scanf("%s",p1->lesson_name); break; case4: printf("請(qǐng)輸入新的第幾節(jié)缺課"); scanf("%d",&p1->lesson_time); break; case5: printf("請(qǐng)輸入新的遲到次數(shù)"); scanf("%d",&p1->chidao_num); break; case6: printf("請(qǐng)輸入新的早退次數(shù)"); scanf("%d",&p1->zaotui_num); break; case7: printf("請(qǐng)輸入新的請(qǐng)假次數(shù)"); scanf("%d",&p1->qingjia_num); break; case8: printf("請(qǐng)輸入新的曠課次數(shù)"); scanf("%d",&p1->kuangke_num); break;} } return(head);}structstudent*creat(){ inti,b; structstudent*head,*p1,*p2; printf("請(qǐng)輸入要建立資料的學(xué)生人數(shù):"); scanf("%d",&b); head=p2=NULL; p1=(structstudent*)malloc(LEN); printf("【輸入格式:缺課時(shí)間(空格)學(xué)生姓名(空格)課程名稱(空格)第幾節(jié)(空格)遲到次數(shù)(空格)早退次數(shù)(空格)請(qǐng)假次數(shù)(空格)曠課次數(shù)】\n"); printf("請(qǐng)輸入第1名學(xué)生信息:"); scanf("%ld%s%s%d%d%d%d%d",&p1->time,p1->name,p1->lesson_name,&p1->lesson_time,&p1->chidao_num,&p1->zaotui_num,&p1->qingjia_num,&p1->kuangke_num); head=p1; p2=p1; student_num++; for(i=1;i<b;i++) { p1=(structstudent*)malloc(LEN); printf("請(qǐng)輸入第%d名學(xué)生信息:",i+1); scanf("%ld%s%s%d%d%d%d%d",&p1->time,p1->name,p1->lesson_name,&p1->lesson_time,&p1->chidao_num,&p1->zaotui_num,&p1->qingjia_num,&p1->kuangke_num); p2->next=p1; p2=p1; student_num++; }p2->next=NULL;return(head);}voidprint(structstudent*head){structstudent*p; p=head; if(p==NULL) printf("沒有學(xué)生信息\n"); while(p!=NULL) {printf("缺課時(shí)間:%ld學(xué)生姓名:%s課程名稱:%s第%d節(jié)遲到次數(shù):%d早退次數(shù):%d請(qǐng)假次數(shù):%d曠課次數(shù):%d\n",p->time,p->name,p->lesson_name,p->lesson_time,p->chidao_num,p->zaotui_num,p->qingjia_num,p->kuangke_num); p=p->next;} }structstudent*tongji_lesson(structstudent*head){ structstudent*p1,*p2,*p3; charlesson[50]; longlook_time1,look_time2; intxunhuan_num=0; p3=(structstudent*)malloc(LEN); if(head==NULL) {printf("沒有學(xué)生信息"); return(head);} p1=head; p2=p1->next; while(xunhuan_num<student_num) {while(p2!=NULL) { if(p2->kuangke_num>p1->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_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
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同欠款起訴費(fèi)用3篇
- 農(nóng)產(chǎn)品購(gòu)買合同的交貨條款3篇
- 工程設(shè)計(jì)施工合同范本的建設(shè)周期
- 土地使用權(quán)及房屋買賣合同3篇
- 買房授權(quán)委托書樣本格式3篇
- 勞動(dòng)合同解除公告3篇
- 學(xué)生社會(huì)實(shí)踐承諾函3篇
- 合伙關(guān)系終止合同3篇
- 2025基于社區(qū)的阿爾茨海默病三級(jí)綜合防治中國(guó)專家共識(shí)
- 煤炭加工廠的環(huán)境影響評(píng)價(jià)與環(huán)境保護(hù)措施考核試卷
- 餐飲部菜品制作流程優(yōu)化方案
- 2023-2024學(xué)年滬科版(2019)高中信息技術(shù)必修一第三單元項(xiàng)目六《解決溫標(biāo)轉(zhuǎn)換問題-認(rèn)識(shí)程序和程序設(shè)計(jì)語(yǔ)言》教學(xué)設(shè)計(jì)
- 《豬的傳染病》課件
- 非煤礦山安全生產(chǎn)作業(yè)指導(dǎo)書
- 《新媒體營(yíng)銷》課件-項(xiàng)目一 新媒體營(yíng)銷認(rèn)知
- 醫(yī)學(xué)倫理學(xué)的倫理原則
- 2025年春新人教PEP版英語(yǔ)三年級(jí)下冊(cè)課件 Revision Going to a school fair-第2課時(shí)
- 《健康進(jìn)課堂》2024年幼兒園家長(zhǎng)助教醫(yī)療版
- 《汽車涂裝》2024-2025學(xué)年第一學(xué)期工學(xué)一體化課程教學(xué)進(jìn)度計(jì)劃表
- 小學(xué)生涯回顧分享模板
- 機(jī)關(guān)財(cái)務(wù)課件
評(píng)論
0/150
提交評(píng)論