C语言/C++常见习题问答集锦(五十二) 之职工信息管理系统
C语言/C++常见习题问答集锦(五十二) 之职工信息管理系统
程序之美
用C语言,职工信息管理系统具体要求
1、基本信息:如工号、姓名、性别、年龄、学历、住址、电话号码、工资等。
2、各职工信息用结构体来实现,建议使用链表来实现建立、删除、插入等操作。
3、需建立输出文件,将输入的职工信息存储在该文件中。
4、主功能界面要求包含有自己的学号信息
PS:请写的简单,并在旁边注释!就当是给傻,子写的!谢谢orz.
#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语言/C++常见习题问答集锦(六十五) 之彩票幸运星
C语言/C++常见习题问答集锦(六十五) 之彩票幸运星 程序之美 1.L1-062 幸运彩票 (15 分) 彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张 ...
- C语言/C++常见习题问答集锦(六十四) 之兔子繁殖(递归与非递归)
C语言/C++常见习题问答集锦(六十四) 之兔子繁殖(递归与非递归) 程序之美 1.C语言,计算1乘以3×5*-乘n的积,并输出结果,n值由键盘接收. #include<stdio.h>v ...
- C语言/C++常见习题问答集锦(七十六)之玫瑰花寄语
C语言/C++常见习题问答集锦(七十六)之玫瑰花寄语 程序之美 在古希腊神话中,玫瑰花集爱与美于一身,既是美神的化身,又溶进了爱神的血液.可以说,在世界范围内,玫瑰是用来表达爱情的通用语言,形成了永不 ...
- C语言/C++常见习题问答集锦(七十四) 之裨补阙漏
C语言/C++常见习题问答集锦(七十四) 之裨补阙漏 程序之美 1.编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址.(注意: 主函数中用****作为结束输入的标 ...
- C语言/C++常见习题问答集锦(四十) 之分门别类
C语言/C++常见习题问答集锦(四十) 之分门别类 程序之美 1.编写一个count函数,统计下输入的字符串中"."(句号)的个数,并进行输出. int count(char* p ...
- C语言/C++常见习题问答集锦(三十三)之人民币兑换
C语言/C++常见习题问答集锦(三十三)之人民币兑换 程序之美 1.将一元钱换成1分,2分和5分硬币,每种硬币的个数大于0,且为5的倍数,编写程序并计算几种换法 C++: #include <i ...
- C语言/C++常见习题问答集锦(四十三) 之持之以恒
C语言/C++常见习题问答集锦(四十三) 之持之以恒 程序之美 1.C语言计算1-1/3+1/5-1/7+1-+1/101 #include<stdio.h> int main(){int ...
- C语言/C++常见习题问答集锦之哆啦A梦
C语言/C++常见习题问答集锦之哆啦A梦 程序之美 前言 主体 运行效果 代码示例 逻辑分析 初始化 绘制流程 资源释放 结束语 程序之美 前言 还记得儿时的哆啦A梦(机器猫)么?每逢周末,就会急匆匆 ...
- C语言/C++常见习题问答集锦[八十三]之数据结构顺序表(operand types are error: no match for “operator==“)
C语言/C++常见习题问答集锦[八十三]之数据结构顺序表{operand types are error: no match for "operator=="} 程序之美 前言 主 ...
最新文章
- 杂记-01.xcode模拟器管理
- 【浅谈数据结构】《数据结构》Data Structure
- [19/04/11-星期四] 多线程_并发协作(生产者/消费者模式_2种解决方案(管程法和信号灯法))...
- 百安俱乐部关于“BotNet专题讨论”资料
- 统计一个数组中正数和负数的个数
- TIME_WAIT太多解决思路和方法
- APP支付报错ALI40247处理方案!
- jsoneditor
- 移动Web UI库(H5框架)
- 服务器断开消息,Websockets - 断开服务器消息
- JAVA开发路线走向高级开发工程师
- git merge fast-forward squash no-ff
- 《当时只道是寻常》——安意如——品纳兰容若《饮水词》
- Linux交换分区 swap分区
- LTR|怎么理解基于机器学习“四大支柱”划分的学习排序方法
- 报错(SQLite 3.8.3 or later is required (found 3.7.17).)的解决办法
- 华为OJ平台题目-砝码重量
- 解决Identify and stop the process that‘s listening on port 8080 端口问题
- 计算机中的虚拟ip,如何设置电脑虚拟IP
- 45种美丽、免费的字体,适用于潮流的网页设计
热门文章
- 2017年哈工大数理逻辑B期末考试参考答案(1)
- Oracle INSERT ALL 语句介绍
- 机器学习(周志华) 第十四章概率图模型
- Python Random随机数
- gps android时钟同步,通过GPS时间同步Android设备?
- jsp中EL表达式显示时中文乱码
- java接口汽车品牌,88_熟练掌握ES Java API_对汽车品牌进行全文检索、精准查询和前缀搜索...
- ScyllaDB 1.2 国内安装更新源发布
- Commvault资源集合(20191009)
- mysql的WAL技术是什么_我们常听到的WAL到底是什么