當前位置:編程學習大全網 - 編程語言 - 用c語言編程參會人員管理系統,怎麽弄?

用c語言編程參會人員管理系統,怎麽弄?

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define MAXSIZE 100 /*定義最大參會人數*/

typedef struct /*參會人員的數據結構*/

{

char name[20]; /*姓名*/

char sex[7]; /*性別*/

int age; /*年齡*/

char department[30];/*單位*/

char room_num[10]; /*房間號*/

}STAFF;

void menu()

{

printf("\n");

printf("-----Meeting attendant Managing System Demo----\n");

printf("1.Staff login\n");

printf("2.Show Info\n");

printf("3.Search\n");

printf("4.Statistics\n");

printf("5.Modify\n");

printf("6.Delete\n");

printf("0.Quit\n");

printf("---\n");

}

/*函數原型*/

int login(STAFF staff[],int length);

void print(STAFF staff[],int length);

void seachByName(STAFF staff[],int length);

void statistics(STAFF staff[],int length);

void edit(STAFF staff[],int length);

int Delete(STAFF staff[],int length);

/*函數的定義*/

int login(STAFF staff[],int length)

{

int i;

if(length==100) /*房間已滿,拒絕登陸*/

{

printf("There is no any empty room left!\n login prohibited!");

exit(-1);

} /*end if*/

else

{

char room_num[10];

printf("Type in the room-num:");

scanf("%s",&room_num);

for(i=0;i<length;i++)

{

if(strcmp(room_num,staff[i].room_num)==0)

{ /*申請的房間已經有人*/

printf("The room you chose is full,please choose anther...\n");

printf("Type in another different room-num:");/*讓參會人選擇

別的空房間*/

scanf("%s",&room_num);

i=-1; /*為檢驗新的房間是否為空作準備*/

}

}/*end for*/

/* 錄入登陸信息*/

strcpy(staff[length].room_num,room_num);

printf("Type in your name:");

scanf("%s",&staff[length].name);

printf("Type in your gender:");

scanf("%s",&staff[length].sex);

printf("Type in your age:");

scanf("%d",&staff[length].age);

printf("Type in your dapartment:");

scanf("%s",&staff[length].department);

length++;/*參會人數加壹*/

}/*end else*/

return length;

}/*end login()*/

void print(STAFF staff[],int length)

{

STAFF temp;

int i,j;

if(length!=0)

{

for(i=0;i<length;i++) /*冒泡排序*/

for(j=i;j<length-i-1;j++)

if(strcmp(staff[j].room_num,staff[j+1].room_num)>0)

{

temp=staff[j];

staff[j]=staff[j+1];

staff[j+1]=temp;

}

printf("Staff logined info:\n");

printf("Name Sex Age Department room-num\n");

for(i=0;i<length;i++)

{ /*輸出報到人員的信息*/

printf("%s\t",staff[i].name);

printf("%s\t",staff[i].sex);

printf("%d\t",staff[i].age);

printf("%s\t",staff[i].department);

printf("%9s",staff[i].room_num);

printf("\n");

}

}

else

printf("No one logined yet...\n");

}/*end print()*/

void seachByName(STAFF staff[],int length)

{

char name[20];

int i;

int counter=0;

if(length!=0)

{

printf("Tpye in the staff's name you search:");

scanf("%s",&name);

printf("Name Sex Age Department room-num\n");

for(i=0;i<length;i++)

{

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

{

/*判斷名字是否相同,相同則輸出人員信息*/

printf("%s\t",staff[i].name);

printf("%s\t",staff[i].sex);

printf("%d\t",staff[i].age);

printf("%s\t",staff[i].department);

printf("%13s",staff[i].room_num);

printf("\n");

counter++;

}

}

if(counter==0) /*查找的人還沒登錄*/

printf("\n%s hasn't logined yet...\n",name);

}

else

printf("No one logined yet...\n");

}/*end seachByName*/

void edit(STAFF staff[],int length)

{

char room_num[10];

int i,k;

if(length!=0)

{

printf("Tpye in the staff's room-num you edit:");

scanf("%s",&room_num);

for(i=0;i<length;i++)

{

if(strcmp(staff[i].room_num,room_num)==0)

{

printf("Type in your room-num:");

scanf("%s",&room_num);

for(k=0;k<length;k++)

{

if(k==i) continue; /*可以選擇原來的房間*/

if(strcmp(room_num,staff[k].room_num)==0)

{ /*申請的房間已經有人*/

printf("The room you chose is full,please

choose anther...\n");

printf("Type in another different room-

num:");

scanf("%s",&room_num); /*提示選擇別的空房間

*/

k=-1; /*為檢驗新的房間是否為空作準備*/

}

}

/*修改人員信息*/

strcpy(staff[i].room_num,room_num);

printf("Type in your name:");

scanf("%s",&staff[i].name);

printf("Type in your gender:");

scanf("%s",&staff[i].sex);

printf("Type in your age:");

scanf("%d",&staff[i].age);

printf("Type in your dapartment:");

scanf("%s",&staff[i].department);

printf("Edit successfully...");

}

}

}

else

printf("No one logined yet...\n");

}/*end edit*/

int Delete(STAFF staff[],int length)

{

int i,k;

int counter=length;

char room_num[10];

if(length!=0)

{

printf("Tpye in the staff's room-num you delete:");

scanf("%s",&room_num);

for(i=0;i<length;i++)

{

if(strcmp(staff[i].room_num,room_num)==0)

{ /*刪除人員*/

for(k=i;k<length-1;k++)

staff[k]=staff[k+1]; /*把該人員的信息覆蓋掉*/

printf("Delete successfully...");

length--; /*參會人數減壹*/

}

}

if(counter==length) /*要刪除的人員還沒登陸*/

printf("The staff you want to delete hasn't logined yet...\n");

}

else

printf("No any staff logined yet...\n");

return length;

}/*end Delete()*/

void statistics(STAFF staff[],int length)

{

int i;

int k,j;

int index;

int flag=0; /*輔助標記*/

char department[100][30]; /*用於記錄不同單位的名字*/

int counter[100]; /*分別記錄相應不同單位的參會人數*/

if(length!=0)

{

k=0; /*單獨處理數組第壹個元素*/

strcpy(department[k],staff[0].department); /*記錄單位*/

counter[k]=0;/*計數器清零*/

for(j=0;j<length;j++)/*計算次單位參會的總人數*/

if(strcmp(department[k],staff[j].department)==0)

counter[k]++;

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

{

for(index=0;index<=k;index++)

{

if(strcmp(department[index],staff[i].department)==0)

flag++; /*當前此單位在前面已經統計過*/

}

if(flag==0)

{

/*出現壹個未統計過的單位*/

k++; /*用兩數組的下壹個元素分別存放單位和該單位參會人數*/

strcpy(department[k],staff[i].department);/*記錄單位*/

counter[k]=0;/*計數器清零*/

for(j=0;j<length;j++)/*計算次單位參會的總人數*/

if(strcmp(department[k],staff[j].department)==0)

counter[k]++;

}

flag=0; /*輔助標誌清零*/

}

printf("Statistics result:\n");

printf("Department number\n");

for(i=0;i<=k;i++)

{

printf("%s%20d\n",department[i],counter[i]);

}

}

else

printf("No one logined yet...\n");

}/*end statistics()*/

int main()

{

int length=0; /*記錄登陸人數*/

STAFF staff[MAXSIZE]; /*申請結構體數組*/

int choice=-1;

menu();

printf("Enter your choice(0-6):");

scanf("%d",&choice); /*由用戶選擇操作*/

while(choice>=0&&choice<=6)

{

switch(choice)

{

case 1:length=login(staff,length);break;

case 2:print(staff,length);break;

case 3:seachByName(staff,length);break;

case 4:statistics(staff,length);break;

case 5:edit(staff,length);break;

case 6:length=Delete(staff,length);break;

case 0:printf("Quit successully...\n");

exit(-1); /*退出*/

}

menu();

printf("Enter your choice(0-6):");

scanf("%d",&choice);

}

printf("Sorry,there is no such function provided...\n");

return 0;

}

  • 上一篇:昆明理工大學機電工程學院的設置院系
  • 下一篇:廣西機電工業學校專業有哪些?專業介紹
  • copyright 2024編程學習大全網