C語言課程設(shè)計――職工信息管理系統(tǒng)設(shè)計_第1頁
C語言課程設(shè)計――職工信息管理系統(tǒng)設(shè)計_第2頁
C語言課程設(shè)計――職工信息管理系統(tǒng)設(shè)計_第3頁
C語言課程設(shè)計――職工信息管理系統(tǒng)設(shè)計_第4頁
C語言課程設(shè)計――職工信息管理系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言課程設(shè)計題目及要求題目:職工信息管理系統(tǒng)設(shè)計職工信息包括職工號、姓名、性別、年齡、學(xué)歷、工資、住址、電話等(職工號不重復(fù))。試設(shè)計一職工信息管理系統(tǒng),使之能提供以下功能:1、職工信息錄入功能(職工信息用文件保存)。2、職工信息瀏覽功能。3、查詢功能:可以按“職工號”、“姓名”、“電話”、“工資”等方式查詢記錄;如果查詢信息不存在,顯示沒有找到信息; 4、刪除功能:可以根據(jù)職工號或姓名刪除一條已經(jīng)存在的職工信息;5、排序功能:能對姓名、年齡、工資進(jìn)行排序,并顯示;6、修改功能:改變記錄項的一個或多個屬性,并用新的記錄項覆蓋已經(jīng)存在的記錄項;7、數(shù)據(jù)存、?。簲?shù)據(jù)以文件形式存儲在磁盤上,因此在

2、程序運行中需要對文件進(jìn)行讀取操作。編程人員可以根據(jù)實際需要自己定義文件的存儲格式,在數(shù)據(jù)讀寫時必須精確定位,以免破壞文件的正確性。除此之外,程序中還要不停處理用戶的輸入,對輸入數(shù)據(jù)的容錯性進(jìn)行檢查,可以保證數(shù)據(jù)的合法性,避免惡意和非惡意的操作對用戶數(shù)據(jù)的破壞。8、系統(tǒng)以菜單方式工作。1. 設(shè)計目的在今天這個高速信息時代,許多繁雜的辦公事務(wù)都由計算機代勞,例如職工信息管理等重復(fù)勞動越來越需要計算機來處理。本系統(tǒng)就是為提高企業(yè)管理職工信息的效率而設(shè)計的,現(xiàn)在職工信息管理系統(tǒng)發(fā)揮無可取代的作用。職工信息管理系統(tǒng)是一個可以用來進(jìn)行職工工號、姓名等自然信息以及各項工資構(gòu)成進(jìn)行錄入、查詢、修改、刪除、增加

3、和排序瀏覽等操作的應(yīng)用軟件。2. 設(shè)計的總體思想本系統(tǒng)是用Visual C進(jìn)行設(shè)計與開發(fā),總體思想是結(jié)構(gòu)化、模塊化的程序設(shè)計。由于主要實現(xiàn)的是管理系統(tǒng)的增、刪、改、查和排序等功能,因此應(yīng)用到程序設(shè)計中的基本控制結(jié)構(gòu),如循環(huán)和選擇,還使用到C語言最具特色的語言成分指針,高效地使用數(shù)組、字符串和結(jié)構(gòu)體,采用經(jīng)典的排序方法冒泡法進(jìn)行排序,并且包含對文件的讀、寫等基本操作。3. 功能模塊描述職工信息管理系統(tǒng)是為企業(yè)進(jìn)行職工信息管理提供輔助而設(shè)計的,需要為用戶提供一個簡單的人機界面以便操作,各功能模塊如下。1) 登錄模塊:根據(jù)輸入的登錄密碼判斷是否允許該用戶使用本系統(tǒng),輸入密碼正確才能進(jìn)入管理界面,管理

4、職工信息。2) 創(chuàng)建模塊:當(dāng)?shù)谝淮问褂帽鞠到y(tǒng)時,根據(jù)提示輸入職工的工號、姓名、性別、年齡、學(xué)歷、職位、工資、電話和住址,可一次性輸入多條職工的信息記錄。瀏覽模塊:可以瀏覽經(jīng)輸入、修改、刪除、添加、排序、讀取后的職工信息。3) 查詢模塊:分為根據(jù)工號、姓名、電話、工資查詢的四個具體需求,分別提示管理員要查詢的職工信息的的工號、姓名、電話或工資。4) 修改模塊:分為根據(jù)工號、姓名修改的兩個具體需求,分別提示管理員要修改的職工信息的工號和姓名,如果有對應(yīng)職工的信息記錄存在,則逐項列出對應(yīng)職工的信息。5) 刪除模塊:分為根據(jù)工號、姓名刪除的兩個具體需求,分別提示管理員要刪除的職工信息的工號和姓名,如果

5、有則刪除此職工對應(yīng)的信息記錄。6) 添加模塊:可在原有職工信息記錄的基礎(chǔ)上增加新的職工信息記錄,并保存至磁盤中。7) 排序模塊:分為根據(jù)姓名、年齡、工資排序的三個具體需求,分別提示管理員選擇排序的方式。8) 保存模塊:將2)3)4)5)6)7)8)模塊中改動的數(shù)據(jù)保存至文件中,以便進(jìn)行管理、查找和備份。9) 讀取模塊:將文件中的數(shù)據(jù)讀取至內(nèi)存中。10)4. 概要設(shè)計系統(tǒng)模塊結(jié)構(gòu)圖根據(jù)模塊功能描述,職工信息系統(tǒng)可以分為11個模塊,系統(tǒng)模塊結(jié)構(gòu)如圖1所示。5. 詳細(xì)設(shè)計5.1數(shù)據(jù)結(jié)構(gòu)設(shè)計本程序定義結(jié)構(gòu)體staffinfo,用于存放職工的相關(guān)信息。定義的結(jié)構(gòu)體如下(每個變量后面/* */中的內(nèi)容為各

6、個變量的含義):struct staffinfo char num10; /*工號*/ char name9; /*姓名*/ char sex3; /*性別*/ char age3; /*年齡*/ char edu5; /*學(xué)歷*/ char role5; /*職位*/ char salary6; /*工資*/ char tel16; /*電話*/ char addr30; /*住址*/staN;由于工號、姓名、電話、住址等信息是用來描述職工這個有機整體,為了表示這些字段不是孤立的,而是共同描述一個完整的事物,因此用結(jié)構(gòu)體來實現(xiàn)。5.2各函數(shù)說明1) void gotoxy(int x,int

7、 y) 功能:用于在屏幕上定位,其中整型數(shù)x代表列數(shù),整型數(shù)y代表行數(shù),其中0x80,0y,(0,0)代表左上角。2) void showtable1()void showtable2()功能:分別打印表頭與表尾。3) void enter()功能:進(jìn)入系統(tǒng)登錄界面,驗證管理員輸入的密碼。輸入:登錄密碼。處理:接收管理員輸入的密碼,存放到相應(yīng)變量中進(jìn)行判斷。 判斷密碼是否正確,如果相符,則進(jìn)入主菜單。 如果不相符,則提示用戶重新輸入。4) int find(char str30,int t)功能:查找指定記錄,str30表示需管理員輸入的職工的某一項信息,t表示通過哪一項來查找,例如通過工號、

8、姓名來查找。若找到與輸入的信息相同的記錄,則返回找到的記錄號,若找不到就返回-1。輸入:職工信息的某一項和想查找的途徑。處理:接收管理員輸入的職工信息與查找方式,并存入相應(yīng)的變量中。 將內(nèi)存中的數(shù)據(jù)與輸入信息逐條比對,直到找到相同的記錄,返回找到的記錄號。 若沒找到該職工的記錄,就返回-1。5) void creat()功能:創(chuàng)建職工信息。將管理員輸入的若干條信息記錄存入內(nèi)存中。輸入:需創(chuàng)建的信息記錄條數(shù)。 若干條職工信息記錄(工號、姓名、職位、電話等信息)。處理:提示管理員逐條輸入職工信息。 獲取管理員輸入的信息,存入內(nèi)存中。 提示管理員錄入成功。6) void display()功能:瀏覽

9、經(jīng)過改動的信息記錄,即打印出內(nèi)存中的數(shù)據(jù)。7) void search()功能:查詢所需職工信息記錄。四種方式查詢:工號、姓名、電話和工資。根據(jù)管理員輸入的職工信息和查找方式,按不同方式查找記錄,列表顯示查找到的記錄內(nèi)容。輸入:想要查找的方式。要查詢的職工的某一項信息。處理:提示管理員要查詢的方式和要查詢職工的對應(yīng)信息。循環(huán)品牌查找對應(yīng)記錄。如果找找,則列表顯示結(jié)果。8) void modify()功能:修改原有的職工信息記錄。兩種查找匹配記錄的方式:工號和姓名。根據(jù)管理員輸入的查找方式和職工信息查找是否存在匹配記錄,若存在,則將此職工的信息改為管理員輸入的內(nèi)容。輸入:想要查找匹配記錄的方式。

10、要修改的職工的某一項信息。確認(rèn)修改的選項字母。 所要修改記錄的內(nèi)容值(工號、姓名等)。處理:接收管理員輸入的查找匹配記錄的方式和要修改職工的某一項信息。判斷是否有匹配職工記錄,若有,則列表顯示該記錄并提示管理員是否確認(rèn)修改。提示管理員輸入該職工方的各項信息。提示管理員是否修改成功。9) void delet()功能:刪除指定的職工信息記錄。兩種查找匹配記錄的方式:工號和姓名。根據(jù)管理員輸入的查找方式和職工信息查找匹配記錄,若找到,則列表顯示,經(jīng)提示后刪除該條記錄。輸入:想要查找匹配記錄的方式。要刪除的職工的某一項信息。確認(rèn)刪除的選項字母。處理:接收管理員輸入的查找匹配記錄的方式和要修改職工的某

11、一項信息。判斷是否有匹配職工記錄,若有,則列表顯示該記錄并提示管理員確認(rèn)刪除。提示管理員是否刪除成功。10) void add()功能:增加新的職工信息記錄。判斷所輸入的工號是否已存在,若不存在,則將管理員輸入的若干條信息記錄存入內(nèi)存中。輸入:想要添加職工的工號。新的職工信息記錄(姓名、學(xué)歷等)。處理:提示管理員輸入新職工的工號。 判斷職工號是否存在,若不存在,則提示管理員逐條輸入職工信息。 獲取管理員輸入的信息,存入內(nèi)存中。提示管理員添加成功。11) void order()功能:給職工信息記錄排序(升序)。三種排序方式:姓名、年齡和工資。根據(jù)管理員輸入的排序方式排序,列表顯示排序結(jié)果。輸入

12、:想要的排序方式。處理:提示管理員輸入排序方式。 按照指定方式排序。 列表顯示排序結(jié)果。12) void save()功能:保存職工信息記錄及記錄條數(shù)至文件中。輸入:確認(rèn)保存的選項字母。處理:提示管理員確認(rèn)保存。若確認(rèn)保存,則將內(nèi)存中的數(shù)據(jù)保存至指定文件中。提示管理員保存成功。13) void load()功能:從文件中讀取職工信息記錄及記錄條數(shù)。輸入:確認(rèn)讀取的選項字母。處理:提示管理員確認(rèn)讀取。將文件中的數(shù)據(jù)讀取至內(nèi)存中。提示管理員讀取成功。14) void quit()功能:確認(rèn)保存過數(shù)據(jù)后,安全退出系統(tǒng)。輸入:確認(rèn)保存的選項字母。確認(rèn)退出系統(tǒng)的選項字母。處理:提示管理員確認(rèn)保存。若確認(rèn)

13、保存,則將內(nèi)存中的數(shù)據(jù)保存至指定文件中。提示管理員是否退出系統(tǒng),若是則退出。15) void main()功能:根據(jù)主菜單上的各項指令,調(diào)用1)至14)的各個函數(shù)。系統(tǒng)控制圖如圖1所示。6. 程序分析6.1程序預(yù)處理包括加載頭文件,定義結(jié)構(gòu)體,宏定義,全局變量,并對他們進(jìn)行初始化。#include /*輸入/輸出函數(shù)*/#include /*其他說明*/#include /*字符串函數(shù)*/#include /*系統(tǒng)操作函數(shù)*/#include /*屏幕操作函數(shù)*/#define N 20 /*系統(tǒng)記錄的職工數(shù),可根據(jù)不同企業(yè)的需要更改*/struct staffinfo char num10;

14、 /*工號*/char name9; char sex3; char age3; char edu5; /*學(xué)歷*/char role5; /*職位*/char salary6; char tel16; /*電話*/char addr30; /*住址*/staN;int n=0; /*實際錄入的職工信息記錄總條數(shù)*/6.2主函數(shù)void main()主要實現(xiàn)對整個程序的運行控制。詳細(xì)分析可參考圖3。/*主函數(shù)*/void main()void gotoxy(int x,int y); /*光標(biāo)定位*/void showtable1(); /*打印表頭*/void showtable2(); v

15、oid 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(); /*退出系統(tǒng)*/system(color 3e); enter();while (1) int choice;system(cls);/*清屏*/printf(職工信息管理

16、系統(tǒng));printf(=主菜單=n);printf(*n);printf( ( 002 1: 錄入職工信息 )n);printf( ( 002 2: 瀏覽職工信息 )n);printf( ( 002 3: 查詢所需職工信息 )n);printf( ( 002 4: 修改原有的職工信息 )n);printf( ( 002 5: 刪除原有的職工信息 )n);printf( ( 002 6: 添加新的職工信息 )n);printf( ( 002 7: 給職工信息排序 )n);printf( ( 002 8: 保存職工信息 )n);printf( ( 002 9: 讀取職工信息 )n);printf(

17、 ( 002 0: 退出系統(tǒng) )n);printf( *n);do printf(n 004請輸入指令(09):);scanf(%d,&choice); /*輸入選擇的數(shù)字*/while(choice9);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

18、9: load();break;case 0: quit();break;default: break;6.3光標(biāo)定位函數(shù)void gotoxy(int x,int y)0x80,0y,(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()用于打印表格的頭

19、和尾。/*表頭*/void showtable1()printf(*);int i;for(i=0;i78;i+)printf(=);printf(*);printf(| 工號 | 姓名 | 性別 | 年齡 | 學(xué)歷 | 職位 | 工資 | 電話 | 住址 |);printf(|-+-+-+-+-+-+-+-+-|);/*表尾*/void showtable2()int i;printf(*);for(i=0;i78;i+)printf(=);printf(*);6.5登錄界面用于管理員登錄,若密碼輸入正確則進(jìn)入菜單。/*登錄*/void enter()char str1=123;char s

20、tr220;gotoxy(15,10);printf(歡迎進(jìn)入職工信息管理系統(tǒng)! n);gotoxy(29,12);printf(004請輸入管理員登錄密碼:);gets(str2);if(strcmp(str1,str2)/*字符串函數(shù)strcmp,指若兩者相等則返回0*/ system(cls);gotoxy(32,8);printf(004密碼輸入錯誤!);gotoxy(32,9);printf(004請重新輸入:);fflush(stdin);/*將緩沖區(qū)的內(nèi)容傳送到stdin中,即清理緩沖區(qū)的內(nèi)容*/enter();6.6創(chuàng)建職工記錄用于第一次輸入職工信息記錄。/*創(chuàng)建職工信息*/v

21、oid creat() /*創(chuàng)建職工信息記錄*/int i,r;system(cls); /*清屏*/ printf(nn 004請輸入本次所錄入職工信息數(shù):);scanf(%d,&r);n+=r; /*r為當(dāng)前次輸入的職工信息數(shù),n為錄入的職工信息數(shù)總數(shù)*/for(i=0;ir;i+)system(cls);printf(n 004輸入第%d位職工的信息:n,i+1);printf( 004請輸入工號:);scanf(%s,stai.num);printf( 004請輸入姓名:);scanf(%s,);printf( 004請輸入性別:);scanf(%s,stai.sex

22、);printf( 004請輸入年齡:);scanf(%s,stai.age);printf( 004請輸入學(xué)歷:);scanf(%s,);printf( 004請輸入職位:);scanf(%s,stai.role);printf( 004請輸入工資:);scanf(%s,stai.salary);printf( 004請輸入電話:);scanf(%s,stai.tel);printf( 004請輸入住址:);scanf(%s,stai.addr);printf(nn 002信息成功錄入!n);printf( 004請按任意鍵返回主菜單:);fflush(stdin); /*清

23、除緩存*/getch(); /*接收任意一個字符*/6.7瀏覽記錄用于查看內(nèi)存中的職工信息記錄。/*瀏覽職工信息*/void display()int i;system(cls);gotoxy(16,2);printf(*全體職工信息*n);gotoxy(0,3);showtable1();for(i=0;in;i+)printf(| %-5s| %-7s| %-5s| %-5s| %-5s| %-5s| %-5s| %-9s| %-15s|,stai.num,,stai.sex,stai.age,,stai.role,stai.salary,stai.tel

24、,stai.addr);showtable2();printf(n 004請按任意鍵返回主菜單:);fflush(stdin);getch();6.8查詢記錄用于查詢職工信息記錄,有四種查詢方式。/*查詢所需的職工信息(4種方式)*/void search()int a,t;char str20;system(cls);gotoxy(26,8);printf(=查詢職工信息=n);printf(*);gotoxy(19,10);printf( 002 1: 按工號查詢 )n);gotoxy(19,11);printf( 002 2: 按姓名查詢 )n);gotoxy(19,12);printf

25、( 002 3: 按電話查詢 )n);gotoxy(19,13);printf( 002 4: 按工資查詢 )n);gotoxy(20,14);printf(*);printf(004請輸入您希望的查詢方式(14):);scanf(%d,&t);system(cls);switch(t)case 1:printf(nn 004請輸入工號:);break;case 2:printf(nn 004請輸入姓名:);break;case 3:printf(nn 004請輸入電話:);break;case 4:printf(nn 004請輸入工資:);break;scanf(%s,str);a=find

26、(str,t); /*str與stai.*中的字符串比較,若一樣find()函數(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.role,staa.salary,staa.tel,staa.addr);showtable2();else printf(n

27、n 004對不起,文件中沒有此職工的記錄。n);printf( 004請按任意鍵返回主菜單:);fflush(stdin);getch();6.9查找指定記錄用于查找匹配記錄,將str100與stai.*中的字符串比較,若兩者一樣返回記錄號,若兩者不一樣返回-1。/*查找指定記錄*/int find(char str30,int t) /* t表示 1為工號 2為姓名 3為工資 4為電話*/int i;for(i=0;in;i+)if(t=1&strcmp(str,stai.num)=0)|(t=2&strcmp(str,)=0)|(t=3&strcmp(str,stai.s

28、alary)=0)|(t=4&strcmp(str,stai.tel)=0)return(i); /*兩字符串若一樣,strcmp(str,stai.*返回零值*/return(-1);6.10修改記錄用于修改職工信息記錄,有兩種方式查找匹配記錄。/*修改原有的職工信息*/void modify()int a,i;char str20,e;system(cls);gotoxy(26,8);printf(=修改職工信息=n);gotoxy(20,9);printf(*);gotoxy(19,10);printf( 002 1: 按工號修改 )n);gotoxy(19,11);printf( 00

29、2 2: 按姓名修改 )n);gotoxy(20,12);printf(*);gotoxy(24,13);printf(004請輸入您希望的修改方式(12):);scanf(%d,&i);system(cls);switch(i)case 1:printf(nn 004請輸入要修改的信息的工號:);break;case 2:printf(nn 004請輸入要修改的信息的姓名:);break;scanf(%s,str);a=find(str,i);if(a!=-1)printf(n 004您所要修改的職工信息為:n);showtable1();printf(| %-5s| %-7s| %-5s|

30、 %-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 004請輸入工號:);scanf(%s,staa.num);printf( 004請輸入姓名:);scanf(%s,);printf(

31、004請輸入性別:);scanf(%s,staa.sex);printf( 004請輸入年齡:);scanf(%s,staa.age);printf( 004請輸入學(xué)歷:);scanf(%s,);printf( 004請輸入職位:);scanf(%s,staa.role);printf( 004請輸入工資:);scanf(%s,staa.salary);printf( 004請輸入電話:);scanf(%s,staa.tel);printf( 004請輸入住址:);scanf(%s,staa.addr);printf(nn 002修改成功!n);printf( 004請按任意鍵

32、返回主菜單:);fflush(stdin);getch();else if(e=N|e=n)printf( 004修改已取消!n);printf( 004請按任意鍵返回主菜單:);fflush(stdin);getch();elseprintf( 004選擇錯誤,請按任意鍵返回主菜單:);fflush(stdin);getch();else printf(nn 004對不起,文件中沒有此職工的記錄。n);printf( 004請按任意鍵返回主菜單:);fflush(stdin);getch();6.11刪除記錄用于刪除指定職工信息記錄,有兩種方式查找匹配記錄。/*刪除原有的職工信息*/void

33、 delet()int a,j;char str20,e;system(cls);gotoxy(26,8);printf(=刪除職工信息=n);gotoxy(20,9);printf(*);gotoxy(19,10);printf( 002 1: 按工號刪除 )n);gotoxy(19,11);printf( 002 2: 按姓名刪除 )n);gotoxy(20,12);printf(*);gotoxy(24,13);printf(004請輸入您希望的刪除方式(12):);scanf(%d,&j);system(cls);switch(j)case 1:printf(nn 004請輸入要刪除的

34、工號:);break;case 2:printf(nn 004請輸入要刪除的姓名:);break;scanf(%s,str);a=find(str,j);if(a!=-1)printf(n 004您所要刪除的職工信息為: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( 0

35、04確認(rèn)刪除?(Y/N):);fflush(stdin);scanf(%c,&e);if(e=Y|e=y)for(;an;a+)staa=staa+1;n-;printf( 002刪除成功!n);printf( 004請按任意鍵返回主菜單:);fflush(stdin);getch();else if(e=N|e=n)printf( 004刪除已取消!n);printf( 004請按任意鍵返回主菜單:);fflush(stdin);getch();elseprintf( 004選擇錯誤,請按任意鍵返回主菜單:);fflush(stdin);getch();else printf(nn 004對

36、不起,文件中沒有此職工的記錄。n);printf( 004請按任意鍵返回主菜單:);fflush(stdin);getch();6.12添加記錄用于添加新的職工信息,當(dāng)新輸入的職工號不與原職工號重復(fù)時才可以添加。/*添加新的職工信息*/void add()int a;char str6;for(;)system(cls);printf(nn 004請輸入您想添加的新的職工信息的工號:);scanf(%s,str);a=find(str,1);if(a=-1) break; /* a=-1就是字符串不相等,即新的工號與原有的不重復(fù),break;使語句跳出當(dāng)前for的死循環(huán)*/else /* 若a

37、!=-1就重新輸入*/printf( 004對不起,您所輸入的職工號已存在!n);printf( 004請按任意鍵重新輸入:);fflush(stdin);getch();printf(n 004輸入新的職工的信息:n);strcpy(stan.num,str);printf( 004請輸入姓名:);scanf(%s,);printf( 004請輸入性別:);scanf(%s,stan.sex);printf( 004請輸入年齡:);scanf(%s,stan.age);printf( 004請輸入學(xué)歷:);scanf(%s,);printf( 004請輸入職

38、位:);scanf(%s,stan.role);printf( 004請輸入工資:);scanf(%s,stan.salary);printf( 004請輸入電話:);scanf(%s,stan.tel);printf( 004請輸入住址:);scanf(%s,stan.addr);n+;printf(nn 002信息添加成功!n);printf( 004請按任意鍵返回主菜單:);fflush(stdin);getch();6.13排序用于職工信息記錄排序,有3種排序方式。使用冒泡排序法,字符串?dāng)?shù)組比較使用strcmp()函數(shù)。/*給職工信息排序并顯示*/void order()int a,i

39、,j;struct staffinfo str;system(cls);gotoxy(26,8);printf(=職工信息排序=n);gotoxy(20,9);printf(*);gotoxy(19,10);printf( 002 1: 按姓名排序 )n);gotoxy(19,11);printf( 002 2: 按年齡排序 )n);gotoxy(19,12);printf( 002 3: 按工資排序 )n);gotoxy(20,13);printf(*);gotoxy(24,16);printf(004請輸入您希望的排序方式(13):);scanf(%d,&a);system(cls);switch(a)case 1:gotoxy(16,2);printf(*按姓名排序(升序)*n);/*冒泡排序,升序*/for(i=0;ii;j-)if(strcmp(,)0)str=staj-1;staj-1=staj;staj=str;gotoxy(0,3);showtable1();for(i=0;in;i+)printf(| %-5s| %-7s| %-5s| %-5

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論