• 大小: 1.73MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-27
  • 语言: C/C++
  • 标签:

资源简介

1.1问题描述   对单位的职工进行管理,包括插入、删除、查找、排序等功能。 1.2要求   职工对象包括工号、姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。 (1)新增一名职工:将新增职工对象按姓名以字典方式存入职工管理文件中。 (2)删除一名职工:从职工管理文件中删除一名职工对象。 (3)查询:从职工管理文件中查询符合某些条件的职工。 (4)修改:检索某个职工对象,对其某些属性进行修改。 (5)排序:按某种需要对职工对象文件进行排序。 1.3实现提示   职工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换。 (1)由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。 (2)对职工对象中的"姓名"按字典顺序进行排序。 (3)对排序后的职工对象进行增加、删除、查询、修改、排序等操作。

资源截图

代码片段和文件信息

#include
#include
#include
#include 

#define I 100

static char tempstr[20];  /*用于临时存储输入信息的数组*/

static struct staff
{
 int num;
 char name[20];
 char sex;
 long byear;//birth year 出生年月
 long iyear;//imploy year 工作年月
 char education[20];
 char duty[20];
 char address[20];
 char phone[20];
 struct staff *next;
}*head=NULL*thisn*newnsta[I]={0}temp;     /*temp用于交换的中间量*/

void cin(void);          /*输入信息*/
int identify(int num);   /*对职工号是否重复进行验证*/
void cout(void);         /*输出信息*/
void seek(void);         /*查询排序*/
void del(void);          /*删除职工信息*/
int record(void);         /*将文件中的数据录入结构体数组中*/
void iyear(int j);        /*按工作年月排序*/
void education(int j);     /*按学历排序*/
void modify(void);       /*修改职工信息*/ 
void descending(void);      /*学历降序输出*/ 
void ascending(void);      /*学历升序输出*/
void printmsg(int i);      /*输出信息*/


int main(void)
{
 int flag=1;
 while(flag)
 {
  system(“cls“);             /*清屏*/
  printf(“                         欢迎登陆职工信息管理系统!\n“); 
  printf(“            【1】 输入职工信息            【2】 输出职工信息\n“);
  printf(“            【3】 信息查询排序            【4】 删除职工信息\n“);
  printf(“            【5】 修改职工信息                              \n“);      
  printf(“请输入以上数字,选择相应的功能: “);
  switch (getchar())
  {
    case ‘1‘:cin();break;        /*调用输入信息的函数*/
    case ‘2‘:cout();break;       /*调用输出信息的函数*/
    case ‘3‘:seek();break;       /*调用排序的函数*/
    case ‘4‘:del();break;         /*调用删除职工信息函数*/
    case ‘5‘:modify();break;     /*调用修改职工信息的函数*/
    default:flag=0;break;       /*跳出循环体,结束程序*/
  }
 }
 return 0;
}



void cin(void)                    /*输入信息的函数*/
{
 FILE *fp;
 int receive;               /*接收返回值*/
 if((fp=fopen(“information.txt““a+“))==NULL)   /*为读写打开一个文本文件*/
  {
    printf(“文件打开错误\n“);
    exit(1);    /*关闭所有文件,终止正在执行的程序,待用户检查出错误,修改后再运行*/
  }
 newn=(struct staff *)malloc(sizeof(struct staff));
 if(head==NULL)                         /*连接链表*/
  {
    head=newn;
    thisn=newn;
    thisn->next=NULL;
  }
 else
  {
    thisn=head;
    while(thisn->next!=NULL)
      thisn=thisn->next;
    thisn->next=newn;
    thisn=newn;
  }
 getchar();                             /*接收缓冲区中选择菜单时多余的回车*/
 fputc(‘\n‘fp);                         /*每次记录信息前先换行*/
 printf(“请输入职工号:“);
 gets(tempstr);
thisn->num=atoi(tempstr);           /*atoi()将字符串转换成整型数*/
 receive=identify(thisn->num);
 while(receive)
    {
      printf(“请输入职工号:“);
      gets(tempstr);thisn->num=atoi(tempstr);
      receive=identify(thisn->num);
    }
 fputs(tempstrfp);
 fputs(“     “fp);                 /*信息排版的需要*/ 
 
 printf(“请输入姓名:“);
 gets(thisn->name);
 fputs(thisn->namefp);
 fputs(“     “fp);
 
 printf(“请输入性别(填F或M):“);
 thisn->sex=getchar();getchar();
 fputc(thisn->sexfp);
 fputs(“     “fp);
 
 printf(“请输入出生年月(如199001):“);
 gets(tempstr);thisn->byear=atoi(tempstr);
 fputs(tempstrfp);
 fputs(“     “fp);
 
printf(“请输入工作年月(如199001):“);
 gets(temp

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-12-19 22:22  职工管理系统PPT WORD C语言代码\
     文件       17849  2011-12-06 15:01  职工管理系统PPT WORD C语言代码\employee.c
     文件      304128  2011-12-19 22:22  职工管理系统PPT WORD C语言代码\职工管理系统.doc
     文件     1935360  2011-12-19 22:22  职工管理系统PPT WORD C语言代码\职工管理系统.ppt

评论

共有 条评论