C語言課程設(shè)計(jì)學(xué)生考勤管理系統(tǒng)_第1頁
C語言課程設(shè)計(jì)學(xué)生考勤管理系統(tǒng)_第2頁
C語言課程設(shè)計(jì)學(xué)生考勤管理系統(tǒng)_第3頁
C語言課程設(shè)計(jì)學(xué)生考勤管理系統(tǒng)_第4頁
C語言課程設(shè)計(jì)學(xué)生考勤管理系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、學(xué)生考勤管理系統(tǒng)學(xué)生考勤管理系統(tǒng)目錄目錄1.1. 緒論緒論.11.1 課題背景.11.2 課題目的和要求.11.3 課題意義.22.2. 系統(tǒng)分析系統(tǒng)分析 .22.1 功能需求.22.2 數(shù)據(jù)需求.32.3 性能需求.33.3. 總體設(shè)計(jì)總體設(shè)計(jì) .33.13.1 功能模塊設(shè)計(jì)功能模塊設(shè)計(jì).33.2 系統(tǒng)設(shè)計(jì)方案.34.4. 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) .44.14.1 建立學(xué)生缺課記錄子模塊建立學(xué)生缺課記錄子模塊 .44.2 修改學(xué)生缺課記錄子模塊 .54.3 修改學(xué)生缺課記錄子模塊 .64.4 查看單科曠課記錄子模塊 .74.5 查看學(xué)生曠課記錄子模塊 .84.6 載入學(xué)生曠課記錄子模塊 .94.7

2、 儲存學(xué)生曠課記錄子模快 .95.5. 調(diào)試與測試調(diào)試與測試.105.1 調(diào)試.105.2 測試.116.6. 結(jié)論結(jié)論.11結(jié)束語結(jié)束語.11參考文獻(xiàn)參考文獻(xiàn).11附錄附錄 1 1用戶手冊用戶手冊.12附錄附錄 2 2源程序源程序.17學(xué)生考勤管理系統(tǒng)- - 1摘要20 世紀(jì)末,隨著計(jì)算機(jī)科學(xué)的發(fā)展,數(shù)據(jù)庫技術(shù)在 internet 中的應(yīng)用越來越廣泛,為廣大網(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ā)功能主要包

3、括:管理員可以通過計(jì)算機(jī)設(shè)置學(xué)生考勤管理程序,打印供學(xué)校及個(gè)人使用。該程序是使用 c 語言編寫的學(xué)生考勤統(tǒng)計(jì)程序。關(guān)鍵詞:考勤;姓名;缺課類型;課程名稱。1.1. 緒論緒論1.11.1 課題背景課題背景程序?qū)嵺`是本科生重要教學(xué)環(huán)節(jié)之一。通過程序?qū)嵺`,強(qiáng)化學(xué)生的計(jì)算機(jī)應(yīng)用技能,使學(xué)生驗(yàn)證、鞏固和充實(shí)所學(xué)的理論知識, 加深對相關(guān)內(nèi)容的理解,拓寬知識面,培養(yǎng)學(xué)生的創(chuàng)新精神和實(shí)踐能力學(xué)生考勤管理程序是學(xué)校管理工作中一個(gè)比較重要的任務(wù),過多的學(xué)生考勤管理程序工作給學(xué)校管理人員帶來了很大麻煩的。雖然原始的記錄方法在一定的程度上可以解決問題,可是現(xiàn)在計(jì)算機(jī)已經(jīng)走到了我們的生活,它的不足之處就顯而易見了。 學(xué)

4、生考勤管理程序,是一個(gè)對于學(xué)生考勤的管理系統(tǒng), 不僅大大減少了考勤管理人員的大量的工作,而且還方便了班級和學(xué)校對學(xué)生出課率的查詢,只要通計(jì)算機(jī)登入本系統(tǒng)就能及時(shí)修改、更正學(xué)生的考勤信息,使信息真實(shí)、有效。這樣節(jié)省了大量人力物力,節(jié)省了寶貴的時(shí)間,大大提高了工作效率.用 c 語言進(jìn)行了該系統(tǒng)的編寫。操作上力爭實(shí)現(xiàn)人性化、合理化,滿足學(xué)校、老師、非計(jì)算機(jī)管理人員的使用和查看。1.21.2 課題目的和要求課題目的和要求目的:要求實(shí)現(xiàn)-“學(xué)生考勤管理程序”記錄學(xué)生的缺課情況,它包括:缺課日期、第幾節(jié)課、課程名稱、學(xué)生姓名、缺課類型(遲到、早退、請假及曠課)。學(xué)生考勤管理系統(tǒng)- - 2要求: 1.錄入學(xué)

5、生的缺課記錄;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.31.3 課題意義課題意義程序?qū)嵺`是本科生重要教學(xué)環(huán)節(jié)之一。通過程序?qū)嵺`,強(qiáng)化學(xué)生的計(jì)算機(jī)應(yīng)用技能,使學(xué)生驗(yàn)證、鞏固和充實(shí)所學(xué)的理論知識, 加深對相關(guān)內(nèi)容的理解,拓寬知識面,培養(yǎng)學(xué)生的創(chuàng)新精神和實(shí)踐能力學(xué)生考勤管理程序可以大大減緩學(xué)生考勤人員的工作量, 方便了平時(shí)上課學(xué)生的出勤率的管理。2.2. 系統(tǒng)分析系統(tǒng)分析開發(fā)一個(gè)好的軟件,進(jìn)行深入細(xì)致的可行性研究是極其必要的,而且還必須做大量

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

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

8、息,查詢單個(gè)學(xué)生的缺課記錄,單科課的曠課記錄,單個(gè)學(xué)生的曠課記錄。功能模塊圖如圖 1 所示。、學(xué)生考勤管理程序修改學(xué)生缺課記錄查看學(xué)生曠課記錄查看單科曠課記錄查詢學(xué)生缺課記錄建立學(xué)生缺課記錄儲存學(xué)生曠課記錄載入學(xué)生曠課記錄圖 1 功能模塊圖3.23.2 系統(tǒng)設(shè)計(jì)方案系統(tǒng)設(shè)計(jì)方案 此程序是過程性語言設(shè)計(jì)的。運(yùn)用多種條件語句,主體采用的是鏈表指針。系統(tǒng)的設(shè)計(jì)采用了數(shù)組語句、選擇語句和循環(huán)語句,在需要處理大量同類數(shù)據(jù)時(shí),這樣就使程序書寫更加簡潔。程序使用了布爾函數(shù)。選擇語句多采用 if 多分支選擇結(jié)構(gòu)與 switch 語句。首先計(jì)算 switch 表達(dá)式,然后在 caes 子句中尋找值相學(xué)生考勤管理

9、系統(tǒng)- - 4等的常量表達(dá)式,并以此為入口符號,由此開始順序執(zhí)行。循環(huán)語句采用了for 語句等、do-while 語句,for 語句用于已知循環(huán)次數(shù)的循環(huán)結(jié)構(gòu),括號中的三個(gè)量分別用來表示循環(huán)變量初值、循環(huán)終值和循環(huán)增量。do-while 語句先循環(huán)后判斷, break 語句在 switch 語句中,保證多分支情況的正確執(zhí)行,在循環(huán)語句中,強(qiáng)制終止本層循環(huán)。保存和讀取函數(shù)是典型的函數(shù)功能,一個(gè)程序是由若干個(gè)函數(shù)組成的,保存和讀取函數(shù)是和其他函數(shù)互相調(diào)用的。 4.4. 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)4.14.1 建立學(xué)生缺課記錄子模塊建立學(xué)生缺課記錄子模塊要建立的學(xué)生人數(shù),學(xué)生基本信息(包括缺課時(shí)間、學(xué)生姓名、

10、課程名稱、第幾節(jié)、遲到次數(shù)、早退次數(shù)、請假次數(shù)、曠課次數(shù))可用 creat()函數(shù)如圖 1. 開始int i,b;struct student *head,*p1,*p2; printf(請輸入要建立資料的學(xué)生人數(shù):);scanf(%d,&b);head=p2=null;p1=(struct student *)malloc(len);輸入第一個(gè)學(xué)生成績head=p1;p2=p1;i=0;student_num+;inext=p1;p2=p1;student_num+;i+p2-next=null結(jié)束yn 圖 1學(xué)生考勤管理系統(tǒng)- - 54.24.2 修改學(xué)生缺課記錄子模塊修改學(xué)生缺課記錄子模

11、塊根據(jù)要修改的學(xué)生姓名以及科目名稱找到相應(yīng)的信息,再選擇要修改的項(xiàng)目進(jìn)行單項(xiàng)修改 如圖 2char xiugai_name50;char xiugai_xueke_name50;int k;開始printf(請輸入要修改的學(xué)生姓名與學(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_n

12、ame,p1-lesson_name)!p1=p1-next;strcmp(xiugai_name,p1-name)=0&strcmp(xiugai_xueke_name,p1-lesson_name)=0顯示修改菜單選擇修改項(xiàng)目并完成修改結(jié)束 圖 2學(xué)生考勤管理系統(tǒng)- - 64.34.3 修改學(xué)生缺課記錄子模塊修改學(xué)生缺課記錄子模塊根據(jù)人名可以查出該學(xué)生的所有缺課記錄 如圖 3開始printf(請輸入要查詢的人名:); scanf(%s,chaxun_name);int i=0;char chaxun_name50;struct student *p;p=head;iname)=0輸出p所指

13、向的結(jié)構(gòu)體數(shù)據(jù)i+結(jié)束 圖 3學(xué)生考勤管理系統(tǒng)- - 74.44.4 查看單科曠課記錄子模塊查看單科曠課記錄子模塊根據(jù)學(xué)科名稱和時(shí)間范圍查出所有在該范圍內(nèi)曠課的學(xué)生以及次數(shù) 如圖 4開始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-ne

14、xt;xunhuan_num+;交換p1與p2指向數(shù)據(jù)printf(請輸入要查看的學(xué)科名稱:);scanf(%s,lesson);printf(請輸入要查看的時(shí)間范圍); scanf(%ld%ld,&look_time1,&look_time2);p1=head;p1!=nullstrcmp(lesson,p1-lesson_name)=0&look_time1time&p1-timenext;結(jié)束ynyynn 圖 4學(xué)生考勤管理系統(tǒng)- - 84.54.5 查看學(xué)生曠課記錄子模塊查看學(xué)生曠課記錄子模塊根據(jù)要查詢的學(xué)科名稱及時(shí)間段查出在改時(shí)間段內(nèi)該門課上曠課的人數(shù) 如圖 5開始int n,i,j

15、,zhongjian;struct student *p1;char zhongjian_name50;long look_time1,look_time2;printf(請輸入第%d個(gè)學(xué)科名稱:,i+1);scanf(%s,ai.xueke_name);ai.people_num=0;printf(請輸入要查看的時(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

16、_num+=p1-kuangke_num;jn-1in-1-jai.people_numnext;結(jié)束yn 圖 75.5. 調(diào)試調(diào)試與測試與測試5.15.1 調(diào)試調(diào)試(1)此程序是用 vc 程序編寫,調(diào)試過程中在菜單中選擇乍看學(xué)生曠課記錄,程序不執(zhí)行。因?yàn)闆]有加入選擇的 case 語句。后在 switch 后加一個(gè) case 就可以自動(dòng)執(zhí)行了。學(xué)生考勤管理系統(tǒng)- - 115.25.2 測試測試(2)由于程序的源代碼是在記事本文本中復(fù)制到 vc 中的,有些 printf 后比較長的語句會(huì)被放到下一行,使程序出現(xiàn)多處類似的錯(cuò)誤,經(jīng)過在 vc 中的修改,程序得以正常的運(yùn)行6.6. 結(jié)論結(jié)論課程設(shè)計(jì)順

17、利完成,題目所要求的功能也都一一實(shí)現(xiàn),可以對學(xué)生的缺課信息進(jìn)行添加,修改,刪除以及查詢的顯示。不過這個(gè)程序還有些不夠完善,例如不能往當(dāng)前文件夾中的 txt 文件中添加記錄。結(jié)束語結(jié)束語整個(gè)系統(tǒng)的設(shè)計(jì)過程對于我來說算是個(gè)學(xué)習(xí)、探索的過程,通過實(shí)踐和對比別人開發(fā)程序的過程。在整個(gè)設(shè)計(jì)過程中,出現(xiàn)過很多的問題,很多繁瑣的東西都需要反復(fù)的修改,主要是前期工作不徹底,對系統(tǒng)的需求分析的要求認(rèn)識不夠清楚,使得在后邊的工作中不得不經(jīng)常反復(fù)去修改。使我體會(huì)到設(shè)置中每一步的重要性。所以在分析一個(gè)問題時(shí),我們需要站在一個(gè)有遠(yuǎn)見的高度。通過此次設(shè)計(jì),我不但對 c 語言編程有了更深刻的認(rèn)識,積累了使用軟件工程的思想來

18、開發(fā)軟件的經(jīng)驗(yàn),更重要的是學(xué)會(huì)了在對待問題時(shí)應(yīng)該考慮到哪些方面和怎么解決問題。雖然時(shí)間緊迫但我學(xué)會(huì)了很多,也感到自身知識的貧乏,希望在日后的努力中能做出更完善的系統(tǒng)。參考文獻(xiàn)參考文獻(xiàn)1譚浩強(qiáng).c 語言程序設(shè)計(jì)(第三版).清華大學(xué)出版社2林碧英.c 語言程序設(shè)計(jì)教程.中國電力出版社,20063美赫伯特.希爾特,王子恢等譯.c 語言大全.電子工業(yè)出版社.20064姜靈芝,余健.c 語言課程設(shè)計(jì)案例精選.清華大學(xué)出版社,2008學(xué)生考勤管理系統(tǒng)- - 12附錄附錄 1 1用戶手冊用戶手冊主菜單圖 1 主菜單1.建立學(xué)生缺課記錄圖 2 建立學(xué)生缺課記錄學(xué)生考勤管理系統(tǒng)- - 132.修改學(xué)生缺課記錄圖

19、 3 修改學(xué)生缺課記錄3.查詢學(xué)生缺課記錄圖 4 查詢學(xué)生缺課記錄學(xué)生考勤管理系統(tǒng)- - 144.查看單科曠課記錄圖 5 查看單科曠課記錄5.查看學(xué)生曠課記錄圖 6 查看學(xué)生曠課記錄學(xué)生考勤管理系統(tǒng)- - 156.儲存學(xué)生曠課記錄圖 7 儲存學(xué)生曠課記錄7.載入學(xué)生曠課記錄圖 8 載入學(xué)生曠課記錄學(xué)生考勤管理系統(tǒng)- - 168. 退出程序圖 9 退出程序?qū)W生考勤管理系統(tǒng)- - 17附錄附錄 2 2源程序源程序#include#include#include#define null 0#define len sizeof(struct student)int student_num;file *

20、fp1;struct xuekechar 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(請輸入要查詢的人名【若沒有這個(gè)

21、人則不顯示】:);學(xué)生考勤管理系統(tǒng)- - 18 scanf(%s,chaxun_name);struct student *p;if(head=null)printf(聯(lián)系人為空);p=head;for(i=0;iname)=0)printf(缺課時(shí)間:%ld 學(xué)生姓名:%s 課程名稱:%s 第%d 節(jié) 遲到次數(shù):%d 早退次數(shù):%d 請假次數(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

22、 student *xiugai(struct student *head)char xiugai_name50;char xiugai_xueke_name50;int k;printf(請輸入要修改的學(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(沒有學(xué)生信息n);return(head); while(strcmp(xiugai

23、_name,p1-name)!=0&(p1-next!=null)&strcmp(xiugai_xueke_name,p1-lesson_name)!=0)p1=p1-next;學(xué)生考勤管理系統(tǒng)- - 19 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(

24、6-修改早退次數(shù) n);printf( 7-修改請假次數(shù) n);printf( 8-修改曠課次數(shù) n);printf(=n);scanf(%d,&k);switch(k)case 1:printf(請輸入新的缺課時(shí)間);scanf(%ld,&p1-time);break;case 2:printf(請輸入新的學(xué)生姓名);scanf(%s,p1-name);break;case 3:printf(請輸入新的課程名稱);scanf(%s,p1-lesson_name);break;case 4:printf(請輸入新的第幾節(jié)缺課);scanf(%d,&p1-lesson_time);學(xué)生考勤管理系

25、統(tǒng)- - 20break;case 5:printf(請輸入新的遲到次數(shù));scanf(%d,&p1-chidao_num);break;case 6:printf(請輸入新的早退次數(shù));scanf(%d,&p1-zaotui_num);break;case 7:printf(請輸入新的請假次數(shù));scanf(%d,&p1-qingjia_num);break;case 8:printf(請輸入新的曠課次數(shù));scanf(%d,&p1-kuangke_num);break; return(head);struct student *creat()int i,b;struct student *

26、head,*p1,*p2; printf(請輸入要建立資料的學(xué)生人數(shù):);scanf(%d,&b);head=p2=null;p1=(struct student *)malloc(len);學(xué)生考勤管理系統(tǒng)- - 21printf(【輸入格式:缺課時(shí)間(空格)學(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-z

27、aotui_num,&p1-qingjia_num,&p1-kuangke_num);head=p1;p2=p1;student_num+;for(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 print(struct student *head)struct student *p;p=head

28、;if(p=null)printf(沒有學(xué)生信息n);while(p!=null)學(xué)生考勤管理系統(tǒng)- - 22printf(缺課時(shí)間:%ld 學(xué)生姓名:%s 課程名稱:%s 第%d 節(jié) 遲到次數(shù):%d 早退次數(shù):%d 請假次數(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(struct student *head)struct student *

29、p1,*p2,*p3;char lesson50;long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(len);if(head=null)printf(沒有學(xué)生信息);return(head); p1=head;p2=p1-next;while(xunhuan_numkuangke_nump1-kuangke_num)p3-chidao_num=p2-chidao_num;p3-kuangke_num=p2-kuangke_num;p3-qingjia_num=p2-qingjia_num;p3-za

30、otui_num=p2-zaotui_num;p3-lesson_time=p2-lesson_time;p3-time=p2-time;strcpy(p3-lesson_name,p2-lesson_name);學(xué)生考勤管理系統(tǒng)- - 23strcpy(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=p

31、1-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;p1-lesson_time=p3-lesson_time;p1-time=p3-time;strcpy(p1-lesson_name,p3-lesson_name);strcpy(p1-name,p3-name);p1=p2;p

32、2=p2-next;p1=head;p2=p1-next;xunhuan_num+;printf(請輸入要查看的學(xué)科名稱:);scanf(%s,lesson);printf(請輸入要查看的時(shí)間范圍【輸入格式:時(shí)間(空格)時(shí)間】);scanf(%ld%ld,&look_time1,&look_time2);學(xué)生考勤管理系統(tǒng)- - 24p1=head;while(p1!=null)if(strcmp(lesson,p1-lesson_name)=0&look_time1time&p1-timename,p1-kuangke_num);p1=p1-next; return(head);struct

33、student *tongji_student(struct student *head)int n,i,j,zhongjian;struct student *p1;char zhongjian_name50;long look_time1,look_time2;if(head=null)printf(沒有學(xué)生信息);return(head); printf(請輸入一共的學(xué)科數(shù):);scanf(%d,&n);for(i=0;in;i+)printf(請輸入第%d 個(gè)學(xué)科名稱:,i+1);scanf(%s,ai.xueke_name);ai.people_num=0; printf(請輸入要查

34、看的時(shí)間范圍由小到大【輸入格式:時(shí)間(空格)時(shí)間】);scanf(%ld%ld,&look_time1,&look_time2);p1=head;for(i=0;in;i+)學(xué)生考勤管理系統(tǒng)- - 25while(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;in-1-j;i+)if(ai.people_numai+1.people_num)zhongjian=ai+1.people_num

35、;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);return(head);struct student *zairu()struct student *p1=null,*p2=null,*head=null;struct student student_ziliao100;int i=0,n=0;if(fp1=fopen(xueshengziliao.txt,rb+)=null) printf(cannot open filen);return(head); while(!feof(fp1)if(fread(&student_ziliaoi,len,1,fp1)!=1)if(feof(fp1)學(xué)生考勤管理系統(tǒng)- - 26fclose(fp1); break; printf(file read errorn);i+;n=i;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論