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

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

程序設(shè)計基礎(chǔ)課程設(shè)計報告c語言實現(xiàn)附源碼員工工資管理系統(tǒng)

  • 資源ID:37005449       資源大小:256KB        全文頁數(shù):34頁
  • 資源格式: DOC        下載積分:0積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要0積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付說明:
本站最低充值0.01積分,下載本資源后余額將會存入您的賬戶,您可在我的個人中心查看。
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

程序設(shè)計基礎(chǔ)課程設(shè)計報告c語言實現(xiàn)附源碼員工工資管理系統(tǒng)

程序設(shè)計基礎(chǔ)課程設(shè)計報告題 目: 員工工資管理系統(tǒng) 院 (系): 信息科學(xué)與工程學(xué)院 專業(yè)班級: 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師: 20 16 年 12 月 12 日至20 16 年 12 月 23 日武昌首義學(xué)院制 程序設(shè)計基礎(chǔ) 課程設(shè)計任務(wù)書一、設(shè)計(調(diào)查報告/論文)題目員工工資管理系統(tǒng)二、設(shè)計(調(diào)查報告/論文)主要內(nèi)容1.員工工資管理系統(tǒng)主要內(nèi)容:設(shè)計一個利用文件處理方式實現(xiàn)對員工工資(包括員工編號、員工姓名、應(yīng)發(fā)、扣款和實發(fā))進行管理,具有增加數(shù)據(jù)、更新數(shù)據(jù)、查詢數(shù)據(jù)、刪除數(shù)據(jù)、列表顯示數(shù)據(jù)以及重組文件的功能。員工工資管理系統(tǒng)由六大功能模塊組成:增加數(shù)據(jù)該模塊完成將輸入的數(shù)據(jù)存入數(shù)據(jù)文件中,用戶一次可輸入多個員工的信息。更新數(shù)據(jù)該模塊用于實現(xiàn)對記錄的修改,首先用戶輸入員工的編號,然后查詢該員工的信息,最后更新該員工的信息。查詢數(shù)據(jù)該模塊可選擇按員工編號查詢,或者按員工姓名進行查詢,然后列出滿足條件的且未作刪除標記的員工信息。刪除數(shù)據(jù)該模塊用于刪除指定編號的員工工資信息,為提高效率,只作刪除標記,不在物理上刪除信息,可稱為邏輯刪除。顯示數(shù)據(jù)該模塊用于以列表方式顯示所有未作刪除標記的員工信息。重組文件當邏輯刪除的信息太多時,將會降低查詢效率。重組文件模塊專門用于在物理上刪除作有刪除標記的信息,這樣不但提高查詢效率,同時也節(jié)約存儲空間。統(tǒng)計輸出輸出實發(fā)工資最高的員工工資信息。統(tǒng)計輸出員工實發(fā)工資的平均工資。統(tǒng)計輸出超過實發(fā)平均工資的員工人數(shù)。 排序該模塊按員工實發(fā)工資由高到低的順序排序輸出所有員工信息。要求本系統(tǒng)采用結(jié)構(gòu)體等數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)以菜單方式工作。2.學(xué)生學(xué)籍管理系統(tǒng)主要內(nèi)容:設(shè)計一個利用文件處理方式,實現(xiàn)對學(xué)生學(xué)籍信息(包括:學(xué)號,姓名,性別,年齡,籍貫,系別,專業(yè),班級)進行添加、修改、刪除、查找、統(tǒng)計輸出等操作。學(xué)生學(xué)籍管理系統(tǒng)的功能要求如下:增加數(shù)據(jù)該模塊完成將輸入的數(shù)據(jù)存入數(shù)據(jù)文件中,用戶一次可輸入多個學(xué)生的學(xué)籍信息。更新數(shù)據(jù)該模塊用于實現(xiàn)對記錄的修改,首先用戶輸入學(xué)生的學(xué)號,然后查詢該學(xué)生的學(xué)籍信息,最后更新該學(xué)生的學(xué)籍的信息。查詢數(shù)據(jù)該模塊可選擇按學(xué)生的學(xué)號查詢,或者按學(xué)生的姓名查詢,再或者按學(xué)生的班級查詢,然后列出滿足條件的且未作刪除標記的學(xué)生學(xué)籍信息。刪除數(shù)據(jù)該模塊用于刪除指定編號的學(xué)生學(xué)籍信息,為提高效率,只作刪除標記,不在物理上刪除信息,可稱為邏輯刪除。顯示數(shù)據(jù)該模塊用于以列表方式顯示所有未作刪除標記的學(xué)生學(xué)籍信息。重組文件當邏輯刪除的信息太多時,將會降低查詢效率。重組文件模塊專門用于在物理上刪除作有刪除標記的信息,這樣不但提高查詢效率,同時也節(jié)約存儲空間。統(tǒng)計輸出1)按專業(yè)輸出所有學(xué)生的學(xué)籍信息。2)統(tǒng)計輸出學(xué)生的平均年齡。3)統(tǒng)計輸出超過平均年齡的學(xué)生人數(shù)。 排序該模塊按學(xué)生學(xué)號由低到高的順序排序輸出所有學(xué)生學(xué)籍信息。要求本系統(tǒng)采用結(jié)構(gòu)體等數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)以菜單方式工作。3.班級成績管理系統(tǒng)主要內(nèi)容:對一個有N個學(xué)生的班級,每個學(xué)生有M門課程。每個學(xué)生應(yīng)當包括如下信息:學(xué)號、姓名、M門課程名稱。該系統(tǒng)實現(xiàn)對班級成績的添加、修改、刪除、查找、統(tǒng)計輸出等操作的管理。功能要求如下:增加數(shù)據(jù)該模塊完成將輸入的數(shù)據(jù)存入數(shù)據(jù)文件中,用戶一次可輸入多個學(xué)生的基本信息。更新數(shù)據(jù)該模塊用于實現(xiàn)對記錄的修改,首先用戶輸入學(xué)生的學(xué)號,然后查詢該學(xué)生的基本信息,最后更新該學(xué)生的基本信息。查詢數(shù)據(jù)該模塊可選擇按學(xué)生的學(xué)號查詢,或者按學(xué)生的姓名查詢,然后列出滿足條件的且未作刪除標記的學(xué)生基本信息。刪除數(shù)據(jù)該模塊用于刪除指定編號的學(xué)生基本信息,為提高效率,只作刪除標記,不在物理上刪除信息,可稱為邏輯刪除。顯示數(shù)據(jù)該模塊用于以列表方式顯示所有未作刪除標記的學(xué)生基本信息。重組文件當邏輯刪除的信息太多時,將會降低查詢效率。重組文件模塊專門用于在物理上刪除作有刪除標記的信息,這樣不但提高查詢效率,同時也節(jié)約存儲空間。統(tǒng)計輸出1)顯示每門課程成績最高的學(xué)生的基本信息。2)顯示每門課程的平均成績。3)顯示超過某門課程平均成績的學(xué)生人數(shù)。 排序該模塊按學(xué)生學(xué)號由低到高的順序排序輸出所有學(xué)生的基本信息。要求本系統(tǒng)采用結(jié)構(gòu)體等數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)以菜單方式工作。課程設(shè)計要求:課程設(shè)計從第一、二和三道題中選一道題完成。其中,學(xué)號尾數(shù)為0、2、4、8的做第一道題;學(xué)號尾數(shù)為1、3、7的做第二道題;學(xué)號尾數(shù)為5、6、9的做第三道題。系統(tǒng)要求在Microsoft Visual C+ 6.0編譯平臺上采用C語言編程實現(xiàn)。 課程設(shè)計報告(要求正規(guī)打印,A4幅面),內(nèi)容包括:l 題目l 需求與總體設(shè)計(描述系統(tǒng)要實現(xiàn)什么功能;系統(tǒng)怎么實現(xiàn),繪制系統(tǒng)功能模塊結(jié)構(gòu)圖;數(shù)據(jù)結(jié)構(gòu)的設(shè)計及用法說明)l 詳細設(shè)計(描述系統(tǒng)包含的主函數(shù)和子函數(shù);解釋各個功能模塊的軟件功能;畫系統(tǒng)的總體流程圖,某種查詢、插入、刪除程序?qū)崿F(xiàn)的子函數(shù)流程圖,要求采用標準流程圖圖符至少畫兩個流程圖)l 編碼與實現(xiàn)(只能使用C語言,源程序編寫格式要按照縮進方式,源程序要有詳細的注釋,使程序容易閱讀。源程序編寫格式的規(guī)范和注釋體現(xiàn)程序員的素質(zhì),必須從本課程設(shè)計開始培養(yǎng)。)l 運行結(jié)果(包括輸入數(shù)據(jù)的結(jié)果,查詢、修改、刪除的結(jié)果,可以將輸出的結(jié)果以截屏方式呈現(xiàn)到課程設(shè)計報告中)l 總結(jié)(必須真實的說出自己在課程設(shè)計中的切身體會。例如:課程設(shè)計如何構(gòu)思、如何設(shè)計、如何編程、如何調(diào)試、遇到的主要問題和解決方法,哪些地方使你“痛苦不堪”;創(chuàng)新之處;課程設(shè)計中存在的不足,需進一步改進的設(shè)想等等。)注:每人以班級+學(xué)號+姓名創(chuàng)建目錄,目錄需包括課程設(shè)計報告電子文檔和源程序以備檢查。然后由各班學(xué)習(xí)委員匯總到U盤上統(tǒng)一提交。三、原始資料1.游洪躍,彭駿,譚斌C語言程序設(shè)計實驗與課程設(shè)計教程北京:清華大學(xué)出版社,20112.孫承愛,趙衛(wèi)東程序設(shè)計基礎(chǔ)基于C語言(第2版)科學(xué)出版社,2010四、要求的設(shè)計(調(diào)查/論文)成果1.課程設(shè)計報告2.課程設(shè)計軟件五、進程安排布置任務(wù),查找資料、需求分析1天總體設(shè)計1天詳細設(shè)計1天編制源程序?qū)崿F(xiàn)3天測試與修改1天撰寫課程設(shè)計報告2天六、主要參考資料1 譚浩強C程序設(shè)計第四版清華大學(xué)出版社,20102 蘇小紅C語言大學(xué)實用教程第2版電子工業(yè)出版社,2008指導(dǎo)教師(簽名):年 月 日 目 錄1需求與總體設(shè)計12詳細設(shè)計13編碼實現(xiàn)44運行結(jié)果21總結(jié)241需求與總體設(shè)計1.1需求描述 設(shè)計一個利用文件處理方式實現(xiàn)對員工工資(包括員工編號、員工姓名、年月、崗位工資、獎金、扣款和實發(fā))進行管理,具有增加數(shù)據(jù)、更新數(shù)據(jù)、查詢數(shù)據(jù)、刪除數(shù)據(jù)、列表顯示數(shù)據(jù)以及重組文件的功能。1.2總體設(shè)計先以登陸函數(shù)登陸,再進入主菜單,菜單中顯示各個要實現(xiàn)的操作,以菜單將各個函數(shù)聯(lián)系起來,對菜單操作以實現(xiàn)系統(tǒng)的目的。1.3數(shù)據(jù)結(jié)構(gòu)struct user /登陸者信息char un10;char up10;us3 = "aaa","111","bbb","222","ccc","333" ;struct yg /員工結(jié)構(gòu)體short zt; /數(shù)據(jù)狀態(tài)long bh; /編號char name20; /名字char time11; /時間long money; /基本工資long jj; /獎金long kk; /扣款long sf; /實發(fā)工資;整個程序只運用了結(jié)構(gòu)體的數(shù)據(jù)結(jié)構(gòu),結(jié)構(gòu)體運用于登陸者信息和員工信息,將員工信息封裝在一個結(jié)構(gòu)體里,再創(chuàng)建結(jié)構(gòu)體數(shù)組,將多個員工信息儲存在結(jié)構(gòu)體數(shù)組中。2詳細設(shè)計2.1 系統(tǒng)功能設(shè)計主函數(shù)和子函數(shù):系統(tǒng)包含一個主函數(shù),和子函數(shù),分別有登陸子函數(shù),菜單子函數(shù),增加數(shù)據(jù)子函數(shù),更新數(shù)據(jù)子函數(shù),查詢數(shù)據(jù)子函數(shù),刪除數(shù)據(jù)子函數(shù),統(tǒng)計數(shù)據(jù)子函數(shù),重組文件子函數(shù),排序數(shù)據(jù)子函數(shù),最后兩個分別是讀取文件和寫入文件子函數(shù)。各個函數(shù)的功能:主函數(shù)是一個入口程序從這里進入,再進入登陸函數(shù),實現(xiàn)登陸操作。登陸函數(shù),只有擁有正確賬號密碼,正確的操作才可以進入菜單界面進行下一步的操作,并且輸入錯誤三次后將會提示并強制退出。菜單界面利用switch()函數(shù)將各個函數(shù)聯(lián)系起來實現(xiàn)真正的菜單,輸入正確的序號可以進行后續(xù)的各個操作。讀取函數(shù),將特定文件中的信息,以特定的方式讀取到正在運行的程序中,實現(xiàn)讀寫操作。寫入函數(shù),在添加、更新、刪除、重組操作過后進行寫入操作,將變換后的數(shù)據(jù)重新寫入文件中。注:每次寫入都是將程序中的所有數(shù)據(jù)重新寫入文件。增加函數(shù),可以新添員工,并將員工的數(shù)據(jù)輸入,并利用寫入函數(shù),寫入文件中。在增加后會提示是否繼續(xù)增加,提供了方便。并且如果原數(shù)據(jù)中有相同編號的員工,會在輸入編號后提示有相同的編號的員工,并重新輸入編號。增加了程序的健全性。更新數(shù)據(jù)函數(shù),以編號來確定更新的員工,更新將重新輸入該編號員工的信息,并在更新后執(zhí)行寫入。刪除函數(shù),執(zhí)行該函數(shù)后,將有兩種選擇,按編號刪除,或按名字刪除,正確輸入后將會將該編號或姓名的數(shù)據(jù)中的一項zt的值更改為1,使其在其他操作時不被識別,以達到不刪除數(shù)據(jù),但達到相同的效果的邏輯刪除。顯示函數(shù),有兩種顯示方式,按學(xué)號顯示或按名字顯示,學(xué)號顯示為從小到大顯示。重組函數(shù),將文件中邏輯刪除的數(shù)據(jù)物理刪除,用來節(jié)省儲存空間,并可以加快運算速度。統(tǒng)計數(shù)據(jù),將文件中的數(shù)據(jù)統(tǒng)計、計算,并輸出,給人以直觀的方式顯示數(shù)據(jù)。排序函數(shù),將數(shù)據(jù)以實發(fā)工資從大到小排序。2.2 系統(tǒng)流程設(shè)計主函數(shù)main();登陸函數(shù)dl();菜單函數(shù)cd();增加函數(shù)zj_data();刪除函數(shù)sc_data()更新函數(shù)gx_data();讀取函數(shù)read();查詢函數(shù)cz_data();顯示函數(shù)xs_data();重組數(shù)據(jù)cz_data();統(tǒng)計數(shù)據(jù)tj_data;排序數(shù)據(jù)px_data();系統(tǒng)的總體流程圖保存函數(shù)save();查詢輸入查詢方式按編號查詢按名字查詢查詢學(xué)生輸出當前學(xué)生數(shù)據(jù)查無此人查詢函數(shù)的流程圖3編碼實現(xiàn)#define MAX 100#include<stdio.h>#include<string.h>#include<stdlib.h>struct user /登陸者信息char un10;char up10;us3 = "aaa","111","bbb","222","ccc","333" ;struct yg /員工結(jié)構(gòu)體short zt; /數(shù)據(jù)狀態(tài)long bh; /編號char name20; /名字char time11; /時間long money; /基本工資long jj; /獎金long kk; /扣款long sf; /實發(fā)工資;yg yMAX; /定義數(shù)據(jù)體數(shù)組int r = 0; /全局變量,人數(shù),包括邏輯刪除人數(shù)int p = 0; /登陸的次數(shù),用全局變量能在登陸三次失敗時退出程序void read() /讀取文件函數(shù)FILE *fp;char b;int i;b = 0;printf("即將讀取文件 員工信息.datn");if (fp = fopen("員工信息.dat", "rb") = NULL) /讀取文件printf("員工信息.dat 文件不存在n");printf("是否重新創(chuàng)建該文件?n");printf("創(chuàng)建(y) 員工信息.dat 或 退出(n)n");getchar();b = getchar();while (getchar() != n)if (b = Y | b = N)b += 32;while (b != y&&b != n)printf("輸入錯誤!請重新輸入!n");b = getchar();while (getchar() != n)if (b = Y | b = N)b += 32;if (b = y)if (fp = fopen("員工信息.dat", "wb") = NULL) /文件不存在則創(chuàng)建文件printf("創(chuàng)建文件失敗!n");printf("按下任意鍵以退出程序!n");getchar();exit(1);if (b = 0)fread(&r, 4, 1, fp);printf("讀取成功!n");elseprintf("創(chuàng)建文件成功!n");if (r != 0)for (i = 0; i < r; i+)fread(&yi, sizeof(yg), 1, fp);fclose(fp);void save() /保存文件函數(shù)FILE *fp;int i;if (fp = fopen("員工信息.dat", "wb") = NULL)printf("保存文件失敗!n");printf("按下任意鍵以退出程序!n");getchar();exit(1);elsefwrite(&r, 4, 1, fp);if (r != 0)for (i = 0; i < r; i+)fwrite(&yi, sizeof(yg), 1, fp);fclose(fp);void zj_data() /增加數(shù)據(jù)函數(shù)yg yuangong;char b;int i;int k = 0;yuangong.zt = 0; /新建員工信息時,狀態(tài)為0do /用循環(huán)來尋找、避免相同編號的員工printf("編號:(例如:123456)n");scanf("%d", &yuangong.bh);for (i = 0; i < r; i+)if (yi.bh = yuangong.bh&&yi.zt=0)printf("已有同編號員工無法添加!n");printf("請重新輸入!n");k = 1;break;else if (i = r - 1)k = 0; while (k = 1);printf("姓名:(例如:張三(or tom)n");scanf("%s", yuangong.name);printf("年月:(例如:2015.11.11)n");scanf("%s", yuangong.time);printf("崗位工資:(例如:50000)n");scanf("%d", &yuangong.money);printf("獎金:(例如:2000)n");scanf("%d", &yuangong.jj);printf("扣款:(例如:100)n");scanf("%d", &yuangong.kk);printf("實發(fā)工資為:(崗位工資+獎金-扣款)n");yuangong.sf = yuangong.money + yuangong.jj - yuangong.kk;printf("%dn", yuangong.sf);yr = yuangong;r+; /新建員工信息時人數(shù)r+save();printf("添加成功!n");getchar(); /防止下面一個%c讀取到上一個的回車printf("是否繼續(xù)添加員工?(y/n)n");b = getchar();while (getchar() != n);if (b = Y | b = N)b += 32;while (b != y&&b != n)printf("輸入錯誤!請重新輸入!n");b = getchar();while (getchar() != n)if (b = Y | b = N)b += 32;if (b = y)zj_data();void gx_data() /更新數(shù)據(jù)yg yuangong;long num;int i;printf("n請輸入要更新的員工的編號!n");scanf("%d", &num);for (i = 0; i < r; i+)if (yi.bh = num&&yi.zt = 0)yuangong = yi;printf("當前該員工信息為:n");printf("編號:%dn", yuangong.bh);printf("姓名:%sn", yuangong.name);printf("年月:%sn", yuangong.time);printf("崗位工資:%dn", yuangong.money);printf("獎金:%dn", yuangong.jj);printf("扣款:%dn", yuangong.kk);printf("實發(fā)工資:%dn", yuangong.sf);printf("按下任意鍵輸入更新后的信息!n");getchar();getchar();printf("編號:(例如:123456)n");scanf("%d", &yuangong.bh);printf("姓名:(例如:張三(or tom)n");scanf("%s", yuangong.name);printf("年月:(例如:2015.11.11)n");scanf("%s", yuangong.time);printf("崗位工資:(例如:50000)n");scanf("%d", &yuangong.money);printf("獎金:(例如:2000)n");scanf("%d", &yuangong.jj);printf("扣款:(例如:100)n");scanf("%d", &yuangong.kk);printf("實發(fā)工資為:(崗位工資+獎金-扣款)n");yuangong.sf = yuangong.money + yuangong.jj - yuangong.kk;printf("%dn", yuangong.sf);yi = yuangong;save();printf("更新成功!n");break;else if (i = r - 1)printf("查無此人!n");void cz_data() /查詢數(shù)據(jù)yg yuangong;int a, i;long num;char na10;printf("n請選擇查詢方式!n"); /分為按編號查詢和姓名查詢printf(" *n");printf(" * 1、編號查詢 *n");printf(" * 2、姓名查詢 *n");printf(" * 3、返回菜單 *n");printf(" *n");scanf("%d", &a);if (a = 1)printf("請輸入查詢員工的編號:");scanf("%d", &num);for (i = 0; i < r; i+) /編號查詢則循環(huán)r次,查找狀態(tài)為0且編號與所輸入的數(shù)字相同的數(shù)據(jù)if (yi.zt = 0 && yi.bh = num)yuangong = yi;printf("當前該員工信息為:n");printf("編號:%dn", yuangong.bh);printf("姓名:%sn", yuangong.name);printf("年月:%sn", yuangong.time);printf("崗位工資:%dn", yuangong.money);printf("獎金:%dn", yuangong.jj);printf("扣款:%dn", yuangong.kk);printf("實發(fā)工資:%dn", yuangong.sf);break;else if (i = r - 1)printf("查無此人!n");else if (a = 2)printf("請輸入查詢員工的姓名:");scanf("%s", na);for (i = 0; i < r; i+) /姓名查詢則循環(huán)r次,查找狀態(tài)為0且編號與所輸入的字符串相同的數(shù)據(jù)if (strcmp(yi.name, na) = 0) && yi.zt = 0)yuangong = yi;printf("當前該員工信息為:n");printf("編號:%dn", yuangong.bh);printf("姓名:%sn", yuangong.name);printf("年月:%sn", yuangong.time);printf("崗位工資:%dn", yuangong.money);printf("獎金:%dn", yuangong.jj);printf("扣款:%dn", yuangong.kk);printf("實發(fā)工資:%dn", yuangong.sf);break;else if (i = r - 1)printf("查無此人!n");else if (a = 3)elseprintf("輸入錯誤!n");cz_data();void sc_data() /刪除數(shù)據(jù)yg yuangong;long num;int a, i, b;char na10;printf("n請選擇!n"); /刪除也按編號刪除和姓名刪除printf(" *n");printf(" * 1、按編號刪除 *n");printf(" * 2、按姓名刪除 *n");printf(" * 3、返回主菜單 *n");printf(" *n");scanf("%d", &a);if (a = 1)printf("請輸入要刪除員工的編號:");scanf("%d", &num);for (i = 0; i < r; i+)if (yi.zt = 0 && yi.bh = num)yuangong = yi;printf("當前該員工信息為:n");printf("編號:%dn", yuangong.bh);printf("姓名:%sn", yuangong.name);printf("年月:%sn", yuangong.time);printf("崗位工資:%dn", yuangong.money);printf("獎金:%dn", yuangong.jj);printf("扣款:%dn", yuangong.kk);printf("實發(fā)工資:%dn", yuangong.sf);yi.zt = 1;save();printf("刪除成功!n");getchar(); /防止下面一個%c讀取到上一個的回車printf("是否繼續(xù)刪除員工?(y/n)n");b = getchar();while (getchar() != n);if (b = Y | b = N)b += 32;while (b != y&&b != n)printf("輸入錯誤!請重新輸入!n");b = getchar();while (getchar() != n)if (b = Y | b = N)b += 32;if (b = y)sc_data();break;else if (i = r - 1)printf("查無此人,無法刪除!n");else if (a = 2)printf("請輸入刪除員工的姓名:");scanf("%s", na);for (i = 0; i < r; i+)if (strcmp(yi.name, na) = 0) && yi.zt = 0)yuangong = yi;printf("當前該員工信息為:n");printf("編號:%dn", yuangong.bh);printf("姓名:%sn", yuangong.name);printf("年月:%sn", yuangong.time);printf("崗位工資:%dn", yuangong.money);printf("獎金:%dn", yuangong.jj);printf("扣款:%dn", yuangong.kk);printf("實發(fā)工資:%dn", yuangong.sf);yi.zt = 1;save();printf("刪除成功!n");getchar(); /防止下面一個%c讀取到上一個的回車printf("是否繼續(xù)刪除員工?(y/n)n");b = getchar();while (getchar() != n);if (b = Y | b = N)b += 32;while (b != y&&b != n)printf("輸入錯誤!請重新輸入!n");b = getchar();while (getchar() != n)if (b = Y | b = N)b += 32;if (b = y)sc_data();break;else if (i = r - 1)printf("查無此人,無法刪除!n");else if (a = 3) /輸入為3時不執(zhí)行操作返回主菜單elseprintf("輸入錯誤!n");sc_data();void xs_data() /顯示數(shù)據(jù)yg yuangongMAX, t;int a;int i, j;int k = 0;printf("n請選擇顯示方式!n");printf(" *n");printf(" * 1、按編號顯示 *n");printf(" * 2、按姓名顯示 *n");printf(" * 3、返回主菜單 *n");printf(" *n");scanf("%d", &a);for (i = 0; i < r; i+)yuangongi = yi;if (yi.zt = 1)k+;if (k = r)printf("無員工信息!n");a = 3;if (a = 1) /按編號顯示時用冒泡排序從大到小排序for (i = 1; i <= r; i+)for (j = 0; j<r - i; j+)if (yuangongj.bh > yuangongj + 1.bh)t = yuangongj;yuangongj = yuangongj + 1;yuangongj + 1 = t;printf("按編號排列如下:n");printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10sn", "編號", "姓名", "年月", "崗位工資", "獎金", "扣款", "實發(fā)工資");for (i = 0; i<r; i+)if (yuangongi.zt = 0)printf("%-10d%-10s%-10s%-10d%-10d%-10d%-10dn", yuangongi.bh, yuangongi.name, yuangongi.time, yuangongi.money, yuangongi.jj, yuangongi.kk, yuangongi.sf);printf("顯示完畢!n");else if (a = 2) /按名字顯示時用冒泡排序從大到小排序,用strcmp來比較字符串的大小for (i = 1; i <= r; i+)for (j = 0; j<r - i; j+)if (strcmp(yuangongj.name, yuangongj + 1.name) > 0)t = yuangongj;yuangongj = yuangongj + 1;yuangongj + 1 = t;printf("按姓名排列如下:n");printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10sn", "編號", "姓名", "年月", "崗位工資", "獎金", "扣款", "實發(fā)工資");for (i = 0; i<r; i+)if (yuangongi.zt = 0)printf("%-10d%-10s%-10s%-10d%-10d%-10d%-10dn", yuangongi.bh, yuangongi.name, yuangongi.time, yuangongi.money, yuangongi.jj, yuangongi.kk, yuangongi.sf);printf("顯示完畢!n");else if (a = 3)elseprintf("輸入錯誤!n");cz_data();void chongz_data() /重組文件int i, j;int k = 0;for (i = 0; i < r; i+) /循環(huán)r次,將狀態(tài)為1的數(shù)據(jù)剔除,并將剔除數(shù)據(jù)的個數(shù)記錄if (yi.zt = 1)for (j = i; j < r; j+)yj = yj + 1;k+;r -= k; /將人數(shù)r重新計算save();printf("重組成功!n");void tj_data() /統(tǒng)計數(shù)據(jù)yg yuangongMAX;int max, m, k = 0;double ave = 0;int n = 0;int i;for (i = 0; i < r; i+) /計算文件中邏輯刪除的數(shù)據(jù)個數(shù)kyuangongi = yi;if (yuangongi.zt = 1)k+;for (i = 0; i < r; i+) /將數(shù)組中第一個狀態(tài)為0的數(shù)據(jù)的實發(fā)工資賦給max,并記錄是第幾位,跳出循環(huán)if (yuangongi.zt = 0)max = yuangongi.sf;m = i;break;if (yuangong0.zt = 0) /第一個數(shù)據(jù)是否邏輯刪除?否,將實發(fā)工資賦給ave未計算的平均值ave = yuangong0.sf;for (i = 1; i < r; i+) /循環(huán)找出最大值,并將所有正常數(shù)據(jù)加入未計算的ave中if (max < yuangongi.sf) && (yuangongi.zt = 0)m = i;if (yuangongi.zt = 0)ave += yuangongi.sf;ave = ave / (r - k); /計算avefor (i = 0; i < r; i+) /將數(shù)據(jù)中所有大于ave的數(shù)據(jù),統(tǒng)計if (yuangongi.sf > ave) && (yuangongi.zt = 0)n+;printf("n最高實發(fā)工資員工信息為:n"); /輸出結(jié)果printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10sn", "編號", "姓名", "年月", "崗位工資", "獎金", "扣款", "實發(fā)工資");printf("%-10d%-10s%-10s%-10d%-10d%-10d%-10dn", yuangongm.bh, yuangongm.name, yuangongm.time, yuangongm.money, yuangongm.jj, yuangongm.kk, yuangongm.sf);printf("平均工資為:%.2fn", ave);printf("超過平均工資人數(shù)為:%dnn", n);void px_data() /排序數(shù)據(jù)yg yuangongMAX, t;int num = 0;int i, j;for (i = 0; i < r; i+)yuangongi = yi;for (i = 1; i <= r; i+) /冒泡排序排序所有數(shù)據(jù)for (j = 0; j < r - i; j+)if (yuangongj.sf<yuangongj + 1.sf)t = yuangongj;yuangongj = yuangongj + 1;yuangongj + 1 = t;printf("n所有員工信息為:n");printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10sn", "編號", "姓名", "年月", "崗位工資", "獎金", "扣款", "實發(fā)工資");for (i = 0; i<r; i+)if (yuangongi.zt = 0)printf("%-10d%-10s%-10s%-10d%-10d%-10d%-10dn", yuangongi.bh, yuangongi.name, yuangongi.time, yuangongi.money, yuangongi.jj, yuangongi.kk, yuangongi.sf);void cd() /菜單函數(shù)int l;doprintf("歡迎進入員工工資管理系統(tǒng)菜單!n");printf(" _n");printf(" *| 1.增加數(shù)據(jù) |*n");printf(" *| 2.更新數(shù)據(jù) |*n");printf(" *| 3.查詢數(shù)據(jù) |*n");printf(" *| 4.刪除數(shù)據(jù) |*n");printf(" *| 5.顯示數(shù)據(jù) |*n");printf(" *| 6.重組數(shù)據(jù) |*n");printf(" *| 7.統(tǒng)計輸出 |*n");printf(" *| 8.排序數(shù)據(jù) |*n");printf(" *| 9.退出 |*n");printf(" *|其它輸入為退出|*n");printf(" *|_|*nn");printf("請輸入你的選擇:n");scanf("%d", &l);switch (l)case 1:zj_data(); printf("即將返回主菜單n"); system("PAUSE"); break; /system用于返回主菜單時等待一下case 2:gx_data(); printf("即將返回主菜單n"); system("PAUSE"); break;case 3:cz_data(); printf("即將返回主菜單n"); system("PAUSE"); break;case 4:sc_data(); printf("即將返回主菜單n"); system("PAUSE"); break;case 5:xs_data(); printf("即將返回主菜單n"); system("PAUSE"); break;case 6:chongz_data(); printf("即將返回主菜單n"); system("PAUSE"); break;case 7:tj_data(); printf("即將返回主菜單n"); system("PAUSE"); break;case 8:px_data(); printf("即將返回主菜單n"); system("PAUSE"); break;case 9:break; while (l != 9 && (l = 1 | l = 2 | l = 3 | l = 4 | l = 5 | l = 6 | l = 7 | l = 8);void dl() /登陸函數(shù)int i;char a10, b10;printf("請輸入用戶名:n");scanf("%s", a);printf("請輸入密碼:n");scanf("%s", b);for (i = 0; i<3; i+)if (strcmp(usi.un, a) = 0 && strcmp(usi.up, b) = 0)printf("登錄成功!n");read();cd();break;if (i = 3)printf("登錄失敗!n");p+;if (p >= 3)printf("登錄失敗超過3次,系統(tǒng)將強制退出!n");printf("按下任意鍵以退出程序!n");g

注意事項

本文(程序設(shè)計基礎(chǔ)課程設(shè)計報告c語言實現(xiàn)附源碼員工工資管理系統(tǒng))為本站會員(仙***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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