freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

職工工資管理系統(tǒng)c語言作業(yè)(編輯修改稿)

2025-01-20 06:42 本頁面
 

【文章內(nèi)容簡介】 功能。如果參數(shù)為 1則引導用戶登記員工工資此時調(diào)用前面的已有函數(shù)[basic_input_2(nowhead2)。 二級鏈表信息輸入函數(shù) ],若參數(shù)不為 1,則引導用戶修改員工的工資記錄此時調(diào)用工資修改函數(shù) [gongzi_change(nowhead2)。]。 具體算法如下: 13 【柯泥波特 】職工工資 信息 管理系統(tǒng) 設(shè)計報告 13 struct Member *now。 int n,j,i=0。 判斷功能參數(shù)是否為 1 是 否 打印提示 : 輸入要登記的員工號: 打印提示: 輸入要修改工資的員工號: 接收用戶輸入 初始化局部變量 now=head1。 當 now不為空的時候 now==n? 是 否 打印基本員工信息 修改 一級 指針 指向 改編標識變量的值 判斷功能參數(shù)是否為 1 是 否 打印提示 打印提示 接收用戶輸入 接收用戶輸入 是否開始操作 是 否 是否開始操作 是 否 登記函數(shù) 退出循環(huán) 修改函數(shù) 退出循環(huán) 判斷操作標識變量是否為 1? 是 否 打印提示:您沒有任何更改操作 保存更改 修改執(zhí)行函數(shù) struct Time_J_M *gongzi_change(struct Time_J_M *head2) 該函數(shù)接收一個二級鏈表首地址地址 參數(shù)。根據(jù)用戶所輸入的工資記錄編號來查找要修改的工資記錄。 先 初始化局部變量,進入循環(huán)。若找到,則 實際上進入類似工資登記的界面,只不過是用新的數(shù)據(jù)來覆蓋老的數(shù)據(jù)而已,修改結(jié)束直接返回地址,結(jié)束大循環(huán);若沒有找到,則修改局部變量的指向,再次查找。直到找到或檢測為空為止。 2 void more_task(struct Member *head1) 該函數(shù)同普通用戶主控函數(shù)與管理員主控函數(shù)工作原理相同。它可以引導用戶使用 2項高級功能: 生成全體員工時間工資報表 功能 和 綜合條件篩選 功能 和 按員工號排序整理鏈表 。 或是不做任何操作返回上一級。 /時間 /報表 主控函數(shù) void Q_T_B(struct Member *head1) 該函數(shù)的查詢對象為全體,范圍限定為時間,功能為引導 其它 函數(shù),實現(xiàn)對每一個月全體員工稅后工資排序與展示的自動報表功能。 該函數(shù)接收全體員工信息的鏈表首地址,根據(jù)用戶輸入的時間調(diào)用篩選函數(shù)[ShaiXuan(y,m,head1)。],篩選函數(shù)負責信息篩選和儲存。信息篩選之后,再調(diào)用信息讀取函數(shù) [new_head1=basic_read_1(2)。],讀取篩選好的信息,最后傳給排序打印函數(shù)[PaiXuBaoBiao(new_head1)。],由此便生成了排序報表。 具體算法如下: 14 【柯泥波特 】職工工資 信息 管理系統(tǒng) 設(shè)計報告 14 int y,m。 struct Member *new_head1。 請輸入要生成的報表的年 /月 [如: 202101]: 接收用戶輸入 調(diào)用篩選函數(shù) ShaiXuan(y,m,head1)。 打印篩選提示 初始化局部變量 new_head1=NULL。 調(diào)用信息讀取函數(shù) new_head1=basic_read_1(2) 判斷是否有信息 是 否 打印邊框 打印提示 調(diào)用 PaiXuBaoBiao(new_head1)。 結(jié)束該函數(shù) void ShaiXuan(int y,int m,struct Member *head1) 該函數(shù)根據(jù)時間為篩選條件。進入循環(huán)篩選的時候,先檢測該員工是否有需要的數(shù)據(jù),如果有,則將該員工的基礎(chǔ)信息寫入文件 [baobiao_linshi],并將二級鏈表的讀取次數(shù)標識數(shù)據(jù)記錄為 1,再寫入二級鏈表的內(nèi)容。如果發(fā)現(xiàn)該員工沒有要找的信息,則不寫如該員工的任何信息。 具體算法如下: struct Member *now1。 struct Time_J_M *now2。FILE *fp。 int i=0,b=1。 打開文件 [baobiao_linshi] 初始化局部變量 now1=head1。 打印檢測信息: 開始篩選 當 now不為空時 i=0 初始化二級鏈表的局部變量 該員工二級鏈表是否為空? 是 否 修改一級鏈表 局部變量指向 開始下一次循環(huán) 當二級指針不為空的時候 是否為所需數(shù)據(jù)? 是 否 修改標識變量 i++ 結(jié)束二級查找 改變指針指向 進入下一次二級循環(huán) 判斷標識變量是否為 1? 是 否 寫入一級基礎(chǔ)數(shù)據(jù) 修改一級鏈表 局部變量指向 開始下一次循環(huán) 寫入二級讀取標識數(shù)據(jù) 初始化二級鏈表局部變量 當 now2不為空的時候 是否為所需數(shù)據(jù)? 是 否 寫入數(shù)據(jù) 結(jié)束循環(huán) 改變指針指向 進入下一次二級循環(huán) 關(guān)閉文件 15 【柯泥波特 】職工工資 信息 管理系統(tǒng) 設(shè)計報告 15 void PaiXuBaoBiao(struct Member *head1) 該函數(shù)的原理是,找到最大的數(shù)據(jù),打印之后便刪除,然后再找新鏈表中最大的數(shù)據(jù)再打印,再刪除,直到鏈表為空。這樣便在顯示器上形成了從大到小的排序報表。 采用打印即刪除的算法,而不是采用先排序后打印算法的原因: 1,動態(tài)鏈表長度具有不可預知性; 2,若先檢測長度,根據(jù)長度決定排序運行次數(shù),逐一排序,之后打印,計算表明,這種先排序后打印算法的步驟會長于打印即刪除算法的步驟。 3,因為任務(wù)的性質(zhì)是生成每月的報表,文件不需要保存,排好序的鏈表最終會消失在內(nèi)存之中。 具體算法如下: struct Member *now1,*max,*pre。 float a=0,b=0,c=0,d。 初始化數(shù)據(jù) 當 now1不為空的時候 計算有關(guān)數(shù)據(jù) now1=now1next1。 計算有關(guān)數(shù)據(jù) 打印表頭 當一級鏈表不為空的時候 初始化 pre=head1。 max=head1。 now1=head1next1。 now1是否為空? 打印信息 【等待下一步操作】 結(jié)束大循環(huán) 當 now1不為空的時候 now1head2aftertaxmaxhead2aftertax? 是 否 max=now1。 pre=head1。 now1=now1next1。 當 pre!=NULL時候 prenext1==max 是 否 結(jié)束循環(huán) pre=prenext1。 now1=now1next1。 max==head1? 是 否 head1=head1next1。 prenext1=maxnext1。 打印信息 打印其他信息 void name_find(struct Member *head1) 該函數(shù)算法與按員工號查找函數(shù)算法一樣。不同之處在于員工號查找只需比對數(shù)字即可,按姓名查找需要比對字符串的前 4個字符的編碼。 16 【柯泥波特 】職工工資 信息 管理系統(tǒng) 設(shè)計報告 16 void other_find(struct Member *head1) 構(gòu)思:該函數(shù)通過接收的輸入是否為 Enter智能判斷用戶是否有 條件 輸入,如果是 Enter則吸收該輸入,若不是 Enter則再放回到輸入流中,等待正確的變量接收,并將標識變量改為 1,最后統(tǒng)計所有標識變量的和。 因為初始化的標識變量都是 0,只要是用戶輸入了條件,對應(yīng)的標識表變量就變成了 1,所以最后的和也就是條件的數(shù)目。 在條件篩選的時候,初始化篩選動態(tài)變量為 0,根據(jù)對應(yīng)的標識變量是否為 1或 0來判斷是否增減該條件的篩選,每檢查完一條項目之后,檢查篩選動態(tài)變量是否和上面的和相等,若相等,則打印該條信息。直到大循環(huán)結(jié)束。 void help() 該函數(shù)為單純的信息展示函數(shù)。 void paixu_zhengli(struct Member *head1) 該函數(shù) 根據(jù)員工號的大小自動排序整理鏈表; 該函數(shù)先統(tǒng)計鏈表的長度決定冒泡排序次數(shù)。改變鏈表的排序由 2個局部變量實現(xiàn)。 具體算法如下: struct Member *now1,*pre。 int i=0。 初始化局部變量 并打印提示 當 now1不是空的時候 統(tǒng)計鏈表長度 ++i; now1=now1next1。 打印提示 當 i不是 0的時候 now1=head1。 pre=head1。準備排序 當 now1next1不是空的時候 now1now1next1? 是 否 now1==head1? 是 否 pre=now1。 now1=now1next1。 head1=now1next1。 now1next1=head1next1。 head1next1=now1。 pre=head1。 prenext1=now1next1。 now1next1=now1next1next1。 prenext1next1=now1。 pre=prenext1。 i; 保存鏈表 打印提示 原理圖: 17 【柯泥波特 】職工工資 信息 管理系統(tǒng) 設(shè)計報告 17 18 【柯泥波特 】職工工資 信息 管理系統(tǒng) 設(shè)計報告 18 19 【柯泥波特 】職工工資 信息 管理系統(tǒng) 設(shè)計報告 19 四、 調(diào)試分析 為了方便調(diào)試和發(fā)現(xiàn)錯誤,本程序增添了很多用于顯示狀態(tài)的提示。 如:正在讀取;讀取成功;正在寫入;寫入成功;篩選成功;沒有數(shù)據(jù),數(shù)據(jù)如下…… 這些提示的顯示,可以表明程序的正常運行,若不能顯示,也可以說明錯誤發(fā)生在何處,方便以后的維護和 查錯。 關(guān)于本程序的調(diào)試。 雖然在編寫過程中會發(fā)生一些錯誤,但因為有一系列的報錯機制和運行提示,所有錯誤均已排除,現(xiàn)在程序整體運行正常。 五、總結(jié) 通過本次 編程 聯(lián)系,收獲很多, 現(xiàn) 在 總結(jié)如下: 1. 在寫程序之前,一定要有一個總體的構(gòu)思。這些構(gòu)思包括:要實現(xiàn)什么功能,選擇 什么樣的 數(shù)據(jù)結(jié)構(gòu),如何去控制數(shù)據(jù),每個模塊要負責什么功能。 2. 在寫模塊函數(shù)程序的時候,也一定要有一個構(gòu)思。這些構(gòu)思包括:本函數(shù)的算法,本函數(shù)要接收什么參數(shù),返回什么數(shù)據(jù),如何調(diào)用本函數(shù),是否能將函數(shù)寫的更為通用, 功能更強大, 而不是只能調(diào)用一次。 3. 鍵盤緩沖槽中的數(shù)據(jù)不容忽視,要隨時清行 來 避免自動觸發(fā) 其它 操作,又不能進入死循環(huán)或是刪除了正確的命令,這是我編程的最大體會,也是本次收獲的一個最大技巧。 4. 要有一個良好的排版風格,不好的風格在寫多重循環(huán)嵌套的時候很容易眼花。 5. 注意輸入字體,減慢輸入速度,來 減少錯別字的輸入。 6. 要注重給用戶一個好的體驗,好的界面。要有高效的算法,要加密信
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1