




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
廣東東軟學(xué)院_____2023_學(xué)年度實踐學(xué)期學(xué)生實踐報告2023年8月24日—2023年9月14日工程名稱:學(xué)生考勤管理系統(tǒng)指導(dǎo)教師:呂永國課題:系別:計算機系專業(yè)班級:13應(yīng)用一班學(xué)號:1321010505學(xué)生姓名:梅允邦1.1課題背景程序?qū)嵺`是本科生重要教學(xué)環(huán)節(jié)之一。通過程序?qū)嵺`,強化學(xué)生的計算機應(yīng)用技能,使學(xué)生驗證、穩(wěn)固和充實所學(xué)的理論知識,加深對相關(guān)內(nèi)容的理解,拓寬知識面,培養(yǎng)學(xué)生的創(chuàng)新精神和實踐能力學(xué)生考勤管理程序是學(xué)校管理工作中一個比擬重要的任務(wù),過多的學(xué)生考勤管理程序工作給學(xué)校管理人員帶來了很大麻煩的。雖然原始的記錄方法在一定的程度上可以解決問題,可是現(xiàn)在計算機已經(jīng)走到了我們的生活,它的缺乏之處就顯而易見了。學(xué)生考勤管理程序,是一個對于學(xué)生考勤的管理系統(tǒng),不僅大大減少了考勤管理人員的大量的工作,而且還方便了班級和學(xué)校對學(xué)生出課率的查詢,只要通計算機登入本系統(tǒng)就能及時修改、更正學(xué)生的考勤信息,使信息真實、有效。這樣節(jié)省了大量人力物力,節(jié)省了珍貴的時間,大大提高了工作效率.用C語言進行了該系統(tǒng)的編寫。操作上力爭實現(xiàn)人性化、合理化,滿足學(xué)校、老師、非計算機管理人員的使用和查看。1.2課題目的和要求目的:要求實現(xiàn)---“學(xué)生考勤管理程序〞記錄學(xué)生的缺課情況,它包括:缺課日期、第幾節(jié)課、課程名稱、學(xué)生姓名、缺課類型〔遲到、早退、請假及曠課〕。要求:1.錄入學(xué)生的缺課記錄;2.修改某個學(xué)生的缺課記錄;3.查詢某個學(xué)生的缺課情況;4.統(tǒng)計某段時間內(nèi),某門課曠課學(xué)生姓名及曠課次數(shù),按曠課次數(shù)由多到少排序;5.統(tǒng)計某段時間內(nèi),有學(xué)生曠課的課程及曠課人次,按曠課人次由多到少排序。1.3課題意義程序?qū)嵺`是本科生重要教學(xué)環(huán)節(jié)之一。通過程序?qū)嵺`,強化學(xué)生的計算機應(yīng)用技能,使學(xué)生驗證、穩(wěn)固和充實所學(xué)的理論知識,加深對相關(guān)內(nèi)容的理解,拓寬知識面,培養(yǎng)學(xué)生的創(chuàng)新精神和實踐能力學(xué)生考勤管理程序可以大大減緩學(xué)生考勤人員的工作量,方便了平時上課學(xué)生的出勤率的管理。2.系統(tǒng)分析開發(fā)一個好的軟件,進行深入細致的可行性研究是極其必要的,而且還必須做大量的,全面的需求分析,需求分析是軟件定義時期的最后一個階段,它更是開發(fā)一個好的軟件的根底。它的根本任務(wù)是準確地答復(fù)“需要此軟件的人都需要哪些功能?〞這個問題。需求分析的主要任務(wù)是確定系統(tǒng)必須完成哪些工作,也就是對目標系統(tǒng)提出完整的﹑準確的﹑具體的﹑清晰的要求,確定系統(tǒng)必須具有的功能和性能,系統(tǒng)要求的運行環(huán)境,以及預(yù)測系統(tǒng)開展的前景,并仔細分析系統(tǒng)中的數(shù)據(jù),以便完善良好的軟件環(huán)境。在需求分析階段系統(tǒng)分析員將仔細研究軟件所需要完成的具體功能。2.1功能需求本系統(tǒng)主要是學(xué)校和老師對學(xué)生出課情況的統(tǒng)計系統(tǒng)。該系統(tǒng)需要有建立,修改,查詢,載入,儲存,退出功能,利用查詢功能分開查看某一門課程或者某一個學(xué)生的缺課記錄,方便老師與學(xué)校統(tǒng)計。2.2數(shù)據(jù)需求本系統(tǒng)主要涉及的數(shù)據(jù)有學(xué)生缺課信息。學(xué)生缺課信息包括缺課時間,學(xué)生姓名,課程名稱,第幾節(jié),學(xué)生遲到次數(shù),早退次數(shù),請假次數(shù),曠課次數(shù)。2.3性能需求要求系統(tǒng)具有可靠性,速度要快。3.總體設(shè)計3.1功能模塊設(shè)計根據(jù)分析整個系統(tǒng)主要劃分為7個功能模塊,分別執(zhí)行要求中的功能。數(shù)據(jù)管理中實現(xiàn)對學(xué)生的根本信息、課程的根本信息、學(xué)生缺課的查詢、添加、刪除和修改,以及具體缺課缺課內(nèi)容,是遲到、早退、請假、曠課。查詢管理通過根據(jù)學(xué)生姓名,課程姓名時間段兒等信息,查詢單個學(xué)生的缺課記錄,單科課的曠課記錄,單個學(xué)生的曠課記錄。功能模塊圖如圖1所示。、圖1功能模塊圖3.2系統(tǒng)設(shè)計方案此程序是過程性語言設(shè)計的。運用多種條件語句,主體采用的是鏈表指針。系統(tǒng)的設(shè)計采用了數(shù)組語句、選擇語句和循環(huán)語句,在需要處理大量同類數(shù)據(jù)時,這樣就使程序書寫更加簡潔。程序使用了布爾函數(shù)。選擇語句多采用if多分支選擇結(jié)構(gòu)與switch語句。首先計算switch表達式,然后在caes子句中尋找值相等的常量表達式,并以此為入口符號,由此開始順序執(zhí)行。循環(huán)語句采用了for語句等、do-while語句,for語句用于循環(huán)次數(shù)的循環(huán)結(jié)構(gòu),括號中的三個量分別用來表示循環(huán)變量初值、循環(huán)終值和循環(huán)增量。do-while語句先循環(huán)后判斷,Break語句在switch語句中,保證多分支情況的正確執(zhí)行,在循環(huán)語句中,強制終止本層循環(huán)。保存和讀取函數(shù)是典型的函數(shù)功能,一個程序是由假設(shè)干個函數(shù)組成的,保存和讀取函數(shù)是和其他函數(shù)互相調(diào)用的。4.詳細設(shè)計4.1建立學(xué)生缺課記錄子模塊要建立的學(xué)生人數(shù),學(xué)生根本信息〔包括缺課時間、學(xué)生姓名、課程名稱、第幾節(jié)、遲到次數(shù)、早退次數(shù)、請假次數(shù)、曠課次數(shù)〕可用creat〔〕函數(shù)如圖1.圖14.2修改學(xué)生缺課記錄子模塊根據(jù)要修改的學(xué)生姓名以及科目名稱找到相應(yīng)的信息,再選擇要修改的工程進行單項修改如圖2圖24.3修改學(xué)生缺課記錄子模塊根據(jù)人名可以查出該學(xué)生的所有缺課記錄如圖3圖34.4查看單科曠課記錄子模塊根據(jù)學(xué)科名稱和時間范圍查出所有在該范圍內(nèi)曠課的學(xué)生以及次數(shù)如圖4圖44.5查看學(xué)生曠課記錄子模塊根據(jù)要查詢的學(xué)科名稱及時間段查出在改時間段內(nèi)該門課上曠課的人數(shù)如圖5圖54.6載入學(xué)生曠課記錄子模塊可以載入實現(xiàn)儲存在當前文件夾中txt文件中所儲存的數(shù)據(jù)如圖6圖64.7儲存學(xué)生曠課記錄子模快進入系統(tǒng)界面,順序的完成各項操作,進行數(shù)據(jù)的輸入,信息的保存調(diào)用相應(yīng)的函數(shù)翻開相應(yīng)的地址,查詢各項信息。如圖7圖75.調(diào)試與測試5.1調(diào)試〔1〕此程序是用VC程序編寫,調(diào)試過程中在菜單中選擇乍看學(xué)生曠課記錄,程序不執(zhí)行。因為沒有參加選擇的case語句。后在switch后加一個case就可以自動執(zhí)行了。5.2測試〔2〕由于程序的源代碼是在記事本文本中復(fù)制到VC中的,有些printf后比擬長的語句會被放到下一行,使程序出現(xiàn)多處類似的錯誤,經(jīng)過在VC中的修改,程序得以正常的運行6.結(jié)論課程設(shè)計順利完成,題目所要求的功能也都一一實現(xiàn),可以對學(xué)生的缺課信息進行添加,修改,刪除以及查詢的顯示。不過這個程序還有些不夠完善,例如不能往當前文件夾中的txt文件中添加記錄。結(jié)束語整個系統(tǒng)的設(shè)計過程對于我來說算是個學(xué)習(xí)、探索的過程,通過實踐和比照別人開發(fā)程序的過程。在整個設(shè)計過程中,出現(xiàn)過很多的問題,很多繁瑣的東西都需要反復(fù)的修改,主要是前期工作不徹底,對系統(tǒng)的需求分析的要求認識不夠清楚,使得在后邊的工作中不得不經(jīng)常反復(fù)去修改。使我體會到設(shè)置中每一步的重要性。所以在分析一個問題時,我們需要站在一個有遠見的高度。通過此次設(shè)計,我不但對C語言編程有了更深刻的認識,積累了使用軟件工程的思想來開發(fā)軟件的經(jīng)驗,更重要的是學(xué)會了在對待問題時應(yīng)該考慮到哪些方面和怎么解決問題。雖然時間緊迫但我學(xué)會了很多,也感到自身知識的貧乏,希望在日后的努力中能做出更完善的系統(tǒng)。參考文獻譚浩強.C語言程序設(shè)計〔第三版〕.清華大學(xué)出版社林碧英.C語言程序設(shè)計教程.中國電力出版社,2006美赫伯特.希爾特,王子恢等譯.C語言大全.電子工業(yè)出版社.2006姜靈芝,余健.C語言課程設(shè)計案例精選.清華大學(xué)出版社,2023附錄1—用戶手冊主菜單圖1主菜單1.建立學(xué)生缺課記錄圖2建立學(xué)生缺課記錄2.修改學(xué)生缺課記錄圖3修改學(xué)生缺課記錄3.查詢學(xué)生缺課記錄圖4查詢學(xué)生缺課記錄4.查看單科曠課記錄圖5查看單科曠課記錄5.查看學(xué)生曠課記錄圖6查看學(xué)生曠課記錄6.儲存學(xué)生曠課記錄圖7儲存學(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("請輸入要查詢的人名【假設(shè)沒有這個人那么不顯示】:");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("缺課時間:%ld學(xué)生姓名:%s課程名稱:%s第%d節(jié)遲到次數(shù):%d早退次數(shù):%d請假次數(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("請輸入要修改的學(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-修改缺課時間\n"); printf("2-修改學(xué)生姓名\n"); printf("3-修改課程名稱\n"); printf("4-修改第幾節(jié)缺課\n"); printf("5-修改遲到次數(shù)\n"); printf("6-修改早退次數(shù)\n"); printf("7-修改請假次數(shù)\n"); printf("8-修改曠課次數(shù)\n"); printf("=======================================\n"); scanf("%d",&k); switch(k) {case1: printf("請輸入新的缺課時間"); scanf("%ld",&p1->time); break; case2: printf("請輸入新的學(xué)生姓名"); scanf("%s",p1->name); break; case3: printf("請輸入新的課程名稱"); scanf("%s",p1->lesson_name); break; case4: printf("請輸入新的第幾節(jié)缺課"); scanf("%d",&p1->lesson_time); break; case5: printf("請輸入新的遲到次數(shù)"); scanf("%d",&p1->chidao_num); break; case6: printf("請輸入新的早退次數(shù)"); scanf("%d",&p1->zaotui_num); break; case7: printf("請輸入新的請假次數(shù)"); scanf("%d",&p1->qingjia_num); break; case8: printf("請輸入新的曠課次數(shù)"); scanf("%d",&p1->kuangke_num); break;} } return(head);}structstudent*creat(){ inti,b; structstudent*head,*p1,*p2; printf("請輸入要建立資料的學(xué)生人數(shù):"); scanf("%d",&b); head=p2=NULL; p1=(structstudent*)malloc(LEN); printf("【輸入格式:缺課時間(空格)學(xué)生姓名(空格)課程名稱(空格)第幾節(jié)(空格)遲到次數(shù)(空格)早退次數(shù)(空格)請假次數(shù)(空格)曠課次數(shù)】\n"); printf("請輸入第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("請輸入第%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("缺課時間:%ld學(xué)生姓名:%s課程名稱:%s第%d節(jié)遲到次數(shù):%d早退次數(shù):%d請假次數(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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寵物保健品行業(yè)發(fā)展動態(tài)與市場前景深度解析
- 2024年山東高考化學(xué)試卷知識點分布
- 人教版七年級音樂上冊(五線譜)第6單元《青少年管弦樂隊指南》教學(xué)設(shè)計
- Unit 2 Food and Health-Lesson 1 Lunchtime 教學(xué)設(shè)計 2024-2025學(xué)年北師大版英語七年級下冊
- 場館禮儀禮貌培訓(xùn)
- 八年級上冊美麗的顏色教案設(shè)計
- 詠鵝(教學(xué)設(shè)計)-2024-2025學(xué)年花城版音樂一年級上冊
- 2025年中級會計專業(yè)技術(shù)資格考試知識點大全
- 2025年石家莊科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫有答案
- 人教部編版三年級下冊13 花鐘教案設(shè)計
- 淺層氣浮設(shè)計
- 辯論賽PPT模板模板
- 井下管路安裝規(guī)范
- 2023年高考全國乙卷作文“一花獨放不是春百花齊放春滿園”寫作
- 勞動爭議調(diào)解仲裁法專題講座
- 鉗工中級知識培訓(xùn)課件
- GB/T 42706.2-2023電子元器件半導(dǎo)體器件長期貯存第2部分:退化機理
- 高三數(shù)學(xué)復(fù)習(xí)備考策略課件
- 幼兒園小班數(shù)學(xué)活動《認識里外》教學(xué)PPT課件【幼兒教案】
- 于丹--莊子心得
- 森林病蟲害防治自測練習(xí)試題與答案
評論
0/150
提交評論