国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

程序設計職工管理系統(tǒng)

這篇具有很好參考價值的文章主要介紹了程序設計職工管理系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

需求分析

1.1?設計系統(tǒng)的目的分析

本系統(tǒng)要求用 C 語言建立一個職工信息管理系統(tǒng),本職工信息管理系統(tǒng)可以實現(xiàn)對眾多員工信息的管理。包含職工信息進行添加、查詢、刪除、修改

1.2系統(tǒng)的界面要求?

按任意鍵便可以進入主菜單,在主菜單上顯示出該系統(tǒng)的功能,通過輸入數(shù)字 0 到 6?來進行選擇便可以實現(xiàn)用戶所需要的功能,每個模塊進入模塊內部實現(xiàn)系統(tǒng)的具體功能,實現(xiàn)用戶所需要的功能

1.3主體功能分析?

該系統(tǒng)用下面六個功能模塊編寫,每個模塊執(zhí)行不同的功能,體現(xiàn)了模塊化

設計的思想。下面六個模塊都是利用 C 語言文件文件操作,向文件中添加數(shù)據、修改數(shù)據、查詢數(shù)據、刪除數(shù)據和保存數(shù)據。

1.3.1創(chuàng)建、讀取和寫入文件?

???判斷是否有存儲信息用的文本文件,若無則提示需建立一個文件。

fopen()建立一個文本文件,然后向其中寫入數(shù)據(例如,向文件中輸

“職工號”,“姓名”,“性別”,“年齡”“學歷”,“工資”址”,“電話”),并對文件進行命名為a.txt

1.3.2?添加職工信息?

通過鍵盤輸入職工人員的職工號、姓名、性別、年齡、職務電話號碼、地址信息便可添加到通訊錄文件內,添加完畢后,系統(tǒng)會自動詢問你是否繼續(xù)添加,如你想繼續(xù)添加,再通過鍵盤輸入通訊錄人員的姓名、電話號碼、地址信息即可實現(xiàn)繼續(xù)添加。

通過調用add()函數(shù)來添加職工信息,可以連續(xù)添加多個職工信息。

1.3.3?顯示職工信息?

通過前面第一個模塊添加職工信息后,之后便可以執(zhí)行第二個模塊,通過第二個模塊可以對已有的職工信息進行顯示。

通過調用 browser()函數(shù)來進行顯示所有的職工信息,browser()函數(shù)可以實現(xiàn)顯示全部職工信息。

1.3.4?查詢職工信息?

調用search()函數(shù)來實現(xiàn)查詢功能。查詢可由四個方式進行:一是根據職工號進行查詢,二是根據姓名進行查詢。

1.3.5?刪除職工信息

調用_delete()函數(shù)實現(xiàn)刪除功能,刪除可由兩個方式進行:一是根據職工號進行刪除,二是根據姓名進行刪除。

1.3.6修改職工信息?

調用 modify()函數(shù)來實現(xiàn)修改功能,提供了修改方法為根據職工號進行修改。

1.4?設計要求分析?

①根據題目要求,運用所學知識,完成設計和實現(xiàn)工作,并按照書寫規(guī)范,

撰寫課程設計報告。

②進一步理解和運用結構化程序設計的思想和方法;

③掌握開發(fā)一個小型實用系統(tǒng)的基本方法; ?

④學會利用流程圖表示算法。

⑤學會調試一個較長程序的基本方法,進一步掌握利用 C 語言進行程序設計的能力;

1.5軟件的數(shù)據結構分析?

1.5.1?軟件的函數(shù)?

本軟件采用了不同的函數(shù)來進行定義不同模塊的功能,通過調用不同的函數(shù),可以實現(xiàn)不同的功能。軟件中采用了五個主體函數(shù)來實現(xiàn)添加職工,修改職工,查找職工,顯示職工,刪除職工的功能。

1.5.2?文件的調用和保存?

系統(tǒng)通過文本方式對用戶所添加的信息進行保存。通過保存下來的文本文件,用戶可以在電腦磁盤中找到用戶存入文件,進而可以找到用戶所錄入的職工信息。


?概要設計

2.1 系統(tǒng)界面設計

做到整潔清楚,能夠層層選擇進行具體的操作,對用戶的請求能夠進行合適的反饋。既有輸入界面,又有輸出界面,每個界面都有詳細的指引。

2.2 系統(tǒng)的數(shù)據(結構)設計?

系統(tǒng)通過調用不同的函數(shù)來實現(xiàn)不同的功能,通過循環(huán)調用函數(shù)來實現(xiàn)反復輸入,實現(xiàn)用戶不同的需求。

用戶通過代碼中的scanf()函數(shù)從鍵盤上輸入不同的數(shù)字選項,然后通過 swtich case()分支條件語句來實現(xiàn)對不同函數(shù)的調用,滿足各種需求。

2.2.1 系統(tǒng)的文件功能

系統(tǒng)采用了文本文檔進行存取,在 C 盤建立了一個a.txt?文本文檔用于存放用戶輸入的職工信息,打開 C 盤后就能直接看到用戶錄入的信息,做到簡潔和方便。

2.3 系統(tǒng)的模塊圖?

系統(tǒng)的模塊圖很直觀的反映出軟件能夠實現(xiàn)的功能,由下面的模塊圖可以很

直觀的看出該職工信息管理系統(tǒng)的添加職工信息、顯示職工信息、刪除職工信息、修改職工信息功能。

  1. 增加職工信息部分,有九個模塊,一步步完善職工信息。
  2. 在顯示聯(lián)系人部分,直接顯示所有職工信息。
  3. 查詢職工信息部分,有四個模塊,可通過按工號查詢,按姓名查詢,按學歷查詢,按職務查詢,然后顯示職工信息。
  4. 在修改職工信息部分,輸入要修改的職工的工號,然后根據需要,修改職工的姓名,學歷,職務,工資,住址,電話。
  5. 在刪除職工信息模塊,輸入要刪除的職工的工號,即可完成刪除。
  6. 最后是退出模塊,需要保存信息后退出。異常退出可能會導致數(shù)據丟失。程序設計職工管理系統(tǒng)

圖1系統(tǒng)模塊圖

2.4 系統(tǒng)的流程圖?

由于系統(tǒng)流程圖較為復雜,采用了分塊畫出程序流程圖。

2.4.1 添加職工信息程序流程圖

由添加職工的程序流程圖可以看出,在添加職工板塊上,有三種信息:

輸入工號,姓名,性別,年齡,學歷,職務,工資,住址,電話;輸入完成后會提示是否繼續(xù)輸入,如果輸入Y則繼續(xù)輸入,輸入N后返回主菜單。

程序設計職工管理系統(tǒng)

圖2添加職工信息流程圖

2.4.2 顯示職工信息程序流程圖

在主菜單上輸入 2 后便可以顯示職工信息。

程序設計職工管理系統(tǒng)

圖3顯示職工信息流程圖

2.4.3 查詢職工流程圖

在刪除聯(lián)系人流程圖上,分為全部刪除和單個刪除功能,單個刪除設計了按

照姓名刪除和按電話號碼刪除兩種選擇,在刪除時,系統(tǒng)都會詢問您是否刪除,

以免誤刪。

程序設計職工管理系統(tǒng)

圖4查詢職工流程圖

2.4.3 修改職工信息流程圖

修改聯(lián)系人界面,輸入輸入需修改的職工的工號即可。

修改項目:修改姓名,修改學歷,修改職務,修改工資,修改地址,修改完畢后系統(tǒng)會提示您是否繼續(xù) ,輸入Y修改,如不修改,則輸入N又返回主界面等待輸入。

程序設計職工管理系統(tǒng)

圖5修改職工信息流程圖


詳細設計

3.1 函數(shù)聲明和結構定義

#define N 100
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void read();//讀取信息函數(shù)
void write();//寫入信息函數(shù)
void menu();//菜單函數(shù)
void add();//添加職工信息函數(shù)
void show(int id);//顯示職工信息函數(shù)
void browser();//顯示所有職工信息函數(shù)
void search();//查詢職工信息函數(shù)
void modify();//修改職工信息函數(shù)
void _delete();//刪除職工信息函數(shù)

struct Worker {//這里的結構體有待改進
    char ID[20];
    char name[20];
    char sex[10];
    char age[10];
    char edu[20];
    char position[20];
    char wage[20];
    char address[50];
    char tel[20];
}work[N];

int n; // 記錄數(shù)量

3.2?讀取信息函數(shù)

void read()//讀入數(shù)據
{
  FILE *fp;
  int i = 0;
  if( (fp = fopen("c:\\a.txt","r")) == NULL )
  {
    printf("請新建一個文本文件,文件名為a\n\n\n");
    system("pause");
    system("cls");
    return ;
  }
  fscanf(fp,"%d\n",&n);
  while(i < n)
  {
    fscanf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].age,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);
    i ++;
  }
  fclose(fp);
}

3.3寫入信息函數(shù)

void write()//寫入數(shù)據
{
  FILE *fp;
  int i = 0;
  if( (fp = fopen("c:\\a.txt","w")) == NULL )
  {
    printf("無法打開文件!\n");
    return ;
  }
  fprintf(fp,"%d\n",n);
  while(i < n)
  {
    fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].age,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);
    i ++;
  }
  fclose(fp);
} 

3.4菜單函數(shù)

void menu()//菜單
{
  printf("* * 職工信息管理系統(tǒng)菜單 * *\n");
  printf("*                          *\n");
  printf("*      1.添加職工信息      *\n");
  printf("*                          *\n");
  printf("*      2.顯示職工信息      *\n");
  printf("*                          *\n");
  printf("*      3.查詢職工信息      *\n");
  printf("*                          *\n");
  printf("*      4.修改職工信息      *\n");
  printf("*                          *\n");
  printf("*      5.刪除職工信息      *\n");
  printf("*                          *\n");
  printf("*      0.退出              *\n");
  printf("*                          *\n");
  printf("* * * * * * * * * * * * * **\n");
  printf("請輸入選項(0-5): ");
} 

3.5添加職工信息函數(shù)

void add()// 從鍵盤輸入
{
  int i;
  int flag;//標記工號是否已存在
  char c;
  read();//輸入數(shù)據前先將文件中原有的數(shù)據讀入
  do
  {
    flag = 0;
    printf("請輸入職工的工號:               \n\t\t");
    scanf("%s",work[n].ID);
    for(i = 0 ; i < n ; i ++)
    {
      if(strcmp(work[i].ID,work[n].ID) == 0)
      {
        flag = 1;
        break;
      }
    }
    if(flag)
    {
      printf("該工號已存在!\n\n");
      printf("是否繼續(xù)輸入?(Y/N): ");
      scanf("%*c%c",&c);
      if(c == 'N' || c == 'n') break;
      continue;
    }
    printf("請輸入職工的姓名:               \n");
    scanf("%s",work[n].name);
    printf("請輸入職工的性別:               \n");
    scanf("%s",work[n].sex);
    printf("請輸入職工的年齡:               \n");
    scanf("%s",work[n].age);
    printf("請輸入職工的學歷:               \n");
    scanf("%s",work[n].edu);
    printf("請輸入職工的職務:               \n");
    scanf("%s",work[n].position);
    printf("請輸入職工的工資:               \n");
    scanf("%s",work[n].wage);
    printf("請輸入職工的住址:               \n");
    scanf("%s",work[n].address);
    printf("請輸入職工的電話:               \n");
    scanf("%s",work[n].tel);
    printf("是否繼續(xù)輸入?(Y/N): ");
    scanf("%*c%c",&c);
    n ++;
  }while( c != 'N' && c != 'n');
  write();
  printf("\n\n數(shù)據已保存!\n\n");
} 

3.6顯示職工信息函數(shù)

void show(int id)
{
  printf("職工號: %s\n",work[id].ID);
  printf("姓名: %s\n",work[id].name);
  printf("性別: %s\n",work[id].sex);
  printf("年齡: %s\n",work[id].age);
  printf("學歷: %s\n",work[id].edu);
  printf("職務: %s\n",work[id].position);
  printf("工資: %s\n",work[id].wage);
  printf("住址: %s\n",work[id].address);
  printf("電話: %s\n",work[id].tel);
  printf("\n\n\n");
}

3.7顯示所有職工信息函數(shù)

void browser()//顯示所有職工信息
{
  int i;
  read();
  if(n == 0) printf("無記錄!\n\n");
  else
    for(i = 0 ; i < n ; i ++)
    {
      show(i);
    }
} 

3.8查詢職工信息函數(shù)

void search()//查詢信息
{
  char num;
  int flag,i;
  char s_id[20] ;//查詢工號
  char s_name[20] ;//查詢姓名
  char s_edu[20] ; //查詢學歷
  char s_position[20] ;//查詢職位
  char c;//指令Y?N
  read();//打開程序后,要查詢以前的數(shù)據,要先讀入
  while(1)
  {
    system("cls");
    printf("* * * * * * * 查詢* * * * * * *\n");
    printf("*                             *\n");
    printf("*        1.按工號查詢         *\n");
    printf("*                             *\n");
    printf("*        2.按姓名查詢         *\n");
    printf("*                             *\n");
    printf("*        3.按學歷查詢         *\n");
    printf("*                             *\n");
    printf("*        4.按職務查詢         *\n");
    printf("*                             *\n");
    printf("*  輸入其他任意鍵退出本模塊   *\n");
    printf("* * * * * * * * * * * * * * * *\n");
    printf("請輸入指令(1-4):");
    scanf("%*c%c",&num);
    if(num < '1' || num > '4')
    {
      printf("錯誤指令!\n\n");
      system("pause");
      continue;
    }
    system("cls");
    flag = 0;//用來標記職工信息是否存在
    if(num == '1')//按工號查詢
    {
      printf("請輸入您要查詢職工的工號:");
      scanf("%s",s_id);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].ID,s_id) == 0)
        {
          show(i);
          flag = 1;//標記
          break;
        }
      }
    }
    else if(num == '2')//按姓名查詢
    {
      printf("請輸入您要查詢職工的姓名:");
      scanf("%s",s_name);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].name,s_name) == 0)
        {
          show(i);
          flag = 1;//標記
        }
      }
    }
    else if(num == '3')//按學歷查詢
    {
      printf("請輸入您要查詢職工的學歷:"); 

      scanf("%s",s_edu);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].edu,s_edu) == 0)
        {
          show(i);
          flag = 1;//標記
        }
      }
    }
    else if(num == '4')//按職務查詢
    {
      printf("請輸入您要查詢職工的職務:");
      scanf("%s",s_position);
      for(i = 0 ; i < n ;i ++)
      {
        if( strcmp(work[i].position,s_position) == 0)
        {
          show(i);
          flag = 1;//標記
        }
      }
    }
    if(!flag)//判斷是否有該職工信息
    {
      printf("\n\n無該職工信息!\n\n");
    }
    printf("\n\n是否繼續(xù)查詢(Y/N):"); 

    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
  }
} 

3.9修改職工信息函數(shù)

void modify()//修改職工信息
{
  char change_ID[20];//需修改的職工的工號
  int number;//職工信息在數(shù)據中的位置
  char num;//指令
  char message[100];//修改的信息
  char c;//指令Y?N
  int flag;
  int i;
  read();
  while(1)
  {
    flag = 0;
    system("cls");
    printf("請輸入需修改的職工的工號:");
    scanf("%s",change_ID);
    for(i = 0 ; i < n ; i ++)
    {
      if( strcmp(work[i].ID,change_ID) == 0 )
      {
        number = i;
        flag = 1;
        break;
      }
    }
    if(!flag)
    {
      printf("\n\n無此員工信息!!\n\n");
      printf("\n\n是否繼續(xù)修改(Y/N):");
      scanf("%*c%c",&c);
      if(c == 'N' || c == 'n') break;
      continue;
    }
    printf("\n\n* * * * * * * * 修改* * * * * * *\n");
    printf("*                               *\n");
    printf("*         1.修改姓名            *\n");
    printf("*                               *\n");
    printf("*         2.修改學歷            *\n");
    printf("*                               *\n");
    printf("*         3.修改職務            *\n");
    printf("*                               *\n");
    printf("*         4.修改工資            *\n");
    printf("*                               *\n");
    printf("*         5.修改住址            *\n");
    printf("*                               *\n");
    printf("*         6.修改電話            *\n");
    printf("*                               *\n");
    printf("*    輸入其他任意鍵退出本模塊   *\n");
    printf("* * * * * * * * * * * * * * * * *\n");
    printf("請輸入指令(1-6):");
    scanf("%*c%c",&num);
    if(num < '1' || num > '6')
    {
      printf("錯誤指令!\n\n");
      system("pause");
      continue;
    }
    system("cls");
    printf("請輸入修改后的信息:");
    scanf("%s",message);
    switch(num)
    {
      case '1' : strcpy(work[number].name,message); break;
      case '2' : strcpy(work[number].edu,message); break;
      case '3' : strcpy(work[number].position,message); break;
      case '4' : strcpy(work[number].wage,message); break;
      case '5' : strcpy(work[number].address,message); break;
      case '6' : strcpy(work[number].tel,message); break;
    }
    system("cls");
    printf("\n\n是否繼續(xù)修改(Y/N):");
    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
  }
  write();
} 

3.10刪除職工信息函數(shù)

void _delete()//刪除職工信息
{
  char delete_ID[20];//刪除職工工號
  int i,j;
  int flag;//標記是否有該職工信息
  char c;
  read();
  while(1)
  {
    system("cls");
    flag = 0;
    printf("請輸入需刪除職工信息的工號:");
    scanf("%s",delete_ID);
    for(i = 0 ; i < n ; i ++)
    {
      if( strcmp(work[i].ID,delete_ID) == 0)
      {
        n --;
        flag = 1;
        for(j = i ; j < n ; j ++)
        {
          work[j] =work[j + 1];
        }
        break;
      }
    }
    if(!flag) printf("\n\n無此員工信息!\n\n");
    else printf("\n\n刪除成功!\n");
    printf("\n\n是否繼續(xù)刪除(Y/N):");
    scanf("%*c%c",&c);
    if(c == 'N' || c == 'n') break;
  }
  write();
} 

3.11主函數(shù)

int main()
{
  int num;
  n = 0;
  while(1)
  {
    menu();
    scanf("%d",&num);
    system("cls");
    switch(num)
    {
      case 1: add(); break;
      case 2: browser(); break;
      case 3: search();  break;
      case 4: modify();  break;
      case 5: _delete();  break;
      case 0: printf("謝謝使用!\n\n"); return 0;
      default :printf("\n--->無效的指令!\n\n\n");
    }
    system("pause");
    system("cls");
  }
}

——————————————————————————————————————————

全部代碼:

#define _CRT_SECURE_NO_WARNINGS 1 // 避免實驗環(huán)境為VS時不必要的報錯 
#define N 100
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void read();//讀取信息函數(shù)
void write();//寫入信息函數(shù)
void menu();//菜單函數(shù)
void add();//添加職工信息函數(shù)
void show(int id);//顯示職工信息函數(shù)
void browser();//顯示所有職工信息函數(shù)
void search();//查詢職工信息函數(shù)
void modify();//修改職工信息函數(shù)
void _delete();//刪除職工信息函數(shù)

struct Worker {
    char ID[20];
    char name[20];
    char sex[10];
    char age[10];
    char edu[20];
    char position[20];
    char wage[20];
    char address[50];
    char tel[20];
}work[N];

int n; // 記錄數(shù)量

void read()//讀入數(shù)據
{
    FILE* fp;
    int i = 0;
    if ((fp = fopen("c:\\a.txt", "r")) == NULL)
    {
        printf("請新建一個文本文件,文件名為a\n\n\n");
        system("pause");
        system("cls");
        return;
    }
    fscanf(fp, "%d\n", &n);
    while (i < n)
    {
        fscanf(fp, "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n", work[i].ID, work[i].name, work[i].sex, work[i].age, work[i].edu, work[i].position, work[i].wage, work[i].address, work[i].tel);
        i++;
    }
    fclose(fp);
}

void write()//寫入數(shù)據
{
    FILE* fp;
    int i = 0;
    if ((fp = fopen("c:\\a.txt", "w")) == NULL)
    {
        printf("無法打開文件!\n");
        return;
    }
    fprintf(fp, "%d\n", n);
    while (i < n)
    {
        fprintf(fp, "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n", work[i].ID, work[i].name, work[i].sex, work[i].age, work[i].edu, work[i].position, work[i].wage, work[i].address, work[i].tel);
        i++;
    }
    fclose(fp);
}

void menu()//菜單
{
    printf("* * 職工信息管理系統(tǒng)菜單 * *\n");
    printf("*                          *\n");
    printf("*      1.添加職工信息      *\n");
    printf("*                          *\n");
    printf("*      2.顯示職工信息      *\n");
    printf("*                          *\n");
    printf("*      3.查詢職工信息      *\n");
    printf("*                          *\n");
    printf("*      4.修改職工信息      *\n");
    printf("*                          *\n");
    printf("*      5.刪除職工信息      *\n");
    printf("*                          *\n");
    printf("*      0.退出              *\n");
    printf("*                          *\n");
    printf("* * * * * * * * * * * * * **\n");
    printf("請輸入選項(0-5): ");
}

void add()// 從鍵盤輸入
{
    int i;
    int flag;//標記工號是否已存在
    char c;
    read();//輸入數(shù)據前先將文件中原有的數(shù)據讀入
    do
    {
        flag = 0;
        printf("請輸入職工的工號:               \n\t\t");
        scanf("%s", work[n].ID);
        for (i = 0; i < n; i++)
        {
            if (strcmp(work[i].ID, work[n].ID) == 0)
            {
                flag = 1;
                break;
            }
        }
        if (flag)
        {
            printf("該工號已存在!\n\n");
            printf("是否繼續(xù)輸入?(Y/N): ");
            scanf("%*c%c", &c);
            if (c == 'N' || c == 'n') break;
            continue;
        }
        printf("請輸入職工的姓名:               \n");
        scanf("%s", work[n].name);
        printf("請輸入職工的性別:               \n");
        scanf("%s", work[n].sex);
        printf("請輸入職工的年齡:               \n");
        scanf("%s", work[n].age);
        printf("請輸入職工的學歷:               \n");
        scanf("%s", work[n].edu);
        printf("請輸入職工的職務:               \n");
        scanf("%s", work[n].position);
        printf("請輸入職工的工資:               \n");
        scanf("%s", work[n].wage);
        printf("請輸入職工的住址:               \n");
        scanf("%s", work[n].address);
        printf("請輸入職工的電話:               \n");
        scanf("%s", work[n].tel);
        printf("是否繼續(xù)輸入?(Y/N): ");
        scanf("%*c%c", &c);
        n++;
    } while (c != 'N' && c != 'n');
    write();
    printf("\n\n數(shù)據已保存!\n\n");
}

void show(int id)
{
    printf("職工號: %s\n", work[id].ID);
    printf("姓名: %s\n", work[id].name);
    printf("性別: %s\n", work[id].sex);
    printf("年齡: %s\n", work[id].age);
    printf("學歷: %s\n", work[id].edu);
    printf("職務: %s\n", work[id].position);
    printf("工資: %s\n", work[id].wage);
    printf("住址: %s\n", work[id].address);
    printf("電話: %s\n", work[id].tel);
    printf("\n\n\n");
}

void browser()//顯示所有職工信息
{
    int i;
    read();
    if (n == 0) printf("無記錄!\n\n");
    else
        for (i = 0; i < n; i++)
        {
            show(i);
        }
}

void search()//查詢信息
{
    char num;
    int flag, i;
    char s_id[20];//查詢工號
    char s_name[20];//查詢姓名
    char s_edu[20]; //查詢學歷
    char s_position[20];//查詢職位
    char c;//指令Y?N
    read();//打開程序后,要查詢以前的數(shù)據,要先讀入
    while (1)
    {
        system("cls");
        printf("* * * * * * * 查詢* * * * * * *\n");
        printf("*                             *\n");
        printf("*        1.按工號查詢         *\n");
        printf("*                             *\n");
        printf("*        2.按姓名查詢         *\n");
        printf("*                             *\n");
        printf("*        3.按學歷查詢         *\n");
        printf("*                             *\n");
        printf("*        4.按職務查詢         *\n");
        printf("*                             *\n");
        printf("*  輸入其他任意鍵退出本模塊   *\n");
        printf("* * * * * * * * * * * * * * * *\n");
        printf("請輸入指令(1-4):");
        scanf("%*c%c", &num);
        if (num < '1' || num > '4')
        {
            printf("錯誤指令!\n\n");
            system("pause");
            continue;
        }
        system("cls");
        flag = 0;//用來標記職工信息是否存在
        if (num == '1')//按工號查詢
        {
            printf("請輸入您要查詢職工的工號:");
            scanf("%s", s_id);
            for (i = 0; i < n; i++)
            {
                if (strcmp(work[i].ID, s_id) == 0)
                {
                    show(i);
                    flag = 1;//標記
                    break;
                }
            }
        }
        else if (num == '2')//按姓名查詢
        {
            printf("請輸入您要查詢職工的姓名:");
            scanf("%s", s_name);
            for (i = 0; i < n; i++)
            {
                if (strcmp(work[i].name, s_name) == 0)
                {
                    show(i);
                    flag = 1;//標記
                }
            }
        }
        else if (num == '3')//按學歷查詢
        {
            printf("請輸入您要查詢職工的學歷:");

            scanf("%s", s_edu);
            for (i = 0; i < n; i++)
            {
                if (strcmp(work[i].edu, s_edu) == 0)
                {
                    show(i);
                    flag = 1;//標記
                }
            }
        }
        else if (num == '4')//按職務查詢
        {
            printf("請輸入您要查詢職工的職務:");
            scanf("%s", s_position);
            for (i = 0; i < n; i++)
            {
                if (strcmp(work[i].position, s_position) == 0)
                {
                    show(i);
                    flag = 1;//標記
                }
            }
        }
        if (!flag)//判斷是否有該職工信息
        {
            printf("\n\n無該職工信息!\n\n");
        }
        printf("\n\n是否繼續(xù)查詢(Y/N):");

        scanf("%*c%c", &c);
        if (c == 'N' || c == 'n') break;
    }
}

void modify()//修改職工信息
{
    char change_ID[20];//需修改的職工的工號
    int number;//職工信息在數(shù)據中的位置
    char num;//指令
    char message[100];//修改的信息
    char c;//指令Y?N
    int flag;
    int i;
    read();
    while (1)
    {
        flag = 0;
        system("cls");
        printf("請輸入需修改的職工的工號:");
        scanf("%s", change_ID);
        for (i = 0; i < n; i++)
        {
            if (strcmp(work[i].ID, change_ID) == 0)
            {
                number = i;
                flag = 1;
                break;
            }
        }
        if (!flag)
        {
            printf("\n\n無此員工信息?。n\n");
            printf("\n\n是否繼續(xù)修改(Y/N):");
            scanf("%*c%c", &c);
            if (c == 'N' || c == 'n') break;
            continue;
        }
        printf("\n\n* * * * * * * * 修改* * * * * * *\n");
        printf("*                               *\n");
        printf("*         1.修改姓名            *\n");
        printf("*                               *\n");
        printf("*         2.修改學歷            *\n");
        printf("*                               *\n");
        printf("*         3.修改職務            *\n");
        printf("*                               *\n");
        printf("*         4.修改工資            *\n");
        printf("*                               *\n");
        printf("*         5.修改住址            *\n");
        printf("*                               *\n");
        printf("*         6.修改電話            *\n");
        printf("*                               *\n");
        printf("*    輸入其他任意鍵退出本模塊   *\n");
        printf("* * * * * * * * * * * * * * * * *\n");
        printf("請輸入指令(1-6):");
        scanf("%*c%c", &num);
        if (num < '1' || num > '6')
        {
            printf("錯誤指令!\n\n");
            system("pause");
            continue;
        }
        system("cls");
        printf("請輸入修改后的信息:");
        scanf("%s", message);
        switch (num)
        {
        case '1': strcpy(work[number].name, message); break;
        case '2': strcpy(work[number].edu, message); break;
        case '3': strcpy(work[number].position, message); break;
        case '4': strcpy(work[number].wage, message); break;
        case '5': strcpy(work[number].address, message); break;
        case '6': strcpy(work[number].tel, message); break;
        }
        system("cls");
        printf("\n\n是否繼續(xù)修改(Y/N):");
        scanf("%*c%c", &c);
        if (c == 'N' || c == 'n') break;
    }
    write();
}

void _delete()//刪除職工信息
{
    char delete_ID[20];//刪除職工工號
    int i, j;
    int flag;//標記是否有該職工信息
    char c;
    read();
    while (1)
    {
        system("cls");
        flag = 0;
        printf("請輸入需刪除職工信息的工號:");
        scanf("%s", delete_ID);
        for (i = 0; i < n; i++)
        {
            if (strcmp(work[i].ID, delete_ID) == 0)
            {
                n--;
                flag = 1;
                for (j = i; j < n; j++)
                {
                    work[j] = work[j + 1];
                }
                break;
            }
        }
        if (!flag) printf("\n\n無此員工信息!\n\n");
        else printf("\n\n刪除成功!\n");
        printf("\n\n是否繼續(xù)刪除(Y/N):");
        scanf("%*c%c", &c);
        if (c == 'N' || c == 'n') break;
    }
    write();
}

int main()
{
    int num;
    n = 0;
    while (1)
    {
        menu();
        scanf("%d", &num);
        system("cls");
        switch (num)
        {
        case 1: add(); break;
        case 2: browser(); break;
        case 3: search();  break;
        case 4: modify();  break;
        case 5: _delete();  break;
        case 0: printf("謝謝使用!\n\n"); return 0;
        default:printf("\n--->無效的指令!\n\n\n");
        }
        system("pause");
        system("cls");
    }
}

如果對你有幫助請支持一下哦。文章來源地址http://www.zghlxwxcb.cn/news/detail-482795.html

到了這里,關于程序設計職工管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 程序設計基礎大作業(yè)——學生管理系統(tǒng)

    程序設計基礎大作業(yè)——學生管理系統(tǒng)

    聲明:這是本人所寫的程序設計期末大作業(yè)實驗報告,可供大家學習和參考,也希望能得到一些建議和改正,但如果只為抄襲代碼,本人必究! 目錄 一、任務描述 二、代碼實現(xiàn) 三、運行結果 四、實驗體會 寫一個命令行交互式C語言程序。該程序需要實現(xiàn)下述菜單功能: 1

    2024年02月10日
    瀏覽(29)
  • ASP.NET程序設計課程設計——學生信息管理系統(tǒng)

    ASP.NET程序設計課程設計——學生信息管理系統(tǒng)

    點擊查看詳細信息 ASP.NET程序設計課程設計——學生信息管理系統(tǒng) 一、實驗目的 綜合運用們所學的ASP.NET知識,開發(fā)學生信息管理系統(tǒng),完成相關功能: (1)教師管理 (2)學生信息 (3)課程信息 (4)成績管理 (5)班級管理 二、實驗環(huán)境 (1)Windows 10 (2)Visual Studio 2

    2024年02月03日
    瀏覽(32)
  • C語言課程設計_職工工資管理系統(tǒng)

    C語言課程設計_職工工資管理系統(tǒng)

    設計一個職工工資管理系統(tǒng): (1)輸入記錄:將每一個職工的姓名、ID號以及基本工資、職務工資、崗位津貼、醫(yī)療保險、公積金的數(shù)據作為一個記錄。該軟件能建立一個新的數(shù)據文件或給已建立好的數(shù)據文件增加記錄。 (2)顯示記錄:根據用戶提供的記錄或者根據職工姓名

    2024年02月10日
    瀏覽(20)
  • C語言程序設計——學生學籍管理系統(tǒng)

    C語言程序設計——學生學籍管理系統(tǒng)

    一、題目設計及其要求 1、題目:學生學籍管理系統(tǒng) 用數(shù)據文件存放學生的學籍,可對學生學籍進行注冊、修改、查找、統(tǒng)計、學籍變化等操作。(用文件保存) 2、功能要求: (1)系統(tǒng)以菜單方式工作; (2)登記學生的學號,姓名,性別,年齡,籍貫,學院,專業(yè),班級

    2024年02月11日
    瀏覽(25)
  • Java Web程序設計——圖書管理系統(tǒng)

    Java Web程序設計——圖書管理系統(tǒng)

    這是一個圖書管理系統(tǒng),都是用原生的·Java Web寫的,前后端代碼都是自己寫的。第一次寫博客希望大家能夠支持。 項目結構圖覽 采用的工具與技術 前端頁面設計:html+css 后端技術:jsp+servlet+javaBean+jdbc+dao 服務器版本:Tomcat8.5 數(shù)據庫:Mysql數(shù)據庫 開發(fā)工具:Eclipse、Chorme、

    2024年02月09日
    瀏覽(20)
  • 37基于java的職工管理系統(tǒng)設計與實現(xiàn)

    本章節(jié)給大家?guī)硪粋€基于java的職工管理系統(tǒng)設計與實現(xiàn),可適用于員工管理系統(tǒng),企業(yè)員工管理系統(tǒng),公司員工管理系統(tǒng),企業(yè)人事管理系統(tǒng),基于java職工管理系統(tǒng),前后端分離,員工考勤管理系統(tǒng),職工獎懲管理系統(tǒng),職員合同管理,HR管理系統(tǒng),人事HR管理系統(tǒng)等;

    2024年02月05日
    瀏覽(13)
  • 【java 程序設計實訓】學生請假管理系統(tǒng)

    【java 程序設計實訓】學生請假管理系統(tǒng)

    聲明:未經允許,請勿轉載 下載鏈接 https://download.csdn.net/download/weixin_66397563/87976888

    2024年02月08日
    瀏覽(34)
  • 【數(shù)據結構】停車場管理系統(tǒng)程序設計

    【數(shù)據結構】停車場管理系統(tǒng)程序設計

    說明: 該程序設計采用常見基礎的數(shù)據結構棧和隊列實現(xiàn)了一個簡單停車場管理系統(tǒng)。在具體設計中,實現(xiàn)了系統(tǒng)頁面和停車場的示意圖顯示,通過調用順序棧和鏈隊的相關函數(shù),模擬了實際停車場的運營流程。 目錄 1 任務內容 2 需求分析 2.1 功能需求 2.2 輸入輸出需求 3 概

    2024年02月03日
    瀏覽(25)
  • 面向對象程序設計(Java)課程設計——學生信息管理系統(tǒng)(GUI+文件)

    面向對象程序設計(Java)課程設計——學生信息管理系統(tǒng)(GUI+文件)

    一、團隊成員及任務 組長:宗慶亮? 計科(智能)22-1? 202203200021 負責模塊:靜態(tài)登錄界面實現(xiàn)以及學生信息系統(tǒng)管理界面的創(chuàng)建 組員:鄭金洲??計科(智能)22-1? 202203200022 負責模塊:增加,刪除,修改以及查詢功能的實現(xiàn) 團隊博客:面向對象程序設計(Java)課程設計——學生

    2024年02月03日
    瀏覽(26)
  • 餐廳點單小程序+后臺管理管理系統(tǒng)的設計與實現(xiàn)

    餐廳點單小程序+后臺管理管理系統(tǒng)的設計與實現(xiàn)

    本系統(tǒng)僅供學習交流,本文只作本人記錄系統(tǒng)設計的流程,以便日后學習鞏固。 如有更好的設計框架,歡迎大家留言討論呀~ 本次系統(tǒng)設計分兩大模塊,微信點餐小程序客戶端的開發(fā),及點餐后臺管理信息系統(tǒng)的開發(fā)。微信點餐小程序的主要功能有:用戶掃碼提交訂單,支

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包