c語言職工工資管理系統(tǒng)課程設(shè)計說明書(共17頁)_第1頁
c語言職工工資管理系統(tǒng)課程設(shè)計說明書(共17頁)_第2頁
c語言職工工資管理系統(tǒng)課程設(shè)計說明書(共17頁)_第3頁
c語言職工工資管理系統(tǒng)課程設(shè)計說明書(共17頁)_第4頁
c語言職工工資管理系統(tǒng)課程設(shè)計說明書(共17頁)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 課程設(shè)計說明書學(xué) 院、系:專 業(yè):學(xué) 生 姓 名:學(xué) 號:設(shè) 計 題 目:職工工資管理系統(tǒng) 起 迄 日 期:指 導(dǎo) 教 師:日期: 2017年5月12日1 設(shè)計目的 本課程設(shè)計是采用C語言,在VC平臺下設(shè)計年歷顯示系統(tǒng),該系統(tǒng)運行在MS-DOS命令行模式下。本課程設(shè)計為學(xué)生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結(jié)合起來,鍛煉學(xué)生的分析解決實際問題的能力。提高學(xué)生適應(yīng)實際,實踐編程的能力。1) 進一步鞏固和復(fù)習(xí)C程序設(shè)計的基礎(chǔ)知識;2) 培養(yǎng)學(xué)生結(jié)構(gòu)化程序、模塊化程序設(shè)計的方法和能力;3) 了解軟件的編制過程及各環(huán)節(jié)的具體內(nèi)容;4) 提

2、高學(xué)生程序調(diào)試技巧、軟件設(shè)計能力和代碼規(guī)范化等素質(zhì);提高學(xué)生分析問題、解決問題以及實際運用能力。2 任務(wù)概述 功能設(shè)計要求: 1. 輸入記錄:將每一個職工的姓名、ID號以及基本工資、職務(wù)工資、崗位津貼、醫(yī)療保險、公積金的數(shù)據(jù)作為一個記錄(系統(tǒng)應(yī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ù)文件中的任一記

3、錄。 6. 統(tǒng)計: (按字符表格形式打印全部職工工資信息表及平均工資(包括各項總的平均工資)。 7保存數(shù)據(jù)文件功能。 例如:職工工資信息表 ID號 姓名 基本工資 職務(wù)工資 津貼 醫(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號、基本工資、職務(wù)工資、崗位津貼、醫(yī)療保險、公積金的數(shù)據(jù)作為一個結(jié)構(gòu)體。(2)顯示記錄:根據(jù)職工姓名或者ID號顯示一個或幾個職工的各項工資。(3)修改記錄:對任何一個結(jié)構(gòu)體中的成員按照要求進行修改,并顯示修改前后結(jié)構(gòu)體中的所有成員信息。(4)查找記錄:查找滿足條件的職工信息,要求顯示所有的職工成員信息。(5)刪除記錄:刪除滿足條件的職工信息。(6)統(tǒng)計:計算各項工資的總工資及平均工資。N-S圖:1.

5、輸入函數(shù) 圖4.12. 查找函數(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 課程設(shè)計心得通過這次的設(shè)計,練習(xí)熟悉了C語言的編譯,有更深的體會和了解。對傳值傳址更為熟悉,對單鏈表的相關(guān)算法,如鍵立,插入,刪

6、除等也基本掌握,最基本的單鏈算法是后期學(xué)習(xí)的基礎(chǔ),調(diào)試程序作分析找錯誤時,畫圖細心分析每步的進程,提高了邏輯能力和思維能力。也經(jīng)過這次的練習(xí)找到自已很多的不足,好的編程習(xí)慣很重要,可以節(jié)省不少的調(diào)試時間。對基礎(chǔ)的掌握很重要,這樣可不不必時時查資料,向同學(xué)咨詢。計算機編程要多多練習(xí),這樣才可以熟悉,可以加深記憶,提高編程的能力。在編程的過程中,有時因某些錯誤難以改正而無奈,可以調(diào)試改正好后的成就感也讓人愉悅。大學(xué)的生活很松散,在編程過程中會覺得時間過得很快,專心的做一件事,也讓人充實。這也是學(xué)習(xí)計算機的樂趣所在,以后會加深在計算機方面的學(xué)習(xí)。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,

7、只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。計算機是門注重實踐的學(xué)科,要學(xué)好計算機必須要多多的實踐。這次練習(xí)讓我更明白了這點。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實際。經(jīng)過這段時間的上機實踐學(xué)習(xí),使我對c語言有了更進一步的認

8、識和了解,要想學(xué)好它要重在實踐,要通過不斷的上機操作才能更好地學(xué)習(xí)它,通過實踐,我也發(fā)現(xiàn)我的好多不足之處,首先是自己在指法上還不行,經(jīng)常按錯字母,通過學(xué)習(xí)也有所改進;再有對c語言的一些標準庫函數(shù)不太了解,還有對函數(shù)調(diào)用的正確使用不夠熟悉,還有對c語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐,使我在這幾個方面的認識有所提高。課堂上要講授許多關(guān)于c語言的語法規(guī)則,聽起來十分枯燥無味,也不容易記住,死記硬背是不可取的。然而要使用c語言這個工具解決實際問題,又必須掌握它。通過多次上機練習(xí),對于語法知識有了感性的認識,加深對它的理解,在理解的基礎(chǔ)上就會自然而然地掌握c語言的語法規(guī)定。對于一些內(nèi)容自己認為在課堂

9、上聽懂了,但上機實踐中會發(fā)現(xiàn)原來理解的偏差,這是由于大部分學(xué)生是初次接觸程序設(shè)計,缺乏程序設(shè)計的實踐所致。學(xué)習(xí)c語言不能停留在學(xué)習(xí)它的語法規(guī)則,而是利用學(xué)到的知識編寫c語言程序,解決實際問題。即把c語言作為工具,描述解決實際問題的步驟,由計算機幫助我們解題。只有通過上機才能檢驗自己是否掌握c語言、自己編寫的程序是否能夠正確地解題。一個c語言程序從編輯、編譯、連接到運行,都要在一定的外部操作環(huán)境下才能進行。所謂"環(huán)境"就是所用的計算機系統(tǒng)硬件、軟件條件,只有學(xué)會使用這些環(huán)境,才能進行程序開發(fā)工作。通過上機實驗,熟練地掌握c語言開發(fā)環(huán)境,為以后真正編寫計算機程序解決實際問題打下

10、基礎(chǔ)。同時,在今后遇到其它開發(fā)環(huán)境時就會觸類旁通,很快掌握新系統(tǒng)的使用。完成程序的編寫,決不意味著萬事大吉。你認為萬無一失的程序,實際上機運行時可能不斷出現(xiàn)麻煩。如編譯程序檢測出一大堆錯誤。有時程序本身不存在語法錯誤,也能夠順利運行,但是運行結(jié)果顯然是錯誤的。開發(fā)環(huán)境所提供的編譯系統(tǒng)無法發(fā)現(xiàn)這種程序邏輯錯誤,只能靠自己的上機經(jīng)驗分析判斷錯誤所在。程序的調(diào)試是一個技巧性很強的工作,對于初學(xué)者來說,盡快掌握程序調(diào)試方法是非常重要的。有時候一個消耗你幾個小時時間的小小錯誤,調(diào)試高手一眼就看出錯誤所在。附錄:#include<stdio.h>#include<string.h>

11、#define N 100struct workerint ID;char name20;float base; /base 基本工資float rate; /rate 職務(wù)工資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

12、mp;a);printf("輸入格式為:nID號 姓名n基本工資 職務(wù)工資 崗位津貼 醫(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、quot;輸入職工信息成功!" );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.sub

14、sidy,&worki.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.

15、subsidy,worki.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("請輸入要

16、顯示的姓名:n");scanf("%s",r);next=r;printf("ID號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(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("請輸入要

17、查詢的ID:n");scanf("%d",&t);printf("ID號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(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 worke

18、r work,int a)int i,ID,t;printf("請輸入要修改員工的ID:n");scanf("%d",&ID);printf("修改前職工的信息:n");printf("ID號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(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.medicar

19、e,worki.fund);for(i=0;i<a;i+)if(ID=worki.ID)t=i;printf("請輸入該職工的信息:");printf("輸入格式為:nID號 姓名n基本工資 職務(wù)工資 崗位津貼 醫(yī)療保險 公積金n");scanf("%d %s",&workt.ID,);scanf("%f %f %f %f %f",&workt.base,&workt.rate,&workt.subsidy,&workt.medicare,&

20、workt.fund);printf("修改后職工的信息:n");printf("ID號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(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,

21、select,t; char * 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號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)if(strcmp(next,worki.na

22、me)=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");scanf("%d",&t);printf("ID號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)if(t=worki.ID)printf(&quo

23、t;%d %s %f %f %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(

24、select)case 1:printf("請輸入要顯示的姓名:n");scanf("%s",r);next=r;printf("ID號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(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)

25、;printf("您確定要刪除該職工信息嗎?(請輸入'y'或'n'):");getchar();if(getchar()='y')|(getchar()='Y')worki=worki+1;a-;case 2:printf("請輸入要查詢的ID:n");scanf("%d",&t);printf("ID號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(yī)療保險 公積金n");for(i=0;i<a;i+)if(t=worki.ID)printf(

26、"%d %s %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 wor

27、ker work,int 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號 姓 名 基本工資 職務(wù)工資 崗位津貼 醫(yī)療保險 公積金n");printf(&q

28、uot;%d %s %f %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("n 1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論