C语言职工管理系统(带有报告)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct workers
{char jobNo[15]; //职工号char name[15]; //姓名char sex[15]; //性别char birthday[15]; //出生年月char degree[15]; //学历char position[15]; //职务 char salary[15]; //工资 char addr[15]; //住址 char tel[15]; //电话 };//类型定义语句
typedef struct node
{struct workers data;struct node *next;}Node;//添加信息函数 "尾插法建表"
void Add(Node *worker)
{Node *p, *q;char n[10]; q = worker; while (q->next != NULL){q = q->next; }while (1){printf("提示:输入0返回主菜单!\n");printf("请输入职工号:");scanf("%s", n);if (strcmp(n, "0") == 0){break;}p = (Node *)malloc(sizeof(Node));strcpy(p->data.jobNo, n);printf("请输入姓名:");scanf("%s", p->data.name);printf("请输入性别:");scanf("%s", p->data.sex);printf("请输入出生年月:");scanf("%s", p->data.birthday);printf("请输入学历:");scanf("%s", p->data.degree);printf("请输入职务:");scanf("%s", p->data.position);printf("请输入工资:");scanf("%s", p->data.salary);printf("请输入住址:");scanf("%s", p->data.addr);printf("请输入电话:");scanf("%s", p->data.tel);printf("提示:已经完成一条记录的添加!");p->next = NULL;q->next = p; q = p; }}//修改职工信息函数
int change(Node *worker)
{Node *p;char find[20]; p = worker->next; if (p == NULL){printf("\n提示:没有资料可以修改!\n");return 0;}printf("请输入要修改的职工号");scanf("%s", find);while (p != NULL) {if (strcmp(p->data.jobNo, find) == 0){break;}p = p->next;}if (p!=NULL){int x;while (1){printf("完成修改请输入0,否则输入非0数字进行修改!");scanf("%d", &x);if (x == 0){break;}printf(" 请输入新职工号: ");scanf("%s", p->data.jobNo);printf(" 请输入新职工姓名: ");scanf("%s", p->data.name);printf(" 请输入新职工性别: ");scanf("%s", p->data.sex);printf(" 请输入新职工出生年月: ");scanf("%s", p->data.birthday);printf(" 请输入新职工学历: ");scanf("%s", p->data.degree);printf(" 请输入新职工职务: ");scanf("%s", p->data.position);printf(" 请输入新职工工资: ");scanf("%s", p->data.salary);printf(" 请输入新职工住址: ");scanf("%s", p->data.addr);printf(" 请输入新职工电话: ");scanf("%s", p->data.tel);printf(" \n提示:该职工资料已经修改!\n ");}}else printf("\n提示:没有你要修改的资料!\n ");
}//输出职工信息函数
int Disp(Node *worker)
{Node *p;p = worker->next;if (p == NULL){printf(" \n提示:没有信息可以显示!\n ");return 0;}printf("\t\t\t\t显示结果\n");printf(" \n职工号 姓名 性别 出生年月 学历 职务 工资 住址 电话 \n ");while (p!=NULL) {printf("\n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n ", p->data.jobNo, p->data.name,p->data.sex, p->data.birthday, p->data.degree, p->data.position,p->data.salary, p->data.addr, p->data.tel);p = p->next;}}//查询职工信息函数: 按职工号查询 按职工姓名查询
int Cha_xun(Node *worker)
{Node *p;int sel;char find[20]; p = worker->next; if (p==NULL) {printf(" \n提示:没有资料可以查询!\n ");return 0;}printf("\n提示:\n 输入 0---- 退出\t 输入 1----按职工号查询\t 输入 2-----按职工姓名查询\n");printf("请选择:");scanf("%d", &sel);if (sel == 1){printf("\n请输入你要查询分类的职工号:");scanf("%s", find);while (p!=NULL) {if (strcmp(p->data.jobNo, find) == 0){printf(" 职工号 姓名 性别 出生年月 学历 职务 工资 住址 电话 \n ");printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t\n ", p->data.jobNo, p->data.name,p->data.sex, p->data.birthday, p->data.degree, p->data.position,p->data.salary, p->data.addr, p->data.tel);}p = p->next; }}else if (sel == 2){printf(" \n输入你要查询分类的职工姓名:");scanf("%s", find);while (p!=NULL){if (strcmp(p->data.name, find) == 0) {printf(" 职工号 姓名 性别 出生年月 学历 职务 工资 住址 电话 \n ");printf(" \n %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t \n ", p->data.jobNo, p->data.name,p->data.sex, p->data.birthday, p->data.degree, p->data.position,p->data.salary, p->data.addr, p->data.tel);}p = p->next;}}else if (sel == 0)return 0;}//删除职工信息函数
int Delete(Node *worker)
{Node *p, *r;char find[10];p = worker->next;if (p == NULL){printf("提示:没有职工信息可以删除!\n ");return 0;}printf(" \n提示:请输入你要删除的职工号!\n ");scanf("%s", find);while (p != NULL){if (strcmp(p->data.jobNo, find) == 0){break;}p = p->next;}if (p!=NULL){r = worker;while (r->next != p){r = r->next;}r->next = r->next->next; }
}//将职工信息保存到文件中
void save(Node *worker)
{int n;Node *p = NULL;FILE *fp; printf("是否保存到文件?( 1-----保存!,0-----不保存! )");scanf("%d", &n);if (n == 1){if (worker->next == NULL){printf(" 没有记录!");}else{p = worker->next;}if ((fp = fopen(" 职工信息管理系统.txt ", " wb ")) == NULL) {printf(" 文件不能打开!\n"); }while (p != NULL) {fprintf(fp, " %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t ", p->data.jobNo, p->data.name, p->data.sex,p->data.birthday, p->data.degree, p->data.position, p->data.salary,p->data.addr, p->data.tel); p = p->next; }fclose(fp); }}//读取职工信息
void Du_qu(Node *worker)
{Node *p;FILE *fp; if ((fp = fopen("职工信息管理系统.txt", "rb")) == NULL) {printf("文件不能打开!\n ");}p = worker->next;while (p!=NULL){fscanf(fp, " %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t ", p->data.jobNo, p->data.name, p->data.sex,p->data.birthday, p->data.degree, p->data.position, p->data.salary,p->data.addr, p->data.tel); p=p->next;}fclose(fp);}//主函数实现
int main()
{Node *worker;int flag;worker = (Node*)malloc(sizeof(Node));worker->next = NULL; while(1){printf("\t职 工 信 息 管 理 系 统\n");printf("==================菜 单==================\n ");printf("1.输入职工信息\n ");printf("2.修改职工信息\n ");printf("3.浏览职工信息\n ");printf("4.查询职工信息\n ");printf("5.删除职工信息\n ");printf("6.读取职工信息\n ");printf("0.退出\n ");printf("输入你选择的序号:");scanf("%d", &flag);switch (flag){case 0: printf(" \n提示:退出系统!\n "); break;case 1: Add(worker); save(worker); break; //添加职工信息,保存到文件中 case 2: change(worker); break; //修改职工信息 case 3: Disp(worker); break; //显示职工信息 case 4: Cha_xun(worker); break; //查询职工信息 case 5: Delete(worker); break; //删除职工信息 case 6: Du_qu(worker); break; //读取职工信息 default: printf("提示:输入错误!\n ");}}}
C语言职工管理系统(带有报告)相关推荐
- c语言用数组编写学籍管理程序,c语言学籍管理系统实验报告.docx
c语言学籍管理系统实验报告.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3. ...
- c语言成绩管理系统开题报告,学生信息管理系统,开题报告(共篇).doc
学生信息管理系统,开题报告(共篇).doc 学生信息管理系统,开题报告(共10篇) :开题 信息管理系统 报告 学生 论文开题报告有查重吗 居民信息网络管理系统 学生信息管理系统c语言 篇一:学生信息 ...
- C语言职工管理系统课程设计
头文件 #include<stdio.h> #include<stdlib.h>//system,system #include<string.h>//strcmp ...
- c语言银行卡管理系统程序设计报告,《c语言程序设计》课程设计报告-职工信息管理系统.doc...
<c语言程序设计>课程设计报告-职工信息管理系统.doc 还剩 24页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环 ...
- C语言职工人事管理系统设计报告(附代码)超详细!!!
目录 1.概述 1.1 设计思想 1.2 设计原则 1.3 课程设计报告内容及分工情况 1.3.1课程设计报告内容 1.3.2 课程设计分工情况 2.总体设计 2.1功能模块图 2.2 主函数 mai ...
- c语言班级管理系统需求分析报告,班级管理系统 C语言报告.doc
班级管理系统 C语言报告 <软件工程与开发实践>软件设计报告题 目班级管理系统学 院计算机学院专 业计算机科学与技术班 级 学 号学生姓名 其他成员组 长 指导教师完成日期2012年6月 ...
- c语言银行卡管理系统程序设计报告,C语言课程设计报告(银行账户信息管理系统).doc...
新疆大学学生课程设计论文 摘要 PAGE I 银行账户管理系统C语言程序设计 摘 要 银行账户管理系统是针对银行账户的日常管理而设计,操作方便而且界面简洁,使用较为简单的C语言作为编程语言,采用软件工 ...
- c语言社团管理系统实验报告,C语言课程设计大学社团管理系统
<C语言课程设计大学社团管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计大学社团管理系统(29页珍藏版)>请在人人文库网上搜索. 1.2010/5/29东北大学秦皇岛 ...
- c语言仓库管理系统实验报告,C语言课程设计仓库管理系统(最新整理)
<C语言课程设计仓库管理系统(最新整理)>由会员分享,可在线阅读,更多相关<C语言课程设计仓库管理系统(最新整理)(12页珍藏版)>请在人人文库网上搜索. 1.includeC ...
最新文章
- [冲昏头脑]IDEA中的maven项目中学习log4j的日志操作
- 关掉linux下的讨厌的beep声
- numpy.loadtxt()用法
- indesign2020突然闪退_Adobe Photoshop 2020打不开,总是闪退,罪魁祸首在这里
- 智能车s3010舵机工作电压_全国大学生智能车竞赛决战南京信息工程大学
- STM32 串口接收流程-串口接收中断
- mysql dns反向解析_DNS练习之反向解析(示例代码)
- LINUX下载编译libgsm
- 【TiDB DevCon 2020】金融专题论坛演讲视频汇总
- 编译原理-第一节(东南大学廖力老师)
- PHP实现输入地址,获取当前位置的经纬度,$lng和$lat即为经纬度的返回值
- STEINS;GATE ELITE(中文名《命运石之门:精英》)游戏通关流程
- java随机生成26个大写字母
- 2022头像小程序源码+支持姓氏头像生成
- 用Python+HTML做的点名器
- 目前福岛高水平辐射量可能由2号反应堆释放
- 最长子序列DP和二分法
- 【Linux命令】modprobe命令
- 知识付费的七种变现方式
- 微型计算机定义,微处理器、微型计算机与微型计算机系统的定义