龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

简单的职工管理系统(V1.1修改版)内含中文注释

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
/*------------------------------------------------------------------------ * filename - workmanagerment.c * * written by * 沈豪杰(01213229)王鹏(01213208) *-----------------------------------------------------------------------*/ /*[]--

/*------------------------------------------------------------------------

   * filename - workmanagerment.c

   *

   * written by

   * 沈豪杰(01213229)&&王鹏(01213208)

   *-----------------------------------------------------------------------*/

/*[]---------------------------------------------------[]*/

  /* */

  /* Turbo C Run workmanagerment.c- Version 1.1 */

  /* */

  /* */

  /* Copyright (c) 2003 6 28 by shj and wp */

  /* All Rights Reserved. */

  /* */

  /*[]---------------------------------------------------[]*/

  #include

  #include

  #include

  #include

  #define maxworker 100

FILE *fp; /*定义全局变量fp,指向数据库文件 worker.txt*/

strUCt date{ /*日期的结构,用于存储工人的生日,工作日期等*/

   int year;

   int month;

   int day;

  };

  struct address { /*地址的结构, 用于存储工人的地址*/

   char province[10];

   char city[10];

   char street[20];

  };

  struct WORKER { /*工人的资料总结构*/

   char name[20];

   enum {male,female}sex;

   struct date birthday;

   enum {elesch,middle,high,university,other}rofs;

   struct date workday;

   int workeri;

   char position[20];

   struct address addr;

   int workerj;

   char tel[13];

   };

  /*程序的初始化函数,用于从数据库中读出现存的资料到内存中*/

  data_load(int *i,struct WORKER *p){

   char c;

   long int k;

   fp=fopen("worker.txt","r");

   if(!fp){fopen("worker.txt","w+");*i=0;}

   else{

   for((*i)=0;(*i)

   if(feof(fp)) return;

   c=fgetc(fp);

   if(c==EOF) return;

   fflush(stdin);

   k=*i;

   fseek(fp,k*sizeof(struct WORKER),SEEK_SET);

   fread(&p[*i],sizeof(struct WORKER),1,fp);

   }

   }

  fclose(fp);

  }

  /*添加一个工人的资料*/

  

void add(int *i,struct WORKER *profile){

   char add_name[20],add_position[20],add_addr_province[20],add_addr_city[20],add_addr_street[30],add_tel[13];

   int add_birthday_year,add_birthday_month,add_birthday_day,add_workday_year,add_workday_month,add_workday_day;

   int add_sex,add_rofs;

   enum {false,true}status;

   status=false;

   printf("

Now add NO. %d worker's profile

",*i+1);

/*以下是处理输入的循环,可能有些繁杂,希望高手给指点一下

   其中status是个flag,用于指定是否有输错的地方,假如有的话,

   马上跳的最初的提示。

   */

while(status==false){

   printf("Enter the name of the worker:");

   scanf("%s",add_name);

   if(strlen(add_name)==0 strlen(add_name)>20){

   status=false;puts("input error,name cannot over 8 character or less than 0 character!");

   continue;

   }

   else

   status=true;

   printf("Enter the gender of worker:(1=>female,0=>male)");

   scanf("%d",&add_sex);

   if(add_sex!=0 && add_sex!=1){

   status=false;puts("only 0 or 1 can be accepted!");

   continue;

   }

   else

   status=true;

   printf("Enter the birthday of worker:

");

   printf("Year:");

   scanf("%4d",&add_birthday_year);

   if(add_birthday_year>9999 add_birthday_year<0){

   status=false;puts("input error,the year of birthday cannot more than 9999 or less than 0!");

   continue;

   }

   else

   status=true;

  printf("Month:");

   scanf("%2d",&add_birthday_month);

   if(add_birthday_month>12 add_birthday_month<1){

   status=false;puts("input error,the month of birthday cannot be more than 12 or less than 1");

   continue;

   }

   else

   status=true;

  printf("Day:");

   scanf("%2d",&add_birthday_day);

   if(add_birthday_day>31 add_birthday_day<1){

   status=false;puts("input error,the year of birthday cannot be more than 31 or less than 1!");

   continue;

   }

   else

   status=true;

   printf("Enter the workday of worker:

");

   printf("Year:");

   scanf("%4d",&add_workday_year);

   if(add_workday_year>9999 add_workday_year<0){

   status=false;puts("input error,the year of workday cannot more than 9999 or less than 0!");

   continue;

   }

   else

   status=true;

  printf("Month:");

   scanf("%2d",&add_workday_month);

   if(add_workday_month>12 add_workday_month<1){

   status=false;puts("input error,the month of workday cannot be more than 12 or less than 1");

   continue;

   }

   else

   status=true;

  printf("Day:");

   scanf("%2d",&add_workday_day);

   if(add_workday_day>31 add_workday_day<1){

   status=false;puts("input error,the year of workday cannot be more than 31 or less than 1!");

   continue;

   }

   else

   status=true;

  

[1] [2] [3] [4] [5] [6]

精彩图集

赞助商链接