2.常規:
#包含?& ltstdio.h & gt
#包含?& ltwindows.h & gt
#包含?& lttime.h & gt
#包含?& ltstring.h & gt
#定義?n?100
struct?雇員
{
int?num
夏爾?名稱[10];
夏爾?性;?
int?年齡;
夏爾?李雪[30];
int?工資;
夏爾?addr[30];
龍?int?電話;
} em[100];/*定義壹個結構*/
作廢?menu();
作廢?input();
作廢?save(int);
作廢?顯示();
作廢?del();
作廢?add();
作廢?search();
作廢?search_num()。
作廢?search _李雪();
作廢?search _ tel();
作廢?modify();?/*定義每個函數*/
作廢?Menu()/*菜單功能*/
{
printf("?☆☆☆計算機科學與技術系☆☆\ n ");
printf(" \ n ");
printf(" 08802類?關麗霞∮\n”);
printf(" \ n ");
Printf ("* * * * * * * * * * * *員工信息管理* * * * * * * * * * * * * * * * \ n ");
Printf("1。輸入員工信息”);
Printf("2。瀏覽員工信息\ n ");
Printf("3。查詢員工信息”);
Printf("4。刪除員工信息\ n ");
Printf("5。添加員工信息”);
Printf("6。修改員工信息\ n ");
Printf("7。退出\ n ");
printf(" * * * * * * * * * * * * * * * *感謝您使用* * * * * * * * * * * * \ n ");
printf(" \ n ");
printf(" \ n ");
}
作廢?主()
{
menu();?/*調用菜單功能*/
int?n,旗幟;
夏爾?a;
做
{
Printf("請選擇您需要操作的步驟(1-7):\ n ");
scanf("%d ",& ampn);
如果(n & gt=1。& ampn & lt=7)
{
flag = 1;
打破;
}
其他
{
flag = 0;
Printf("您輸入錯誤,請重新選擇!");
}
}
while(flag = = 0);
while(flag==1)
{
開關(n)
{
案子?1: printf ("◆◆◆◆輸入員工信息◆◆\ n ");printf(" \ n ");input();打破;
案子?2:printf("?◆◆\n瀏覽員工信息◆◆\ n”);printf(" \ n ");顯示();打破;
案子?3:printf("?◆◆◆\n按員工編號查詢員工信息◆◆\ n”);printf(" \ n ");search();打破;?
案子?4:printf("?◆◆\n刪除員工信息◆◆\ n”);printf(" \ n ");del();打破;
案子?5:printf("?◆◆\n添加員工信息◆◆\ n”);printf(" \ n ");add();打破;
案子?6: printf ("◆◆◆◆修改員工信息◆◆\ n ");printf(" \ n ");modify();打破;
案子?7:退出(0);打破;
違約?:break
}
getchar();
printf(" \ n ");
Printf("是否要繼續(y?還是?n):\ n”);
scanf("%c ",& ampa);
if(a=='y ')
{
flag = 1;
系統(“cls”);?/*清空屏幕*/
menu();?/*調用菜單功能*/
Printf("請重新選擇需要操作的步驟(1-6):\ n ");
scanf("%d ",& ampn);
printf(" \ n ");
}
不然呢?
退出(0);
}
}
作廢?Input()/*輸入函數*/
{
int?我,m;
Printf("請輸入需要創建信息的員工人數(1-100):\ n ");
scanf("%d ",& ampm);
為了什麽?(I = 0;我& ltm;i++)
{
Printf("員工編號:");
srand((int)time(0));
em[i]。num = rand()% 10000+20000000;
if(em[i]。num!=em[i-1]。數字)
printf("%8d?",em[i]。num);
printf(" \ n ");
Printf("請輸入您的姓名:?");
scanf("%s ",em[i]。姓名);
getchar();
Printf("請輸入性別(f-女?m-男):?”);
scanf("%c ",& ampem[i]。性);
Printf("請輸入年齡:?");
scanf("%d ",& ampem[i]。年齡);
Printf("請輸入學歷:?");
scanf("%s ",em[i]。李雪);
Printf("請輸入薪水:?");
scanf("%d ",& ampem[i]。工資);
Printf("請輸入您的地址:?");
scanf("%s ",em[i]。addr);
Printf("請輸入電話號碼:?");
scanf("%d ",& ampem[i]。電話);
printf(" \ n ");
}
printf(" \ n已創建!\ n ");
保存(m);
}
作廢?保存(int?m)?/*保存文件功能*/
{
int?我;
FILE * fp
如果?((fp=fopen("employee_list "," WB ")= = NULL)?/*創建壹個文件,判斷是否可以打開*/
{
printf?(“不能?開放?file \ n ");
退出(0);
}
為了什麽?(I = 0;我& ltm;i++)?/*將內存中的員工信息輸出到磁盤文件*/
如果?(fwrite(& amp;em[i],sizeof(struct?員工),1,fp)!=1)
printf("file?寫?錯誤\ n ");
fclose(FP);
}
int?load()?/*導入函數*/
{
FILE * fp
int?I = 0;
if((fp=fopen("employee_list "," Rb ")= = NULL)
{
printf?(“不能?開放?file \ n ");
退出(0);
}
不然呢?
{
做什麽?
{
弗雷德(& ampem[i],sizeof(struct?employee),1,FP);
i++;
}
while(feof(FP)= = 0);
}
fclose(FP);
返回(I-1);
}
作廢?顯示()?/*瀏覽功能*/
{
int?我;
int?m = load();
printf("\n?員工編號\ tName \ tSex \ tAge \ t education \ t salary \ t address \ t phone \ n ");
for(I = 0;我& ltm;i++)?/*m是輸入部分的員工數*/
printf("\n?% d \ t % s \ t % c \ t % d \ t % s \ t % d \ t % s \ t % LD \ n ",em[i]。num,em[i]。姓名,em[i]。性,em[i]。年齡,em[i]。李雪,em[i]。工資,em[i]。地址,em[i]。電話);?
}
作廢?Del()/*刪除函數*/
{
int?m = load();
int?I,j,n,t,flag
夏爾?名稱[20];
printf("\n?原員工信息:\ n”);
顯示();/*?調用瀏覽函數*/
printf(" \ n ");
Printf("請輸入要刪除的員工姓名:\ n ");
scanf("%s ",名稱);
for(flag=1,I = 0;旗幟& amp& amp我& ltm;i++)
{
if(strcmp(em[i].name,name)==0)
{
printf(" \ n此人已找到,原始記錄為:\ n ");
printf(" \ n員工編號\ tName \ tSex \ tAge \教育\ tSalary \地址\ t電話\ n ");
printf(" \ n % d \ t % s \ t % c \ t % d \ t % s \ t % d \ t % s \ t % LD \ n ",em[i]。num,em[i]。姓名,em[i]。性,em[i]。年齡,em[i]。李雪,em[i]。工資,em[i]。地址,em[i]。電話);?
printf(" \ n按1刪除此人信息,或按0\n "不刪除);
scanf("%d ",& ampn);
If(n==1)/*如果刪除,所有其他信息將上移壹行*/
{
for(j = I;j & ltm-1;j++)
{
strcpy(em[j].姓名,em[j+1]。姓名);
em[j]。num=em[j+1]。num
em[j]。sex=em[j+1]。性;
em[j]。年齡=em[j+1]。年齡;
strcpy(em[j].李雪,東地中海。李雪);
em[j]。工資=em[j+1]。工資;?
strcpy(em[j].地址,em[j+1]。addr);
em[j]。tel=em[j+1]。電話;
}
flag = 0;
}
}
}
如果(!旗幟)
m = m-1;
其他
printf(" \ n抱歉,沒有這個人!\ n ");
printf("\n?瀏覽所有刪除的員工信息:\ n ");
保存(m);?/*調用保存函數*/
顯示();?/*調用瀏覽函數*/
printf(" \ n按1繼續刪除,按0停止刪除\ n ");
scanf("%d ",& ampt);
開關(t)
{
案子?1:del();打破;
案子?0:斷開;
違約?:break
}
}
作廢?Add()/*添加函數*/
{
FILE * fp
int?n;
int?count = 0;
int?我;
int?m = load();
printf("\n?原員工信息:\ n”);
顯示();/*?調用瀏覽函數*/
printf(" \ n ");
fp=fopen("emploee_list "," a ");
Printf("請輸入您要增加的員工人數:\ n ");
scanf("%d ",& ampn);
為了什麽?(I = m;我& lt(m+n);i++)
{
printf("\n?請輸入新增加員工的信息:\ n ");
Printf("請輸入員工編號:?");
srand((int)time(0));
em[i]。num = rand()% 10000+20000000;
if(em[i]。num!=em[i-1]。數字)
printf("%8d?",em[i]。num);
printf(" \ n ");
Printf("請輸入您的姓名:?");
scanf("%s ",em[i]。姓名);
getchar();
Printf("請輸入性別(f-女?m-男):?”);
scanf("%c ",& ampem[i]。性);
Printf("請輸入年齡:?");
scanf("%d ",& ampem[i]。年齡);
Printf("請輸入學歷:?");
scanf("%s ",em[i]。李雪);
Printf("請輸入薪水:?");
scanf("%d ",& ampem[i]。工資);
Printf("請輸入您的地址:?");
scanf("%s ",em[i]。addr);
Printf("請輸入電話號碼:?");
scanf("%d ",& ampem[i]。電話);
printf(" \ n ");
count = count+1;
Printf("人數增加:\ n ");
printf("%d\n ",count);
}
printf(" \ n添加完畢!\ n ");?
m = m+計數;
printf(" \ n瀏覽所有添加的員工信息:\ n ");
printf(" \ n ");
保存(m);
顯示();
fclose(FP);
}
作廢?Search()/*查詢函數*/
{
int?t,旗幟;
做
{
printf(" \ n按員工號查詢請按1?;?按學歷查詢請按2?;?電話號碼查詢按3,主功能按4 \ n ");
scanf("%d ",& ampt);
if(t & gt;=1。& ampt & lt=4)
{
flag = 1;
打破;
}
其他
{
flag = 0;
Printf("您輸入錯誤,請重新選擇!");
}
}
while(flag = = 0);
while(flag==1)
{
開關(t)
{?
案子?1:printf("按員工編號查詢\ n ");search_num()。打破;
案子?2:printf("按學歷查詢\ n ");search _李雪();打破;
案子?3:printf("按電話號碼查詢\ n ");search _ tel();打破;
案子?4:main();打破;
默認:break
}
}
}
作廢?search_num()
{
int?num
int?I,t;
int?m = load();
Printf("請輸入您要找的員工編號(20001111-2000999):\ n ");
scanf("%d ",& ampnum);
for(I = 0;我& ltm;i++)
if(num==em[i]。數字)
{?
printf(" \ n已找到此人,其記錄為:\ n ");
printf(" \ n員工編號\ tName \ tSex \ tAge \教育\ tSalary \地址\ t電話\ n ");
printf(" \ n % d \ t % s \ t % c \ t % d \ t % s \ t % d \ t % s \ t % LD \ n ",em[i]。num,em[i]。姓名,em[i]。性,em[i]。年齡,em[i]。李雪,em[i]。工資,em[i]。地址,em[i]。電話);?
打破;
}
if(i==m)?
printf(" \ n抱歉,沒有找到此人\ n ");
printf(" \ n ");
Printf("按1返回查詢功能,按2\n "繼續查詢員工號);
scanf("%d ",& ampt);
開關(t)
{?
案子?1:search();打破;
案子?2:?打破;
默認:break
}
}
作廢?搜索_李雪()
{
夏爾?李雪[30];
int?I,t;
int?m = load();
Printf("請輸入妳想找的學歷:\ n ");
scanf("%s ",李雪);
for(I = 0;我& ltm;i++)
if(strcmp(em[i].李雪,李雪)==0)
{
printf(" \ n找到記錄:\ n ");
printf(" \ n員工編號\ tName \ tSex \ tAge \教育\ tSalary \地址\ t電話\ n ");
printf(" \ n % d \ t % s \ t % c \ t % d \ t % s \ t % d \ t % s \ t % LD \ n ",em[i]。num,em[i]。姓名,em[i]。性,em[i]。年齡,em[i]。李雪,em[i]。工資,em[i]。地址,em[i]。電話);?
}
if(i==m)?
printf(" \ n抱歉,沒有找到此人\ n ");
printf(" \ n ");
Printf("按1返回查詢功能,按2\n "繼續學歷查詢);
scanf("%d ",& ampt);
開關(t)
{?
案子?1:search();打破;
案子?2:破;
違約?:break
}
}
作廢?search_tel()
{
龍?int?電話;
int?我,?t;
int?m = load();
Printf("請輸入您要查找的電話號碼:\ n ");
scanf("%ld ",& amp電話);
for(I = 0;我& ltm;i++)
if(tel==em[i]。電話)
{?
printf(" \ n已找到此人,其記錄為:\ n ");
printf(" \ n員工編號\ tName \ tSex \ tAge \教育\ tSalary \地址\ t電話\ n ");
printf(" \ n % d \ t % s \ t % c \ t % d \ t % s \ t % d \ t % s \ t % LD \ n ",em[i]。num,em[i]。姓名,em[i]。性,em[i]。年齡,em[i]。李雪,em[i]。工資,em[i]。地址,em[i]。電話);?
打破;
}
if(i==m)?
printf(" \ n抱歉,沒有找到此人\ n ");
printf(" \ n ");
Printf("按1返回查詢功能,按2\n "繼續查詢電話號碼);
scanf("%d ",& ampt);
開關(t)
{?
案子?1:search();打破;
案子?2:破;
違約?:break
}
}