九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

[計(jì)算機(jī)軟件及應(yīng)用]學(xué)生管理系統(tǒng)與車輛管理系統(tǒng) 課程設(shè)計(jì)報(bào)告

上傳人:仙*** 文檔編號(hào):27753512 上傳時(shí)間:2021-08-20 格式:DOC 頁(yè)數(shù):81 大?。?34KB
收藏 版權(quán)申訴 舉報(bào) 下載
[計(jì)算機(jī)軟件及應(yīng)用]學(xué)生管理系統(tǒng)與車輛管理系統(tǒng) 課程設(shè)計(jì)報(bào)告_第1頁(yè)
第1頁(yè) / 共81頁(yè)
[計(jì)算機(jī)軟件及應(yīng)用]學(xué)生管理系統(tǒng)與車輛管理系統(tǒng) 課程設(shè)計(jì)報(bào)告_第2頁(yè)
第2頁(yè) / 共81頁(yè)
[計(jì)算機(jī)軟件及應(yīng)用]學(xué)生管理系統(tǒng)與車輛管理系統(tǒng) 課程設(shè)計(jì)報(bào)告_第3頁(yè)
第3頁(yè) / 共81頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《[計(jì)算機(jī)軟件及應(yīng)用]學(xué)生管理系統(tǒng)與車輛管理系統(tǒng) 課程設(shè)計(jì)報(bào)告》由會(huì)員分享,可在線閱讀,更多相關(guān)《[計(jì)算機(jī)軟件及應(yīng)用]學(xué)生管理系統(tǒng)與車輛管理系統(tǒng) 課程設(shè)計(jì)報(bào)告(81頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 通信工程學(xué)院課程設(shè)計(jì)報(bào)告 姓名:陳志 學(xué)號(hào):52101610 專業(yè):通信工程 班級(jí):10級(jí)16班 (車輛管理系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告) 目錄1. 課程設(shè)計(jì)任務(wù)22.設(shè)計(jì)結(jié)構(gòu)圖與流程圖.23.程序代碼設(shè)計(jì).51.1 頭文件.51.2 源文件.54.編碼與調(diào)試分析55.使用說(shuō)明及運(yùn)行結(jié)果66.課程設(shè)計(jì)心得體會(huì).77.附錄(程序清單).81.課程設(shè)計(jì)任務(wù)1.1實(shí)驗(yàn)?zāi)康氖褂肅語(yǔ)言實(shí)現(xiàn)交通車輛違章管理系統(tǒng)的違章信息錄入、違章情況查詢、針對(duì)每臺(tái)車輛統(tǒng)計(jì)罰款總金額等基本操作。進(jìn)一步鞏固C語(yǔ)言的學(xué)習(xí),培養(yǎng)一定的綜合編程能力。1.2需要處理的基礎(chǔ)數(shù)據(jù)設(shè)違章種類分為違章停車、闖紅燈、超速等三種。設(shè)違章停車每次罰款1

2、00元、闖紅燈每次罰款200元、超速每次罰款500元。需處理的車輛及違章基本信息包括:車牌號(hào)、車主姓名、違章停車次數(shù)、闖紅燈次數(shù)、超速次數(shù)。1.3系統(tǒng)功能1車輛及違章信息的錄入。2基于車牌號(hào)查詢每臺(tái)車輛的違章情況。3基于車牌號(hào)統(tǒng)計(jì)每臺(tái)車輛的罰款總金額。2.設(shè)計(jì)結(jié)構(gòu)圖與流程圖 2.1設(shè)計(jì)結(jié)構(gòu)圖 程序設(shè)計(jì)圖分幾個(gè)小模塊,下面是程序的簡(jiǎn)易結(jié)構(gòu)圖 輸入0結(jié)束輸入并推出系統(tǒng),輸入1繼續(xù) !車輛管理系統(tǒng)輸入車輛信息輸入車牌號(hào)查詢其違章情況輸入車牌號(hào)統(tǒng)計(jì)其罰款總金額2.2程序設(shè)計(jì)流程圖 開始輸入車輛信息輸入為1嗎?是輸入車牌號(hào)查詢其違章情況輸入為1碼?輸入車牌號(hào)統(tǒng)計(jì)該臺(tái)車輛的罰款總金額否是否輸入為1碼? 結(jié)

3、束是否 3.程序代碼設(shè)計(jì) 3.1 頭文件 為了使用系統(tǒng)中一些函數(shù),引入一些系統(tǒng)函數(shù)的頭文件#include#include定義一個(gè)車輛結(jié)構(gòu)體,用來(lái)記錄車輛的相關(guān)信息:typedef struct Pechar vno8;/*車牌號(hào)*/char name15; /*車主姓名*/int times1;/*違章停車次數(shù)*/int times2;/*闖紅燈次數(shù)*/int times3;/*超速次數(shù)*/PECCANCY;之后就是編寫的程序,該程序?yàn)槲炊x其他的函數(shù),所有功能都是在main函數(shù)中實(shí)現(xiàn)!3.2 源文件 該系統(tǒng)只有一個(gè)mian函數(shù),無(wú)定義函數(shù)和自定義函數(shù).4.編碼與調(diào)試分析1).剛設(shè)計(jì)時(shí),本來(lái)

4、設(shè)計(jì)了很多的小函數(shù)來(lái)實(shí)現(xiàn)各個(gè)分功能,不過(guò)遇到了困難,就是各個(gè)分函數(shù)不能共享數(shù)據(jù),于是就改成在一個(gè)主函數(shù)實(shí)現(xiàn)所有的功能.2).還有每次用戶輸入完一項(xiàng)功能,詢問(wèn)是否繼續(xù),如果不繼續(xù),就自動(dòng)進(jìn)入下一個(gè)功能.5. 使用說(shuō)明及運(yùn)行結(jié)果5.1 進(jìn)入系統(tǒng)界面提示輸入車輛信息,如下:5.2 之后按0結(jié)束輸入,或按1繼續(xù)錄入信息! 按0進(jìn)入查詢車輛信息界面.如下:5.3 同樣根據(jù)提示繼續(xù)查詢按1,否則按0結(jié)束查詢,輸入1進(jìn)入根據(jù)車牌號(hào)查詢?cè)撥嚳偭P款金額,如下:5.4 按1繼續(xù)查詢其他車輛的總罰款金額,按0退出系統(tǒng)!6. 課程設(shè)計(jì)心得體會(huì) 通過(guò)自己編寫車輛違章管理系統(tǒng)這一程序,讓我學(xué)會(huì)了很多。以前學(xué)C語(yǔ)言、C+時(shí)

5、,自己只是會(huì)運(yùn)用所學(xué)的知識(shí)編寫一些非常簡(jiǎn)單的程序,從沒(méi)有編寫過(guò)較大的程序,更別說(shuō)編寫一車輛管理系統(tǒng)了,不過(guò)這次通過(guò)自己的努力以及老師的精心指導(dǎo),成功的做出了車輛管理系統(tǒng),雖然該系統(tǒng)功能較少,但畢竟是我自己通過(guò)所學(xué)的知識(shí)做出的產(chǎn)品,看著一個(gè)個(gè)數(shù)據(jù)的輸入,之后得到了自己想要的結(jié)果,一種成就感從心里油然而生,同時(shí)讓我發(fā)現(xiàn)了編程中更大的樂(lè)趣,本來(lái)我對(duì)編程就挺感興趣,通過(guò)此次實(shí)踐,讓我對(duì)編程越來(lái)越感興趣了,當(dāng)然編程過(guò)程中也遇到了一些困難,通過(guò)自己的努力以及老師的指導(dǎo)與幫助,一個(gè)個(gè)困難都迎刃而解了,讓我學(xué)會(huì)很多東西,同時(shí)讓我明白了編程要細(xì)心,否則調(diào)試程序時(shí)會(huì)帶來(lái)沒(méi)必要的困難,總而言之,此次編程設(shè)計(jì)讓我受益

6、匪淺!,希望我的編程能力越來(lái)越高,將來(lái)能在激烈的社會(huì)競(jìng)爭(zhēng)中脫穎而出 !7.附錄(程序清單)#include#include#define p 1000typedef struct Pechar vno8;/*車牌號(hào)*/char name15; /*車主姓名*/int times1;/*違章停車次數(shù)*/int times2;/*闖紅燈次數(shù)*/int times3;/*超速次數(shù)*/PECCANCY;void main() int i,e,a,c,d,m=0,n=0,s;char k8,j8; PECCANCY bp; cout輸入車輛信息endl; for(i=0;ip;i+) cout輸入車牌號(hào)

7、:bi.vno; cout輸入車主姓名:bi.name; cout輸入違章停車次數(shù):bi.times1; cout輸入闖紅燈次數(shù):bi.times2; cout輸入超速次數(shù):bi.times3; cout輸入0結(jié)束錄入,輸入1繼續(xù)錄入車輛信息a; if(a=0) break; coutendl;coutendl;coutendl; cout輸入車牌號(hào)查詢其違章情況endl; for(e=0;ep;e+) m=0; cout輸入車牌號(hào):j; for(i=0;ip;i+) if(strcmp(j,bi.vno)=0) cout車主姓名:bi.nameendl違章停車次數(shù):bi.times1endl

8、 闖紅燈次數(shù):bi.times2endl超速次數(shù):bi.times3endl; m=1; break; if(m!=1) cout未找到符合條件的車輛endl; cout輸入0結(jié)束查詢,輸入1繼續(xù)輸入車牌號(hào)查詢c; if(c=0) break; coutendl;coutendl;coutendl;cout輸入車牌號(hào)統(tǒng)計(jì)該臺(tái)車輛的罰款總金額endl;for(e=0;ep;e+) n=0; cout輸入車牌號(hào):k;for(i=0;ip;i+) if(strcmp(k,bi.vno)=0)s=(bi.times1)*100+(bi.times2)*200+(bi.times3)*500; cout

9、車牌號(hào)為k的罰款總金額為:sendl; n=1; break; if(n!=1) cout未找到該車牌號(hào)!endl; cout輸入0結(jié)束輸入并退出該系統(tǒng),輸入1繼續(xù)查詢d; if(d=0) break; (學(xué)生管理系統(tǒng)課程設(shè)計(jì)報(bào)告) 目錄1.課程設(shè)計(jì)任務(wù).132設(shè)計(jì)結(jié)構(gòu)圖及流程圖143程序代碼設(shè)計(jì).203.1頭文件.203.2源文件.214編碼與調(diào)試分析.225使用說(shuō)明及運(yùn)行結(jié)果.226課程設(shè)計(jì)心得體會(huì).297附錄(程序清單).301.課程設(shè)計(jì)任務(wù)1.1實(shí)驗(yàn)?zāi)康氖褂脴?biāo)準(zhǔn)C或C+實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)的錄入、查詢、刪除、統(tǒng)計(jì)等基本操作。進(jìn)一步鞏固C語(yǔ)言的學(xué)習(xí),以提高學(xué)生對(duì)開發(fā)環(huán)境的進(jìn)一步認(rèn)識(shí)和綜合

10、編程能力。1.2需要處理的基礎(chǔ)數(shù)據(jù)學(xué)生基本信息:學(xué)號(hào)(例如2003級(jí)12班6號(hào)寫作20031206)、姓、名、性別、出生年月日、課程名稱(外語(yǔ)SCORE0、高數(shù)SCORE1、C語(yǔ)言SCORE2、馬哲SCORE3)、考試成績(jī)等。1.3系統(tǒng)功能1學(xué)生基本情況錄入。2允許對(duì)已經(jīng)錄入的數(shù)據(jù)進(jìn)行顯示。3允許進(jìn)行數(shù)據(jù)的插入。4刪除基本數(shù)據(jù)的相關(guān)信息。5基于姓名的查詢。如:姓張的所有同學(xué)。6. 對(duì)性別、出生年月日的合理性進(jìn)行判斷(如0代表“女”,1代表“男”,輸入其他值非法,年齡不能為負(fù),月份不能大于13等)7基于各種基本數(shù)據(jù)的統(tǒng)計(jì)計(jì)算。如:統(tǒng)計(jì)每個(gè)學(xué)生各門功課的平均成績(jī),并按平均成績(jī)從高到低的次序排名輸出

11、每個(gè)學(xué)生各門功課的綜合成績(jī)和平均成績(jī)(名次、學(xué)號(hào)、姓名、平均成績(jī)、各門功課的考試成績(jī))。列出90分以上(包括90)、80分以上(包括80)、70分以上(包括70)、60分以上(包括60)、不及格學(xué)生清單(學(xué)號(hào)、姓名、不及格的課程和成績(jī))。統(tǒng)計(jì)并輸出各門功課的平均成績(jī)和總平均成績(jī)。按班級(jí)統(tǒng)計(jì)并輸出總成績(jī)。(需要對(duì)學(xué)號(hào)進(jìn)行解析)2.設(shè)計(jì)結(jié)構(gòu)圖及流程圖2.1程序設(shè)計(jì)結(jié)構(gòu)圖如下: 學(xué)生課程管理系統(tǒng)輸入學(xué)生信息刪除學(xué)生信息插入學(xué)生信息修改學(xué)生信息學(xué)生成績(jī)排名輸出學(xué)生信息學(xué)生成績(jī)計(jì)算保存學(xué)生信息學(xué)生成績(jī)排名顯示學(xué)生信息讀入學(xué)生信息查詢學(xué)生信息按學(xué)號(hào)查詢按學(xué)生姓查找按學(xué)生班級(jí)查找 2.2 程序設(shè)計(jì)流程圖如下

12、: 各函數(shù)塊流程圖:創(chuàng)建函數(shù)creat_stu()P1-num=0?N對(duì)p1新空間賦值,p2=p1,p2-next=p1Y結(jié)束開辟一空間使*p1,*p2指向它開辟一新空間*p1指向它開始對(duì)*p1指向的空間賦值,取出P1-num的值查找函數(shù)search_NO()開始獲得頭指針headP=head-next輸入一要查找的姓名/學(xué)號(hào)給數(shù)組a15a15是否等于P-num/p-name?查找成功調(diào)用打印輸出結(jié)束P=P-nextYN插入函數(shù)insert_stu()開始創(chuàng)建一新空間給*PP對(duì)*PP空間賦值P=head-nextPP-sumsum?P=P-next將*PP鏈結(jié)接于*P后是否繼續(xù)插入?結(jié)束NYY

13、N開始聲明變量:a=0,b=0。c=0,d=0,e=0a+b+c+e+d+sum=90?Sum=80?Sum=70?Sum=60?輸出個(gè)分?jǐn)?shù)段人數(shù),a,b,c,d,e的值結(jié)束YNYYYNNN按分?jǐn)?shù)段輸出函數(shù)jieduan()其他函數(shù)過(guò)于簡(jiǎn)單就不再畫出其流程圖。3程序代碼設(shè)計(jì)3.1 頭文件先是,為了用到一些系統(tǒng)函數(shù),所以引用一些庫(kù)文件: #include #include #include #define PF printf#include time.h 下一個(gè)就是存放學(xué)生的基本信息,包括指向下一個(gè)節(jié)點(diǎn)的指針.定義了一個(gè)學(xué)生結(jié)構(gòu)體用來(lái)存放學(xué)生基本信息:typedef struct St1 cha

14、r IDNumber16;/*學(xué)號(hào)*/ char FamilyName16; /*姓*/ char GivenName16; /*名*/ int sex; /*性別(0代表女,1代表男)*/ int BirthYear; /*出生年*/ int BirthMonth; /*出生月*/ int BirthDay; /*出生日*/ float score0,score1,score2,score3; /*成績(jī)*/ float sum; /*總分*/ float average; /*平均分*/ struct St1 *next; StudentNode;3.2 源文件,包括自己定義的函數(shù) void

15、 show_menu(); /顯示菜單void menu(); /執(zhí)行菜單void creat_stu(); /建立鏈表 void input_stu(); /輸入學(xué)生信息void print_stu(); /顯示鏈表中所有記錄信息void search_NO(); /以學(xué)號(hào)方式查詢信息void search_name(); /以姓方式查詢信息void arrage_stu(); /學(xué)生成績(jī)排名void del_stu(); /刪除學(xué)生信息void revise_stu(); /修改學(xué)生信息void save(); /保存信息void jisuan(); /計(jì)算所有學(xué)生的以及各科總分和均分 v

16、oid search_clas(); /按班級(jí)查詢顯示學(xué)生信息 void insert_stu(); /插入學(xué)生記錄到表中void sort(float x,int n); /對(duì)學(xué)生按總分進(jìn)行從高到底排序void search_allscore(); /按學(xué)生總成績(jī)查詢,用來(lái)輸出排名信息void jieduan(); /用來(lái)輸出按平均分階段輸出信息,其中用了按 平均分輸出信息的程序。void Loadf(); /從文件中讀出所有學(xué)生記錄4編碼與調(diào)試分析 本程序比較大,調(diào)試過(guò)程中遇到了許多困難,在這里只是列舉少部分.我程序中按學(xué)生總分排名是先將所有學(xué)生的總分放在一個(gè)全局?jǐn)?shù)組中,然后再用冐泡法排序

17、,不過(guò)我先前沒(méi)有將該數(shù)組寫入文件,所以當(dāng)退出系統(tǒng)重進(jìn)系統(tǒng)后,從文件中讀入數(shù)據(jù)后,該系統(tǒng)排序功能不好用了.后來(lái)我就將該數(shù)組也保存到文件中去,不過(guò)此時(shí)又遇到了困難,我先是將數(shù)組一下寫入文件,后來(lái)出錯(cuò)了.文件中各數(shù)據(jù)完全不匹配了,后來(lái)我采用循環(huán)的方式一個(gè)個(gè)將數(shù)組中的數(shù)據(jù)寫入文件中保存起來(lái),就解決了該問(wèn)題!還有就是當(dāng)我編譯時(shí)沒(méi)有錯(cuò)誤,運(yùn)行時(shí)系統(tǒng)就彈出一個(gè)對(duì)話框說(shuō)莫莫數(shù)據(jù)不匹配,后來(lái)我發(fā)現(xiàn)原來(lái)是運(yùn)用輸入函數(shù)scanf時(shí),要求數(shù)據(jù)類型與要輸入的數(shù)據(jù)類型不同,不過(guò)編譯器不能查出這個(gè)文題,所以以后編程時(shí)一定注意這個(gè)問(wèn)題! 總之, 編碼與調(diào)試分析部分是編程步驟中非常重要的一部分,是一個(gè)程序能投入使用必須執(zhí)行的部

18、分,非常重要!5使用說(shuō)明及運(yùn)行結(jié)果 5.1 進(jìn)入系統(tǒng)界面如下:輸入1,進(jìn)行學(xué)生信息的錄入,年份輸入必須保證人的年齡在0-100歲之間,月份不大于31,否則提示重新輸入!如下:每次結(jié)束一個(gè)操作后,菜單界面就會(huì)自動(dòng)彈出,而且操作完后自動(dòng)保存數(shù)據(jù).輸入2時(shí),進(jìn)行刪除學(xué)生操作!如下:每次刪除時(shí)會(huì)提示出你要?jiǎng)h除的學(xué)生記錄,并提示刪除完畢保存!菜單3是顯示文件中已經(jīng)保存所有學(xué)生的記錄,界面如下:圖片太小,下面還有所有的學(xué)生記錄!菜單4是按學(xué)生的姓查找學(xué)生記錄,輸入輸出界面如下:該操作可以找出該姓的所有學(xué)生記錄并顯示出來(lái)!輸入5將數(shù)據(jù)保存到文件中,操作界面如下:輸入6就是從文件中讀入數(shù)據(jù)并顯示出來(lái),該界面就

19、不給出了!輸入7來(lái)計(jì)算所有學(xué)生各科總分和均分,輸入輸出界面如下:輸入8按班級(jí)查詢學(xué)生記錄,該功能可以輸出該班級(jí)(學(xué)生學(xué)號(hào)按20101601格式書寫只要輸入前六位就是班級(jí))所有學(xué)生記錄!操作界面如下:輸入9就是插入學(xué)生記錄,該界面就不顯示了,注意插入學(xué)生記錄是插入到最后一天記錄!輸入10是按學(xué)號(hào)查詢學(xué)生信息,只要輸入學(xué)生學(xué)號(hào)就可以找到該學(xué)生,如沒(méi)找到,會(huì)給出錯(cuò)誤提示,該功能每個(gè)步驟都有!,該界面和按班級(jí)查找差不多,此處也不給出了.輸入11,給學(xué)生排名,并按名次從高到低顯示出來(lái)!界面如下:輸入12是修改學(xué)生信息,該界面是先提示輸入要修改學(xué)生的學(xué)號(hào),然后顯示要修改的學(xué)生的全部信息確認(rèn)一下,后輸入正確

20、的信息,改后自動(dòng)保存!該界面也不給出了! 輸入13時(shí)按平均分分段輸出學(xué)生信息,界面如下:輸入0是退出該系統(tǒng)! 到這里該系統(tǒng)所有功能影示完畢,操作非常簡(jiǎn)單,該系統(tǒng)具備對(duì)學(xué)生管理的全部基礎(chǔ)操作,具有可行性!而且非常具有人性化!歡迎使用!6課程設(shè)計(jì)心得體會(huì)本次實(shí)驗(yàn),就是一個(gè)較大的C語(yǔ)言編程。以前,我們編寫一些小程序都是一些小函數(shù),不存在一個(gè)特定功能的系統(tǒng)。因此,在編寫調(diào)試時(shí)不需要懂得太多的調(diào)試技巧。這次實(shí)驗(yàn)編寫的是一個(gè)系統(tǒng),代碼相對(duì)較多,函數(shù)調(diào)用頻繁,對(duì)各個(gè)函數(shù)的兼容性調(diào)試,是很大的一項(xiàng)工程。整個(gè)系統(tǒng),一開始以為很大了對(duì)我們是個(gè)不小的考驗(yàn)。后面自己分析之后,發(fā)現(xiàn)不過(guò)就是一個(gè)一個(gè)的小函數(shù)拼接而成,沒(méi)有

21、什么難的。在對(duì)一個(gè)一個(gè)功能函數(shù),調(diào)試正確后,變開始設(shè)計(jì)界面,組裝函數(shù)為系統(tǒng)。在這過(guò)程中確實(shí)遇到了不少的麻煩但大多是些語(yǔ)法錯(cuò)誤,幾經(jīng)調(diào)試也就好了。系統(tǒng)的完善。在基本功能無(wú)誤后,開始想辦法把系統(tǒng)做的更人性化一點(diǎn)。就比如,在每次函數(shù)輸出后,進(jìn)行清屏使每次實(shí)現(xiàn)新功能時(shí),是在獨(dú)自的屏幕下進(jìn)行。對(duì)系統(tǒng)的退出進(jìn)行提示,以免誤動(dòng)作退出系統(tǒng)。將性別輸出的字符型,改成漢子的男/女輸出,這在人性方面無(wú)疑是便于操作的。要說(shuō)這次實(shí)驗(yàn)最大獲得是什么,就是調(diào)試,調(diào)試,再調(diào)試。完善,完善,在完善。還有就是提高了我對(duì)編程的興趣!希望自己的編程能力越來(lái)越好,將來(lái)可以在激烈的社會(huì)競(jìng)爭(zhēng)中脫穎而出!7.附錄(程序清單)#include

22、 #include #include #define PF printf#include time.h #define LEN sizeof(struct St1)/定義結(jié)構(gòu)體/typedef struct St1 char IDNumber16;/*學(xué)號(hào)*/ char FamilyName16; /*姓*/ char GivenName16; /*名*/ int sex; /*性別(0代表女,1代表男)*/ int BirthYear; /*出生年*/ int BirthMonth; /*出生月*/ int BirthDay; /*出生日*/ float score0,score1,scor

23、e2,score3; /*成績(jī)*/ float sum; /*總分*/ float average; /*平均分*/ struct St1 *next; StudentNode;int time()struct tm* ptm;long ts;int y,m,d,h,n,s;ts = time(NULL); ptm = localtime(&ts); y = ptm- tm_year+1900; /年 m = ptm- tm_mon+1; /月d = ptm- tm_mday; /日h = ptm- tm_hour; /時(shí)n = ptm- tm_min; /分s = ptm- tm_sec;

24、/秒return(y); StudentNode *head=NULL; /全局指針 int n,i=0,c=0,d=0,j=0; /全局變量 j在函數(shù)中作數(shù)組下標(biāo)或循環(huán)變量 c為總分?jǐn)?shù)組中元素個(gè)數(shù) d為平均分?jǐn)?shù)組元素個(gè)數(shù)float English=0.0,Math=0.0,C=0.0,Mazhe=0.0,Sum100,Avr100; /全局變量/自定義函數(shù)/void show_menu(); /顯示菜單void menu(); /執(zhí)行菜單void creat_stu(); /建立鏈表 void input_stu(); /輸入學(xué)生信息void print_stu(); /顯示鏈表中所有記錄信

25、息void search_NO(); /以學(xué)號(hào)方式查詢信息void search_name(); /以姓方式查詢信息void arrage_stu(); /學(xué)生成績(jī)排名void del_stu(); /刪除學(xué)生信息void revise_stu(); /修改學(xué)生信息void save(); /保存信息void jisuan(); /計(jì)算所有學(xué)生的以及各科總分和均分 void search_clas(); /按班級(jí)查詢顯示學(xué)生信息 void insert_stu(); /插入學(xué)生記錄到表中void sort(float x,int n); /對(duì)學(xué)生按總分進(jìn)行從高到底排序void search_a

26、llscore(); /按學(xué)生總成績(jī)查詢,用來(lái)輸出排名信息void jieduan(); /用來(lái)輸出按平均分階段輸出信息,其中用了按平均分輸出信息的程序。void Loadf(); /從文件中讀出所有學(xué)生記錄void main() printf(*); printf(n);printf( 歡迎來(lái)到學(xué)生管理系統(tǒng) !); printf(n); printf(n); printf( 制作人:陳志52101610); creat_stu(); menu();/*創(chuàng)建鏈表*void creat_stu() FILE *fp; long size; StudentNode *p1,*p2; head=(S

27、tudentNode *)malloc(sizeof(StudentNode); head-next=NULL; if(fp=fopen(fname.txt,r)=NULL) printf(這是新表n); return; fseek(fp,0L,2); size=ftell(fp); if(!size) printf(這是空表n); return; /開始創(chuàng)建鏈表 rewind(fp); /移動(dòng)到文件首 p2=head-next; /找到當(dāng)前位置 while(!feof(fp) p1=(StudentNode *)malloc(sizeof(StudentNode); fscanf(fp,%s

28、 %s %s %d %d %d %d %f %f %f %f %f %fn,p1-IDNumber,p1-FamilyName,p1-GivenName, &p1-sex,&p1-BirthYear,&p1-BirthMonth,&p1-BirthDay,&p1-score0,&p1-score1,&p1-score2,&p1-score3,&p1-sum, &p1-average); p1-next=NULL; /創(chuàng)建節(jié)點(diǎn)完 if(head-next=NULL) head-next=p1; else p2-next=p1; p2=p1; n+; p2-next=NULL; fclose(fp

29、);/*執(zhí)行菜單*void menu() int c; show_menu(); while(1) scanf(%d,&c); switch(c) getchar();case 1:input_stu();break;case 2:del_stu(); break;case 3:print_stu();break;case 4:search_name(); break;case 5:save();break;case 6:Loadf();break;case 7:jisuan(); break;case 8:search_clas(); break;case 9:insert_stu() ;

30、break;case 10:search_NO(); break;case 11:arrage_stu();break;case 12:revise_stu(); break;case 13:jieduan();break;case 0:exit(0); /執(zhí)行菜單選項(xiàng) show_menu(); /*顯示菜單*void show_menu() PF(n); PF(n*菜單*n); PF(tt* 1.輸 入 學(xué) 生 信 息 *n); PF(tt* 2.刪 除 學(xué) 生 信 息 *n); PF(tt* 3.顯示鏈表中所有記錄信息 *n); PF(tt* 4.按照學(xué)生的姓查找記錄 *n); PF(tt

31、* 5.將鏈表中記錄保存到文件中 *n); PF(tt* 6.從文件中讀入記錄 *n); PF(tt* 7.計(jì)算所有學(xué)生以及各科總分和均分 *n); PF(tt* 8.按班級(jí)查詢顯示學(xué)生信息 *n); PF(tt* 9.插入記錄到表中 *n); PF(tt* 10.按學(xué)號(hào)查詢學(xué)生信息 *n); PF(tt* 11.學(xué)生成績(jī)排名 *n); PF(tt* 12.修改學(xué)生信息 *n); PF(tt* 13.按平均分階段輸出學(xué)生信息 *n); PF(tt* 0. 退 出 *n); PF(*n); PF(n請(qǐng)選擇n);/*輸入學(xué)生信息*void input_stu() /輸入學(xué)生信息float a,b;

32、 /a,b分別用來(lái)存放該生的各科總成績(jī)和平均成績(jī)int y,j;y=time(); n=0; StudentNode *p1=NULL,*p2=NULL; p1=( StudentNode *)malloc(sizeof(StudentNode); PF(n*輸入學(xué)生信息*n); /輸入學(xué)生信息 PF(tt輸入學(xué)生學(xué)號(hào):t); scanf(%s,p1-IDNumber); /學(xué)號(hào) PF(tt輸入學(xué)生的姓:t); scanf(%s,p1-FamilyName); /姓 PF(tt輸入學(xué)生的名:t); scanf(%s,p1-GivenName); /名 PF(tt輸入學(xué)生性別(0代表女,1代表男

33、):t); scanf(%d,&p1-sex); /性別 for(j=0;j+) /判斷輸入年份是否合理,假設(shè)人年齡在0-100歲之間為正常 PF(tt輸入學(xué)生出生年:t); scanf(%d,&p1-BirthYear); /出生年 if(y-p1-BirthYear)100|(p1-BirthYeary) PF(tt年份輸入錯(cuò)誤不符合要求,請(qǐng)重新輸入出生年份:t); else break;for(j=0;j+) /判斷輸入月份是否合理 PF(tt輸入學(xué)生出生月:t); scanf(%d,&p1-BirthMonth); /出生月 if(p1-BirthMonthBirthMonth12)

34、PF(tt月份輸入錯(cuò)誤不符合要求,請(qǐng)重新輸入出生月份:t); else break;for(j=0;j+) / 判斷輸入出生日是否合理 PF(tt輸入學(xué)生出生日:t); scanf(%d,&p1-BirthDay); /出生日 if(p1-BirthDayBirthDay31) PF(tt出生日輸入錯(cuò)誤不符合要求,請(qǐng)重新輸入出生日:t); else break; PF(tt輸入學(xué)生的外語(yǔ)成績(jī):t); scanf(%f,&p1-score0); /各科成績(jī) PF(tt輸入學(xué)生的數(shù)學(xué)成績(jī):t); scanf(%f,&p1-score1); PF(tt輸入學(xué)生的C語(yǔ)言成績(jī):t); scanf(%f,

35、&p1-score2); PF(tt輸入學(xué)生的馬哲成績(jī):t); scanf(%f,&p1-score3); a=p1-score0+p1-score1+p1-score2+p1-score3; /求該生的各科總成績(jī) b=(a/4); /求該生的平均成績(jī) p1-sum=a; p1-average=b; English=English+p1-score0; /求學(xué)生英語(yǔ)總分 Math=Math+p1-score1; /求學(xué)生數(shù)學(xué)總分 C=C+p1-score2; /求學(xué)生C語(yǔ)言總分 Mazhe=Mazhe+p1-score3; /求學(xué)生馬哲總分 Sumc+=a; /將各學(xué)生的總成績(jī)輸入到一個(gè)全局?jǐn)?shù)

36、組當(dāng)中,方便按成績(jī)排序 Avrd+=b; /將個(gè)學(xué)生的平均分輸入到一個(gè)全局?jǐn)?shù)組中存放 n+; if(head-next=NULL) head=(StudentNode *)malloc(LEN); head-next=p1; else for(p2=head;p2-next!=NULL;p2=p2-next); /*找到最后的結(jié)點(diǎn),然后 將增加的結(jié)點(diǎn)掛在它上面*/ p2-next=p1; p1-next=NULL; save();/保存到文件/*顯示鏈表中所有記錄學(xué)生信息*void print_stu() /學(xué)生信息瀏覽StudentNode *p=NULL; if(head=NULL) /判

37、斷鏈表是否為空 PF(文檔中無(wú)記錄!n); return; for(p=head-next;p!=NULL;p=p-next) /讀出信息 PF(*查看鏈表中所有記錄學(xué)生信息*n); PF(t學(xué)生學(xué)號(hào):t%sn,p-IDNumber); PF(t學(xué)生姓:t%sn,p-FamilyName); PF(t學(xué)生名:t%sn,p-GivenName); PF(t學(xué)生性別:t%dn,p-sex); PF(t學(xué)生出生年:t%dn,p-BirthYear); PF(t學(xué)生出生月:t%dn,p-BirthMonth); PF(t學(xué)生出生日:t%dn,p-BirthDay); PF(t學(xué)生英語(yǔ)成績(jī):t%fn,p

38、-score0); PF(t學(xué)生數(shù)學(xué)成績(jī):t%fn,p-score1); PF(t學(xué)生C語(yǔ)言成績(jī):t%fn,p-score2); PF(t學(xué)生馬哲成績(jī):t%fn,p-score3); PF(t學(xué)生總成績(jī):t%fn,p-sum); PF(t學(xué)生平均成績(jī):t%fn,p-average); PF(n); /輸出信息 PF(t各個(gè)學(xué)生總分分別為:); for(n=0;nc;n+) PF(%ft,Sumn); PF(n); PF(t各個(gè)學(xué)生平均分分別為:); for(n=0;nnext;p!=NULL;p=p-next) /讀出信息 if(!strcmp(p-FamilyName, FamilyName

39、) PF(tt您查找的學(xué)生有:n); PF(n); PF(tt學(xué)生學(xué)號(hào):t%sn,p-IDNumber); PF(tt學(xué)生姓:t%sn,p-FamilyName); PF(tt學(xué)生名:t%sn,p-GivenName); PF(tt學(xué)生性別:t%dn,p-sex); PF(tt學(xué)生出生年:t%dn,p-BirthYear); PF(tt學(xué)生出生月:t%dn,p-BirthMonth); PF(tt學(xué)生出生日:t%dn,p-BirthDay); PF(tt學(xué)生英語(yǔ)成績(jī):t%fn,p-score0); PF(tt學(xué)生數(shù)學(xué)成績(jī):t%fn,p-score1); PF(tt學(xué)生C語(yǔ)言成績(jī):t%fn,p-

40、score2); PF(tt學(xué)生馬哲成績(jī):t%fn,p-score3); PF(tt學(xué)生總成績(jī):t%fn,p-sum); PF(tt學(xué)生平均成績(jī):t%fn,p-average); PF(n); i=1; /輸出信息 if(i!=1) PF(無(wú)該姓氏學(xué)生信息!請(qǐng)查證:); /沒(méi)找到信息時(shí)的處理 /*按照學(xué)生學(xué)號(hào)信息查找*void search_NO() /學(xué)生學(xué)號(hào)信息查找int i=0;StudentNode *p=NULL; char IDNumber20; if(head=NULL) /判斷鏈表是否為空 PF(文檔中無(wú)記錄!n); return; PF(請(qǐng)輸入學(xué)生學(xué)號(hào):); scanf(%s

41、,IDNumber); for(p=head-next;p!=NULL;p=p-next) /讀出信息 if(!strcmp(p-IDNumber,IDNumber) PF(tt您查找的學(xué)生是:n); PF(n); PF(tt學(xué)生學(xué)號(hào):t%sn,p-IDNumber); PF(tt學(xué)生姓:t%sn,p-FamilyName); PF(tt學(xué)生名:t%sn,p-GivenName); PF(tt學(xué)生性別:t%dn,p-sex); PF(tt學(xué)生出生年:t%dn,p-BirthYear); PF(tt學(xué)生出生月:t%dn,p-BirthMonth); PF(tt學(xué)生出生日:t%dn,p-Birth

42、Day); PF(tt學(xué)生英語(yǔ)成績(jī):t%fn,p-score0); PF(tt學(xué)生數(shù)學(xué)成績(jī):t%fn,p-score1); PF(tt學(xué)生C語(yǔ)言成績(jī):t%fn,p-score2); PF(tt學(xué)生馬哲成績(jī):t%fn,p-score3); PF(tt學(xué)生總成績(jī):t%fn,p-sum); PF(tt學(xué)生平均成績(jī):t%fn,p-average); PF(n); i=1; /輸出信息 if(!i) PF(無(wú)該生信息!請(qǐng)查證:); /沒(méi)找到信息時(shí)的處理 /*按照學(xué)生班級(jí)統(tǒng)計(jì)并輸出總成績(jī)*void search_clas() /學(xué)生學(xué)號(hào)信息查找int i=0,j=0;StudentNode *p=NULL

43、; char a6,b6; if(head=NULL) /判斷鏈表是否為空 PF(文檔中無(wú)記錄!n); return; PF(請(qǐng)輸入學(xué)生班級(jí):); scanf(%s,a); for(p=head-next;p!=NULL;p=p-next) /讀出信息 for(j=0;jIDNumberj; if(a0=b0&a1=b1&a2=b2&a3=b3&a4=b4&a5=b5) PF(tt您查找的班級(jí)學(xué)生有:n); PF(n); PF(tt學(xué)生學(xué)號(hào):t%sn,p-IDNumber); PF(tt學(xué)生姓:t%sn,p-FamilyName); PF(tt學(xué)生名:t%sn,p-GivenName); PF(tt學(xué)生性別:t%dn,p-sex); PF(tt學(xué)生出生年:t%dn,p-BirthYear); PF(tt學(xué)生出生月:t%dn,p-BirthMonth); PF(tt學(xué)生出生日:t%dn,p-BirthDay); PF(tt學(xué)生英語(yǔ)成績(jī):t%fn,p-score0); PF(tt學(xué)生數(shù)學(xué)成績(jī):t%fn,p-score1); PF(tt學(xué)生C語(yǔ)言成績(jī):t%fn,p-score2); PF(tt學(xué)生馬哲成績(jī):t%fn,p-score3); PF(tt學(xué)生總成績(jī):t%fn,p-sum); PF(tt學(xué)

展開閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!