欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      C語言職工信息管理系統(tǒng)設(shè)計(優(yōu)秀范文5篇)

      時間:2019-05-14 03:48:47下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C語言職工信息管理系統(tǒng)設(shè)計》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《C語言職工信息管理系統(tǒng)設(shè)計》。

      第一篇:C語言職工信息管理系統(tǒng)設(shè)計

      #include #include #include #include #define N 100 struct employee {

      int num;char name[10];char sex;

      int age;char xueli[30];

      int wage;

      char addr[30];

      long int tel;}em[100];

      /*定義一個結(jié)構(gòu)體*/

      void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void modify();/*定義各函數(shù)*/

      void menu()

      /*菜單函數(shù)*/ { printf(“

      ☆☆☆計算機科學(xué)與技術(shù)學(xué)系☆☆☆n”);

      printf(“n”);

      printf(“

      ∮08802班 關(guān)麗霞∮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”);

      }

      void main(){

      menu();/*調(diào)用菜單函數(shù)*/ int n,flag;char a;do {

      printf(“請選擇你需要操作的步驟(1--7):n”);

      scanf(“%d”,&n);

      if(n>=1&&n<=7)

      {

      flag=1;

      break;

      }

      else

      {

      flag=0;

      printf(“您輸入有誤,請重新選擇!”);

      } }

      while(flag==0);

      while(flag==1)

      {

      switch(n)

      {

      case 1:printf(“

      ◆◆◆輸入職工信息◆◆◆n”);printf(“n”);input();break;

      case 2:printf(“

      ◆◆◆瀏覽職工信息◆◆◆n”);printf(“n”);display();break;

      case 3:printf(“

      ◆◆◆按職工號查詢職工信息◆◆◆n”);printf(“n”);search();break;

      case 4:printf(“

      ◆◆◆刪除職工信息◆◆◆n”);printf(“n”);del();break;

      case 5:printf(“

      ◆◆◆添加職工信息◆◆◆n”);printf(“n”);add();break;

      case 6:printf(“

      ◆◆◆修改職工信息◆◆◆n”);printf(“n”);modify();break;

      case 7:exit(0);break;

      default :break;

      }

      getchar();

      printf(“n”);

      printf(“是否繼續(xù)進行(y or n):n”);

      scanf(“%c”,&a);

      if(a=='y')

      {

      flag=1;

      system(“cls”);/*清屏*/

      menu();/*調(diào)用菜單函數(shù)*/

      printf(“請再次選擇你需要操作的步驟(1--6):n”);

      scanf(“%d”,&n);

      printf(“n”);

      }

      else

      exit(0);}

      }

      void input()

      /*錄入函數(shù)*/ {

      int i,m;

      printf(“請輸入需要創(chuàng)建信息的職工人數(shù)(1--100):n”);

      scanf(“%d”,&m);

      for(i=0;i

      {

      printf(“職工號: ”);

      srand((int)time(0));

      em[i].num=rand()%10000+20000000;

      if(em[i].num!=em[i-1].num)

      printf(“%8d ”,em[i].num);

      printf(“n”);

      printf(“請輸入姓名: ”);

      scanf(“%s”,em[i].name);

      getchar();

      printf(“請輸入性別(f--女

      m--男): ”);

      scanf(“%c”,&em[i].sex);

      printf(“請輸入年齡: ”);

      scanf(“%d”,&em[i].age);

      printf(“請輸入學(xué)歷: ”);

      scanf(“%s”,em[i].xueli);

      printf(“請輸入工資: ”);

      scanf(“%d”,&em[i].wage);

      printf(“請輸入住址: ”);

      scanf(“%s”,em[i].addr);

      printf(“請輸入電話: ”);

      scanf(“%d”,&em[i].tel);

      printf(“n”);

      }

      printf(“n創(chuàng)建完畢!n”);

      save(m);}

      void save(int m)/*保存文件函數(shù)*/ { int i;FILE*fp;if((fp=fopen(“employee_list”,“wb”))==NULL)/*創(chuàng)建文件并判斷是否能打開*/ {

      printf(“cannot open filen”);

      exit(0);} for(i=0;i

      if(fwrite(&em[i],sizeof(struct employee),1,fp)!=1)

      printf(“file write errorn”);

      fclose(fp);} int load()/*導(dǎo)入函數(shù)*/ {

      FILE*fp;int i=0;

      if((fp=fopen(“employee_list”,“rb”))==NULL){

      printf(“cannot open filen”);

      exit(0);} else

      {

      do

      {

      fread(&em[i],sizeof(struct employee),1,fp);

      i++;

      }

      while(feof(fp)==0);} fclose(fp);return(i-1);}

      void display()/*瀏覽函數(shù)*/ { int i;int m=load();printf(“n 職工號t姓名t性別t年齡t學(xué)歷t工資t住址t電話

      n”);for(i=0;i

      printf(“n %dt%st%ct%dt%st%dt%st%ldn”,em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

      }

      void del()

      /*刪除函數(shù)*/ {

      int m=load();int i,j,n,t,flag;char name[20];printf(“n 原來的職工信息:n”);

      display();

      /* 調(diào)用瀏覽函數(shù)*/

      printf(“n”);printf(“請輸入要刪除的職工的姓名:n”);scanf(“%s”,name);for(flag=1,i=0;flag&&i

      if(strcmp(em[i].name,name)==0)

      {

      printf(“n已找到此人,原始記錄為:n”);

      printf(“n職工號t姓名t性別t年齡t學(xué)歷t工資t住址t電話

      n”);

      printf(“n%dt%st%ct%dt%st%dt%st%ldn”,em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

      printf(“n確實要刪除此人信息請按1,不刪除請按0n”);

      scanf(“%d”,&n);

      if(n==1)

      /*如果刪除,則其他的信息都往上移一行*/

      {

      for(j=i;j

      {

      strcpy(em[j].name,em[j+1].name);

      em[j].num=em[j+1].num;

      em[j].sex=em[j+1].sex;

      em[j].age=em[j+1].age;

      strcpy(em[j].xueli,em[j+1].xueli);

      em[j].wage=em[j+1].wage;

      strcpy(em[j].addr,em[j+1].addr);

      em[j].tel=em[j+1].tel;

      }

      flag=0;

      }

      } } if(!flag)

      m=m-1;else

      printf(“n對不起,查無此人!n”);

      printf(“n 瀏覽刪除后的所有職工信息:n”);

      save(m);

      /*調(diào)用保存函數(shù)*/

      display();/*調(diào)用瀏覽函數(shù)*/ printf(“n繼續(xù)刪除請按1,不再刪除請按0n”);scanf(“%d”,&t);switch(t){

      case 1:del();break;

      case 0:break;

      default :break;} }

      void add()/*添加函數(shù)*/ { FILE*fp;int n;

      int count=0;

      int i;

      int m=load();

      printf(“n 原來的職工信息:n”);

      display();

      /* 調(diào)用瀏覽函數(shù)*/

      printf(“n”);

      fp=fopen(“emploee_list”,“a”);

      printf(“請輸入想增加的職工數(shù):n”);scanf(“%d”,&n);

      for(i=m;i<(m+n);i++)

      {

      printf(“n 請輸入新增加職工的信息:n”);

      printf(“請輸入職工號: ”);

      srand((int)time(0));

      em[i].num=rand()%10000+20000000;

      if(em[i].num!=em[i-1].num)

      printf(“%8d ”,em[i].num);

      printf(“n”);

      printf(“請輸入姓名: ”);

      scanf(“%s”,em[i].name);

      getchar();

      printf(“請輸入性別(f--女

      m--男): ”);

      scanf(“%c”,&em[i].sex);

      printf(“請輸入年齡: ”);

      scanf(“%d”,&em[i].age);

      printf(“請輸入學(xué)歷: ”);

      scanf(“%s”,em[i].xueli);

      printf(“請輸入工資: ”);

      scanf(“%d”,&em[i].wage);

      printf(“請輸入住址: ”);

      scanf(“%s”,em[i].addr);

      printf(“請輸入電話: ”);

      scanf(“%d”,&em[i].tel);

      printf(“n”);

      count=count+1;

      printf(“已增加的人數(shù):n”);

      printf(“%dn”,count);}

      printf(“n添加完畢!n”);

      m=m+count;printf(“n瀏覽增加后的所有職工信息:n”);printf(“n”);save(m);

      display();

      fclose(fp);}

      void search()/*查詢函數(shù)*/ {

      int t,flag;do {

      printf(“n按職工號查詢請按1;按學(xué)歷查詢請按2;按電話號碼查詢請按3,進入主函數(shù)按4n”);

      scanf(“%d”,&t);

      if(t>=1&&t<=4)

      {

      flag=1;

      break;

      }

      else

      {

      flag=0;

      printf(“您輸入有誤,請重新選擇!”);

      } }

      while(flag==0);

      while(flag==1){

      switch(t)

      {

      case 1:printf(“按職工號查詢n”);search_num();break;

      case 2:printf(“按學(xué)歷查詢n”);search_xueli();break;

      case 3:printf(“按電話號碼查詢n”);search_tel();break;

      case 4:main();break;

      default:break;

      }

      } }

      void search_num(){

      int num;

      int i,t;

      int m=load();

      printf(“請輸入要查找的職工號(20001111---20009999):n”);

      scanf(“%d”,&num);

      for(i=0;i

      if(num==em[i].num){

      printf(“n已找到此人,其記錄為:n”);

      printf(“n職工號t姓名t性別t年齡t學(xué)歷t工資t住址t電話

      n”);

      printf(“n%dt%st%ct%dt%st%dt%st%ldn”,em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

      break;}

      if(i==m)

      printf(“n對不起,查無此人n”);

      printf(“n”);

      printf(“返回查詢函數(shù)請按1,繼續(xù)查詢職工號請按2n”);

      scanf(“%d”,&t);

      switch(t)

      {

      case 1:search();break;

      case 2: break;

      default:break;

      } }

      void search_xueli(){

      char xueli[30];

      int i,t;

      int m=load();

      printf(“請輸入要查找的學(xué)歷:n”);

      scanf(“%s”,xueli);

      for(i=0;i

      if(strcmp(em[i].xueli,xueli)==0){

      printf(“n已找到,其記錄為:n”);

      printf(“n職工號t姓名t性別t年齡t學(xué)歷t工資t住址t電話

      n”);

      printf(“n%dt%st%ct%dt%st%dt%st%ldn”,em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

      }

      if(i==m)

      printf(“n對不起,查無此人n”);

      printf(“n”);

      printf(“返回查詢函數(shù)請按1,繼續(xù)查詢學(xué)歷請按2n”);

      scanf(“%d”,&t);

      switch(t)

      {

      case 1:search();break;

      case 2:break;

      default :break;

      }

      }

      void search_tel(){

      long int tel;

      int i, t;

      int m=load();

      printf(“請輸入要查找的電話號碼:n”);

      scanf(“%ld”,&tel);

      for(i=0;i

      if(tel==em[i].tel){

      printf(“n已找到此人,其記錄為:n”);

      printf(“n職工號t姓名t性別t年齡t學(xué)歷t工資t住址t電話

      n”);

      printf(“n%dt%st%ct%dt%st%dt%st%ldn”,em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

      break;}

      if(i==m)

      printf(“n對不起,查無此人n”);

      printf(“n”);

      printf(“返回查詢函數(shù)請按1,繼續(xù)查詢電話號碼請按2n”);

      scanf(“%d”,&t);

      switch(t)

      {

      case 1:search();break;

      case 2:break;

      default :break;

      }

      }

      void modify()/*修改函數(shù)*/ {

      int num;char name[10];char sex;

      int age;char xueli[30];

      int wage;

      char addr[30];

      long int tel;

      int b,c,i,n,t,flag;

      int m=load();/*導(dǎo)入文件內(nèi)的信息*/

      printf(“n 原來的職工信息:n”);

      display();

      /* 調(diào)用瀏覽函數(shù)*/ printf(“n”);

      printf(“請輸入要修改的職工的姓名:n”);scanf(“%s”,name);for(flag=1,i=0;flag&&i

      if(strcmp(em[i].name,name)==0)

      {

      printf(“n已找到此人,原始記錄為:n”);

      printf(“n職工號t姓名t性別t年齡t學(xué)歷t工資t住址t電話

      n”);

      printf(“n%dt%st%ct%dt%st%dt%st%ldn”,em[i].num,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].addr,em[i].tel);

      printf(“n確實要修改此人信息請按1;不修改請按0n”);

      scanf(“%d”,&n);

      if(n==1)

      {

      printf(“n需要進行修改的選項n 1.職工號 2.姓名 3.性別 4.年齡 5.學(xué)歷 6.工資 7.住址 8.電話n”);

      printf(“請輸入你想修改的那一項序號:n”);

      scanf(“%d”,&c);

      if(c>8||c<1)

      printf(“n選擇錯誤,請重新選擇!n”);

      }

      flag=0;

      }

      }

      if(flag==1)printf(“n對不起,查無此人!n”);

      do

      {

      switch(c)

      /*因為當(dāng)找到第i個職工時,for語句后i自加了1,所以下面的應(yīng)該把改后的信息賦值給第i-1個人*/

      {

      case 1:printf(“職工號改為: ”);

      scanf(“%d”,&num);

      em[i-1].num=num;

      break;

      case 2:printf(“姓名改為: ”);

      scanf(“%s”,name);

      strcpy(em[i-1].name,name);

      break;

      case 3:printf(“性別改為: ”);

      getchar();

      scanf(“%c”,&sex);

      em[i-1].sex=sex;

      break;

      case 4:printf(“年齡改為: ”);

      scanf(“%d”,&age);

      em[i-1].age=age;

      break;

      case 5:printf(“學(xué)歷改為: ”);

      scanf(“%s”,xueli);

      strcpy(em[i-1].xueli,xueli);

      break;

      case 6:printf(“工資改為: ”);

      scanf(“%d”,wage);

      break;

      case 7:printf(“住址改為: ”);

      scanf(“%s”,addr);

      strcpy(em[i-1].addr,addr);

      break;

      case 8:printf(“電話改為: ”);

      scanf(“%ld”,&tel);

      em[i-1].tel=tel;

      break;

      }

      printf(“n”);

      printf(“n是否確定所修改的信息?n 是 請按1;不,重新修改 請按2: n”);

      scanf(“%d”,&b);

      }

      while(b==2);

      printf(“n瀏覽修改后的所有職工信息:n”);

      printf(“n”);

      save(m);

      display();

      printf(“n繼續(xù)修改請按1,不再修改請按0n”);

      scanf(“%d”,&t);

      switch(t){

      case 1:modify();break;

      case 0:break;

      default :break;}

      }

      第二篇:職工信息管理系統(tǒng)

      職工信息管理系統(tǒng)設(shè)計報告(VB)編號:22

      職工信息管理系統(tǒng) 設(shè)計報告

      學(xué)院

      土木工程

      班級

      測繪C111

      學(xué)號

      117551

      姓名

      馬驍飛

      成績

      一、設(shè)計思路

      1.要達(dá)到的目的

      培養(yǎng)學(xué)生綜合利用VB語言進行程序設(shè)計的能力,主要是培養(yǎng)學(xué)生綜合使用基本控件的、文件讀寫、數(shù)組操作等能力。

      利用讀取數(shù)據(jù)按鈕,打開選中的數(shù)據(jù)文件職工.txt,并從該文件中讀取職工職工號、姓名、職稱和工資,保存在數(shù)組中,并顯示在文本框中。

      清除文本框中的職工的信息。

      在文本框中顯示職工的信息。

      按照職工號查詢職工信息,并顯示。

      按照姓名查詢職工信息,并顯示。

      按照職工號修改職工信息,并顯示。

      按照姓名修改職工信息,并顯示。

      追加一條記錄數(shù)據(jù),并顯示。2.關(guān)鍵問題的解決

      (1)通過“讀取數(shù)據(jù)”按鈕應(yīng)能利用應(yīng)能利用右側(cè)圖示樣式窗體形式,打開選中的數(shù)據(jù)文件職工.txt,并從該文件中讀取職工職工號、姓名、職稱和工資,保存在數(shù)組中,并顯示在文本框中。(2)通過“清除數(shù)據(jù)”按鈕應(yīng)能清除文本框中的內(nèi)容。(3)從“按職工號查詢”按鈕左端文本框輸入職工號,單擊“按職工號查詢”,在窗體大的文本框中顯示查詢結(jié)果。從“按姓名查詢”按鈕左端文本框輸入姓名,單擊“按姓名查詢”按鈕,在窗體大的文本框中顯示查詢結(jié)果。(4)從“按職工號修改”(“按姓名修改”)按鈕,在輸入對話框中輸入職工號,對查詢到的職工的職工號(姓名)進行修改,在窗體大的文本框中顯示修改結(jié)果。

      從輸入一條記錄后文本框中輸入一條記錄信息,單擊“追加數(shù)據(jù)并顯示結(jié)果”按鈕,添加到職工.txt中,并將追加數(shù)據(jù)后職工.txt的信息顯示窗體的大文本框中。

      二、部分程序關(guān)鍵源代碼及注釋 rivate Sub Command1_Click()Form2.Show

      End Sub

      Private Sub Command2_Click()

      職工信息管理系統(tǒng)設(shè)計報告(VB)編號:22 List1.Clear End Sub

      Private Sub Command3_Click()e = True Unload Me End Sub

      Private Sub Command4_Click()List1.Clear If Text3.Text = “117001” Then List1.AddItem “張三 117001” ElseIf Text3.Text = “117002” Then List1.AddItem “李四 117002” ElseIf Text3.Text = “117003” Then List1.AddItem “王五 117003” ElseIf Text3.Text = “117004” Then List1.AddItem “王六 117004” ElseIf Text3.Text = “117005” Then List1.AddItem “趙七 117005” ElseIf Text3.Text = “117006” Then List1.AddItem “李八 117006” ElseIf Text3.Text = “117007” Then List1.AddItem “劉九 117007” ElseIf Text3.Text = “117008” Then List1.AddItem “馬十

      117008” Else: MsgBox “請輸入正確的職工號” End If

      職工信息管理系統(tǒng)設(shè)計報告(VB)編號:22 End Sub

      Private Sub Command5_Click()Dim a As String Dim b As String b = InputBox(“請輸入要修改的職工的職工號”)a = InputBox(“請輸入新的職工姓名”)

      If b = “117001” Then List1.AddItem a & “

      ” & b ElseIf b = “117002” Then List1.AddItem a & “

      ” & b ElseIf b = “117003” Then List1.AddItem a & “

      ” & b ElseIf b = “117004” Then List1.AddItem a & “

      ” & b ElseIf b = “117005” Then List1.AddItem a & “

      ” & b ElseIf b = “117006” Then List1.AddItem a & “

      ” & b ElseIf b = “117007” Then List1.AddItem a & “

      ” & b ElseIf b = “117008” Then List1.AddItem a & “

      ” & b Else: MsgBox “請輸入正確的職工號” End If

      List1.AddItem a & “

      ” & b End Sub

      職工信息管理系統(tǒng)設(shè)計報告(VB)編號:22 Private Sub Command6_Click()List1.Clear If Text2.Text = “張三” Then List1.AddItem “張三 117001” ElseIf Text2.Text = “李四” Then List1.AddItem “李四 117002” ElseIf Text2.Text = “王五” Then List1.AddItem “王五 117003” ElseIf Text2.Text = “王六” Then List1.AddItem “王六 117004” ElseIf Text2.Text = “趙七” Then List1.AddItem “趙七 117005” ElseIf Text2.Text = “李八” Then List1.AddItem “李八 117006” ElseIf Text2.Text = “劉九” Then List1.AddItem “劉九 117007” ElseIf Text2.Text = “馬十” Then List1.AddItem “馬十

      117008” Else: MsgBox “請輸入正確的職工姓名” End If End Sub

      Private Sub Command7_Click()Dim a As String Dim b As String a = InputBox(“請輸入要修改的職工姓名”)b = Str(InputBox(“請輸入新職工號”))

      If a = “張三” Then List1.AddItem a & “

      ” & b

      職工信息管理系統(tǒng)設(shè)計報告(VB)編號:22 ElseIf a = “李四” Then List1.AddItem a & “

      ” & b ElseIf a = “王五” Then List1.AddItem a & “

      ” & b ElseIf a = “王六” Then List1.AddItem a & “

      ” & b ElseIf a = “趙七” Then List1.AddItem a & “

      ” & b ElseIf a = “李八” Then List1.AddItem a & “

      ” & b ElseIf a = “劉九” Then List1.AddItem a & “

      ” & b ElseIf a = “馬十” Then List1.AddItem a & “

      ” & b Else: MsgBox “請輸入正確的職工姓名” End If End Sub

      Private Sub Command8_Click()Dim a As String Dim b As String

      a = InputBox(“請輸入新員工姓名”)b = InputBox(“請輸入新員工的職工號”)

      List1.AddItem a & “

      ” & b End Sub Private Sub Combo2_Change()Select Case Comb2.Text

      職工信息管理系統(tǒng)設(shè)計報告(VB)編號:22 Case “*.txt” File1.Pattern = “*.txt” Case “*.ini” File1.Pattern = “*.ini” Case “*.doc” File1.Pattern = “*.doc” Case “*.*” File1.Pattern = “*.*” End Select End Sub

      Private Sub Command1_Click()Dim fileno As Integer, strl As String fileno = FreeFile Open “職工信息.txt” For Input As #fileno i = 0 Do While Not EOF(fileno)Input #fileno, str1 Form1.List1.AddItem str1

      i = i + 1 Loop Close #fileno Form1.Show Me.Hide End Sub

      Private Sub Command2_Click()Form1.Show End Sub

      職工信息管理系統(tǒng)設(shè)計報告(VB)編號:22

      Private Sub Drive1_Change()Dir1.Path = Drive1.Drive End Sub

      Private Sub File1_Click()Text3.Text = File1.FileName End Sub

      Private Sub VScroll1_Change()Form1.Show End Sub

      三、設(shè)計方案的完善及目前存在的問題

      1.設(shè)計方案要完善的地方

      追加的信息無法加載到“職工信息txt”里 查詢只是單一的一對一輸入,不智能 文件類型的篩選問題暫未處理辦法 2.目前存在的問題

      只是簡單的查詢,不適合大量數(shù)據(jù)的導(dǎo)入與導(dǎo)出,不方便查看

      四、本次設(shè)計的收獲及心得體會

      第一次嘗試程序的制作,覺得非常有意思,做成功以后很有成就感,我還發(fā)現(xiàn),程序制作出來的好壞直接影響使用者的工作效率,好的軟件可以使用戶事半功倍,對程序的運作體系越了解,設(shè)計的軟件越智能,越能更好的服務(wù)于使用者,好好學(xué)習(xí)VB計算機語言,是磨刀不誤砍柴工的體現(xiàn)。

      五、對該題目和VB設(shè)計的意見和建議

      1.對該題目的意見和建議

      Form2中的文件類型,有些偏難,在少數(shù)文件夾的情況下可以不用通過文件類型的篩選 2.對本次設(shè)計的意見和建議

      對此次課程設(shè)計的時間安排應(yīng)更具體,應(yīng)有相應(yīng)的素材圖片,增添軟件的美感

      第三篇:職工信息管理系統(tǒng)源代碼

      #include #include #include int N=2;struct worker/*定義一個職工信息的結(jié)構(gòu)體*/ {

      intnum;

      /*定義一個職工信息的結(jié)構(gòu)體*/ char name[20];

      /*定義一個職工信息的結(jié)構(gòu)體*/

      char sex[10];

      //用字符串存放職工的性別數(shù)據(jù)

      char birth[20];//用字符串存放職工的出生年月數(shù)據(jù)

      char deta[20];//用字符串存放職工的工作年月數(shù)據(jù)

      char education[20];//用字符串存放職工的學(xué)歷數(shù)據(jù)

      double salary;

      //用字符串存放職工的性別數(shù)據(jù)

      char work[30];//用字符串存放職工的職務(wù)數(shù)據(jù)

      char addr[20];//用字符串存放職工的地址數(shù)據(jù)

      char tel[20];//用字符串存放職工的電話數(shù)據(jù) }worker[100];//用結(jié)構(gòu)體數(shù)組存放職工的所有信息 void menu();

      void input();

      void save();

      void read();

      void display();

      void add();

      void search();

      voidsearch_education();

      voidsearch_num();

      void del();

      void modify();

      void main()

      { char s;

      system(“color 3f”);

      printf(“nn”);

      printf(“ t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

      printf(“ t┃**********************************************************┃n”);

      printf(“ t┃***┏━━━━━━━━━━━━━━━━━━━━━━━━┓***┃n”);

      printf(“ t┃***┃************************************************┃***┃n”);

      printf(“ t┃***┃***

      ****┃***┃n”);

      printf(“ t┃***┃***

      歡迎使用職工信息管理系統(tǒng)

      ****┃***┃n”);

      printf(“ t┃***┃***

      ****┃***┃n”);

      printf(“ t┃***┃***

      ****┃***┃n”);

      printf(“ t┃***┃***

      制作人吳青伶

      ****┃***┃n”);

      printf(“ t┃***┃***

      ****┃***┃n”);

      printf(“ t┃***┃***

      2013.12.28

      ****┃***┃n”);

      printf(“ t┃***┃***

      ****┃***┃n”);

      printf(“ t┃***┃************************************************┃***┃n”);

      printf(“ t┃***┗━━━━━━━━━━━━━━━━━━━━━━━━┛***┃n”);

      printf(“ t┃**********************************************************┃n”);printf(“ t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);do { menu();printf(“Do you want to continue?(y/n)”);

      s=getchar();}while(s=='Y'||s=='y');} void menu()/*菜單函數(shù)*/ { int b;printf(“t

      n”);printf(“t

      n”);printf(“t

      n”);printf(“t

      n”);printf(“t

      n”);printf(“t

      請選擇

      n”);printf(“t

      ------------------------------n”);printf(“t

      ||

      ||

      n”);printf(“t

      ||

      1.職工信息錄入

      ||

      n”);printf(“t

      ||

      2.職工信息瀏覽

      ||

      n”);printf(“t

      ||

      3.職工信息添加

      ||

      n”);printf(“t

      ||

      4.職工信息查詢

      ||

      n”);printf(“t

      ||

      5.職工信息刪除

      ||

      n”);printf(“t

      ||

      6.職工信息修改

      ||

      n”);printf(“t

      ||

      0.退出

      ||

      n”);printf(“tn”);printf(“n 輸入你的選擇項(0~6):n”);

      scanf(“%d”,&b);

      switch(b)

      {

      case 1 : //職工信息錄入、保存

      input();

      save();

      getchar();

      break;

      case 2 ://讀入職工信息并顯示

      read();

      display();

      getchar();break;

      case 3 : //添加職工信息

      add();getchar();break;

      case 4 : //查詢職工信息

      search();getchar();break;

      case 5 : //讀入職工信息并實現(xiàn)職工信息刪除功能

      read();

      del();

      getchar();

      break;

      case 6 : //讀入職工信息并修改職工信息

      read();modify();getchar();break;

      case 0 : exit(0);//退出

      default:break;} } void input()

      //錄入職工信息 {

      inti,flag,j;printf(“輸入職工個數(shù)(默認(rèn)個數(shù)為2):”);scanf(“%d”,&N);fflush(stdin);//清除緩存 for(i=0;i

      { loop: printf(“職工號:”);scanf(“%d”,&worker[i].num);fflush(stdin);flag=1;if(worker[N].num<0)

      printf(“請輸入正整數(shù):n”);else for(j=0;j

      {

      if(worker[i].num==worker[j].num)

      {

      flag=0;

      printf(“ 工號重復(fù),請重新輸入!n”);

      goto loop;

      }

      } printf(“姓名:”);scanf(“%s”,worker[i].name);fflush(stdin);printf(“性別:”);scanf(“ %s”,worker[i].sex);fflush(stdin);printf(“出生年月:”);scanf(“%d”,&worker[i].birth);fflush(stdin);printf(“工作年月:”);scanf(“%lf”,&worker[i].deta);fflush(stdin);printf(“請輸入學(xué)歷(中專=zz,大專=dz,本科=bk,研究生=y(tǒng)js):n”);scanf(“%s”,worker[i].education);fflush(stdin);printf(“工資:”);scanf(“%lf”,worker[i].salary);fflush(stdin);printf(“職務(wù):”);scanf(“%s”,worker[i].work);fflush(stdin);printf(“住址:”);scanf(“%s”,worker[i].addr);fflush(stdin);printf(“電話:”);scanf(“%s”,worker[i].tel);fflush(stdin);

      } printf(“n創(chuàng)建完畢!n”);}

      void save()

      //保存函數(shù) {

      FILE *fp;int i;

      if((fp=fopen(“worker.txt”,“wb”))==NULL)//以只寫方式打開一個二進制文件

      {

      printf(“ncannot open filen”);

      exit(0);} for(i=0;i

      void read()

      //讀入函數(shù) {

      FILE *fp;int i=0;

      if((fp=fopen(“worker.txt”,“rb”))==NULL)//以只讀方式為輸出打開磁盤文件中的一個二進制文件

      {

      printf(“ncannot open filen”);

      exit(0);} do{ fread(&worker[i],sizeof(struct worker),1,fp);//從worker.txt文件向內(nèi)存讀入數(shù)據(jù)(二進制)

      i++;}while(!feof(fp));fclose(fp);

      N=i-1;}

      void display()

      //信息瀏覽函數(shù) {

      int i;for(i=0;i

      { printf(“職工號:%dn”,worker[i].num);printf(“姓名:%sn”,worker[i].name);printf(“性別:%sn”,worker[i].sex);printf(“出生年月:%dn”,worker[i].birth);printf(“工作年月:%dn”,worker[i].deta);printf(“學(xué)歷:%sn”,worker[i].education);printf(“工資:%lfn”,worker[i].salary);printf(“職務(wù):%dn”,worker[i].work);printf(“住址:%sn”,worker[i].addr);printf(“電話:%sn”,worker[i].tel);

      } } void add()

      //添加函數(shù) { FILE *fp;int i;struct worker p;double t;printf(“n請輸入新增加職工的信息:n”);

      printf(“請輸入職工號:n”);

      scanf(“%d”,&p.num);

      for(i=0;i

      {

      while(worker[i].num==p.num)

      {

      printf(“ 工號重復(fù),請重新輸入!n”);

      scanf(“%d”,&p.num);

      }

      } printf(“請輸入姓名:n”);scanf(“%s”,p.name);printf(“請輸入性別:n”);scanf(“%s”,p.sex);printf(“請輸入出生年月:n”);scanf(“%d”,&p.birth);printf(“請輸入工作年月:n”);scanf(“%d”,&p.deta);printf(“請輸入學(xué)歷(中專=zz,大專=dz,本科=bk,=yjs:):n”);scanf(“%s”,p.education);printf(“請輸入工資:n”);scanf(“%lf”,&t);p.salary=t;printf(“請輸入職務(wù):n”);scanf(“%s”,p.work);printf(“請輸入住址:n”);scanf(“%s”,p.addr);printf(“請輸入電話:n”);scanf(“%s”,p.tel);printf(“n添加完畢!n”);

      if((fp=fopen(“worker.txt”,“ab”))==NULL)//以追加方式打開一個二進制文件尾部

      { printf(“ncannot open filen”);exit(0);

      } fwrite(&p,sizeof(struct worker),1,fp);fclose(fp);} void search()

      //查詢函數(shù) {

      int c;do {

      puts(“nsearch by=>n1.學(xué)歷2.職工號3.取消并返回”);printf(“Which you needed?:n”);scanf(“%d”,&c);

      研究生if(c>3||c<1)

      {

      puts(“nchoiceerror!please again!”);getchar();//此語句用于接受在執(zhí)行上一句時最后輸出的回車符

      }

      } while(c>3||c<1);

      { switch(c)

      { case 1:search_education();break;case 2:search_num();break;case 3:menu();break;

      }

      } } void search_education()

      //按學(xué)歷查詢函數(shù) { inti,flag=0;char s[10];printf(“n請輸入你要查詢的學(xué)歷:n”);scanf(“%s”,s);for(i=0;i

      { if(strcmp(s,worker[i].education)==0)

      {

      printf(“職工號:%dn”,worker[i].num);

      printf(“姓名:%sn”,worker[i].name);

      printf(“性別:%sn”,worker[i].sex);

      printf(“出生年月:%dn”,worker[i].birth);

      printf(“工作年月:%dn”,worker[i].deta);

      printf(“學(xué)歷(中專=zz,大專=dz,yjs):%sn”,worker[i].education);printf(“工資:%lfn”,worker[i].salary);printf(“職務(wù):%lfn”,worker[i].work);

      printf(“住址:%sn”,worker[i].addr);

      printf(“電話:%sn”,worker[i].tel);flag++;

      }

      } if(flag==0)

      printf(“n對不起沒有找到!n”);getchar();} void search_num()

      //按工號查詢函數(shù) { inti,s,flag=0;printf(“n輸入要查詢的職工號!:n”);scanf(“%d”,&s);

      本科=bk,研究生=for(i=0;i

      {

      if(s==worker[i].num)

      {

      printf(“職工號:%dn”,worker[i].num);

      printf(“姓名:%sn”,worker[i].name);

      printf(“性別:%sn”,worker[i].sex);

      printf(“出生年月:%dn”,worker[i].birth);

      printf(“工作年月:%dn”,worker[i].deta);

      printf(“學(xué)歷(中專=zz,大專=dz,本科=bk,研究生=y(tǒng)js):%sn”,worker[i].education);

      printf(“工資:%lfn”,worker[i].salary);printf(“職務(wù):%lfn”,worker[i].work);

      printf(“住址:%sn”,worker[i].addr);

      printf(“電話:%sn”,worker[i].tel);

      flag++;

      }

      }

      if(flag==0)printf(“n對不起沒有找到!please”);

      getchar();}

      void del()

      //刪除函數(shù) { inti,j;FILE *fp;char name[20];char c;if((fp=fopen(“worker.txt”,“wb”))==NULL)//以只寫方式打開一個二進制文件

      {

      printf(“ncannot open filen”);exit(0);

      } printf(“請輸入要刪除的職工的姓名:”);scanf(“%s”,name);for(i=0;i

      if(strcmp(name,worker[i].name)==0)//判斷輸入的姓名和原來的姓名是否相同

      {

      printf(“找到該職工,是否刪除?(y/n)”);

      fflush(stdin);

      scanf(“%c”,&c);

      if(c =='Y'||c=='y')

      {

      for(j=i;j

      worker[j]=worker[j+1];

      printf(“刪除成功!n”);

      //break;

      }

      } } if(i>=N){ printf(“沒有找到該職工!n ”);

      return;}

      else {

      N=N-1;

      for(i=0;i

      if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)

      {

      printf(“ncannot save filen”);getchar();

      }

      fclose(fp);}

      }

      void modify()

      //修改函數(shù) { struct worker p;FILE *fp;inti,n;double t;printf(“n輸入要修改的職工號:n”);scanf(“%d”,&n);

      for(i=0;i

      if(n==worker[i].num)

      {

      printf(“找到該職工的信息(任意鍵繼續(xù))!”);

      printf(“n請輸入職工的信息!n”);

      printf(“請輸入姓名:n”);scanf(“%s”,p.name);

      printf(“請輸入性別:n”);scanf(“%s”,p.sex);

      printf(“請輸入出身年月:n”);scanf(“%d”,&p.birth);printf(“請輸入工作年月:n”);scanf(“%lf”,&p.deta);

      printf(“請輸入學(xué)歷(中專=zz,大專=dz,yjs):n”);scanf(“%s”,p.education);printf(“請輸入工資:n”);scanf(“%lf”,&t);

      p.salary=t;printf(“請輸入職務(wù):n”);scanf(“%s”,p.work);

      printf(“請輸入住址:n”);scanf(“%s”,p.addr);

      本科=bk,研究生=

      }

      printf(“請輸入電話:n”);scanf(“%s”,p.tel);p.num=n;

      if((fp=fopen(“worker.txt”,“r+”))==NULL)//以讀寫的方式將修改的信息寫入磁盤文件

      {

      printf(“ncannot open filen”);

      exit(0);

      }

      fseek(fp,i*sizeof(struct worker),0);//將位置指針移到i*sizeof(struct worker)個字節(jié)處

      fwrite(&p,sizeof(struct worker),1,fp);

      fclose(fp);

      printf(“修改成功!n”);

      break;} } if(i>=N)printf(“n未找到該職工!n”);

      第四篇:【課程設(shè)計】職工信息管理系統(tǒng)

      題目:職工信息系統(tǒng)

      功能包括:

      ? 建立職工信息數(shù)據(jù)(職工編號,姓名,性別,年齡,電話,職務(wù),工資和家庭成員信息)和信息簡表(編號,姓名,電話)? 根據(jù)職工編號查詢職工信息(查詢時需要身份確認(rèn)。單位領(lǐng)導(dǎo)和人事秘書可以看到職工所有信息;財務(wù)處人員可以看到職工編號,姓名,性別,年齡,電話,工資;一般職工僅能查到信息簡表)? 增加新職工信息(由人事秘書完成,需要身份確認(rèn))? 刪除職工信息(由人事秘書完成,需要身份確認(rèn))? 修改職工工資(由財務(wù)處人員完成,需要身份確認(rèn))? 要求所有信息能夠存儲在文件中,并具有良好的用戶界面

      #include #include #include #include using namespace std;const char * file = “staff.dat”;const int LIM =8;int ct=0;int Admin;int na;

      //ct用來儲存文件中數(shù)據(jù)組數(shù),Admin用來儲存登陸后該用戶的權(quán)限,//na用來儲存登錄所輸?shù)木幪?,方便主菜單?nèi)使用其顯示當(dāng)前用戶

      void hline(int);inline void eatline(){while(cin.get()!='n')continue;} class staff {/*職工編號,姓名,性別,年齡,職務(wù),電話,工資和家庭成員信息*/ public:

      };void staff::printf()

      //輸出的選擇,判斷其職務(wù),選擇調(diào)用哪個輸出 { if(Admin==1||Admin==2)printf1();else int num;char name[LIM],sex[3];int age;char job[10],phone[15];double wages;char home[20];int admin;void printf();void printf1();void printf2();void printf3();

      }

      if(Admin==3)printf2();else printf3();void staff::printf1()

      //領(lǐng)導(dǎo)及人事秘書能見的輸出 {

      } void staff::printf2()

      //財務(wù)人員能見的輸出 {

      } void staff::printf3()

      //普通員工能見的輸出 { cout<} hline(3);cout<//輸出信息的頭部 {

      switch(n){ case 1:{cout<

      <

      };break;case 2:{cout<

      };break;case 3:{cout<

      }

      } <

      };break;void menu()

      //主菜單 { cout<<“t╔╤╤╤╤╤╤職工編號: ”<

      //二級菜單 { cout<<“t╔╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤┐”<

      //登陸的實現(xiàn)部分 { cout<<“t┏┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┓”<

      int w=0;while(!(cin>>na)){ cin.clear();while(cin.get()!='n')continue;cout<<“輸入有誤,編號為一串?dāng)?shù)字,請重新輸入:n”;

      for(int i=1;i<=ct;i++)} fstream find;find.open(file,ios_base::in|ios_base::out|ios_base::binary);eatline();staff stu;

      {

      streampos place =(i-1)* sizeof stu;find.seekp(place);if(find.fail()){

      cerr << “■查找出錯!程序?qū)⑼顺?!■n”;system(“pause”);

      exit(EXIT_FAILURE);

      } find.read((char *)&stu, sizeof stu);if(stu.num==na){ } w=1;Admin=stu.admin;}

      if(w==0){cout<<“t┣╋**登錄失敗!未找到相應(yīng)的信息!程序?qū)⑼顺?*╋┫”<

      }

      int stu_num()

      //計算數(shù)據(jù)組數(shù) {

      } staff stu;ifstream stunum;stunum.open(file,ios_base::in|ios_base::binary);if(stunum.is_open()){

      } stunum.close();return ct;stunum.seekg(0);while(stunum.read((char *)&stu,sizeof stu))ct++;system(“pause”);system(“cls”);void setadmin(staff &stu,char jobs[10])

      //增加職工時根據(jù)職務(wù)設(shè)置權(quán)限 { char job1[10]=“總經(jīng)理”;char job2[10]=“副總經(jīng)理”;char job3[10]=“人事秘書”;char job4[10]=“財務(wù)人員”;

      }

      void add()

      // 輸入數(shù)據(jù)的函數(shù),增加職工 {

      if(Admin==2){ staff stu;if((!strcmp(stu.job,job1))||(!strcmp(stu.job,job2)))stu.admin=1;else

      if(!strcmp(stu.job,job3))stu.admin=2;else if(!strcmp(stu.job,job4))stu.admin=3;

      ofstream fout(file, ios_base::out | ios_base::app | ios_base::binary);

      if(!fout.is_open())

      {

      cerr << “不能打開 ” << file << “ 文件:n”;

      exit(EXIT_FAILURE);

      }

      cout << “★增加職員信息★請輸入職工姓名:(按Enter鍵退出輸入!):n”;eatline();

      cin.get(stu.name, LIM);

      while(stu.name[0]!= '