#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是開關語句,用於查詢不同職工信息時使用。