C語(yǔ)言課程設(shè)計(jì)學(xué)生考勤管理系統(tǒng)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)學(xué)生考勤管理系統(tǒng)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)學(xué)生考勤管理系統(tǒng)_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)學(xué)生考勤管理系統(tǒng)_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)學(xué)生考勤管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(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、學(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、 儲(chǔ)存學(xué)生曠課記錄子???.95.5. 調(diào)試與測(cè)試調(diào)試與測(cè)試.105.1 調(diào)試.105.2 測(cè)試.116.6. 結(jié)論結(jié)論.11結(jié)束語(yǔ)結(jié)束語(yǔ).11參考文獻(xiàn)參考文獻(xiàn).11附錄附錄 1 1用戶手冊(cè)用戶手冊(cè).12附錄附錄 2 2源程序源程序.17摘要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è)角落,例如:政府部門(mén),企事業(yè)單位,學(xué)校等等。該系統(tǒng)開(kāi)發(fā)功能主要包括:管理員可以通過(guò)計(jì)算機(jī)設(shè)

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

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

5、生的缺課情況;4統(tǒng)計(jì)某段時(shí)間內(nèi),某門(mén)課曠課學(xué)生姓名及曠課次數(shù),按曠課次數(shù)由多到少排序; 5統(tǒng)計(jì)某段時(shí)間內(nèi),有學(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)內(nèi)容的理解,拓寬知識(shí)面,培養(yǎng)學(xué)生的創(chuàng)新精神和實(shí)踐能力學(xué)生考勤管理程序可以大大減緩學(xué)生考勤人員的工作量, 方便了平時(shí)上課學(xué)生的出勤率的管理。2.2. 系統(tǒng)分析系統(tǒng)分析開(kāi)發(fā)一個(gè)好的軟件,進(jìn)行深入細(xì)致的可行性研究是極其必要的,而且還必須做大量的,全面的需求分析,需求分析是軟件定義時(shí)期的最后一個(gè)

6、階段,它更是開(kāi)發(fā)一個(gè)好的軟件的基礎(chǔ)。它的基本任務(wù)是準(zhǔn)確地回答“需要此軟件的人都需要哪些功能?”這個(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ā)展的前景,并仔細(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ǔ)存,退出功能,利用查詢功能分開(kāi)查看某一門(mén)課程或者某一個(gè)學(xué)生的缺課記錄,方便老師與學(xué)校統(tǒng)計(jì)。2.22.2

7、 數(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.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)對(duì)學(xué)生的基本信息、課程的基本信息、學(xué)生缺課的查詢、添加、刪除和修改,以及具體缺課缺課內(nèi)容,是遲到、早退、請(qǐng)假、曠課。查詢管理通過(guò)根據(jù)學(xué)生姓名,課程姓名 時(shí)間段兒等信息,查詢單個(gè)學(xué)生的缺課記錄,單科課的曠課記錄,單個(gè)學(xué)生的曠課記錄。功能模塊圖如

8、圖 1 所示。、學(xué)生考勤管理程序修改學(xué)生缺課記錄查看學(xué)生曠課記錄查看單科曠課記錄查詢學(xué)生缺課記錄建立學(xué)生缺課記錄儲(chǔ)存學(xué)生曠課記錄載入學(xué)生曠課記錄圖 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í),這樣就使程序書(shū)寫(xiě)更加簡(jiǎn)潔。程序使用了布爾函數(shù)。選擇語(yǔ)句多采用 if 多分支選擇結(jié)構(gòu)與 switch 語(yǔ)句。首先計(jì)算 switch 表達(dá)式,然后在 caes 子句中尋找值相等的常量表達(dá)式,并以此為入口符號(hào),由此開(kāi)始順序執(zhí)行。循環(huán)語(yǔ)句采用了for 語(yǔ)句等、do-w

9、hile 語(yǔ)句,for 語(yǔ)句用于已知循環(huán)次數(shù)的循環(huán)結(jié)構(gòu),括號(hào)中的三個(gè)量分別用來(lái)表示循環(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è)程序是由若干個(gè)函數(shù)組成的,保存和讀取函數(shù)是和其他函數(shù)互相調(diào)用的。 4.4. 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)4.14.1 建立學(xué)生缺課記錄子模塊建立學(xué)生缺課記錄子模塊要建立的學(xué)生人數(shù),學(xué)生基本信息(包括缺課時(shí)間、學(xué)生姓名、課程名稱、第幾節(jié)、遲到次數(shù)、早退次數(shù)、請(qǐng)假次數(shù)、曠課次數(shù))可用 creat()函數(shù)如圖 1. 開(kāi)始int

10、 i,b;struct student *head,*p1,*p2; printf(請(qǐng)輸入要建立資料的學(xué)生人數(shù):);scanf(%d,&b);head=p2=null;p1=(struct student *)malloc(len);輸入第一個(gè)學(xué)生成績(jī)head=p1;p2=p1;i=0;student_num+;inext=p1;p2=p1;student_num+;i+p2-next=null結(jié)束yn 圖 14.24.2 修改學(xué)生缺課記錄子模塊修改學(xué)生缺課記錄子模塊根據(jù)要修改的學(xué)生姓名以及科目名稱找到相應(yīng)的信息,再選擇要修改的項(xiàng)目進(jìn)行單項(xiàng)修改 如圖 2char xiugai_name50;c

11、har xiugai_xueke_name50;int k;開(kāi)始printf(請(qǐng)輸入要修改的學(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_name,p1-lesson_name)!p1=p1-next;strcmp(xiugai_name,p1-name)=0&strc

12、mp(xiugai_xueke_name,p1-lesson_name)=0顯示修改菜單選擇修改項(xiàng)目并完成修改結(jié)束 圖 24.34.3 修改學(xué)生缺課記錄子模塊修改學(xué)生缺課記錄子模塊根據(jù)人名可以查出該學(xué)生的所有缺課記錄 如圖 3開(kāi)始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é)束 圖 34.44.4 查看單科曠課記錄子模塊查看單科曠課記錄子模塊根據(jù)學(xué)科名稱和時(shí)間范圍查出所有在該范圍內(nèi)曠課的學(xué)生以及次數(shù) 如圖 4

13、開(kāi)始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í)間范圍); scanf

14、(%ld%ld,&look_time1,&look_time2);p1=head;p1!=nullstrcmp(lesson,p1-lesson_name)=0&look_time1time&p1-timenext;結(jié)束ynyynn 圖 44.54.5 查看學(xué)生曠課記錄子模塊查看學(xué)生曠課記錄子模塊根據(jù)要查詢的學(xué)科名稱及時(shí)間段查出在改時(shí)間段內(nèi)該門(mén)課上曠課的人數(shù) 如圖 5開(kāi)始int n,i,j,zhongjian;struct student *p1;char zhongjian_name50;long look_time1,look_time2;printf(請(qǐng)輸入第%d個(gè)學(xué)科名稱:,i+1);

15、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.people_numnext;結(jié)束yn 圖 75.5. 調(diào)試調(diào)試與測(cè)試與測(cè)試5.15.1 調(diào)試調(diào)試(1)此程序是用 vc 程序編寫(xiě),調(diào)試過(guò)程

16、中在菜單中選擇乍看學(xué)生曠課記錄,程序不執(zhí)行。因?yàn)闆](méi)有加入選擇的 case 語(yǔ)句。后在 switch 后加一個(gè) case 就可以自動(dòng)執(zhí)行了。5.25.2 測(cè)試測(cè)試(2)由于程序的源代碼是在記事本文本中復(fù)制到 vc 中的,有些 printf 后比較長(zhǎng)的語(yǔ)句會(huì)被放到下一行,使程序出現(xiàn)多處類似的錯(cuò)誤,經(jīng)過(guò)在 vc 中的修改,程序得以正常的運(yùn)行6.6. 結(jié)論結(jié)論課程設(shè)計(jì)順利完成,題目所要求的功能也都一一實(shí)現(xiàn),可以對(duì)學(xué)生的缺課信息進(jìn)行添加,修改,刪除以及查詢的顯示。不過(guò)這個(gè)程序還有些不夠完善,例如不能往當(dāng)前文件夾中的 txt 文件中添加記錄。結(jié)束語(yǔ)結(jié)束語(yǔ)整個(gè)系統(tǒng)的設(shè)計(jì)過(guò)程對(duì)于我來(lái)說(shuō)算是個(gè)學(xué)習(xí)、探索的過(guò)程,

17、通過(guò)實(shí)踐和對(duì)比別人開(kāi)發(fā)程序的過(guò)程。在整個(gè)設(shè)計(jì)過(guò)程中,出現(xiàn)過(guò)很多的問(wèn)題,很多繁瑣的東西都需要反復(fù)的修改,主要是前期工作不徹底,對(duì)系統(tǒng)的需求分析的要求認(rèn)識(shí)不夠清楚,使得在后邊的工作中不得不經(jīng)常反復(fù)去修改。使我體會(huì)到設(shè)置中每一步的重要性。所以在分析一個(gè)問(wèn)題時(shí),我們需要站在一個(gè)有遠(yuǎn)見(jiàn)的高度。通過(guò)此次設(shè)計(jì),我不但對(duì) c 語(yǔ)言編程有了更深刻的認(rèn)識(shí),積累了使用軟件工程的思想來(lái)開(kāi)發(fā)軟件的經(jīng)驗(yàn),更重要的是學(xué)會(huì)了在對(duì)待問(wèn)題時(shí)應(yīng)該考慮到哪些方面和怎么解決問(wèn)題。雖然時(shí)間緊迫但我學(xué)會(huì)了很多,也感到自身知識(shí)的貧乏,希望在日后的努力中能做出更完善的系統(tǒng)。參考文獻(xiàn)參考文獻(xiàn)1譚浩強(qiáng).c 語(yǔ)言程序設(shè)計(jì)(第三版).清華大學(xué)出版社2

18、林碧英.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é)生缺課記錄圖 4 查詢學(xué)生缺課記錄4.查看單科曠課記錄圖 5 查看單科曠課記錄5.查看學(xué)生曠課記錄圖 6 查看學(xué)生曠課記錄6.儲(chǔ)存學(xué)生曠課記錄圖 7 儲(chǔ)存學(xué)生曠課記錄7.載入學(xué)生曠課記錄圖 8 載入學(xué)生曠課記錄8. 退出程序圖 9 退出程序附錄附錄 2 2源程

19、序源程序#include#include#include#define null 0#define len sizeof(struct student)int student_num;file *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;str

20、uct student *next;void chaxun(struct student *head)int i;char chaxun_name50;printf(請(qǐng)輸入要查詢的人名【若沒(méi)有這個(gè)人則不顯示】:); 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 請(qǐng)假次數(shù):%d 曠課次 數(shù):%dn,p-time,p-name,p-lesson_name,p

21、-lesson_time,p-chidao_num,p-zaotui_num,p-qingjia_num,p-kuangke_num);p=p-next; struct student *xiugai(struct 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

22、*)malloc(len);p1=head;if(head=null)printf(沒(méi)有學(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)

23、;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)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_n

24、ame);break;case 4:printf(請(qǐng)輸入新的第幾節(jié)缺課);scanf(%d,&p1-lesson_time);break;case 5:printf(請(qǐng)輸入新的遲到次數(shù));scanf(%d,&p1-chidao_num);break;case 6:printf(請(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; retu

25、rn(head);struct student *creat()int i,b;struct student *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

26、_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;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(str

27、uct 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(struct st

28、udent *head)struct student *p1,*p2,*p3;char lesson50;long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(len);if(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=p2-kuangke_num;p3-qing

29、jia_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_

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

31、-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,p1-kuangke_num);p1=p1-next; return(head);struct

32、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(沒(méi)有學(xué)生信息);return(head); printf(請(qǐng)輸入一共的學(xué)科數(shù):);scanf(%d,&n);for(i=0;in;i+)printf(請(qǐng)輸入第%d 個(gè)學(xué)科名稱:,i+1);scanf(%s,ai.xueke_name);ai.people_num=0; printf(請(qǐng)輸入要查

33、看的時(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;in-1-j;i+)if(ai.people_numai+1.people_num)zhongjian=ai+1.people_num;ai+1.people_n

34、um=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)fclose(fp1); break; printf(file read errorn);i+

溫馨提示

  • 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)論