第二節課作業

#include<stdio.h>

#include<stdlib.h>

int workertotal=0;

struct WORKER

{

int num;

char name[50];

char sex[10];

char age[30];

char education[50];

char money[10];

char address[50];

char call[10];

}worker[100];

void add()

{

   int n,i;

   printf("請輸入增加的職工數:");

   scanf("%d",&n);

   for(i=1;i<=n;i++){

   printf("\n職工號、姓名、性別、年齡、學歷、工資、住址、電話\n");

   scanf("%d %s %s %s %s %s %s %s",&worker[i].num,&worker[i].name,&worker[i].sex,&worker[i].age,&worker[i].education,&worker[i].money,&worker[i].address,&worker[i].call);

   }

   workertotal+=n;

   

     }

void print()

{

int i;

printf("系統中所有的職工\n");

for(i=1;i<=workertotal;i++){

printf("%d %s %s %s %s %s %s %s",worker[i].num,worker[i].name,worker[i].sex,worker[i].age,worker[i].education,worker[i].money,worker[i].address,worker[i].call);

}

 

}

int searchworker()

{

char workername[50];

int i;

int total;

printf("按學歷查詢:");

printf("\n\n請輸入學歷:");

scanf("%s",&workername);

for(i=1;i<=workertotal;i++)

{

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

{

printf("%d %s %s %s %s %s %s %s",worker[i].num,worker[i].name,worker[i].sex,worker[i].age,worker[i].education,worker[i].money,worker[i].address,worker[i].call);

 

total+=1;

}

}

if(total==0){

printf("沒有查到\n");

 

}

return 1;

}

 

int searchworkerl()

{

int i,num;

int total;

printf("按職工號查詢:");

printf("\n\n請輸入職工號:");

scanf("%d",&num);

for(i=1;i<=workertotal;i++)

{

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

{

printf("%d %s %s %s %s %s %s %s",worker[i].num,worker[i].name,worker[i].sex,worker[i].age,worker[i].education,worker[i].money,worker[i].address,worker[i].call);

total+=1;

}

}

if(total==0){

printf("沒有查到\n");

 

}

return 1;

}

void deleteworker()

{

int i,j;

printf("註銷職工");

i=searchworker();

workertotal=workertotal-1;

 

if(i!=-1){

for(j=i;j<=workertotal;j++){

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

}

printf("該職工已註銷.\n");

}

else printf("不存在職工.\n");

 }

 void modify()

 {

 int workerno,i;

printf("職工號查詢:");

 printf("\n\n請輸入職工號:");

 scanf("%d",&workerno);

 for(i=1;i<=workertotal;i++){

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

 {

 printf("\n職工號、姓名、性別、年齡、學歷、工資、住址、電話\n");

 scanf("%d %s %s %s %s %s %s %s",&worker[i].num,&worker[i].name,&worker[i].sex,&worker[i].age,&worker[i].education,&worker[i].money,&worker[i].address,&worker[i].call);

   }

 

 }

}

 

int main()

{

int flag=1;

while(flag){

printf("\t\n\n職工信息管理系統\n");

printf("\t\n 1.添加職工信息");

printf("\t\n 2.瀏覽所有職工信息");

printf("\t\n 3.按學歷查詢");

printf("\t\n 4.按職工號查詢");

printf("\t\n 5.刪除指定職工信息");

printf("\t\n 6.修改指定職工信息");

printf("\t\n 0.退出系統\n\n");

printf("請選擇你的業務,用數字鍵操作:");

scanf("%d",&flag);

system("cls");

switch (flag){

case 1: add();break;

case 2:print();break;

case 3:searchworker();break;

case 4:searchworkerl();break;

case 5:deleteworker();break;

case 6:modify();break;

case 0:exit(0);

}

}

return 0;}

 

 

 

 

結果上來說要先有個整體框架和整體規劃,系統所需要的功能和作用,要對你所要編寫的系統列一個類似大綱東西,系統其實就是整合一個個的小的c語言程序,把他編程一個個小的函數進行應用,通過主函數的調用,發揮系統的作用;

如果一個系統中,例如學生信息管理系統中,需要同時保存一個學生的姓名,性別,年齡等信息,那麼設置變量保存很多同學的這些信息就有點不太方便。類似一個登記本,每一頁只能寫名字,如果你要登記其他的信息,又要添加一個登記本,只能寫性別,如果登記年齡,又要添加一個登記本,只能寫年齡,….,多麼的不方便,還容易混亂。解決的方法你一定想,多麼簡單,一個登記本一頁中,同時寫姓名,性別,年齡不就行了嗎?C語言也是這樣,如果定義一種形式,一個變量同時記錄很多的信息,這樣在管理系統中,就方便很多了。這就是結構體。

結構體首先要定義,因爲每個程序用到的組合在一起的信息不一樣,例如學生信息管理系統中,可能要將學號、姓名、性別、年齡、班級組合到一起,所以 第一行用struct告訴程序,下面是一個結構體,後面的stu是這個結構體的類型,類似整數用int表示,這個stu是你自己起的名字。

如果要設計一個職工管理系統,

首先要確定系統有哪些應用,像錄入功能,調用功能,修改功能,刪除功能,都需要具備

然後就是確定產品有哪些信息,像職工號、姓名、性別、年齡、學歷、工資、住址、電話等

 

定義一個結構struct worker和數組num,用來存儲姓名、工號、學歷等信息,void add調用函數,用來調用職工信息。

void print是輸出函數,輸出系統中的職工。searchworker查詢函數,按學歷、姓名、性別等信息來查詢職工信息。

void deleteworker是刪除函數,刪除職工信息。 void modify用於修改職工信息。case是開關語句,用於查詢不同職工信息時使用。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章