#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#define N 100struct employee??????????? //職工基本信息{?? ?long num;?? ??? ??? ??? ?//工號(hào)?? ?int position;?? ??? ??? ?//職位:1為董事長(zhǎng),2為總經(jīng)理,3為副總經(jīng)理 4.普通員工?? ??? ?char name[8];?? ??? ??? ?//姓名?? ??? ?char sex[2];?? ??? ??? ?//性別;f為女,m為男?? ??? ?int age;?? ??? ??? ??? ?//年齡?? ?int cult;?? ??? ??? ??? ?//文化程度:1為碩士。2為學(xué)士。3為其他?? ?int state;?? ??? ??? ??? ?//健康狀況:1為好,2為一般。3為差}e[N];/* ************? 管理模塊? ************ *//* 錄入職工信息 */void input (){?? ?int i,j;?? ?printf ("請(qǐng)確認(rèn)輸入信息的職工人數(shù)(最多100人)\n");?? ?scanf ("%d",&i);?? ??? ?if (i<1? || i>100)?? ?{?? ??? ?printf ("輸入數(shù)據(jù)有誤,請(qǐng)重新輸入\n");?? ??? ?scanf ("%d",&i);?? ?}?? ?FILE *fp;??? ?if ((fp=fopen("d:\\Staff information.txt","w"))==NULL)?? ?{?? ??? ?printf ("Can not open file!");?? ??? ?exit (0);?? ?}?? ?printf ("*****************************************************************\n");?? ?printf ("備注:\n職位:1為董事長(zhǎng),2為總經(jīng)理,3為副總經(jīng)理 4.普通員工\n性別;f為女,m為男\(zhòng)n文化程度:1為碩士。2為學(xué)士。3為其他\n健康狀況:1為好,2為一般。3為差\n");?? ?printf ("*****************************************************************\n");?? ?printf ("請(qǐng)輸入%d名職工信息,(工號(hào)、職位等信息,請(qǐng)按Tab鍵隔開)\n",i);?? ?printf ("工號(hào)\t職位\t姓名\t性別\t年齡\t文化程度\t健康狀況\n");?? ?for (j=0;j<i;j++);?? ?{?? ??? ?scanf ("%ld%d%s%s%ld%d%d",&e[j].num,&e[j].position,e[j].name,e[j].sex,&e[j].age,&e[j].cult,&e[j].state);?? ??? ?fflush(stdin);?? ??? ?fprintf (fp,"%ld\t%d\t%s\t%s\t%ld\t%d\t%d",e[j].num,e[j].position,e[j].name,e[j].sex,e[j].age,e[j].cult,e[j].state);?? ?/*?? ?fflush(stdin);*/?? ??? ?fprintf (fp,"\n");?? ?}?? ?fclose (fp);?? ??? ??? ?if ((fp=fopen("d:\\Count.txt","w"))==NULL)?? ?{?? ??? ?printf ("Can not open file!");?? ??? ?exit (0);?? ?}?? ??? ?fputc (i,fp);?? ?fclose (fp); ?? ?}/* 顯示職工信息 */void display (){?? ?FILE *fp;?? ?int f;?? ?if ((fp=fopen("d:\\Count.txt","r"))==NULL)?? ?{?? ??? ?printf ("Can not open file!");?? ??? ?exit (0);?? ?}?? ??? ?f = fgetc (fp);?? ?if ((fp=fopen("d:\\Staff information.txt","r"))==NULL)?? ?{?? ??? ?printf ("Can not open file!");?? ??? ?exit (0);?? ?}/*?? ?printf ("已輸入信息的職工有%d人\n",i); */?? ?printf ("工號(hào)\t職位\t姓名\t性別\t年齡\t文化程度\t健康狀況\n");?? ?for (int a=0;a<f;a++)????? ??? ?{?? ??? ?fscanf (fp,"%ld\t%d\t%s\t%s\t%ld\t%d\t%d",&e[a].num,&e[a].position,e[a].name,e[a].sex,&e[a].age,&e[a].cult,&e[a].state); // 從文件中讀出數(shù)據(jù),應(yīng)該用文件的讀寫函數(shù)?? ??? ?printf ("%ld\t%d\t%s\t%s\t%ld\t%d\t\t%d",e[a].num,e[a].position,e[a].name,e[a].sex,e[a].age,e[a].cult,e[a].state);?? ??? ?printf ("\n");?? ?}/* 這個(gè)不行?? ?while (!feof (fp))?? ?{?? ??? ?fgets (a,10000,fp);?? ?}*/?? ?fclose (fp);}/* 修改職工信息 *//* 追加職工信息 *//* 刪除職工信息 *//* 管理模塊選擇菜單 */void manage (){?? ?system ("cls"); ?? ?int choicemanage;?? ?char choice='y';?? ?while (choice == 'Y' || choice == 'y')?? ?{?? ??? ?system ("cls");?? ??? ?printf ("\t\t歡迎進(jìn)入管理系統(tǒng)\n");?? ??? ?printf ("=======================================\n");?? ??? ?printf ("\t\t請(qǐng)你選擇操作類型\n");?? ??? ?printf ("\t\t1輸入職工信息\n");?? ??? ?printf ("\t\t2顯示職工信息\n");?? ??? ?printf ("\t\t3修改職工信息\n");?? ??? ?printf ("\t\t4追加一個(gè)職工信息\n");?? ??? ?printf ("\t\t5刪除一個(gè)職工信息\n");?? ??? ?printf ("\t\t0退出系統(tǒng)\n");?? ??? ?printf ("=======================================\n");?? ??? ?scanf ("%d",&choicemanage);?? ??? ?system ("cls");?? ??? ?switch (choicemanage)?? ??? ?{?? ??? ??? ?case 1:?? ??? ??? ??? ?input ();?????????????? //輸入職工信息?? ??? ??? ??? ?break;?? ??? ??? ?case 2:?? ??? ??? ??? ?display ();???????????? //顯示職工信息?? ??? ??? ??? ?break;/*?? ??? ??? ?case 3:?? ??? ??? ??? ?chanage ();?? ??? ??? ??? ?//修改職工信息?? ??? ??? ??? ?break;?? ??? ??? ?case 4:?? ??? ??? ??? ?add ();???????????????? //追加職工信息?? ??? ??? ??? ?break;?? ??? ??? ?case 5:?? ??? ??? ??? ?del ();???????????????? //刪除職工信息?? ??? ??? ??? ?break;???????????????????????????????????????? */?? ??? ??? ?case 0:?? ??? ??? ??? ?{?? ??? ??? ??? ??? ?printf ("謝謝使用再見\n");?? ??? ??? ??? ??? ?return ;?? ??? ??? ??? ?}?? ??? ??? ?default :?? ??? ??? ??? ?printf ("輸入錯(cuò)誤請(qǐng)重新輸入\n");?? ??? ?}?? ??? printf ("是否繼續(xù)管理?(y/Y)\n");?? ??? ?scanf ("%s",&choice);????????????????? //之前我直接 用格式控制符 %c? 根本就沒有選擇,因?yàn)閷?duì)于%c讀入時(shí)候,“空格、\n、TAB”等是正常字符,當(dāng)你最后按 回車鍵 是把回車鍵 '\n' 賦值給 choice?? ?}}/* ************? 總菜單? ************ */void main (){?? ?int choice;?? ?while (1)?? ?{?? ??? ?printf ("*******************************************\n");?? ??? ?printf ("\t歡迎進(jìn)入企業(yè)人事管理系統(tǒng)中文版\n");?? ??? ?printf ("======================\t\t======================\n");?? ??? ?printf ("\t\t\t請(qǐng)你選擇操作\n");?? ??? ?printf ("\t\t\t1進(jìn)入管理系統(tǒng)\n");?? ??? ?printf ("\t\t\t0退出系統(tǒng)\n");?? ??? ?printf ("======================\t\t======================\n");?? ??? ?scanf ("%d",&choice);?? ??? ?switch (choice)?? ??? ?{?? ??? ?case 1:???????????????? ??? ??? ??? ?manage ();?????????????? //管理系統(tǒng)?? ??? ??? ?break;?? ??? ?case 0:?? ??? ??? ?{?? ??? ??? ??? ?printf ("謝謝使用,再見\n");?? ??? ??? ??? ?exit (0);?? ??? ??? ?}?? ??? ?default:?? ??? ??? ?printf ("輸入有誤請(qǐng)重新輸入\n");?? ??? ?}?? ??? ??? ?}}
我輸入兩個(gè)員工的信息,但結(jié)果只顯示第一個(gè)員工的信息
coreIdeaLJJ
2016-12-31 16:39:42