學(xué)生考勤管理系統(tǒng)報(bào)告_第1頁(yè)
學(xué)生考勤管理系統(tǒng)報(bào)告_第2頁(yè)
學(xué)生考勤管理系統(tǒng)報(bào)告_第3頁(yè)
學(xué)生考勤管理系統(tǒng)報(bào)告_第4頁(yè)
學(xué)生考勤管理系統(tǒng)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、. . . . 1 / 36 學(xué) 院 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)題目:課程設(shè)計(jì)題目:考勤管理程序的設(shè)計(jì)與實(shí)現(xiàn)考勤管理程序的設(shè)計(jì)與實(shí)現(xiàn) 系別系別數(shù)學(xué)與計(jì)算機(jī)科學(xué)系數(shù)學(xué)與計(jì)算機(jī)科學(xué)系班級(jí)信管班級(jí)信管 1 1學(xué)生學(xué)號(hào)學(xué)生學(xué)號(hào)指導(dǎo)教師職稱指導(dǎo)教師職稱講師講師課程設(shè)計(jì)進(jìn)行地點(diǎn):課程設(shè)計(jì)進(jìn)行地點(diǎn):任務(wù)下達(dá)時(shí)間:任務(wù)下達(dá)時(shí)間: 2020 1111 年年 1212 月月 1919 日日 起止日期:起止日期: 20112011 年年 1212 月月 1919 日起日起至至 20112011 年年 1212 月月 2323 日止日止. . . . 2 / 36一、課程設(shè)計(jì)的目的一、課程設(shè)計(jì)的目的課程設(shè)計(jì)比教學(xué)

2、實(shí)驗(yàn)復(fù)雜一些,涉與的深度廣些并更加接近實(shí)用。目的一方面是通過(guò)課程設(shè)計(jì)的綜合訓(xùn)練,幫助學(xué)生系統(tǒng)掌握該門課程的主要容,更好地完成教學(xué)任務(wù);另一方面,通過(guò)課程設(shè)計(jì)使學(xué)生進(jìn)一步加深對(duì)課程容的理解,利用程序設(shè)計(jì)的基本思想進(jìn)行程序的開發(fā),進(jìn)一步掌握編程方法和技巧,培養(yǎng)學(xué)生的實(shí)際分析問(wèn)題、編程和動(dòng)手能力,提高學(xué)生用程序的思想來(lái)解決實(shí)際問(wèn)題的能力。二、課程設(shè)計(jì)要求二、課程設(shè)計(jì)要求1、遵守課程設(shè)計(jì)時(shí)間安排,按時(shí)上機(jī)。2、認(rèn)真查找相關(guān)的資料,理解相關(guān)的知識(shí)容。3、認(rèn)真調(diào)試程序,組員之間應(yīng)加強(qiáng)團(tuán)隊(duì)合作,取長(zhǎng)補(bǔ)短,共同分析問(wèn)題解決問(wèn)題。4、根據(jù)設(shè)計(jì)題目規(guī)定的具體要求進(jìn)行具體規(guī)操作。5、認(rèn)真撰寫課程設(shè)計(jì)報(bào)告,避免相互抄

3、襲。三、對(duì)課程設(shè)計(jì)說(shuō)明書撰寫容、格式、字?jǐn)?shù)的要求三、對(duì)課程設(shè)計(jì)說(shuō)明書撰寫容、格式、字?jǐn)?shù)的要求1課程設(shè)計(jì)報(bào)告是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,主要容包括:設(shè)計(jì)題目、設(shè)計(jì)目的、實(shí)驗(yàn)器材、設(shè)計(jì)原理與容、設(shè)計(jì)具體步驟、遇到的問(wèn)題與解決方法、設(shè)計(jì)總結(jié)、參考文獻(xiàn)等。一般不應(yīng)少于 3000 字。2在適當(dāng)位置配合相應(yīng)的實(shí)驗(yàn)原理圖、實(shí)驗(yàn)數(shù)據(jù)表、問(wèn)題分析流程圖等圖表進(jìn)行說(shuō)明。應(yīng)做到文理通順,容正確完整,書寫工整,裝訂整齊。3設(shè)計(jì)總結(jié)部分主要寫本人完成工作簡(jiǎn)介以與自己的設(shè)計(jì)體會(huì),包括通過(guò)課程設(shè)計(jì)學(xué)到了什么,哪里遇到了困難,解決的辦法以與今后的目標(biāo)。4課程設(shè)計(jì)報(bào)告打印時(shí)采用 A4 紙,頁(yè)邊距均為 20mm,正文采用宋體

4、小四號(hào)字,行間距 20 磅。文標(biāo)題采用黑體小三號(hào)字,一級(jí)節(jié)標(biāo)題采用黑體四號(hào)字,二級(jí)節(jié)標(biāo)題采用黑體小四號(hào)字,表題與圖題采用宋體五號(hào)字。5課程設(shè)計(jì)報(bào)告裝訂順序?yàn)椋悍饷妗⑷蝿?wù)書、成績(jī)?cè)u(píng)定表、目錄、正文、參考文獻(xiàn)。. . . . 3 / 36四、設(shè)計(jì)題目四、設(shè)計(jì)題目五、成績(jī)?cè)u(píng)定五、成績(jī)?cè)u(píng)定評(píng)定成績(jī)根據(jù)系統(tǒng)功能、界面效果,系統(tǒng)操作的方便性、靈活性等方面進(jìn)行,主要從三個(gè)方面進(jìn)行考慮:1、對(duì)問(wèn)題的理解程度;2、成果的好壞;3、設(shè)計(jì)報(bào)告。評(píng)定結(jié)果:不與格、與格、中、良好、優(yōu)秀。六、時(shí)間進(jìn)度安排六、時(shí)間進(jìn)度安排順序階段日期計(jì) 劃 完 成 容備注12011.11.182011.11.19確定設(shè)計(jì)課題22011.1

5、1.202011.12.07資料查詢32011.12.082011.12.09概要設(shè)計(jì)42011.12.102011.12.12數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)52011.12.132011.12.19功能模塊開發(fā)62011.12.202011.12.22功能模塊調(diào)試72011.12.132011.12.24系統(tǒng)運(yùn)行和修改七、主要參考文獻(xiàn)七、主要參考文獻(xiàn). . . . 1 / 36學(xué)學(xué) 院院 數(shù)數(shù) 學(xué)學(xué) 與與 計(jì)計(jì) 算算 機(jī)機(jī) 科科 學(xué)學(xué) 系系考勤管理程序設(shè)計(jì)與實(shí)現(xiàn)考勤管理程序設(shè)計(jì)與實(shí)現(xiàn)課程設(shè)計(jì)成績(jī)?cè)u(píng)定表課程設(shè)計(jì)成績(jī)?cè)u(píng)定表教研室:教研室: 班級(jí):班級(jí): 學(xué)生:學(xué)生:指指 導(dǎo)導(dǎo) 教教 師師 評(píng)評(píng) 審審 意意 見見評(píng)

6、價(jià)容具 體 要 求權(quán)重評(píng) 分加權(quán)分調(diào) 研論 證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方案和日程安排。0.15 54 43 32 2工作能力態(tài) 度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計(jì)工作, 0.25 54 43 32 2工 作 量按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿,難度適宜。0.25 54 43 32 2說(shuō)明書的質(zhì) 量說(shuō)明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書寫工整規(guī)。0.55 54 43 32 2指導(dǎo)教師評(píng)審成績(jī)指導(dǎo)教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 1212)分分加權(quán)分合計(jì)加權(quán)分合計(jì)指指 導(dǎo)導(dǎo) 教教

7、師師 簽簽 名:名: 年年 月月 日日評(píng)評(píng) 閱閱 教教 師師 評(píng)評(píng) 審審 意意 見見評(píng)價(jià)容具 體 要 求權(quán)重評(píng) 分加權(quán)分查 閱文 獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能力0.25 54 43 32 2工 作 量工作量飽滿,難度適中。0.55 54 43 32 2說(shuō)明書的質(zhì) 量說(shuō)明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書寫工整規(guī)。0.35 54 43 32 2評(píng)閱教師評(píng)審成績(jī)?cè)u(píng)閱教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以(加權(quán)分合計(jì)乘以 8 8)分分加權(quán)分合計(jì)加權(quán)分合計(jì)評(píng)評(píng) 閱閱 教教 師師 簽簽 名:名: 年年 月月 日日課課 程程 設(shè)設(shè) 計(jì)計(jì) 總總

8、評(píng)評(píng) 成成 績(jī)績(jī)分分. . . . 2 / 36目目 錄錄1.1. 緒論緒論 1 11.1 課題背景 11.2 課題目的和要求 11.3 課題意義 12.2. 系統(tǒng)分析系統(tǒng)分析 2 22.1 功能需求 22.2 數(shù)據(jù)需求 22.3 性能需求 23.3. 總體設(shè)計(jì)總體設(shè)計(jì) 3 33.13.1 功能模塊設(shè)計(jì)功能模塊設(shè)計(jì) 3 33.2 系統(tǒng)設(shè)計(jì)方案 34.4. 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 4 44.14.1 建立學(xué)生缺課記錄子模塊建立學(xué)生缺課記錄子模塊 4 44.2 修改學(xué)生缺課記錄子模塊 54.3 修改學(xué)生缺課記錄子模塊 64.4 查看單科曠課記錄子模塊 64.5 查看學(xué)生曠課記錄子模塊 74.6 載入學(xué)生

9、曠課記錄子模塊 85.5.調(diào)試與測(cè)試調(diào)試與測(cè)試 10105.1 調(diào)試 105.2 測(cè)試 10結(jié)束語(yǔ)結(jié)束語(yǔ) 1111致致 1212參考文獻(xiàn)參考文獻(xiàn) 1313附錄附錄 1 1用戶手冊(cè)用戶手冊(cè)附錄附錄 2 2源程序源程序. . . . 3 / 36摘 要20 世紀(jì)末,隨著計(jì)算機(jī)科學(xué)的發(fā)展,數(shù)據(jù)庫(kù)技術(shù)在 Internet 中的應(yīng)用越來(lái)越廣泛,為廣大網(wǎng)絡(luò)用戶提供了更加周到和人性化的服務(wù)。學(xué)生考勤管理程序是信息管理系統(tǒng)的一個(gè)子系統(tǒng),一個(gè)基于單機(jī)版的系統(tǒng)。因?yàn)殡S著計(jì)算機(jī)技術(shù)的不斷進(jìn)步與發(fā)展,計(jì)算機(jī)已經(jīng)深入到人們?nèi)粘I畹拿總€(gè)角落,例如:政府部門,企事業(yè)單位,學(xué)校等等。該系統(tǒng)開發(fā)功能主要包括:管理員可以通過(guò)計(jì)

10、算機(jī)設(shè)置學(xué)生考勤管理程序,打印供學(xué)校與個(gè)人使用。該程序是使用 C 語(yǔ)言編寫的學(xué)生考勤統(tǒng)計(jì)程序。關(guān)鍵詞:考勤;缺課類型;課程名稱. . . . 1 / 36第一章緒論第一章緒論1.11.1 課題背景課題背景程序?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)新精神和實(shí)踐能力。學(xué)生考勤管理程序是學(xué)校管理工作中一個(gè)比較重要的任務(wù),過(guò)多的學(xué)生考勤管理程序工作給學(xué)校管理人員帶來(lái)了很大麻煩的。雖然原始的記錄方法在一定的程度上可以解決問(wèn)題,可是現(xiàn)在計(jì)算機(jī)已經(jīng)走到了我們的生活,它的不足之處就顯而易見了。

11、學(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.21.2 課題目的和要求課題目的和要求目的:要現(xiàn)-“學(xué)生考勤管理程序”記錄學(xué)生的缺課情況,它包括:缺課日期、第幾節(jié)課、課程名稱、學(xué)生、缺課類型(遲到、早退、請(qǐng)假與曠課)。要求: 1.錄入學(xué)生的缺課記錄;2修改某個(gè)學(xué)生的缺

12、課記錄;3查詢某個(gè)學(xué)生的缺課情況;4統(tǒng)計(jì)某段時(shí)間,某門課曠課學(xué)生與曠課次數(shù),按曠課次數(shù)由多到少排序; 5統(tǒng)計(jì)某段時(shí)間,有學(xué)生曠課的課程與曠課人次,按曠課人次由多到少排序。1.31.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)新精神和實(shí)踐能力。學(xué)生考勤管理程序可以大大減緩學(xué)生考勤人員的工作量, 方便了平時(shí)上課學(xué)生的出勤率的管理。. . . . 2 / 36第二章第二章 系統(tǒng)分析需求分析是軟件定義時(shí)期的最后一個(gè)階段,它更是開發(fā)一個(gè)好的軟件的基礎(chǔ)。它的基本任務(wù)是準(zhǔn)確地

13、回答“需要此軟件的人都需要哪些功能?”這個(gè)問(wèn)題。需求分析的主要任務(wù)是確定系統(tǒng)必須完成哪些工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整的準(zhǔn)確的具體的清晰的要求,確定系統(tǒng)必須具有的功能和性能,系統(tǒng)要求的運(yùn)行環(huán)境,以與預(yù)測(cè)系統(tǒng)發(fā)展的前景開發(fā)一個(gè)好的軟件,進(jìn)行深入細(xì)致的可行性研究是極其必要的,而且還必須做大量的,全,并仔細(xì)分析系統(tǒng)中的數(shù)據(jù),以便完善良好的軟件環(huán)境。在需求分析階段系統(tǒng)分析員將仔細(xì)研究軟件所需要完成的具體功能。2.12.1 功能需求功能需求本系統(tǒng)主要是學(xué)校和老師對(duì)學(xué)生出課情況的統(tǒng)計(jì)系統(tǒng)。該系統(tǒng)需要有建立,修改,查詢,載入,儲(chǔ)存,退出功能,利用查詢功能分開查看某一門課程或者某一個(gè)學(xué)生的缺課記錄,方便老師與

14、學(xué)校統(tǒng)計(jì)。2.22.2 數(shù)據(jù)需求數(shù)據(jù)需求本系統(tǒng)主要涉與的數(shù)據(jù)有學(xué)生缺課信息。學(xué)生缺課信息包括缺課時(shí)間,學(xué)生,課程名稱,第幾節(jié),學(xué)生遲到次數(shù),早退次數(shù),請(qǐng)假次數(shù),曠課次數(shù)。2.32.3 性能需求性能需求 要求系統(tǒng)具有可靠性,速度要快。. . . . 3 / 36第三章第三章 總體設(shè)計(jì)3.13.1 功能模塊設(shè)計(jì)功能模塊設(shè)計(jì)根據(jù)分析整個(gè)系統(tǒng)主要?jiǎng)澐譃?7 個(gè)功能模塊,分別執(zhí)行要求中的功能。數(shù)據(jù)管理中實(shí)現(xiàn)對(duì)學(xué)生的基本信息、課程的基本信息、學(xué)生缺課的查詢、添加、刪除和修改,以與具體缺課缺課容,是遲到、早退、請(qǐng)假、曠課。查詢管理通過(guò)根據(jù)學(xué)生,課程 時(shí)間段兒等信息,查詢單個(gè)學(xué)生的缺課記錄,單科課的曠課記錄,

15、單個(gè)學(xué)生的曠課記錄。功能模塊圖如圖 1 所示。圖 1 功能模塊圖3.23.2 系統(tǒng)設(shè)計(jì)方案系統(tǒng)設(shè)計(jì)方案此程序是過(guò)程性語(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è)量分別用來(lái)表示循環(huán)變量初值、循環(huán)

16、終值和循環(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)用的。第四章第四章 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)4.14.1 修改學(xué)生缺課記錄子模塊修改學(xué)生缺課記錄子模塊根據(jù)要修改的學(xué)生以與科目名稱找到相應(yīng)的信息,再選擇要修改的項(xiàng)目進(jìn)行單項(xiàng)修改,如圖 2 所示。. . . . 4 / 36char xiugai_name50;char xiugai_xueke_name50;int k;開始printf(請(qǐng)輸入要修改的學(xué)生姓

17、名與學(xué)科名稱:); scanf(%s%s,xiugai_name,xiugai_xueke_name);struct student *p1,*p2; p2=(struct student *)malloc(LEN); p1=head;strcmp(xiugai_name,p1-name)!=0&(p1-next!=NULL)&strcmp(xiugai_xueke_name,p1-lesson_name)!p1=p1-next;strcmp(xiugai_name,p1-name)=0&strcmp(xiugai_xueke_name,p1-lesson_name)=

18、0顯示修改菜單選擇修改項(xiàng)目并完成修改結(jié)束圖 2 找到相應(yīng)的信息4.24.2 修改學(xué)生缺課記錄子模塊修改學(xué)生缺課記錄子模塊根據(jù)人名可以查出該學(xué)生的所有缺課記錄 如圖 3 所示。 . . . . 5 / 36開始printf(請(qǐng)輸入要查詢的人名:); scanf(%s,chaxun_name);int i=0;char chaxun_name50;struct student *p;p=head;iname)=0輸出p所指向的結(jié)構(gòu)體數(shù)據(jù)i+結(jié)束圖 3 查找缺課記錄4.34.3 查看單科曠課記錄子模塊查看單科曠課記錄子模塊根據(jù)學(xué)科名稱和時(shí)間圍查出所有在該圍曠課的學(xué)生以與次數(shù) 如圖 4 所示。. .

19、. . 6 / 36開始struct student *p1,*p2,*p3; char lesson50;long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(LEN);p1=head;p2=p1-nextxunhuan_numkuangke_nump1-kuangke_nump1=p2;p2=p2-next;p1=head;p2=p1-next;xunhuan_num+;交換p1與p2指向數(shù)據(jù)printf(請(qǐng)輸入要查看的學(xué)科名稱:);scanf(%s,lesson);printf(請(qǐng)輸入要查看的時(shí)間

20、范圍); scanf(%ld%ld,&look_time1,&look_time2);p1=head;p1!=NULLstrcmp(lesson,p1-lesson_name)=0&look_time1time&p1-timenext;結(jié)束YNYYNN圖 4 查看學(xué)生單科曠課記錄4.44.4 查看學(xué)生曠課記錄子模塊查看學(xué)生曠課記錄子模塊根據(jù)要查詢的學(xué)科名稱與時(shí)間段查出在改時(shí)間段該門課上曠課的人數(shù) 如圖 5 所示。. . . . 7 / 36開始int n,i,j,zhongjian;struct student *p1;char zhongjian_name50

21、;long look_time1,look_time2;printf(請(qǐng)輸入第%d個(gè)學(xué)科名稱:,i+1);scanf(%s,ai.xueke_name);ai.people_num=0;printf(請(qǐng)輸入要查看的時(shí)間范圍由小到大);scanf(%ld%ld,&look_time1,&look_time2);p1=head;i=0;inp1!=NULL & look_time1time & p1-timelesson_name)=0p1=p1-next;p1=head;i+;ai.people_num+=p1-kuangke_num;jn-1in-1-jai.p

22、eople_numai+1.people_num交換ai與ai+1的數(shù)據(jù)j+;i+;輸出學(xué)生姓名與曠課人數(shù)結(jié)束i=0YYYYYYNNNNNNN圖 5 查看學(xué)生曠課記錄4.54.5 載入學(xué)生曠課記錄子模塊載入學(xué)生曠課記錄子模塊可以載入實(shí)現(xiàn)儲(chǔ)存在當(dāng)前文件夾中 txt 文件中所儲(chǔ)存的數(shù)據(jù) 如圖 6 所示。. . . . 8 / 36開始struct student *p1=NULL,*p2=NULL,*head=NULL;struct student student_ziliao100;int i=0,n=0;打開文件!feof(fp1)將文件里的數(shù)據(jù)存入結(jié)構(gòu)體數(shù)組通過(guò)結(jié)構(gòu)體數(shù)組建立鏈表結(jié)束圖 6

23、載入學(xué)生曠課記錄4.64.6 儲(chǔ)存學(xué)生曠課記錄子??靸?chǔ)存學(xué)生曠課記錄子模快進(jìn)入系統(tǒng)界面,順序的完成各項(xiàng)操作,進(jìn)行數(shù)據(jù)的輸入,信息的保存調(diào)用相應(yīng)的函數(shù)打開相應(yīng)的地址,查詢各項(xiàng)信息。如圖 7 所示。 . . . . 9 / 36圖 7 儲(chǔ)存學(xué)生曠課記錄. . . . 10 / 36第五章第五章 調(diào)試與測(cè)試調(diào)試與測(cè)試5.15.1 調(diào)試調(diào)試此程序是用 VC 程序編寫,調(diào)試過(guò)程中在菜單中選擇乍看學(xué)生曠課記錄,程序不執(zhí)行。因?yàn)闆](méi)有加入選擇的 case 語(yǔ)句。后在 switch 后加一個(gè) case 就可以自動(dòng)執(zhí)行了。5.25.2 測(cè)試測(cè)試由于程序的源代碼是在記事本文本中復(fù)制到 VC 中的,有些 printf

24、 后比較長(zhǎng)的語(yǔ)句會(huì)被放到下一行,使程序出現(xiàn)多處類似的錯(cuò)誤,經(jīng)過(guò)在 VC 中的修改,程序得以正常的運(yùn)行。5.3 結(jié)論課程設(shè)計(jì)順利完成,題目所要求的功能也都一一實(shí)現(xiàn),可以對(duì)學(xué)生的缺課信息進(jìn)行添加,修改,刪除以與查詢的顯示。不過(guò)這個(gè)程序還有些不夠完善,例如不能往當(dāng)前文件夾中的 txt 文件中添加記錄。. . . . 11 / 36結(jié)束語(yǔ)結(jié)束語(yǔ)整個(gè)系統(tǒng)的設(shè)計(jì)過(guò)程對(duì)于我來(lái)說(shuō)算是個(gè)學(xué)習(xí)、探索的過(guò)程,通過(guò)實(shí)踐和對(duì)比別人開發(fā)程序的過(guò)程。在整個(gè)設(shè)計(jì)過(guò)程中,出現(xiàn)過(guò)很多的問(wèn)題,很多繁瑣的東西都需要反復(fù)的修改,主要是前期工作不徹底,對(duì)系統(tǒng)的需求分析的要求認(rèn)識(shí)不夠清楚,使得在后邊的工作中不得不經(jīng)常反復(fù)去修改。使我體會(huì)到

25、設(shè)置中每一步的重要性。所以在分析一個(gè)問(wèn)題時(shí),我們需要站在一個(gè)有遠(yuǎn)見的高度。通過(guò)此次設(shè)計(jì),我不但對(duì) C 語(yǔ)言編程有了更深刻的認(rèn)識(shí),積累了使用軟件工程的思想來(lái)開發(fā)軟件的經(jīng)驗(yàn),更重要的是學(xué)會(huì)了在對(duì)待問(wèn)題時(shí)應(yīng)該考慮到哪些方面和怎么解決問(wèn)題。雖然時(shí)間緊迫但我學(xué)會(huì)了很多,也感到自身知識(shí)的貧乏,希望在日后的努力中能做出更完善的系統(tǒng)。. . . . 12 / 36致致 這次 C 語(yǔ)言的程序設(shè)計(jì),對(duì)于我來(lái)說(shuō)是一個(gè)挑戰(zhàn)。我在 C 語(yǔ)言的學(xué)習(xí)過(guò)程中的困難并不只在程序的設(shè)計(jì)中有所體現(xiàn),每一個(gè)函數(shù)都設(shè)計(jì)好了,也調(diào)試好了,把它們分開運(yùn)行并沒(méi)有錯(cuò)誤,但是當(dāng)把它們組合成一個(gè)程序時(shí),便是一個(gè)一個(gè)地出現(xiàn)錯(cuò)誤;把這個(gè)問(wèn)題解決了,另

26、一個(gè)新問(wèn)題又來(lái)了。這不能不說(shuō)是對(duì)知識(shí)的欠缺。通過(guò)這次的程序設(shè)計(jì),我懂得了無(wú)論什么事都要去做才會(huì)發(fā)現(xiàn)問(wèn)題,才有可能去解決問(wèn)題。對(duì)知識(shí)的學(xué)習(xí),不能潛償輒止,要深入去學(xué)習(xí),去了解,這樣才會(huì)有所收獲。有許多東西,許多事,不是想像中的那么容易,不去實(shí)踐,永遠(yuǎn)也不會(huì)有提高,尤其是學(xué)習(xí)計(jì)算機(jī)。同時(shí),在這次課程設(shè)計(jì)的過(guò)程中,我認(rèn)識(shí)到學(xué)好計(jì)算機(jī)要重視實(shí)踐操作,不僅僅是學(xué)習(xí) C 語(yǔ)言,還是其它的語(yǔ)言,以與其它的計(jì)算機(jī)方面的知識(shí)都要重在實(shí)踐,不能只是學(xué)習(xí)和重視書本上的理論知識(shí),所以日后在學(xué)習(xí)過(guò)程中,我會(huì)更加注視實(shí)踐操作,使自己更好地學(xué)好計(jì)算機(jī)這門課程。 以前做實(shí)驗(yàn)題目的時(shí)候總是感覺很難,因?yàn)楦揪筒恢缽哪睦镩_始。

27、這次課程設(shè)計(jì)讓我對(duì)編程有了新的認(rèn)識(shí),也是我知道了只有自己親自動(dòng)手才能學(xué)到更多東西。拿到題目的時(shí)候也是很困惑但仔細(xì)琢磨后也不是想象中那么難,覺得就是上課講到的一些容,是自己先把自己嚇住了。后來(lái),參照書上的和網(wǎng)上的諸多例子,一個(gè)模塊一個(gè)模塊的編寫,調(diào)試,一個(gè)功能一個(gè)功能去完善。發(fā)現(xiàn)越做越順利,由于以前的實(shí)驗(yàn)中對(duì)于改錯(cuò)的經(jīng)驗(yàn)積累和幾個(gè)學(xué)得不錯(cuò)的同學(xué)的幫助,我的程序中的錯(cuò)誤也一個(gè)一個(gè)的順利解決。再后來(lái),等我的程序完全做好以后,我竟然可以獨(dú)立的幫同學(xué)修改一些以前根本不知所以然的錯(cuò)誤,其實(shí),從這次實(shí)驗(yàn)中我認(rèn)識(shí)到,我距離高手還很遠(yuǎn),編程有很多的樂(lè)趣也有很多的技巧性和知識(shí)性。我將在以后的日子里繼續(xù)認(rèn)真的學(xué)習(xí)知

28、識(shí),積累經(jīng)驗(yàn),讓自己的編程能力提高??傊?,我決得編程就是要請(qǐng)自動(dòng)手,孰能生巧,感學(xué)校給我們這次機(jī)會(huì)使我們通過(guò)這次試驗(yàn)學(xué)到了很多東西。. . . . 13 / 36參考文獻(xiàn)參考文獻(xiàn)1譚浩強(qiáng).C 語(yǔ)言程序設(shè)計(jì)(第三版).:清華大學(xué)2林碧英.C 語(yǔ)言程序設(shè)計(jì)教程. :中國(guó)電力,20063美赫伯特.希爾特,王子恢等譯.C 語(yǔ)言大全. :電子工業(yè).20064靈芝,余健.C 語(yǔ)言課程設(shè)計(jì)案例精選. :清華大學(xué),2008. . . . 附錄附錄 1 1用戶手冊(cè)用戶手冊(cè)主菜單圖 1 主菜單1.建立學(xué)生缺課記錄圖 2 建立學(xué)生缺課記錄 2.修改學(xué)生缺課記錄 . . . . 圖 3 修改學(xué)生缺課記錄3.查詢學(xué)生缺

29、課記錄圖 4 查詢學(xué)生缺課記錄. . . . 1 / 364.查看單科曠課記錄圖 5 查看單科曠課記錄5.查看學(xué)生曠課記錄圖 6 查看學(xué)生曠課記錄. . . . 2 / 366.儲(chǔ)存學(xué)生曠課記錄圖 7 儲(chǔ)存學(xué)生曠課記錄7.載入學(xué)生曠課記錄圖 8 載入學(xué)生曠課記錄8.退出程序. . . . 3 / 36圖 9 退出程序. . . . 4 / 36附錄附錄 2 2源程序源程序#include#include#include#define NULL 0#define LEN sizeof(struct student)int student_num;FILE *fp1;struct xuekecha

30、r xueke_name50;int people_num;struct xueke a10;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 *next;void chaxun(struct student *head)int i;char chaxun_name50;printf(請(qǐng)輸入要查詢的人名若沒(méi)有這個(gè)人則不顯示:); scanf(%s,ch

31、axun_name);struct student *p;. . . . 5 / 36if(head=NULL)printf(聯(lián)系人為空);p=head;for(i=0;iname)=0)printf(缺課時(shí)間:%ld 學(xué)生:%s 課程名稱:%s 第%d 節(jié) 遲到次數(shù):%d 早退次數(shù):%d 請(qǐng)假次數(shù):%d 曠課次 數(shù):%dn,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; struct student *xiugai(struct

32、 student *head)char xiugai_name50;char xiugai_xueke_name50;int k;printf(請(qǐng)輸入要修改的學(xué)生與學(xué)科名稱格式:學(xué)生(空格)學(xué)科名稱:);scanf(%s%s,xiugai_name,xiugai_xueke_name);struct student *p1,*p2; p2=(struct student *)malloc(LEN);p1=head;if(head=NULL)printf(沒(méi)有學(xué)生信息n);return(head); while(strcmp(xiugai_name,p1-name)!=0&(p1-nex

33、t!=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);. . . . 6 / 36printf( 3-修改課程名稱 n);printf( 4-修改第幾節(jié)缺課 n);printf( 5-修改遲到次數(shù) n);printf( 6-修改早退次數(shù) n);printf(

34、 7-修改請(qǐng)假次數(shù) n);printf( 8-修改曠課次數(shù) n);printf(=n);scanf(%d,&k);switch(k)case 1:printf(請(qǐng)輸入新的缺課時(shí)間);scanf(%ld,&p1-time);break;case 2:printf(請(qǐng)輸入新的學(xué)生);scanf(%s,p1-name);break;case 3:printf(請(qǐng)輸入新的課程名稱);scanf(%s,p1-lesson_name);break;case 4:printf(請(qǐng)輸入新的第幾節(jié)缺課);scanf(%d,&p1-lesson_time);break;case 5:pri

35、ntf(請(qǐng)輸入新的遲到次數(shù));scanf(%d,&p1-chidao_num);break;case 6:. . . . 7 / 36printf(請(qǐng)輸入新的早退次數(shù));scanf(%d,&p1-zaotui_num);break;case 7:printf(請(qǐng)輸入新的請(qǐng)假次數(shù));scanf(%d,&p1-qingjia_num);break;case 8:printf(請(qǐng)輸入新的曠課次數(shù));scanf(%d,&p1-kuangke_num);break; return(head);struct student *creat()int i,b;struct st

36、udent *head,*p1,*p2; printf(請(qǐng)輸入要建立資料的學(xué)生人數(shù):);scanf(%d,&b);head=p2=NULL;p1=(struct student *)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,

37、&p1-zaotui_num,&p1-qingjia_num,&p1-kuangke_num);head=p1;p2=p1;student_num+;. . . . 8 / 36for(i=1;itime,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);void

38、print(struct student *head)struct student *p;p=head;if(p=NULL)printf(沒(méi)有學(xué)生信息n);while(p!=NULL)printf(缺課時(shí)間:%ld 學(xué)生:%s 課程名稱:%s 第%d 節(jié) 遲到次數(shù):%d 早退次數(shù):%d 請(qǐng)假次數(shù):%d 曠課次數(shù):%dn,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; struct student *tongji_lesson(st

39、ruct student *head)struct student *p1,*p2,*p3;char lesson50;long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(LEN);. . . . 9 / 36if(head=NULL)printf(沒(méi)有學(xué)生信息);return(head); p1=head;p2=p1-next;while(xunhuan_numkuangke_nump1-kuangke_num)p3-chidao_num=p2-chidao_num;p3-kuangke_num=p

40、2-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-l

41、esson_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_num;p1-zaotui_num=p3-zaotui_num;. . . . 10 / 36p1-lesson_time=p3-lesson_time;p1-time=p3-time;strcpy(p1-lesson_na

42、me,p3-lesson_name);strcpy(p1-name,p3-name);p1=p2;p2=p2-next;p1=head;p2=p1-next;xunhuan_num+;printf(請(qǐng)輸入要查看的學(xué)科名稱:);scanf(%s,lesson);printf(請(qǐng)輸入要查看的時(shí)間圍輸入格式:時(shí)間(空格)時(shí)間);scanf(%ld%ld,&look_time1,&look_time2);p1=head;while(p1!=NULL)if(strcmp(lesson,p1-lesson_name)=0&look_time1time&p1-timename

43、,p1-kuangke_num);p1=p1-next; return(head);struct student *tongji_student(struct student *head)int n,i,j,zhongjian;struct student *p1;char zhongjian_name50;long look_time1,look_time2;. . . . 11 / 36if(head=NULL)printf(沒(méi)有學(xué)生信息);return(head); printf(請(qǐng)輸入一共的學(xué)科數(shù):);scanf(%d,&n);for(i=0;in;i+)printf(請(qǐng)輸入第

44、%d 個(gè)學(xué)科名稱:,i+1);scanf(%s,ai.xueke_name);ai.people_num=0; printf(請(qǐng)輸入要查看的時(shí)間圍由小到大輸入格式:時(shí)間(空格)時(shí)間);scanf(%ld%ld,&look_time1,&look_time2);p1=head;for(i=0;in;i+)while(p1!=NULL & look_time1time & p1-timelesson_name)=0)ai.people_num+=p1-kuangke_num;p1=p1-next; p1=head; for(j=0;jn-1;j+) for(i=0;

45、in-1-j;i+)if(ai.people_numai+1.people_num)zhongjian=ai+1.people_num;ai+1.people_num=ai.people_num;ai.people_num=zhongjian;strcpy(zhongjian_name,ai+1.xueke_name);strcpy(ai+1.xueke_name,ai.xueke_name);strcpy(ai.xueke_name,zhongjian_name); for(i=0;in;i+)printf(學(xué)科名稱%s 曠課人%dn,ai.xueke_name,ai.people_num);. . . . 12 / 36return(head)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論