




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
廣東東軟學院_____2023_學年度實踐學期學生實踐報告2023年8月24日—2023年9月14日工程名稱:學生考勤管理系統指導教師:呂永國課題:系別:計算機系專業班級:13應用一班學號:1321010505學生姓名:梅允邦1.1課題背景程序實踐是本科生重要教學環節之一。通過程序實踐,強化學生的計算機應用技能,使學生驗證、穩固和充實所學的理論知識,加深對相關內容的理解,拓寬知識面,培養學生的創新精神和實踐能力學生考勤管理程序是學校管理工作中一個比擬重要的任務,過多的學生考勤管理程序工作給學校管理人員帶來了很大麻煩的。雖然原始的記錄方法在一定的程度上可以解決問題,可是現在計算機已經走到了我們的生活,它的缺乏之處就顯而易見了。學生考勤管理程序,是一個對于學生考勤的管理系統,不僅大大減少了考勤管理人員的大量的工作,而且還方便了班級和學校對學生出課率的查詢,只要通計算機登入本系統就能及時修改、更正學生的考勤信息,使信息真實、有效。這樣節省了大量人力物力,節省了珍貴的時間,大大提高了工作效率.用C語言進行了該系統的編寫。操作上力爭實現人性化、合理化,滿足學校、老師、非計算機管理人員的使用和查看。1.2課題目的和要求目的:要求實現---“學生考勤管理程序〞記錄學生的缺課情況,它包括:缺課日期、第幾節課、課程名稱、學生姓名、缺課類型〔遲到、早退、請假及曠課〕。要求:1.錄入學生的缺課記錄;2.修改某個學生的缺課記錄;3.查詢某個學生的缺課情況;4.統計某段時間內,某門課曠課學生姓名及曠課次數,按曠課次數由多到少排序;5.統計某段時間內,有學生曠課的課程及曠課人次,按曠課人次由多到少排序。1.3課題意義程序實踐是本科生重要教學環節之一。通過程序實踐,強化學生的計算機應用技能,使學生驗證、穩固和充實所學的理論知識,加深對相關內容的理解,拓寬知識面,培養學生的創新精神和實踐能力學生考勤管理程序可以大大減緩學生考勤人員的工作量,方便了平時上課學生的出勤率的管理。2.系統分析開發一個好的軟件,進行深入細致的可行性研究是極其必要的,而且還必須做大量的,全面的需求分析,需求分析是軟件定義時期的最后一個階段,它更是開發一個好的軟件的根底。它的根本任務是準確地答復“需要此軟件的人都需要哪些功能?〞這個問題。需求分析的主要任務是確定系統必須完成哪些工作,也就是對目標系統提出完整的﹑準確的﹑具體的﹑清晰的要求,確定系統必須具有的功能和性能,系統要求的運行環境,以及預測系統開展的前景,并仔細分析系統中的數據,以便完善良好的軟件環境。在需求分析階段系統分析員將仔細研究軟件所需要完成的具體功能。2.1功能需求本系統主要是學校和老師對學生出課情況的統計系統。該系統需要有建立,修改,查詢,載入,儲存,退出功能,利用查詢功能分開查看某一門課程或者某一個學生的缺課記錄,方便老師與學校統計。2.2數據需求本系統主要涉及的數據有學生缺課信息。學生缺課信息包括缺課時間,學生姓名,課程名稱,第幾節,學生遲到次數,早退次數,請假次數,曠課次數。2.3性能需求要求系統具有可靠性,速度要快。3.總體設計3.1功能模塊設計根據分析整個系統主要劃分為7個功能模塊,分別執行要求中的功能。數據管理中實現對學生的根本信息、課程的根本信息、學生缺課的查詢、添加、刪除和修改,以及具體缺課缺課內容,是遲到、早退、請假、曠課。查詢管理通過根據學生姓名,課程姓名時間段兒等信息,查詢單個學生的缺課記錄,單科課的曠課記錄,單個學生的曠課記錄。功能模塊圖如圖1所示。、圖1功能模塊圖3.2系統設計方案此程序是過程性語言設計的。運用多種條件語句,主體采用的是鏈表指針。系統的設計采用了數組語句、選擇語句和循環語句,在需要處理大量同類數據時,這樣就使程序書寫更加簡潔。程序使用了布爾函數。選擇語句多采用if多分支選擇結構與switch語句。首先計算switch表達式,然后在caes子句中尋找值相等的常量表達式,并以此為入口符號,由此開始順序執行。循環語句采用了for語句等、do-while語句,for語句用于循環次數的循環結構,括號中的三個量分別用來表示循環變量初值、循環終值和循環增量。do-while語句先循環后判斷,Break語句在switch語句中,保證多分支情況的正確執行,在循環語句中,強制終止本層循環。保存和讀取函數是典型的函數功能,一個程序是由假設干個函數組成的,保存和讀取函數是和其他函數互相調用的。4.詳細設計4.1建立學生缺課記錄子模塊要建立的學生人數,學生根本信息〔包括缺課時間、學生姓名、課程名稱、第幾節、遲到次數、早退次數、請假次數、曠課次數〕可用creat〔〕函數如圖1.圖14.2修改學生缺課記錄子模塊根據要修改的學生姓名以及科目名稱找到相應的信息,再選擇要修改的工程進行單項修改如圖2圖24.3修改學生缺課記錄子模塊根據人名可以查出該學生的所有缺課記錄如圖3圖34.4查看單科曠課記錄子模塊根據學科名稱和時間范圍查出所有在該范圍內曠課的學生以及次數如圖4圖44.5查看學生曠課記錄子模塊根據要查詢的學科名稱及時間段查出在改時間段內該門課上曠課的人數如圖5圖54.6載入學生曠課記錄子模塊可以載入實現儲存在當前文件夾中txt文件中所儲存的數據如圖6圖64.7儲存學生曠課記錄子??爝M入系統界面,順序的完成各項操作,進行數據的輸入,信息的保存調用相應的函數翻開相應的地址,查詢各項信息。如圖7圖75.調試與測試5.1調試〔1〕此程序是用VC程序編寫,調試過程中在菜單中選擇乍看學生曠課記錄,程序不執行。因為沒有參加選擇的case語句。后在switch后加一個case就可以自動執行了。5.2測試〔2〕由于程序的源代碼是在記事本文本中復制到VC中的,有些printf后比擬長的語句會被放到下一行,使程序出現多處類似的錯誤,經過在VC中的修改,程序得以正常的運行6.結論課程設計順利完成,題目所要求的功能也都一一實現,可以對學生的缺課信息進行添加,修改,刪除以及查詢的顯示。不過這個程序還有些不夠完善,例如不能往當前文件夾中的txt文件中添加記錄。結束語整個系統的設計過程對于我來說算是個學習、探索的過程,通過實踐和比照別人開發程序的過程。在整個設計過程中,出現過很多的問題,很多繁瑣的東西都需要反復的修改,主要是前期工作不徹底,對系統的需求分析的要求認識不夠清楚,使得在后邊的工作中不得不經常反復去修改。使我體會到設置中每一步的重要性。所以在分析一個問題時,我們需要站在一個有遠見的高度。通過此次設計,我不但對C語言編程有了更深刻的認識,積累了使用軟件工程的思想來開發軟件的經驗,更重要的是學會了在對待問題時應該考慮到哪些方面和怎么解決問題。雖然時間緊迫但我學會了很多,也感到自身知識的貧乏,希望在日后的努力中能做出更完善的系統。參考文獻譚浩強.C語言程序設計〔第三版〕.清華大學出版社林碧英.C語言程序設計教程.中國電力出版社,2006美赫伯特.希爾特,王子恢等譯.C語言大全.電子工業出版社.2006姜靈芝,余健.C語言課程設計案例精選.清華大學出版社,2023附錄1—用戶手冊主菜單圖1主菜單1.建立學生缺課記錄圖2建立學生缺課記錄2.修改學生缺課記錄圖3修改學生缺課記錄3.查詢學生缺課記錄圖4查詢學生缺課記錄4.查看單科曠課記錄圖5查看單科曠課記錄5.查看學生曠課記錄圖6查看學生曠課記錄6.儲存學生曠課記錄圖7儲存學生曠課記錄7.載入學生曠課記錄圖8載入學生曠課記錄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("請輸入要查詢的人名【假設沒有這個人那么不顯示】:");scanf("%s",chaxun_name); structstudent*p; if(head==NULL) printf("聯系人為空"); p=head; for(i=0;i<student_num;i++) {if(strcmp(chaxun_name,p->name)==0) printf("缺課時間:%ld學生姓名:%s課程名稱:%s第%d節遲到次數:%d早退次數:%d請假次數:%d曠課次數:%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("請輸入要修改的學生姓名與學科名稱【格式:學生姓名(空格)學科名稱】:"); scanf("%s%s",xiugai_name,xiugai_xueke_name); structstudent*p1,*p2; p2=(structstudent*)malloc(LEN); p1=head; if(head==NULL) {printf("沒有學生信息\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-修改學生姓名\n"); printf("3-修改課程名稱\n"); printf("4-修改第幾節缺課\n"); printf("5-修改遲到次數\n"); printf("6-修改早退次數\n"); printf("7-修改請假次數\n"); printf("8-修改曠課次數\n"); printf("=======================================\n"); scanf("%d",&k); switch(k) {case1: printf("請輸入新的缺課時間"); scanf("%ld",&p1->time); break; case2: printf("請輸入新的學生姓名"); scanf("%s",p1->name); break; case3: printf("請輸入新的課程名稱"); scanf("%s",p1->lesson_name); break; case4: printf("請輸入新的第幾節缺課"); scanf("%d",&p1->lesson_time); break; case5: printf("請輸入新的遲到次數"); scanf("%d",&p1->chidao_num); break; case6: printf("請輸入新的早退次數"); scanf("%d",&p1->zaotui_num); break; case7: printf("請輸入新的請假次數"); scanf("%d",&p1->qingjia_num); break; case8: printf("請輸入新的曠課次數"); scanf("%d",&p1->kuangke_num); break;} } return(head);}structstudent*creat(){ inti,b; structstudent*head,*p1,*p2; printf("請輸入要建立資料的學生人數:"); scanf("%d",&b); head=p2=NULL; p1=(structstudent*)malloc(LEN); printf("【輸入格式:缺課時間(空格)學生姓名(空格)課程名稱(空格)第幾節(空格)遲到次數(空格)早退次數(空格)請假次數(空格)曠課次數】\n"); printf("請輸入第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); head=p1; p2=p1; student_num++; for(i=1;i<b;i++) { p1=(structstudent*)malloc(LEN); printf("請輸入第%d名學生信息:",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("沒有學生信息\n"); while(p!=NULL) {printf("缺課時間:%ld學生姓名:%s課程名稱:%s第%d節遲到次數:%d早退次數:%d請假次數:%d曠課次數:%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("沒有學生信息"); 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西百色市本年度(2025)小學一年級數學統編版課后作業((上下)學期)試卷及答案
- 2025-2030年中國整體浴室市場運營態勢分析及投資前景展望研究報告
- 學習改革開放史研討交流與心得體會
- 建筑裝飾理論練習題與參考答案
- 職業技術學校會計事務專業人才培養方案(三二分段班2024年)
- 繼電保護工專業理論習題庫(附答案)
- 浙江省杭州市杭州市第四中學2025屆高三下學期第一次聯考英語試卷含答案
- 2025屆遼寧省部分重點中學協作體高三高考模擬考試數學試題(原卷版+解析版)
- 鹽的水分吸附與干燥性能研究考核試卷
- 電子出版物客戶服務與滿意度提升考核試卷
- 食品安全自查、從業人員健康管理、進貨查驗記錄、食品安全事故處置等保證食品安全規章制度
- 中小學教師家校社協同育人能力的區域調研與思考
- 第三單元 認識立體圖形(單元測試)-2024-2025學年一年級上冊數學人教版
- 牧場物語-礦石鎮的伙伴們-完全攻略
- 大氣簡約南昌大學校園文化介紹宣傳
- 員工工資表范本
- 部編人教版六年級下冊語文全冊課內閱讀訓練(含答案)
- 小學二年級下口算題1000道(50道每天)
- 香港私家車轉讓協議書模板
- 食品經營安全管理制度目錄
- 浙江省石材面板保溫裝飾板外墻外保溫系統應用技術規程
評論
0/150
提交評論