数据结构c语言员工信息管理系统.docx

上传人:b****7 文档编号:15352048 上传时间:2023-07-03 格式:DOCX 页数:25 大小:19.95KB
下载 相关 举报
数据结构c语言员工信息管理系统.docx_第1页
第1页 / 共25页
数据结构c语言员工信息管理系统.docx_第2页
第2页 / 共25页
数据结构c语言员工信息管理系统.docx_第3页
第3页 / 共25页
数据结构c语言员工信息管理系统.docx_第4页
第4页 / 共25页
数据结构c语言员工信息管理系统.docx_第5页
第5页 / 共25页
数据结构c语言员工信息管理系统.docx_第6页
第6页 / 共25页
数据结构c语言员工信息管理系统.docx_第7页
第7页 / 共25页
数据结构c语言员工信息管理系统.docx_第8页
第8页 / 共25页
数据结构c语言员工信息管理系统.docx_第9页
第9页 / 共25页
数据结构c语言员工信息管理系统.docx_第10页
第10页 / 共25页
数据结构c语言员工信息管理系统.docx_第11页
第11页 / 共25页
数据结构c语言员工信息管理系统.docx_第12页
第12页 / 共25页
数据结构c语言员工信息管理系统.docx_第13页
第13页 / 共25页
数据结构c语言员工信息管理系统.docx_第14页
第14页 / 共25页
数据结构c语言员工信息管理系统.docx_第15页
第15页 / 共25页
数据结构c语言员工信息管理系统.docx_第16页
第16页 / 共25页
数据结构c语言员工信息管理系统.docx_第17页
第17页 / 共25页
数据结构c语言员工信息管理系统.docx_第18页
第18页 / 共25页
数据结构c语言员工信息管理系统.docx_第19页
第19页 / 共25页
数据结构c语言员工信息管理系统.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据结构c语言员工信息管理系统.docx

《数据结构c语言员工信息管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构c语言员工信息管理系统.docx(25页珍藏版)》请在冰点文库上搜索。

数据结构c语言员工信息管理系统.docx

数据结构c语言员工信息管理系统

人生充满着期待,梦想连接着未来。

数据结构实习报告

---信息管理

 

学校石家庄铁道大学

指导老师张翠肖

班级信0901-1班

学号20082406

姓名张洁

院系信息分院

2011.07.05

学生信息管理系统

  一、需求分析

  本程序主要是执行链表的删除

插入等功能

  根据程序提示

我们可以添加、修改、删除员工信息

并能进行多种方式的查询

还有员工信息一览

  二、概要设计

  1)为了实现上述功能

需要定义一下抽象的数据类型:

  ADTList{

  数据对象:

D={ai|ai∈ElemSet

i=1

2··············

n

n>=0}

  数据关系:

R1={

ai>|ai-1

ai∈D

i=1

2```````

n}

  基本操作:

  InitList(&L);

  操作结果:

构造一个空的线性表L

  DestroyList(&L);

  初始条件:

线性表L存在

  操作结果:

销毁线性表L

  LocateElem(L

I

&e);

  初始条件:

线性表L存在

1

  操作结果:

用e返回线性表L中第i个数据元素的值

  ClearList(&L);

  初始条件:

线性表L存在

  操作结果:

将线性表L重置为空表

  }ADTGraph

  2)本程序是由几个函数构成的:

  ① 主函数:

main()

  ② 菜单函数menu();

  ③ 文件读入函数:

readdata();

  ④ 文件写入函数:

writedata();

  ⑤ 信息查询函数:

chaxun();

  ⑥ 信息更新函数:

gengxin();

  ⑦ 信息一览函数:

liebiao();

  ⑧ 数据删除函数:

shanchu();

  ⑨ 数据添加函数:

tianjia();

  ⑩ 数据修改函数:

xiugai();

  它们的调用关系如

  

  三、详细设计

  #include

  #include

  #include

  #include//清屏函数头文件

  #include

  #include

  #include

  #defineLENsizeof(structemp)

  #defineDATA"employee.txt"

  structemp

  {

  longintnum;//编号

  charname[20];//姓名

  intage;//年龄

  charsex[4];//性别

  charbirthday[10];//生日

  chartel[15];//电话

  charedu[8];//学历

  charpos[20];//职务

  charadd[30];//住址

  structemp*next;

  };

  structemp*head=NULL;

  intt=0;

  voidmenu();

  voidgengxin();

  voidtianjia();

  voidinsert(structemp*em);

  voiddisplay(structemp*p);

  voidliebiao();

  voidchaxun();

  voidbianhao();

  voidshengri();

  voidxingming();

  voidreadDate();

  voidwriteDate();

  voidfreeAll();

  voidshanchu();

  voidchange();

  voiddevise(structemp*p);

  voidmain()

  {

  structemp*head=NULL;

  head=(structemp*)malloc(LEN);

  head->next=NULL;system("color1f");

  system("modecon:

cols=150lines=500");

  readDate();menu();system("cls");

  printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

  printf("谢谢使用

再见\n");

  }

  voidmenu(void)

  {

  chari

lj[100];intflog;time_tT;

  structtm*timenow;

  time(&T);timenow=localtime(&T);

  flog=0;

  while

(1)

  {

  system("cls");printf("\n\n\n\n\n");

  printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━员工信息管理系统━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃1.员工信息查询┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃2.员工信息更新┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃3.员工信息列表┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃0.退出管理系统┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

  printf("%s"

asctime(timenow));

  printf("请输入您的选择(数字0-3):

\n");

  scanf("%c"

&i);gets(lj);if(lj[0])i='a';

  switch(i)

  {

  case'1':

chaxun();break;

  case'2':

gengxin();break;

  case'3':

liebiao();break;

  case'0':

flog=1;break;

  default:

printf("输入有误

请按回车键重新输入\n");gets(lj);break;

  }if(flog)break;}}

  voidtianjia()

  {

  structemp*p

*p1;charlj[100];

  p=NULL;p1=head;

  printf("请输入第%d个员工的信息.\n"

t+1);

  p=(structemp*)malloc(LEN);

  if(p==NULL)

  {printf("分配空间失败");exit(0);}

  printf("请输入员工的编号:

\n");

  scanf("%ld"

&p->num);

  while((p1!

=NULL)&&(p->num!

=p1->num))p1=p1->next;

  if(p1!

=NULL)

  {if(p->num==p1->num){

  printf("编号已经存在

请重新输入

按回车键继续:

\n");

  free(p);gets(lj);getchar();}}

  printf("请输入员工的姓名:

\n");scanf("%s"

p->name);

  printf("请输入员工的年龄:

\n");scanf("%d"

&p->age);

  printf("请输入员工的性别:

\n");scanf("%s"

p->sex);

  printf("请输入员工的出生年月:

\n");scanf("%s"

p->birthday);

  printf("请输入员工的电话:

\n");scanf("%s"

p->tel);

  printf("请输入员工的学历:

\n");scanf("%s"

p->edu);

  printf("请输入员工的职务:

\n");scanf("%s"

p->pos);

  printf("请输入员工的住址:

\n");scanf("%s"

p->add);

  insert(p);printf("输入的员工信息为:

\n");

  printf("------------------------------------------------------------------------:

\n");

  printf("编号\t\t姓名\t\t年龄\t\t性别\t\t出生年月\t\t电话\t\t学历\t\t职务\t\t住址:

\n");

  display(p);printf("按回车键继续\n");writeDate();gets(lj);getchar();}

  voidinsert(structemp*em)

  {

  structemp*p0

*p1

*p2;p1=head;p0=em;

  if(head==NULL)

  {head=p0;p0->next=NULL;}

  else

  {

  while((p0->num>p1->num)&&(p1->next!

=NULL))

  {p2=p1;p1=p1->next;}if(p0->num<=p1->num)

  {

  if(head==p1)head=p0;

  else

  p2->next=p0;p0->next=p1;}

  else

  {p1->next=p0;p0->next=NULL;}}t++;}

  voiddisplay(structemp*p)

  {printf("%ld\t\t%s\t\t%d\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\n"

p->num

p->name

p->age

p->sex

p->birthday

p->tel

p->edu

p->pos

p->add);}

  voidliebiao()

  {

  charlj[100];structemp*p;p=head;system("cls");

  if(head==NULL){printf("查找不到信息\n");menu();}

  printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━员工信息列表━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");

  printf("编号\t\t姓名\t\t年龄\t\t性别\t\t出生年月\t\t电话\t\t学历\t\t职务\t\t住址:

\n");

  if(head!

=NULL)

  {while(p!

=NULL){display(p);p=p->next;}}

  printf("\n按回车键返回主菜单\n");gets(lj);}

  voidchaxun()

  {

  chari

lj[100];intflog;time_tT;structtm*timenow;

  time(&T);timenow=localtime(&T);flog=0;

  while

(1)

  {

  system("cls");printf("\n\n\n\n\n");

  printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━员工信息查询系统━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃1.按照编号查询┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃2.按照姓名查询┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃3.按照生日查询┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃0.退出管理系统┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┃┃\n");

  printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

  printf("%s"

asctime(timenow));

  printf("请输入您的选择(数字0-3):

\n");

  scanf("%c"

&i);gets(lj);if(lj[0])i='a';

  switch(i)

  {

  case'1':

bianhao();break;case'2':

xingming();break;

  case'3':

shengri();break;case'0':

flog=1;break;

  default:

printf("输入有误

请重新输入\n");gets(lj);break;

  }if(flog)break;}}

  voidbianhao()

  {

  intnumber;charlj[100];

  structemp*p1;p1=head;

  printf("请输入要查询员工的编号:

\n");

  scanf("%d"

&number);

  while((number!

=p1->num)&&(p1->next!

=NULL))

  {p1=p1->next;}

  if(number==p1->num)

  {

  printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━员工信息查询━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");

  printf("要查询的员工信息:

\n");

  printf("编号\t\t姓名\t\t年龄\t\t性别\t\t出生年月\t\t电话\t\t学历\t\t职务\t\t住址:

\n");printf("%ld\t\t%s\t\t%d\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\n"

p1->num

p1->name

p1->age

p1->sex

p1->birthday

p1->tel

p1->edu

p1->pos

p1->add);

  printf("按回车键继续\n");gets(lj);getchar();}

  elseif(p1->next==NULL)

  {printf("要查询的员工信息不存在

按回车键返回:

\n");

  gets(lj);getchar();}}

  voidxingming()

  {

  charch[10];structemp*p;charlj[100];p=head;

  printf("请输入要查询的员工的名字:

\n");

  scanf("%s"

ch);if(p==NULL)

  {

  printf("不存在员工记录

按回车键返回.\n");

  gets(lj);getchar();return;}

  while(strcmp(ch

p->name)&&p->next!

=NULL)

  {p=p->next;}

  if(!

strcmp(ch

p->name))

  {printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━员工信息查询━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");

  printf("编号\t\t姓名\t\t年龄\t\t性别\t\t出生年月\t\t电话\t\t学历\t\t职务\t\t住址:

\n");display(p);printf("按回车键继续\n");

  gets(lj);getchar();}

  elseif(p->next==NULL)

  {

  printf("不存在员工记录.\n");gets(lj);

  getchar();return;}}

  voidshengri()

  {

  charbir[20]

lj[100];structemp*p;

  p=head;printf("请输入要查询的员工的出生日期:

\n");

  scanf("%s"

bir);if(p==NULL)

  {

  printf("不存在员工记录.按回车键返回\n");gets(lj);

  getchar();return;}

  while(strcmp(bir

p->birthday)&&p->next!

=NULL)

  {p=p->next;}

  if(!

strcmp(bir

p->name))

  {

  printf("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━员工信息查询━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");

  printf("编号\t\t姓名\t\t年龄\t\t性别\t\t出生年月\t\t电话\t\t学历\t\t职务\t\t住址:

\n");display(p);printf("按回车键继续\n");gets(lj);

  getchar();}

  elseif(p->next==NULL)

  {printf("不存在员工记录.按回车键返回\n");gets(lj);

  getchar();return;}}

  voidreadDate()

  {

  FILE*fp;structemp*p1

*p2;fp=fopen(DATA

"r");

  if(!

fp)

  {printf("打开文件失败!

按回车键继续\n");getchar();}

  else

  {fscanf(fp

"%d\n"

&t);head=p1=p2=(structemp*)malloc(LEN);fscanf(fp

"%ld\t\t%s\t\t%d\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\n"

&p1->num

p1->name

&p1->age

p1->sex

p1->birthday

p1->tel

p1->edu

p1->pos

p1->add);while(!

feof(fp))

  {p1=(structemp*)malloc(LEN);fscanf(fp

"%ld\t\t%s\t\t%d\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\n"

&p1->num

p1->name

&p1->age

p1->sex

p1->birthday

p1->tel

p1->edu

p1->pos

p1->add);p2->next=p1;p2=p1;}

  p2->next=NULL;fclose(fp);}}

  voidwriteDate()

  {

  FILE*fp;structemp*p1;fp=fopen(DATA

"w");

  if(!

fp)

  {printf("打开文件失败!

\n");remove(fp);getchar();}else

  {fprintf(fp

"%d\n"

t);for(p1=head;p1!

=NULL;p1=p1->next){fprintf(fp

"%ld\t\t%s\t\t%d\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\t\t%s\n"

p1->num

p1->name

p1->age

p1->sex

p1->birthday

p1->tel

p1->edu

p1->pos

p1->add);}fclose(fp);}}

  voidfreeAll()

  {

  structemp*p1

*p2;p1=p2=head;

  while(p1)

  {p2=p1->next;free(p1);p1=p2;}}

  voidshanchu()

  {

  structemp*p1

*p2;longintnumber;charlj[100];

  if(head==NULL)

  {

  printf("无员工纪录!

按回车键返回\n");

  gets(lj);getchar();return;}

  printf("请输入你要删除的员工的编号:

\n");

  scanf("%ld"

&number);p1=head;

  while(number!

=p1->num&&p1->next!

=NULL)

  {p2=p1;p1=p1->next;}

  if(number==p1->num)

  {

  if(p1==head)head=p1->next;

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2