资源简介
简单的职工管理系统,内含源代码和文档
简单的职工管理系统主要实现以下功能:
(1) 新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。
(2) 删除一名职工:从职工管理文件中删除一名职工对象。
(3) 查询:从职工管理文件中查询符合某些条件的职工。
(4) 修改:检索某个职工对象,对其某些属性进行修改。
(5) 排序:按某种需要对职工对象文件进行排序。
要求:职工信息包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。
实现提示:
(1) 由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。
(2) 对职工对象中的"姓名"按字典顺序进行排序。
(3) 对排序后的职工对象进行增、删、查询、修改、排序等操作。

代码片段和文件信息
/*
单的职工管理系统(数据结构课程设计)
aa a 32543 453254 aaa aaaa aaaaa 4365357
bb b 52654 654365 bbb aaaa bbbbb 5365463
cc a 54325 546354 aaa bbbb ccccc 4354365
dd b 43543 435465 bcb dddd ccccc 1351512
ee a 23611 151312 bbb cccc bbbbb 1531515
ff b 53111 151515 fff ffff fffff 1561561
gg b 53111 435465 aaa bbbb fffff 4454564
简单的职工管理系统主要实现以下功能:
(1) 新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。
(2) 删除一名职工:从职工管理文件中删除一名职工对象。
(3) 查询:从职工管理文件中查询符合某些条件的职工。
(4) 修改:检索某个职工对象,对其某些属性进行修改。
(5) 排序:按某种需要对职工对象文件进行排序。
要求:职工信息包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。
实现提示:
(1) 由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。
(2) 对职工对象中的“姓名“按字典顺序进行排序。
(3) 对排序后的职工对象进行增、删、查询、修改、排序等操作。
*/
#include
#include
#include
#include
#define ALLMAX 100 //总共统计的职工的人数
typedef struct Node
{
long int born_timework_timetele_num;
char sexname[ALLMAX]degree[ALLMAX]job[ALLMAX]address[ALLMAX];
struct Node *next;
}SLNode;
typedef struct{
long int born_timework_timetele_num;
char name[ALLMAX]sexdegree[ALLMAX]job[ALLMAX]address[ALLMAX];
}DataType;
void ListInitiate(SLNode **head)//---------------------------------链表初始化
{
if((*head=(SLNode *)malloc(sizeof(SLNode)))==NULL) exit(1);//动态分配存储空间
(*head)->next=NULL;
}
SLNode *ListInsert(SLNode *headDataType x)//-------------------职工信息的插入姓名并按照升序排列
{
SLNode *p*q*s;
p=head->next;
if((q=(SLNode *)malloc(sizeof(SLNode)))==NULL) exit(1);//动态分配存储空间
q->born_time=x.born_time; q->work_time=x.work_time;
q->tele_num=x.tele_num; strcpy(q->namex.name);
q->sex=x.sex; strcpy(q->degreex.degree);
strcpy(q->jobx.job); strcpy(q->addressx.address);
if(head->next==NULL){//如果只有链表的头结点,没有其他的结点,直接插入在头结点后面
head->next=q;
head->next->next=NULL;
}
else{//链表非空
for(;p;p=p->next){
if(p->next!=NULL){
if(strcmp(p->namex.name)<0&&strcmp(p->next->namex.name)>0){//位于两个结点之间
s=p->next;
p->next=q;
q->next=s;
break;
}
//else if(strcmp(p->namex.name)==0)break; //如果姓名相同则不插入信息
}
else if(strcmp(p->namex.name)<0&&p->next==NULL){//链表非空,并且在排序中是最后一个
p->next=q;
q->next=NULL;
break;
}
if(strcmp(p->namex.name)>0){//位于链表头结点之后的位置
s=head->next;
head->next=q;
q->next=s;
break;
}
}
}
return head;
}
void ListDelete(SLNode *head)//-----------------------------职工信息的删除
{
SLNode *p*s;
char x[20];
s=head;
p=head->next;
if(head->next==NULL){//链表为空,输出:名单中无职工信息,无须删除!
printf(“名单中无职工信息,无须删除!\n“);
return;
}
printf(“请输入要删除职工的姓名:\n“); //输入要删除的人的姓名
scanf(“%s“x);
for(p;p;p=p->next){//在链表中从头到尾查找输入的人的姓名
if(strcmp(p->namex)==0){ //如果存在,则删除,否则输出:名单中无职工信息,无须删除!
s->next=p->next;
free(p);
printf(“删除成功!请继续操作!\n“);
break;
}
s=p;
}
if(p==NULL){//链表本身为空
printf(“名单中无职工信息,无须删除!\n“);
}
}
void ListModify(SLNode *head)//------------------------职工信息的修改
{
DataType x;
SLNode *p;
p=head->next;
if(p
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 642560 2010-01-09 10:44 简单的职工管理系统\简单的职工管理系统报告.doc
文件 18168 2010-01-08 21:24 简单的职工管理系统\职工管理.cpp
目录 0 2010-03-20 19:15 简单的职工管理系统
----------- --------- ---------- ----- ----
660728 3
相关资源
- bp神经网络源代码,可直接运行
- 仿知乎界面小程序源代码
- 贪吃蛇源代码.fla
- dotnet 写字板 实验 源代码 不好请要不
- 图像二维小波变换的实现源代码
- 八三编码器设计 VHDL代码 简单,包附
- linux应用层的华容道游戏源代码
- 网上拍卖系统完整源代码
- CSMA/CD等动画演示加源代码
- silicon lab公司的收音IC SI47XX全套开发工
- 合同管理系统的源代码(附数据库)
- 用VC 编写的仿QQ聊天室程序源代码
- STM32F103 串口程序(完整版)
- VPC3_DPV1源代码,Profibus
- PB做的托盘程序(最小化后在左下角显
- 透明加密源码及说明
- 排队机叫号 源代码
- 五子棋C 源代码
- CAD LISP24个源代码
- 二叉树基本操作源代码
- 推箱子及人工智能寻路C 源代码
- opengl轮廓字体源代码
- 冈萨雷斯 数字图像处理 源代码(m文
- 直流伺服电机电路原理图(内附单片
- 哈哈冒险岛登入器源代码
- midi电子琴简单设计(附源代码).ra
- PESQ C源代码
- 画图程序MFC/VC/VC CRectTracker 串行化
- 莱卡 全站仪数据格式转换程序,有源
- HEX到Bin文件源代码
评论
共有 条评论