




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言課程設(shè)計(jì)題目及要求三 <* l*M M&M l*M * l*M * O-KH BAM M_H H-M MKU * MEM» 題目:職工信息治理系統(tǒng)設(shè)計(jì)職工信息包括職工號(hào)、姓名、性別、年齡、學(xué)歷、工資、住址、 等職工號(hào)不 重復(fù).試設(shè)計(jì)一職工信息治理系統(tǒng),使之能提供以下功能:1、職工信息錄入功能職工信息用文件保存.2、職工信息瀏覽功能.3、查詢功能:可以按“職工號(hào)、“姓名、“ 、“工資等方式查詢記錄; 如果查詢信息不存在,顯示沒有找到信息;4、刪除功能:可以根據(jù)職工號(hào)或姓名刪除一條已經(jīng)存在的職工信息;5、排序功能:能對(duì)姓名、年齡、工資進(jìn)行排序,并顯示;6、修改功能:改
2、變記錄項(xiàng)的一個(gè)或多個(gè)屬性,并用新的記錄項(xiàng)覆蓋已經(jīng)存在的記錄 項(xiàng);7、數(shù)據(jù)存、?。簲?shù)據(jù)以文件形式存儲(chǔ)在磁盤上,因此在程序運(yùn)行中需要對(duì)文件進(jìn)行 讀取操作.編程人員可以根據(jù)實(shí)際需要自己定義文件的存儲(chǔ)格式,在數(shù)據(jù)讀寫時(shí)必須精 確定位,以免破壞文件的正確性.除此之外,程序中還要不停處理用戶的輸入,對(duì)輸入 數(shù)據(jù)的容錯(cuò)性進(jìn)行檢查,可以保證數(shù)據(jù)的合法性,防止惡意和非惡意的操作對(duì)用戶數(shù)據(jù) 的破壞.8、系統(tǒng)以菜單方式工作.1 .設(shè)計(jì)目的在今天這個(gè)高速信息時(shí)代,許多繁雜的辦公事務(wù)都由計(jì)算機(jī)代勞,例如職工信息管 理等重復(fù)勞動(dòng)越來越需要計(jì)算機(jī)來處理.本系統(tǒng)就是為提升企業(yè)治理職工信息的效率而 設(shè)計(jì)的,現(xiàn)在職工信息治理系統(tǒng)
3、發(fā)揮無可取代的作用.職工信息治理系統(tǒng)是一個(gè)可以用來進(jìn)行職工工號(hào)、姓名等自然信息以及各項(xiàng)工資構(gòu) 成進(jìn)行錄入、查詢、修改、刪除、增加和排序?yàn)g覽等操作的應(yīng)用軟件.2 .設(shè)計(jì)的總體思想本系統(tǒng)是用Visual C進(jìn)行設(shè)計(jì)與開發(fā),總體思想是結(jié)構(gòu)化、模塊化的程序設(shè)計(jì).由 于主要實(shí)現(xiàn)的是治理系統(tǒng)的增、刪、改、查和排序等功能,因此應(yīng)用到程序設(shè)計(jì)中的基 本限制結(jié)構(gòu),如循環(huán)和選擇,還使用到 C語言最具特色的語言成分一一指針,高效地使 用數(shù)組、字符串和結(jié)構(gòu)體,采用經(jīng)典的排序方法一一冒泡法進(jìn)行排序,并且包含對(duì)文件 的讀、寫等根本操作.3 .功能模塊描述職工信息治理系統(tǒng)是為企業(yè)進(jìn)行職工信息治理提供輔助而設(shè)計(jì)的,需要為用戶
4、提供 一個(gè)簡單的人機(jī)界面以便操作,各功能模塊如下.1登錄模塊:根據(jù)輸入的登錄密碼判斷是否允許該用戶使用本系統(tǒng),輸入密碼正確才 能進(jìn)入治理界面,治理職工信息.2創(chuàng)立模塊:當(dāng)?shù)谝淮问褂帽鞠到y(tǒng)時(shí),根據(jù)提示輸入職工的工號(hào)、姓名、性別、年齡、 學(xué)歷、職位、工資、 和住址,可一次性輸入多條職工的信息記錄.瀏覽模塊: 可以瀏覽經(jīng)輸入、修改、刪除、添加、排序、讀取后的職工信息.3查詢模塊:分為根據(jù)工號(hào)、姓名、 、工資查詢的四個(gè)具體需求,分別提示治理 員要查詢的職工信息的的工號(hào)、姓名、 或工資.4修改模塊:分為根據(jù)工號(hào)、姓名修改的兩個(gè)具體需求,分別提示治理員要修改的職 工信息的工號(hào)和姓名,如果有對(duì)應(yīng)職工的信息記
5、錄存在,那么逐項(xiàng)列出對(duì)應(yīng)職工的信 息.5刪除模塊:分為根據(jù)工號(hào)、姓名刪除的兩個(gè)具體需求,分別提示治理員要?jiǎng)h除的職工信息的工號(hào)和姓名,如果有那么刪除此職工對(duì)應(yīng)的信息記錄.6添加模塊:可在原有職工信息記錄的根底上增加新的職工信息記錄,并保存至磁盤中.7排序模塊:分為根據(jù)姓名、年齡、工資排序的三個(gè)具體需求,分別提示治理員選擇 排序的方式.8保存模塊:將2345678模塊中改動(dòng)的數(shù)據(jù)保存至文件中,以便進(jìn)行治理、查找 和備份.9讀取模塊:將文件中的數(shù)據(jù)讀取至內(nèi)存中.4 .概要設(shè)計(jì)系統(tǒng)模塊結(jié)構(gòu)圖根據(jù)模塊功能描述,職工信息系統(tǒng)可以分為11個(gè)模塊,系統(tǒng)模塊結(jié)構(gòu)如圖1所示.5 .詳細(xì)設(shè)計(jì)5.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)本程
6、序定義結(jié)構(gòu)體staffinfo ,用于存放職工的相關(guān)信息.定義的結(jié)構(gòu)體如下每個(gè)變量后面/* */中的內(nèi)容為各個(gè)變量的含義:struct staffinfo(char num10;/*工號(hào)*/char name9;/*姓名*/char sex3;/*性別*/char age3;/*年齡*/char edu5;/*學(xué)歷*/char role5;/*職位*/char salary6;/*工資*/char tel16;/* */char addr30;/*住址*/staN;由于工號(hào)、姓名、 、住址等信息是用來描述職工這個(gè)有機(jī)整體,為了表示這些字段不是孤立的,而是共同描述一個(gè)完整的事物,因此用結(jié)構(gòu)體來實(shí)
7、現(xiàn).5.2 各函數(shù)說明1) void gotoxy(int x,int y)功能:用于在屏幕上定位,其中整型數(shù)x代表列數(shù),整型數(shù)y代表行數(shù),其中0<x<80, 0<y, (0, 0)代表左上角.2) void showtable1()void showtable2()功能:分別打印表頭與表尾.3) void enter()功能:進(jìn)入系統(tǒng)登錄界面,驗(yàn)證治理員輸入的密碼輸入:登錄密碼 處理:接收治理員輸入的密碼,存放到相應(yīng)變量中進(jìn)行判斷.判斷密碼是否正確,如果相符,那么進(jìn)入主菜單.如果不相符,那么提示用戶重新輸入.4) int find(char str30,int t)功能:查
8、找指定記錄,str30表示需治理員輸入的職工的某一項(xiàng)信息,t表示 通過哪一項(xiàng)來查找,例如通過工號(hào)、姓名來查找.假設(shè)找到與輸入的信息相同的記錄, 那么返回找到的記錄號(hào),假設(shè)找不到就返回-1.輸入:職工信息的某一項(xiàng)和想查找的途徑.處理:接收治理員輸入的職工信息與查找方式,并存入相應(yīng)的變量中.將內(nèi)存中的數(shù)據(jù)與輸入信息逐條比對(duì),直到找到相同的記錄,返回找到 的記錄號(hào).假設(shè)沒找到該職工的記錄,就返回-1.5) void creat()功能:創(chuàng)立職工信息.將治理員輸入的假設(shè)干條信息記錄存入內(nèi)存中.輸入:需創(chuàng)立的信息記錄條數(shù).假設(shè)干條職工信息記錄(工號(hào)、姓名、職位、 等信息).處理:提示治理員逐條輸入職工信
9、息.獲取治理員輸入的信息,存入內(nèi)存中.提示治理員錄入成功.6) void display()功能:瀏覽經(jīng)過改動(dòng)的信息記錄,即打印出內(nèi)存中的數(shù)據(jù).7) void search()功能:查詢所需職工信息記錄.四種方式查詢:工號(hào)、姓名、 和工資.根據(jù)治理員輸入的職工信息和查找方式, 按不同方式查找記錄,列表顯示查找到的記 錄內(nèi)容.輸入:想要查找的方式.要查詢的職工的某一項(xiàng)信息.處理:提示治理員要查詢的方式和要查詢職工的對(duì)應(yīng)信息.循環(huán)品牌查找對(duì)應(yīng)記錄.如果找找,那么列表顯示結(jié)果.8) void modify()功能:修改原有的職工信息記錄.兩種查找匹配記錄的方式:工號(hào)和姓名.根據(jù)治理員輸入的查找方式和
10、職工信息查找是否存在匹配記錄,假設(shè)存在,那么將此職工的信息改為治理員輸入的內(nèi)容.輸入:想要查找匹配記錄的方式.要修改的職工的某一項(xiàng)信息.確認(rèn)修改的選項(xiàng)字母所要修改記錄的內(nèi)容值(工號(hào)、姓名等).處理:接收治理員輸入的查找匹配記錄的方式和要修改職工的某一項(xiàng)信息.判斷是否有匹配職工記錄,假設(shè)有,那么列表顯示該記錄并提示治理員 是否確認(rèn)修改.提示治理員輸入該職工方的各項(xiàng)信息.提示治理員是否修改成功.9) void delet()功能:刪除指定的職工信息記錄.兩種查找匹配記錄的方式:工號(hào)和姓名. 根據(jù) 治理員輸入的查找方式和職工信息查找匹配記錄, 假設(shè)找到,那么列表顯示,經(jīng)提示 后刪除該條記錄.輸入:想
11、要查找匹配記錄的方式.要?jiǎng)h除的職工的某一項(xiàng)信息.確認(rèn)刪除的選項(xiàng)字母.處理:接收治理員輸入的查找匹配記錄的方式和要修改職工的某一項(xiàng)信息.判斷是否有匹配職工記錄,假設(shè)有,那么列表顯示該記錄并提示治理員確 認(rèn)刪除.提示治理員是否刪除成功.10) void add()功能:增加新的職工信息記錄.判斷所輸入的工號(hào)是否已存在,假設(shè)不存在, 那么將治理員輸入的假設(shè)干條信息記錄存入內(nèi)存中 輸入:想要添加職工的工號(hào).新的職工信息記錄(姓名、學(xué)歷等).處理:提示治理員輸入新職工的工號(hào).判斷職工號(hào)是否存在,假設(shè)不存在,那么提示治理員逐條輸入職工信息.獲取治理員輸入的信息,存入內(nèi)存中.提示治理員添加成功.11) vo
12、id order()功能:給職工信息記錄排序(升序)0三種排序方式:姓名、年齡和工資.根據(jù) 治理員輸入的排序方式排序,列表顯示排序結(jié)果.輸入:想要的排序方式.處理:提示治理員輸入排序方式.根據(jù)指定方式排序.列表顯示排序結(jié)果.12) void save()功能:保存職工信息記錄及記錄條數(shù)至文件中.輸入:確認(rèn)保存的選項(xiàng)字母.假設(shè)確認(rèn)保存,那么將內(nèi)存中的數(shù)據(jù)保存至指定文件中.提示治理員保存成功.13) void load()功能:從文件中讀取職工信息記錄及記錄條數(shù).輸入:確認(rèn)讀取的選項(xiàng)字母.處理:提示治理員確認(rèn)讀取.將文件中的數(shù)據(jù)讀取至內(nèi)存中.提示治理員讀取成功.14) void quit()功能:
13、確認(rèn)保存過數(shù)據(jù)后,平安退出系統(tǒng).輸入:確認(rèn)保存的選項(xiàng)字母.確認(rèn)退出系統(tǒng)的選項(xiàng)字母.處理:提示治理員確認(rèn)保存.假設(shè)確認(rèn)保存,那么將內(nèi)存中的數(shù)據(jù)保存至指定文件中.提示治理員是否退出系統(tǒng),假設(shè)是那么退出.15) void main()功能:根據(jù)主菜單上的各項(xiàng)指令,調(diào)用1)至14)的各個(gè)函數(shù).系統(tǒng)限制圖如圖1所示.6.程序分析6.1 程序預(yù)處理包括加載頭文件,定義結(jié)構(gòu)體,宏定義,全局變量,并對(duì)他們進(jìn)行初始化#include <stdio.h> /*輸入/輸出函數(shù)*/#include <stdlib.h> /*其他說明 */#include <string.h> /*
14、字符串函數(shù)*/#include <windows.h> /* 系統(tǒng)操作函數(shù) */ struct staffinfo#include <conio.h> /*屏幕操作函數(shù)*/#define N 20/*系統(tǒng)記錄的職工數(shù),可根據(jù)不同企業(yè)的需要更改 */char num10;/*工號(hào)*/char name9;char sex3;char age3;char edu5;/*學(xué)歷*/char role5; /*職位*/char salary6;char tel16;/* */char addr30;/*住址*/staN;int n=0;/*實(shí)際錄入的職工信息記錄總條數(shù)*/6.2
15、主函數(shù) void main()主要實(shí)現(xiàn)對(duì)整個(gè)程序的運(yùn)行限制.詳細(xì)分析可參考圖3.I*主函數(shù)void main()void gotoxy(int x,int y);/*光標(biāo)定位*/void showtable1();/*打印表頭*/void showtable2();void enter();int find(char str30,int t);void creat();void display();void search();void modify();void delet();void add();void order();void save();void load();void quit(
16、);system("color 3e");enter();while (1)int choice;system("cls");/*/*/*/*/*清屏*/printf"職工信息治理系統(tǒng)"錄入職工信息*/瀏覽職工信息*/從文件讀取職工信息*/退出系統(tǒng)*/printf("主菜單n");printf("*n");printf(")n");printf(")n");printf(")n");printf(")n");prin
17、tf(")n");printf(")n");printf(")n");printf(")n");printf(")n");(002002002 3:002 4:002 5:002 6:1:錄入職工信2:瀏覽職工信查詢所需職工信修改原有的職工信刪除原有的職工信添加新的職工信002 7:002 8:002 9:保存職工信讀取職工信統(tǒng))n");printf("*肝);do(printf("n004請(qǐng)輸入指令(09):");scanf("%d"
18、,&choice); /*輸入選擇的數(shù)字 */while(choice<0|choice>9);switch(choice)(case 1: creat(); break;case 2: display();break;case 3: search();break;case 4: modify();break;case 5: delet();break;case 6: add();break;case 7: order();break;case 8: save();break;case 9: load();break;case 0: quit();break;default
19、:break;6.3 光標(biāo)定位函數(shù) void gotoxy(int x,int y)0<x<80, 0<y, (0, 0)代表左上角./*光標(biāo)定位*/void gotoxy(int x,int y)COORD coord;coord.X=x; /*橫坐標(biāo),表示列數(shù)*/coord.Y=y; /*縱坐標(biāo),表示行數(shù)*/SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);)6.4 表頭 showtable1()和表尾 showtable2()用于打印表格的頭和尾.尸*表頭*/void showtable1()
20、printf("*");int i;for(i=0;i<78;i+)printf("=");printf("*");printf("| 工號(hào)| 姓名|性別|年齡|學(xué)歷|職位|工資| | 住址 |");1");)/*表尾*/void showtable2()(int i;printf("*");for(i=0;i<78;i+)printf("=");printf("*");)6.5 登錄界面用于治理員登錄,假設(shè)密碼輸入正確那么進(jìn)入菜單/
21、*登錄*void enter()(char str1="123"char str220;gotoxy(15,10);歡送進(jìn)入職工信息治理系統(tǒng)!! n");gotoxy(29,12);printf("004請(qǐng)輸入治理員登錄密碼:");gets(str2);if(strcmp(str1,str2)/*字符串函數(shù)strcmp,指假設(shè)兩者相等那么返回0*/system("cls");gotoxy(32,8);printf("004密碼輸入錯(cuò)誤!");gotoxy(32,9);printf"004請(qǐng)重新輸
22、入:"fflush(stdin);/*將緩沖區(qū)的內(nèi)容傳送到stdin中,即清理緩沖區(qū)的內(nèi)容*/enter();)6.6 創(chuàng)立職工記錄用于第一次輸入職工信息記錄./*創(chuàng)立職工信息*/void creat()/*創(chuàng)立職工信息記錄*/*int i,r;system("cls"); /*清屏*/printf("nn 004請(qǐng)輸入本次所錄入職工信息數(shù):");scanf("%d",&r);n+=r;/*r為當(dāng)前次輸入的職工信息數(shù),n為錄入的職工信息數(shù)總數(shù)*/for(i=0;i<r;i+)system("cls&q
23、uot;);printf("n 004 輸入第 d® 職工的信息:n",i+1);printf(" 004請(qǐng)輸入工號(hào):");scanf("%s",stai.num);printf(" 004請(qǐng)輸入姓名:");scanf("%s",);printf(" 004請(qǐng)輸入性別:");scanf("%s",stai.sex);printf(" 004請(qǐng)輸入年齡:");scanf("%s",stai.
24、age);printf(" 004請(qǐng)輸入學(xué)歷:");scanf("%s",);printf(" 004請(qǐng)輸入職位:");scanf("%s",stai.role);printf(" 004請(qǐng)輸入工資:");scanf("%s",stai.salary);printf(" 004請(qǐng)輸入 :");scanf("%s",stai.tel);printf(" 004請(qǐng)輸入住址:");scanf("%
25、s",stai.addr);printf("nn 002 信息成功錄入!n");printf(" 004請(qǐng)按任意鍵返回主菜單:");fflush(stdin); /* 消除緩存 */getch(); /*接收任意一個(gè)字符*/6.7 瀏覽記錄用于查看內(nèi)存中的職工信息記錄./*瀏覽職工信息*/void display()int i;system("cls");gotoxy(16,2);printf("*全體職工信息 *n");gotoxy(0.3);showtable1();for(i=0;i<n;i+
26、)printf("| %-5s| %-7s| %-5s| %-5s| %-5s| %-5s| %-5s| %-9s| %-15s|",stai .num,,stai.sex,stai.age,,stai.role,stai.salary, stai.tel,stai.addr);showtable2();printf"n 004 請(qǐng)按任意鍵返回主菜單:"fflush(stdin);getch();6.8 查詢記錄用于查詢職工信息記錄,有四種查詢方式*查詢所需的職工信息(4種方式)*/ void search()(int
27、a,t;char str20;system("cls");gotoxy(26,8);printf("=查詢職工信息=n");printf(" I *");按工號(hào)查詢 )n");按姓名查詢 )n");gotoxy(19,10);printf("(002 1:gotoxy(19,11);printf("(002 2:gotoxy(19,12);printf("(002 3:按 查詢)n");gotoxy(19,13);按工資查詢 )n");gotoxy(20,14);p
28、rintf(' I *");printf("004請(qǐng)輸入您希望的查詢方式(14):");scanf("%d",&t);system("cls");switch(t)case 1:printf("nn 004case 2:printf("nn 004case 3:printf("nn 004case 4:printf("nn 004請(qǐng)輸入工號(hào):");break;請(qǐng)輸入姓名:");break;請(qǐng)輸入 :");break;請(qǐng)輸入工資:"
29、);break;scanf("%s",str);a=find(str,t); /*str與stai.*中的字符串比擬,假設(shè)一樣巾nd()函數(shù)返回i值,即找到第i+1條信息與剛輸入的相同,t表示查詢方式*/if(a!=-1)printf("n 002已查到該員工信息,內(nèi)容為:n");showtable1();printf("| %-5s| %-7s| %-5s| %-5s| %-5s| %-5s| %-5s| %-9s| %-15s|",staa.num,,staa.sex,staa.age,,staa
30、.role,staa.salary, staa.tel,staa.addr);showtable2();else printf("nn 004對(duì)不起,文件中沒有此職工的記錄.n");printf(" 004請(qǐng)按任意鍵返回主菜單:");fflush(stdin);getch();6.9 查找指定記錄用于查找匹配記錄,將str100與stai.*中的字符串比擬,假設(shè)兩者一樣返回記錄號(hào),假設(shè)兩者不一樣返回-1 0/*查找指定記錄*int find(char str30,int t) /* t表示1為工號(hào)2為姓名3為工資4為 */(int i;for(i=0;i
31、<n;i+)if(t=1&&strcmp(str,stai.num)=0)|(t=2&&strcmp(str,)=0)|(t=3&&strcmp(str,stai.salary)=0)|(t=4&&strcmp(str,stai.tel)=0)return(i); /*兩字符串假設(shè)一樣,strcmp(str,stai.*返回零值 */return(-1);6.10 修改記錄用于修改職工信息記錄,有兩種方式查找匹配記錄./*修改原有的職工信息*/ void modify()int a,i;char str20
32、,e;system("cls");gotoxy(26,8);printf("=修改職工信息=n");gotoxy(20,9);printf(' I *");gotoxy(19,10);printf("(002 1:按工號(hào)修改)n");gotoxy(19,11);printf("(002 2:按姓名修改)n");gotoxy(20,12);printf(' I *");gotoxy(24,13);printf("004請(qǐng)輸入您希望的修改方式(12):");sca
33、nf("%d",&i);system("cls");switch(i)(case 1:printf("nn 004請(qǐng)輸入要修改的信息的工號(hào):");break;case 2:printf("nn 004請(qǐng)輸入要修改的信息的姓名:");break;scanf("%s",str);a=find(str,i);if(a!=-1)(printf("n 004您所要修改的職工信息為:n");showtable1();printf("| %-5s| %-7s| %-5s|
34、 %-5s| %-5s| %-5s| %-5s| %-9s| %-15s|",staa .num,,staa.sex,staa.age,,staa.role,staa.salary, staa.tel,staa.addr);showtable2();printf(" 004確認(rèn)修改?(Y/N):");fflush(stdin);scanf("%c",&e);if(e='Y'|e='y')(system("cls");printf("nn 00
35、4請(qǐng)輸入工號(hào):");scanf("%s",staa.num);printf(" 004請(qǐng)輸入姓名:");scanf("%s",);printf(" 004請(qǐng)輸入性別:");scanf("%s",staa.sex);printf(" 004請(qǐng)輸入年齡:");scanf("%s",staa.age);printf(" 004請(qǐng)輸入學(xué)歷:");scanf("%s",);print
36、f(" 004請(qǐng)輸入職位:");scanf("%s",staa.role);printf(" 004請(qǐng)輸入工資:");scanf("%s",staa.salary);printf(" 004請(qǐng)輸入 :");scanf("%s",staa.tel);printf(" 004請(qǐng)輸入住址:");scanf("%s",staa.addr);printf("nn 002修改成功!n");printf(" 004請(qǐng)按任
37、意鍵返回主菜單:");fflush(stdin);getch();else if(e='N'|e='n')printf(" 004修改已取消!n");printf(" 004請(qǐng)按任意鍵返回主菜單:");fflush(stdin);getch();else(printf(" 004選擇錯(cuò)誤,請(qǐng)按任意鍵返回主菜單:");fflush(stdin);getch();)else(printf("nn 004對(duì)不起,文件中沒有此職工的記錄.n");printf(" 004請(qǐng)
38、按任意鍵返回主菜單:");fflush(stdin);getch();) 6.11刪除記錄用于刪除指定職工信息記錄,有兩種方式查找匹配記錄/*刪除原有的職工信息*/*void delet()(int a,j;char str20,e;system("cls");gotoxy(26,8);printf("=刪除職工信息=n");gotoxy(20,9);printf(" I *");gotoxy(19,10);printf("( 002 1:按工號(hào)刪除)n");gotoxy(19,11);printf(&q
39、uot;(002 2:按姓名刪除)n");gotoxy(20,12);printf(" I *");gotoxy(24,13);printf("004請(qǐng)輸入您希望的刪除方式(12):");scanf(d,&j);system("cls");switch(j)case 1:printf("nn 004請(qǐng)輸入要?jiǎng)h除的工號(hào):");break;case 2:printf("nn 004請(qǐng)輸入要?jiǎng)h除的姓名:");break;scanf("%s",str);a=find
40、(str,j);if(a!=-1)printf("n 004您所要?jiǎng)h除的職工信息為:n");showtable1();printf("| %-5s| %-7s| %-5s| %-5s| %-5s| %-5s| %-5s| %-9s| %-15s|",staa .num,,staa.sex,staa.age,,staa.role,staa.salary, staa.tel,staa.addr);showtable2();printf(" 004確認(rèn)刪除?(Y/N):");fflush(stdin);sc
41、anf("%c",&e);if(e='Y'|e='y')for(;a<n;a+)staa=staa+1;n-;printf(" 002刪除成功!n");printf(" 004請(qǐng)按任意鍵返回主菜單:");fflush(stdin);getch();else if(e='N'|e='n')(printf(" 004刪除已取消!n");printf(" 004請(qǐng)按任意鍵返回主菜單:");fflush(stdin);getc
42、h();else(printf(" 004選擇錯(cuò)誤,請(qǐng)按任意鍵返回主菜單:");fflush(stdin);getch();elseprintf("nn 004對(duì)不起,文件中沒有此職工的記錄n");fflush(stdin);getch();6.12添加記錄用于添加新的職工信息,當(dāng)新輸入的職工號(hào)不與原職工號(hào)重復(fù)時(shí)才可以添加./*添加新的職工信息*/ void add()int a;char str6;for(;)system("cls");scanf("%s",str);a=find(str,1);if(a=-1)
43、 break; /* a=-1就是字符串不相等,即新的工號(hào)與原有的不重復(fù),"break;"使語句跳出當(dāng)前for的死循環(huán)*/else/*假設(shè)a!=-1就重新輸入*/printf(" 004對(duì)不起,您所輸入的職工號(hào)已存在!n");printf(" 004請(qǐng)按任意鍵重新輸入:");fflush(stdin);getch();printf("n 004輸入新的職工的信息:n");strcpy(stan.num,str);printf(" 004 請(qǐng)輸入姓名:");scanf("%s"
44、,);scanf("%s",stan.sex);printf(" 004請(qǐng)輸入年齡:");scanf("%s",stan.age);printf(" 004請(qǐng)輸入學(xué)歷:");scanf("%s",);printf(" 004請(qǐng)輸入職位:");scanf("%s",stan.role);printf(" 004請(qǐng)輸入工資:");scanf("%s",stan.salary);print
45、f(" 004請(qǐng)輸入 :");scanf("%s",stan.tel);printf(" 004請(qǐng)輸入住址:");scanf("%s",stan.addr);n+;printf("nn 002信息添加成功!n");printf(" 004請(qǐng)按任意鍵返回主菜單:");fflush(stdin);getch();)6.13 排序用于職工信息記錄排序,有 3種排序方式.使用冒泡排序法,字符串?dāng)?shù)組比擬使用 strcmp()函數(shù)./*給職工信息排序并顯示*/ void order()(
46、int a,i,j;struct staffinfo str;system("cls");gotoxy(26,8);printf("=職工信息排序=n");gotoxy(20,9);printf(" I *");gotoxy(19,10);printf("( 002 1:按姓名排序 )n");gotoxy(19,11);printf("(002 2:按年齡排序)n");gotoxy(19,12);printf("(002 3:按工資排序)n");gotoxy(20,13);p
47、rintf(' I *");gotoxy(24,16);printf("004請(qǐng)輸入您希望的排序方式(13):");scanf("%d",&a);system("cls");switch(a)case 1:gotoxy(16,2);printf('I*按姓名排序升序*n");/*冒泡排序,升序*/for(i=0;i<n-1;i+)if(strcmp(,)>0)(str=staj-1;staj-1=staj;staj=str;gotoxy(0
48、,3);showtable1();for(i=0;i<n;i+)printf("| %-5s| %-7s| %-5s| %-5s| %-5s| %-5s| %-5s| %-9s| %-15s|,stai .num,,stai.sex,stai.age,,stai.role,stai.salary, stai.tel,stai.addr);showtable2();break;case 2:gotoxy(16,2);printf("I*按年齡排序升序*n");/*冒泡排序,升序*/for(j=n-1;j>i;j-)if(
49、strcmp(staj-1.age,staj.age)>0)(str=staj-1;staj-1=staj;staj=str;gotoxy(0,3);showtable1();for(i=0;i<n;i+)printf("| %-5s| %-7s| %-5s| %-5s| %-5s| %-5s| %-5s| %-9s| %-15s|,stai .num,,stai.sex,stai.age,,stai.role,stai.salary, stai.tel,stai.addr);showtable2();break;I*case 3:got
50、oxy(16,2);*n");/*冒泡排序,升序*/for(i=0;i<n-1;i+)for(j=n-1;j>i;j-)if(strcmp(staj-1.salary,staj.salary)>0)(str=staj-1;staj-1=staj;staj=str;gotoxy(0,3);showtable1();for(i=0;i<n;i+)printf("| %-5s| %-7s| %-5s| %-5s| %-5s| %-5s| %-5s| %-9s| %-15s|,stai .num,,stai.sex,stai.age,stai.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- JG/T 571-2019玻纖增強(qiáng)聚氨酯節(jié)能門窗
- JG/T 545-2018衛(wèi)生間隔斷構(gòu)件
- JG/T 5061.9-1995三重管雙動(dòng)回轉(zhuǎn)取土器
- JG/T 427-2014住宅衛(wèi)浴五金配件通用技術(shù)要求
- JG/T 3045.2-1998鋼門窗粉末靜電噴涂涂層技術(shù)條件
- JG 5056-1995液壓挖掘機(jī)穩(wěn)定性安全技術(shù)要求
- GM/T 0024-2023SSL VPN 技術(shù)規(guī)范
- DZ/T 0126-1994固體礦產(chǎn)鉆孔地質(zhì)數(shù)據(jù)文件格式
- DZ/T 0101.12-1994地質(zhì)儀器儀表制造時(shí)間定額印制板
- DZ/T 0056-1993水文水井鉆探三牙輪鉆頭
- 農(nóng)村煤改電工程施工設(shè)計(jì)方案
- 公司駕駛員安全培訓(xùn)內(nèi)容
- 安全生產(chǎn)應(yīng)急培訓(xùn)課程
- 2024年大型主題公園設(shè)計(jì)與施工合同
- 【MOOC】政府審計(jì)學(xué)-南京審計(jì)大學(xué) 中國大學(xué)慕課MOOC答案
- 《基督教概論》課件
- 污水處理廠安全生產(chǎn)培訓(xùn)
- 婦科藥品管理
- 【MOOC】電路分析基礎(chǔ)-北京科技大學(xué) 中國大學(xué)慕課MOOC答案
- 高級(jí)廚師用工合同書模板
評(píng)論
0/150
提交評(píng)論