简单的教职工管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息工程学院《数据结构》课程设计报告
设计题目简单的榆林学院教职工管理系统
专业班级
小组成员
一、题目:简单的榆林学院教职工管理系统
二、小组任务分工
三、设计目标
帮助学生熟练掌握线性表的基本操作在两种存储结构上的实现,其中以单链表的操作和应用为重点内容。
四、问题描述
为榆林学院人事处开发一个简单的职工管理系统.职工数据结构自定义,职工信息包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等基本信息.该软件可实现增加职工,删除职工,职工信息查询,职工信息修改等基本功能.
五、概要设计
1)为了实现上述功能,需要定义一下抽象的数据类型:
typedef struct Manage
{ char Number[15]; //编号
char Name[10]; //姓名
char Sex[8]; //性别
char Bir[10]; //出生年月
char WorkD[10]; //工龄
char Edu[20]; //学历
char Job[30]; //职务
char Adress[50]; //住址
char Phone[15]; //手机号
}Manage;
typedef struct node //node结构标记
{
Manage data; //数据域
struct node *next; //指针域
}Dnode; //Dnode变量声明
typedef struct node *LinkList; //结构体链表(实例)
LinkList head; //成员
Dnode *p; //指向Donde的指针
//
Dnode *Ser(LinkList head); //定义Donde的查找函数
2)本程序是由几个函数构成
①主函数 main()
创建链表函数:LinkList Cre(void)
插入函数:Dnode Add(LinkList head ,Dnode *p)
删除函数:Dnode *Del(LinkList head)
输出函数:Dnode show(LinkList head)
更改信息函数:Dnode *Cha(LinkList head,char k[]) 查找函数:Dnode *Ser(LinkList head)
六、详细设计(程序代码及核心代码流程图)
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
int f=0;//定义全局变量
typedef struct Manage
{ char Number[15]; //编号
char Name[10]; //姓名
char Sex[8]; //性别
char Bir[10]; //出生年月
char WorkD[10]; //工龄
char Edu[20]; //学历
char Job[30]; //职务
char Adress[50]; //住址
char Phone[15]; //手机号
}Manage;
typedef struct node //node结构标记
{
Manage data; //数据域
struct node *next; //指针域
}Dnode; //Dnode变量声明
typedef struct node *LinkList; //结构体链表(实例)
LinkList head; //成员
Dnode *p; //指向Donde的指针
//
Dnode *Ser(LinkList head); //定义Donde的查找函数
//各个函数
//菜单
char Menu()
{
int ch=0;
printf("---------------------榆林学院职工管理系统-------------------\n");
printf("1、创建链表\n");
printf("2、添加员工信息 3、修改员工信息\n");
printf("4、查找员工信息 5、浏览职工信息\n");
printf("6、删除职工信息 7、退出\n");
printf("------------------------------------------------------------\n");
printf("请选择您需要的功能:\n");
scanf("%d",&ch);
return ch;
}
//创建链表
/*Manage *Cre(Manage *head)
Manage *p=NULL,*q=head; //p头节点
head=(Manage*)malloc(sizeof(Manage));
return head;
}*/
LinkList Cre(void) //尾插法建立链表
{ int n=1;
Dnode *p,*rear;
char flag='y';
LinkList head=(Dnode*)malloc(sizeof(Dnode)); rear=head; //尾指针指向头指针
//
while(flag=='y'||flag=='Y')
{
p=(Dnode*)malloc(sizeof(Dnode));
if(p==NULL)
{
printf("空间不足,自动退出!\n");
exit(0);
}
printf("请输入第%d名员工信息:\n",n);
printf("请输入您的编号:");
scanf("%s",p->data.Number);
printf("请输入您的姓名:");
scanf("%s",p->);
printf("请输入您的性别:");
scanf("%s",p->data.Sex);
printf("请输入您的出生年月:");
scanf("%s",p->data.Bir);
printf("请输入您的工作年月:");
scanf("%s",p->data.WorkD);
printf("请输入您的学历:");
scanf("%s",p->);
printf("请输入您的职务:");
scanf("%s",p->data.Job);
printf("请输入您的住址:");
scanf("%s",p->data.Adress);
printf("请输入您的手机号:");
scanf("%s",p->data.Phone);
printf("输入完毕。\n");
rear->next=p; //尾节点指向元素