版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、C語言程序設計課程設計報告設計題目:教師工資管理系統(tǒng)班 級 學 號 姓 名 指導教師 起止時間 2010-10-26 至 2010-12-26 15設計任務 該系統(tǒng)包含教師的基本信息,供讀者查詢。建立一個文件,包括老師的信息,包括:教師號、姓名、性別、單位名稱、家庭住址、聯(lián)系電話、基本工資、津貼、生活補貼、應發(fā)工資、電話費、水電費、房租、所得稅、衛(wèi)生費、公積金等。讀者可以輸入教師信息、插入教師信息、刪除教師信息、瀏覽教師信息、查詢教師信息和修改教師信息。同時讀者可以將之前錄入的教師信息保存下來,然后關閉程序后,再次打開后只需加載教師信息就可以了。 更加方便以后程序。 評語(教師填寫) 目 錄設
2、計任務2評語(教師填寫)21.課程設計目的42.課程設計題目.53.功能描述64.數(shù)據(jù)結構設計85.功能模塊設計105.1主控模塊設計105.2 輸入記錄模塊115.3 插入記錄模塊115.4 刪除記錄模塊126.函數(shù)功能描述136.1 保存數(shù)據(jù)函數(shù)save()136.2 查詢數(shù)據(jù)函數(shù)query()136.1修改數(shù)據(jù)函數(shù)edit()146.1 加載數(shù)據(jù)函數(shù)load()157.運行結果157.1系統(tǒng)主界面157.2 輸入教師信息界面.167.3 輸出教師信息界面.187.4 插入教師信息界面.197.5 保存和加載教師信息界面.208.個人設計小結與心得體會21參考文獻221.課程設計目的本程序
3、旨在訓練基本編程能力,了解管理信息系統(tǒng)的開發(fā)流程,熟悉C語言的文件和結構數(shù)組的各種基本操作。本程序涉及結構體、數(shù)組、指針、文件等方面的知識。通過本程序的訓練,使讀者能對C語言的文件操作有一個更深刻的了解,掌握利用數(shù)組存儲結構實現(xiàn)教師工資管理系統(tǒng),為進一步開發(fā)出高質(zhì)量信息管理系統(tǒng)打下堅實的基礎。(1)鞏固和加強C語言程序設計課程的理論知識。(2)掌握語言的基本概念、語法、語義和數(shù)據(jù)類型的使用特點。(3)掌握語言程序設計的方法及編程技巧,能正確使用語言編寫程序。(4)進一步理解和運用結構化程設計的思想和方法;學會利用流程圖表示算法。(5)掌握調(diào)試程序的基本方法及上機操作方法。(6)掌握書寫程設計開
4、發(fā)文檔的能力,學會撰寫課程設計總結報告。課程設計的思想和方法還可以作為畢業(yè)論文時的參考資料。(7)通過查閱手冊和文獻資料,培養(yǎng)自己獨立分析問題和解決問題的能力。為自己做畢業(yè)設計打好基礎。(8)初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法:結合實際應用的要求,使課程設計既覆蓋知識點,又接近工程實際需要。通過激發(fā)學習興趣,調(diào)動自己主動學習的積極性,并根據(jù)實際編程要求,訓練自己實際分析問題的能力及編程能力,并養(yǎng)成良好的編程習慣。(9)培養(yǎng)自己的創(chuàng)新能力和創(chuàng)新思維??梢愿鶕?jù)指導書和相關文獻上的參考算法,自己設計出相應的應用程序。(10)培養(yǎng)自己良好的程序設計風格。在實際編程中,為了提高編程質(zhì)量,對空行、空格
5、和注釋均有要求。自己在課程設計書寫代碼時,應該嚴格按要求處理,以便建立良好的程序設計風格。2.課程設計題目教師工資管理系統(tǒng)每個教師的信息為:教師號、姓名、性別、單位名稱、家庭住址、聯(lián)系電話、基本工資、津貼、生活補貼、應發(fā)工資、電話費、水電費、房租、所得稅、衛(wèi)生費、公積金、合計扣款、實發(fā)工資。注:應發(fā)工資=基本工資+津貼+生活補貼;合計扣款=電話費+水電費+房租+所得稅+衛(wèi)生費+公積金;實發(fā)工資=應發(fā)工資 合計扣款。A、教師信息處理(1) 輸入教師信息(2) 插入(修改)教師信息:(3) 刪除教師信息:(4) 瀏覽教師信息:提示:具體功能及操作參考題1。B、教師數(shù)據(jù)處理:(1) 按教師號錄入教師
6、基本工資、津貼、生活補貼、電話費、水電費、房租、所得稅、衛(wèi)生費、公積金等基本數(shù)據(jù)。(2) 教師實發(fā)工資、應發(fā)工資、合計扣款計算。提示:計算規(guī)則如題目。(3) 教師數(shù)據(jù)管理提示:輸入教師號,讀出并顯示該教師信息,輸入新數(shù)據(jù),將改后信息寫入文件(4) 教師數(shù)據(jù)查詢:提示:輸入教師號或其他信息,即讀出所有數(shù)據(jù)信息,并顯示出來。(5) 教師綜合信息輸出提示:輸出教師信息到屏幕。3.功能描述根據(jù)需求描述,本人按照結構化程序設計的原則將整個系統(tǒng)劃分若干個功能模塊。 系統(tǒng)各子模塊的設計如下:主界面選擇操作1輸入教師信息2插入教師信息3刪除教師信息教師工資管理系統(tǒng)4瀏覽教師信息5錄入教師信息6查詢教師信息7修
7、改教師信息8加載教師信息結 束0退出系統(tǒng)圖1教師工資系統(tǒng)功能模塊圖(1)輸入教師信息模塊在主菜單中運用結構體teacher,輸入教師信息,首先建立鏈表,將用戶輸入的學生信息存儲到鏈表中,輸入完成后提示用戶時候繼續(xù)輸入,如果用戶輸入“Y”或“y”,則再次調(diào)用,實現(xiàn)繼續(xù)輸入學生信息的操作。如果用戶輸入“N”或“n”,則返回主菜單界面。(2)插入教師信息模塊在主菜單中調(diào)用teacher *insert(),然后按照提示依次輸入教師信息,然后再調(diào)用void print()函數(shù)講所有的教師信息記錄打印出來。然后再返回主菜單界面。(3)刪除教師信息模塊在主菜單中調(diào)用del()函數(shù),以刪除教師信息,首先按學
8、號查詢教師信息,如果沒有找到教師信息,給出提示信息。如果查找到該教師信息,給出改教師的全部信息,如果查找到,則刪除該教師信息,給出刪除成功的提示信息。然后返回主菜單界面。(4)瀏覽教師信息模塊在主菜單中調(diào)用void print()函數(shù)來顯示教師信息,先判斷鏈表是否為空。如果鏈表不為空時,逐條顯示鏈表中教師的信息,顯示調(diào)用teacher *next()函數(shù)按照教師號的大小來顯示教師的信息。然后返回主菜單界面。(5)保存教師信息模塊在主菜單中調(diào)用void save()函數(shù)來保存教師信息到teacher_list這個文件中。并給出“保存成功”的提示信息。然后返回主菜單界面。(6)查詢教師信息模塊在主
9、菜單中選擇6的時候進行教師信息的查詢,調(diào)用void query()函數(shù),按教師號查詢信息。提示用戶輸入要查找的教師號,然后調(diào)用void query()函數(shù),查找成功,最后打印出教師的信息。然后返回主菜單界面。(7)修改教師信息模塊在主菜單中調(diào)用void edit()函數(shù)。按教師號查找教師信息,如果找到教師信息,調(diào)用void edit()函數(shù)提示用戶輸入新的教師信息,完成修改的操作。操作結束后提示用戶修改成功。然后返回主菜單界面。(8)加載教師信息模塊在主菜單中調(diào)用void load()函數(shù)。如果存在teacher_list文件并不為空,打開文件,找到教師信息。如果存在teacher_list文
10、件并為空,給出提示,“cannot open file”。然后返回主菜單界面。(9)退出系統(tǒng)模塊將鏈表中的數(shù)據(jù)全部釋放掉,防止內(nèi)存泄露。退出系統(tǒng)。4.數(shù)據(jù)結構設計本程序定義了結構體 teacher,主要用于存放圖書的基本信息,如下所示:struct teacherint num;char name10;char sex10;char unit10;char address10;long telnum;float salary_1;float allowance;float life_allow;float salary_2;float tel_fee;float water_fee;float
11、 rent;float tax; float health_fee; float grant;float total_fee;float actual_salary;struct teacher *next;其中,各字段含義如下int num :教師號char name10 :教師姓名char sex10 :教師性別char unit10:教師單位char address10 :教師住址long telnum :教師電話號碼float salary_1 :基本工資float allowance :津貼float life_allow :生活補貼float salary_2 :應發(fā)工資float
12、 tel_fee :電話費float water_fee :水電費float rent :房租float tax :個人所得稅float health_fee :衛(wèi)生費 float grant :公積金float total_fee :合計扣款float actual_salary :實發(fā)工資struct teacher *next :指向下一個節(jié)點的指針5.功能模塊設計5.1主控模塊設計主控函數(shù)的流程圖如圖1所示。首先,調(diào)用void welcome()子函數(shù)和char mainmenu ()子函數(shù)顯示歡迎界面和初始界面;再次,調(diào)用main() 函數(shù)并令ch=mainmenu(),在main(
13、)函數(shù)中,用switch語句實現(xiàn)該系統(tǒng)各功能,若ch=1,系統(tǒng)實現(xiàn)輸入教師信息功能;若ch=2,系統(tǒng)實現(xiàn)插入教師信息功能;若ch=3,系統(tǒng)實現(xiàn)刪除教師信息功能;若ch=4,系統(tǒng)實現(xiàn)瀏覽教師信息功能;若ch=5,系統(tǒng)實現(xiàn)保存教師信息功能;若ch=6,系統(tǒng)實現(xiàn)查詢教師信息功能;若ch=7,系統(tǒng)實現(xiàn)修改教師信息功能;若ch=8,系統(tǒng)實現(xiàn)加載教師信息功能;若 ch=0,退出系統(tǒng)。(對主控函數(shù)進行文字描述)5.2 輸入記錄模塊他輸入教師信息的流程圖如下圖。首先要開辟一個新節(jié)點,并使p1,p2指向它。讀入一個教師數(shù)據(jù)給p1所指的節(jié)點。此時要使head=NULL,n=0,并且p1->num!=0。開辟
14、一個新節(jié)點,并使P1,p2指向它讀入一個教師數(shù)據(jù)給P1所指的結點 Head=NULL && n=0 <當讀入的p1->num!=o> N=n+1 N=1 真 假Head=p1 p2->next=p1把p1所指的結點 把p1所指的結點作為第一結點 連接到表尾 P2=p1再開辟一個新結點,使p1指向它讀入一個教師數(shù)據(jù)給p1所指結點具體流程圖如圖:5.3 插入記錄模塊插入記錄模塊具體流程圖如下圖所示: P1=head , p0=teacher 原來的鏈表是空表是 否 當p0->num>p1->num以及p1所指的不是表尾結點 P2指向p1位置
15、 P1向后移一個結點 P0->num<=p1->num將p0所 真 假指的結 p1指向頭結點 點作為 是 否 p1->next=p0唯一的 head=p0 p2->next=p0結點 p0->next=p1 p0->next=p1 p0->next=NULLf 鏈表是一個空鏈表真 假 P1=head輸 當num!=p1->num以及p1所指的結點不是表尾結點 P2=p1出 P1=p1->next P1是要刪除的結點 是 否空 p1所指的頭結點 是 否 輸出找不到表 head= p2->next= 教師信息 P1->next
16、 p1->next5.4 刪除記錄模塊(具體流程圖如圖所示)6.函數(shù)功能描述6.1 保存數(shù)據(jù)函數(shù)save()函數(shù)原型:void save()功能描述:將鏈表teacher中的N個數(shù)據(jù)寫入到磁盤文件teacher_list中,如果保存成功,則給出提示保存成功,否則返回“cannot ofen file”表示無法打開文件,返回“file write error”表示文件輸入錯誤。6.2 查詢教師信息函數(shù)query()函數(shù)原型:void query(struct teacher *p)功能描述:將鏈表teacher中的head指向p,然后讓用戶輸入教師號no,依次在鏈表中需找p,如果教師號不對
17、,則指針往后面撥動一下,使p=p->next;知道找到相對應的正確的教師號。然后打印出教師的基本信息。函數(shù)流程圖如圖5.2 所示p=head p->num=no p->num!=no p=p->next 打印教師信息 圖5.26.3 修改教師信息函數(shù)edit()函數(shù)原型:void edit(struct teacher *p)功能描述:首先讓用戶輸入希望修改的教師的教師號a, 然后在鏈表中一條一條查找看p->num是否等于a,如果找到,則讓用戶再次輸入教師的具體信息,輸入完畢跳出,轉(zhuǎn)向主菜單界面。如果沒有找到,則令p=p->next。直到查詢完所有的教師記錄
18、。函數(shù)流程圖如圖5.3 所示輸入想修改教師信息的教師號ap->num=a Yes no p=p->next再次輸入教師信息6.4 加載教師信息函數(shù)load()函數(shù)原型:void load()功能描述:首先進行判定“"teacher_list”是否為空,如果為空,給出提示,然后將p1,p2定義為動態(tài)的存儲教師的記錄,并將p1定義為頭結點,然后依次一條一條的讀出。部分代碼如下:p1=p2=(struct teacher *)malloc(LEN);head=p1;fread(&n,sizeof(n),1,fp);doif(fread(p1,sizeof(struct
19、teacher),1,fp)!=1)printf("file errorn");goto end;if(p1->next!=NULL)p2=p1;p1=(struct teacher *)malloc(LEN);p2->next=p1;elsebreak;while(1);7.運行結果7.1系統(tǒng)主界面 用戶剛進入系統(tǒng)時,如圖6.1所示。主菜單界面: 圖6.1 用戶根據(jù)自己的需求輸入自己的選擇。7.2輸入界面 用戶在主菜單界面的時候輸入1,顯示如圖6.2: 圖6.2依次給出需要輸入的信息的,教師號、姓名、性別、單位名稱、家庭住址、聯(lián)系電話、基本工資、津貼、生活補貼、電話費、水電費、房租、所得稅、衛(wèi)生費、公積金等。當公積金輸入完成,系統(tǒng)將給出提示是否想繼續(xù)輸入教師信息,顯示如圖6.2.1如果輸入Y或者y,則繼續(xù)輸入教師信息;如果輸入N或者n,則返回到主菜單界面。顯示如下圖:7.3輸出教師信息界面 如果已經(jīng)輸入教師信息,再在主菜單選擇4瀏覽教師信息,結果如圖:7.4插入教師信息界面 在主菜單中進入2插入教師信息,然后依次插入教師
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度線性低密度聚乙烯產(chǎn)業(yè)分析報告
- 年度吸污車產(chǎn)業(yè)分析報告
- 2025年度樓房建筑工程合同糾紛解決協(xié)議4篇
- 二零二四年養(yǎng)老社區(qū)三方物業(yè)服務委托合同文本3篇
- 二零二五年度船舶租賃船運輸協(xié)議合同3篇
- 二零二五年酒店客房家具更新?lián)Q代合同3篇
- 2025年度智能交通信號系統(tǒng)安裝與維護承包協(xié)議合同范本3篇
- 二零二五版教育培訓機構合同標的課程開發(fā)與教學質(zhì)量承諾3篇
- 2025年度生物質(zhì)能發(fā)電項目合作協(xié)議合同范本
- 2025年倉庫租賃合同范本-包含消防安全及應急響應條款3篇
- GB/T 33688-2017選煤磁選設備工藝效果評定方法
- GB/T 304.3-2002關節(jié)軸承配合
- 漆畫漆藝 第三章
- CB/T 615-1995船底吸入格柵
- 光伏逆變器一課件
- 貨物供應、運輸、包裝說明方案
- (完整版)英語高頻詞匯800詞
- 《基礎馬來語》課程標準(高職)
- IEC61850研討交流之四-服務影射
- 《兒科學》新生兒窒息課件
- 材料力學壓桿穩(wěn)定
評論
0/150
提交評論