资源简介
简单的职工管理系统,内含源代码和文档
简单的职工管理系统主要实现以下功能:
(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
相关资源
- 顾晖的《微机原理与接口技术-基于
- 最基本的可以实现的EZW源代码
- P2P之UDP穿透NAT的原理与实现
- 基于.net的BBS论坛信息管理系统的设计
- 基于gstreamer的DVR源代码
- DNS欺骗源代码
- 智能家居系统项目(完整源代码).
- 线积分卷积LIC源代码
- 北邮2017研究生linux期末作业源代码
- LPC2119(ARM7)源代码
- 有限体积法源代码
- 基于tcp 文件传输 源代码
- 《剑指Offer——名企面试官精讲典型编
- CAN通讯labvIEW例程
- [R语言实战].源代码.zip
- 安卓开发计算器源代码
- 英汉汉英字典C源代码
- 基于51单片机的自感应风扇系统prote
- KNN K-最近邻分类算法源代码
- VHDL源代码
- 16x64点阵左移右移多字滚动源代码
- STM32雕刻机、CNC源代码
- 微信小程序全套源代码 最新 最全 好
- LTC6803程序
- C Primer Plus第6版 源代码+练习答案
- Linux 下gtk+2.0的贪吃蛇帮助文档及其源
- MSP430单片机的实时多任务操作系统c源
- 基于linux的飞鸽传书软件源代码有注释
- c的ftp断点续传的客户端源代码
- 计算文件hash值的源代码,包含crcmd2
评论
共有 条评论