




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、 課程設計說明書學 院、系:專 業(yè):學 生 姓 名:學 號:設 計 題 目:職工工資管理系統(tǒng) 起 迄 日 期:指 導 教 師:日期: 2017年5月12日1 設計目的 本課程設計是采用C語言,在VC平臺下設計年歷顯示系統(tǒng),該系統(tǒng)運行在MS-DOS命令行模式下。本課程設計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結(jié)合起來,鍛煉學生的分析解決實際問題的能力。提高學生適應實際,實踐編程的能力。1) 進一步鞏固和復習C程序設計的基礎知識;2) 培養(yǎng)學生結(jié)構(gòu)化程序、模塊化程序設計的方法和能力;3) 了解軟件的編制過程及各環(huán)節(jié)的具體內(nèi)容;4) 提高學生程序調(diào)試技巧、軟件設
2、計能力和代碼規(guī)范化等素質(zhì);提高學生分析問題、解決問題以及實際運用能力。2 任務概述 功能設計要求: 1. 輸入記錄:將每一個職工的姓名、ID號以及基本工資、職務工資、崗位津貼、醫(yī)療保險、公積金的數(shù)據(jù)作為一個記錄(系統(tǒng)應能建立一個新的數(shù)據(jù)文件或給已建立好的數(shù)據(jù)文件增加記錄)。2. 顯示記錄:根據(jù)用戶提供的記錄或者根據(jù)職工姓名顯示一個或幾個職工的各項工資和平均工資。3. 修改記錄:可以對數(shù)據(jù)文件的任意記錄的數(shù)據(jù)進行修改并在修改前后對記錄內(nèi)容進行顯示。4查找記錄:可以對數(shù)據(jù)文件的任意記錄的數(shù)據(jù)進行查找并在查找前后對記錄內(nèi)容進行顯示。 5. 刪除記錄:可刪除數(shù)據(jù)文件中的任一記錄。 6. 統(tǒng)計: (按字
3、符表格形式打印全部職工工資信息表及平均工資(包括各項總的平均工資)。 7保存數(shù)據(jù)文件功能。 例如:職工工資信息表 ID號 姓名 基本工資 職務工資 津貼 醫(yī)療保險- 公積金- 總工資 01 張望 1286 794 198 109 135 2034 02 李明 1185 628 135 94 114 1740 03 王小民 895 438 98 64 73 1294 04 張效章 1350 868 210 116 150 2162 05 彭山 745 398 84 61 68 1098 ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼
4、 各項平均工資 1092.2 625.2 145 88.8 1083 模塊劃分 圖3.14 主要函數(shù)說明及其N-S圖主要函數(shù)說明:(1)輸入記錄:將每一個職工的姓名、ID號、基本工資、職務工資、崗位津貼、醫(yī)療保險、公積金的數(shù)據(jù)作為一個結(jié)構(gòu)體。(2)顯示記錄:根據(jù)職工姓名或者ID號顯示一個或幾個職工的各項工資。(3)修改記錄:對任何一個結(jié)構(gòu)體中的成員按照要求進行修改,并顯示修改前后結(jié)構(gòu)體中的所有成員信息。(4)查找記錄:查找滿足條件的職工信息,要求顯示所有的職工成員信息。(5)刪除記錄:刪除滿足條件的職工信息。(6)統(tǒng)計:計算各項工資的總工資及平均工資。N-S圖:1. 輸入函數(shù) 圖4.12. 查
5、找函數(shù) 圖4.23. 統(tǒng)計函數(shù)圖4.34.修改函數(shù)圖4.45. 刪除函數(shù)圖4.56.顯示函數(shù)圖4.67.保存數(shù)據(jù)文件圖4.78. 讀取數(shù)據(jù)文件圖4.89.程序框圖 圖4.95 程序運行數(shù)據(jù)及其結(jié)果1.輸入職工信息的實現(xiàn) 圖5.1.1圖5.1.22. 通過姓名顯示職工信息圖5.2.1圖5.2.23.修改職員信息圖5.34.查找職員信息圖5.4.1圖5.4.25.刪除職員信息圖5.5.1圖5.5.26.統(tǒng)計職員信息圖5.67.退出系統(tǒng)圖5.76 課程設計心得通過這次的設計,練習熟悉了C語言的編譯,有更深的體會和了解。對傳值傳址更為熟悉,對單鏈表的相關算法,如鍵立,插入,刪除等也基本掌握,最基本的單
6、鏈算法是后期學習的基礎,調(diào)試程序作分析找錯誤時,畫圖細心分析每步的進程,提高了邏輯能力和思維能力。也經(jīng)過這次的練習找到自已很多的不足,好的編程習慣很重要,可以節(jié)省不少的調(diào)試時間。對基礎的掌握很重要,這樣可不不必時時查資料,向同學咨詢。計算機編程要多多練習,這樣才可以熟悉,可以加深記憶,提高編程的能力。在編程的過程中,有時因某些錯誤難以改正而無奈,可以調(diào)試改正好后的成就感也讓人愉悅。大學的生活很松散,在編程過程中會覺得時間過得很快,專心的做一件事,也讓人充實。這也是學習計算機的樂趣所在,以后會加深在計算機方面的學習。通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,
7、只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。計算機是門注重實踐的學科,要學好計算機必須要多多的實踐。這次練習讓我更明白了這點。通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實際。經(jīng)過這段時間的上機實踐學習,使我對c語言有了更進一步的認識和了解,要想學好它要重在
8、實踐,要通過不斷的上機操作才能更好地學習它,通過實踐,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯字母,通過學習也有所改進;再有對c語言的一些標準庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,還有對c語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐,使我在這幾個方面的認識有所提高。課堂上要講授許多關于c語言的語法規(guī)則,聽起來十分枯燥無味,也不容易記住,死記硬背是不可取的。然而要使用c語言這個工具解決實際問題,又必須掌握它。通過多次上機練習,對于語法知識有了感性的認識,加深對它的理解,在理解的基礎上就會自然而然地掌握c語言的語法規(guī)定。對于一些內(nèi)容自己認為在課堂上聽懂了,但上機實踐中會發(fā)
9、現(xiàn)原來理解的偏差,這是由于大部分學生是初次接觸程序設計,缺乏程序設計的實踐所致。學習c語言不能停留在學習它的語法規(guī)則,而是利用學到的知識編寫c語言程序,解決實際問題。即把c語言作為工具,描述解決實際問題的步驟,由計算機幫助我們解題。只有通過上機才能檢驗自己是否掌握c語言、自己編寫的程序是否能夠正確地解題。一個c語言程序從編輯、編譯、連接到運行,都要在一定的外部操作環(huán)境下才能進行。所謂"環(huán)境"就是所用的計算機系統(tǒng)硬件、軟件條件,只有學會使用這些環(huán)境,才能進行程序開發(fā)工作。通過上機實驗,熟練地掌握c語言開發(fā)環(huán)境,為以后真正編寫計算機程序解決實際問題打下基礎。同時,在今后遇到其它
10、開發(fā)環(huán)境時就會觸類旁通,很快掌握新系統(tǒng)的使用。完成程序的編寫,決不意味著萬事大吉。你認為萬無一失的程序,實際上機運行時可能不斷出現(xiàn)麻煩。如編譯程序檢測出一大堆錯誤。有時程序本身不存在語法錯誤,也能夠順利運行,但是運行結(jié)果顯然是錯誤的。開發(fā)環(huán)境所提供的編譯系統(tǒng)無法發(fā)現(xiàn)這種程序邏輯錯誤,只能靠自己的上機經(jīng)驗分析判斷錯誤所在。程序的調(diào)試是一個技巧性很強的工作,對于初學者來說,盡快掌握程序調(diào)試方法是非常重要的。有時候一個消耗你幾個小時時間的小小錯誤,調(diào)試高手一眼就看出錯誤所在。附錄:#include<stdio.h>#include<string.h>#define N 100
11、struct workerint ID;char name20;float base; /base 基本工資float rate; /rate 職務工資float subsidy; /subsidy 崗位津貼float medicare; /medicare 醫(yī)療保險float fund; /fund 公積金float total; /tootal 總工資;/輸入函數(shù),輸入職工的信息int input(struct worker work,int a)int i;printf("請輸入員工人數(shù):n");scanf("%d",&a);printf(
12、"輸入格式為:nID號 姓名n基本工資 職務工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)printf("請輸入第%d個員工信息 ",i+1);scanf("%d %s",&worki.ID,);scanf("%f %f %f %f %f",&worki.base,&worki.rate,&worki.subsidy,&worki.medicare,&worki.fund); printf("輸入職工信息成功
13、!" );return a;void read(struct worker work,int a)FILE *fp;if(fp=fopen("zggzxx.txt","r")=NULL) printf("打開文件失敗"); elsefor(int i=0;i<N;i+)fscanf(fp,"%d %s %f %f %f %f %f",&worki.ID,,&worki.base,&worki.rate,&worki.subsidy,&wor
14、ki.medicare,&worki.fund);fclose(fp);void save(struct worker work,int a)FILE *fp;if(fp=fopen("zggzxx.txt","w")=NULL)printf("打開文件失??!n");elsefor(int i=0;i<N;i+)fprintf(fp,"%d %s %f %f %f %f %fn",worki.ID,,worki.base,worki.rate,worki.subsidy,worki
15、.medicare,worki.fund);printf("保存文件信息成功!") ; fclose(fp);/顯示,按要求顯示需要顯示的職工信息void xianshi(struct worker work,int a)int i,select,t; char * next,r20;printf("n 1. 按姓名查找n");printf("n 2. 按查找n");scanf("%d",&select);switch(select)case 1:printf("請輸入要顯示的姓名:n"
16、);scanf("%s",r);next=r;printf("ID號 姓 名 基本工資 職務工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)if(strcmp(next,)=0)printf("%d %s %f %f %f %f %fn",worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);break;case 2:printf("請輸入要查詢的ID:n"
17、);scanf("%d",&t);printf("ID號 姓 名 基本工資 職務工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)if(t=worki.ID)printf("%d %s %f %f %f %f %fn",worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);break;/修改函數(shù),修改需要修改的職工信息void xiugai(struct worker work,int a)
18、int i,ID,t;printf("請輸入要修改員工的ID:n");scanf("%d",&ID);printf("修改前職工的信息:n");printf("ID號 姓 名 基本工資 職務工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)printf("%d %s %f %f %f %f %fn",worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund)
19、;for(i=0;i<a;i+)if(ID=worki.ID)t=i;printf("請輸入該職工的信息:");printf("輸入格式為:nID號 姓名n基本工資 職務工資 崗位津貼 醫(yī)療保險 公積金n");scanf("%d %s",&workt.ID,);scanf("%f %f %f %f %f",&workt.base,&workt.rate,&workt.subsidy,&workt.medicare,&workt.fund);p
20、rintf("修改后職工的信息:n");printf("ID號 姓 名 基本工資 職務工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)printf("%d %s %f %f %f %f %fn",worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);/查找函數(shù),查找員工信息,并輸出其信息void search(struct worker work,int a)int i,select,t; cha
21、r * next,r20;printf("n 1. 按姓名查找n");printf("n 2. 按查找n");scanf("%d",&select);switch(select)case 1:printf("請輸入要顯示的姓名:n");scanf("%s",r);next=r;printf("ID號 姓 名 基本工資 職務工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)if(strcmp(next,)=0)printf(
22、"%d %s %f %f %f %f %fn",worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);break;case 2:printf("請輸入要查詢的ID:n");scanf("%d",&t);printf("ID號 姓 名 基本工資 職務工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)if(t=worki.ID)printf("%d %s %f %f
23、 %f %f %fn",worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);break;/刪除函數(shù),刪除員工信息int dele(struct worker work,int a)int i,select,t; char * next,r20;printf("n 1. 按姓名查找n");printf("n 2. 按查找n");scanf("%d",&select);switch(select)case 1
24、:printf("請輸入要顯示的姓名:n");scanf("%s",r);next=r;printf("ID號 姓 名 基本工資 職務工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)if(strcmp(next,)=0)printf("%d %s %f %f %f %f %fn",worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);printf("
25、;您確定要刪除該職工信息嗎?(請輸入'y'或'n'):");getchar();if(getchar()='y')|(getchar()='Y')worki=worki+1;a-;case 2:printf("請輸入要查詢的ID:n");scanf("%d",&t);printf("ID號 姓 名 基本工資 職務工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)if(t=worki.ID)printf("%d %s %
26、f %f %f %f %fn",worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund);printf("您確定要刪除該職工信息嗎?(請輸入'y'或'n'):");getchar();if(getchar()='y')|(getchar()='Y')worki=worki+1;a-;return a;/統(tǒng)計函數(shù),統(tǒng)計員工的信息void tongji(struct worker work,int
27、a)int i=0,j;float add5;for(i=0;i<a;i+)add0+=worki.base;add1+=worki.rate;add2+=worki.subsidy;add3+=worki.medicare;add4+=worki.fund;worki.total=worki.base+worki.rate+worki.subsidy+worki.medicare+worki.fund;for(i=0;i<a;i+)printf("ID號 姓 名 基本工資 職務工資 崗位津貼 醫(yī)療保險 公積金n");printf("%d %s %f
28、%f %f %f %fn",worki.ID,,worki.base,worki.rate,worki.subsidy,worki.medicare,worki.fund,worki.total);printf("各項平均工資:%f %f %f %f %fn",add0/a,add1/a,add2/a,add3/a,add4/a);int main()struct worker work100,*p=work;int a=0,select,i=0;printf("您是首次登陸本系統(tǒng),請先輸入員工信息:n");read(p,a);doi+;while(worki.ID!=0);a=i-1;do/打印菜單選項printf("n *職工工資管理系統(tǒng)*n"); printf(&quo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 富士康現(xiàn)代企業(yè)管理制度
- 小區(qū)停車系統(tǒng)設備管理制度
- 嵌入式培訓機構(gòu)學員管理制度
- 幼兒園屋頂農(nóng)場管理制度
- 幼兒園護理設備管理制度
- 幼兒園玩具存放管理制度
- 2025-2030年中國電子郵件營銷行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025-2030年中國電吹風市場深度調(diào)研及發(fā)展策略研究報告
- 2025-2030年中國生豬養(yǎng)殖屠宰行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資機會究報告
- 2025-2030年中國甘氨酸鎂行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 氣象學與氣候?qū)W電子教材
- 神木市小保當二號煤礦礦山地質(zhì)環(huán)境保護與土地復墾方案
- 中國玉石及玉文化鑒賞知到章節(jié)答案智慧樹2023年同濟大學
- 家庭園藝營養(yǎng)土產(chǎn)品技術(shù)標準2022
- 美容院入股協(xié)議書
- 淺談歌曲《小路》的情感表達
- 環(huán)境心理學永川觀音山公園調(diào)研報告
- 2023年山東軍轉(zhuǎn)真題
- 國開電大??啤豆芾碛⒄Z1》機考總題庫
- 2023年杭州育才中學小升初語文考試真題卷含標準答案
- 《水產(chǎn)動物營養(yǎng)與飼料》期末考試復習題及參考答案
評論
0/150
提交評論