系统功能设置
来源:互联网 发布:腰包 知乎 编辑:程序博客网 时间:2024/05/21 21:45
#include "stdio.h"#include "stdlib.h"#include "windows.h " //清屏函数头文件#include "string.h"typedef struct Stuff{ char number[10]; //编号 char name[10]; //姓名 char sex[8]; //性别 char birthday[10]; //生日 char degree[20]; //学历 char business[20]; //职务 char phone[15]; //电话 char place[50]; //住址 char con[50]; //判断关键字 struct Stuff *next; }Stuff;char Menu(); //菜单函数Stuff *App(Stuff *head); //添加函数void Sort(Stuff *head); //排序函数Stuff *Search(Stuff *head); //查找函数Stuff *Change(Stuff *head,char n[10]); //更改函数void Scpy(char *p,char *q); //排序中用于交换员工信息Stuff *Del(Stuff *head,char n[10]); //删除函数int Sel(char ch,Stuff *p,Stuff *q); //判断排序及关键字专用函数void Show(Stuff *head); //输出函数void Fre(Stuff *head); //释放函数int n=1; //定义全局变量,实现人数统计//菜单函数char Menu(void){int ch; printf("---------------------------菜单-------------------------\n"); printf(" 1.添加员工信息\n"); printf(" 2.员工信息排序\n"); printf(" 3.查找员工信息\n"); printf(" 4.输出员工信息\n"); printf(" 5.更改员工信息\n"); printf(" 6.删除员工信息\n"); printf(" 0.退出\n");printf("--------------------------------------------------------\n");printf("请选择你的操作:"); scanf(" %d",&ch); return ch;}//添加成员函数Stuff *App(Stuff *head){Stuff *p=NULL,*q=head; while(n){p=(Stuff *)malloc(sizeof(Stuff)); //申请结构体空间 if(p==NULL){printf("空间不足,自动退出系统!\n"); exit(0);} p->next =NULL; //指针域为空 printf("请输入第%d名员工:\n",n); printf(" 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 :\n"); getchar(); scanf("%s",p->number ); if(strcmp(p->number,"#")){++n;scanf("%s%s%s%s%s%s%s",p->name ,p->sex ,p->birthday ,p->degree ,p->business ,p->phone ,p->place ); p->con[0]='\0'; //防止后面判断出现随机值 if(head==NULL)head=p; else{while(q->next !=NULL) q=q->next ; q->next =p;} q=p; //尾插法}if(!strcmp(p->number ,"#")){free(p); //完成添加,释放多余空间 break;}} return head;}//排序函数void Sort(Stuff *head){char ch; Stuff *p,*q,*r; while(1){printf("请选择排序条件:1.编号|2.姓名|0.退出\n");getchar(); scanf("%c",&ch); if(ch=='0') break; if(ch<'1'||ch>'2'){printf("输入错误,请重新输入!\n"); continue;} p=head; while(p->next!=NULL) //选择排序{q=p->next; r=p; while(q!=NULL){if(Sel(ch,r,q)) //调用判断函数r=q; q=q->next;} if(r!=p) //交换信息{Scpy(r->number,p->number); Scpy(r->name,p->name); Scpy(r->sex,p->sex);Scpy(r->birthday,p->birthday); Scpy(r->degree,p->degree); Scpy(r->business,p->business); Scpy(r->phone,p->phone); Scpy(r->place,p->place);} p=p->next;} Show(head); //输出}}//交换函数void Scpy(char *p,char *q){char c[50]; strcpy(c,p); strcpy(p,q); strcpy(q,c);}//判断函数int Sel(char ch,Stuff *p,Stuff *q){switch(ch) //实现各个关键字查找{case '1':return strcmp(q->number ,p->number )<0||strcmp(q->con ,p->number )==0 ; case '2': return strcmp(q->name ,p->name )<0||strcmp(q->con ,p->name )==0 ; default : exit(0);}} //查找函数Stuff *Search(Stuff *head){Stuff *p=NULL,*q; int flag; //查找判断 char ch,sh; //两个控制变量 while(1){printf("请输入要查找的条件:1.编号2.姓名0.退出\n"); scanf(" %c",&ch); if(ch=='0') break; if(ch<'1'||ch>'2'){printf("输入错误,请重新输入!\n");continue;}getchar();printf("请输入:"); gets(q->con);p=head; //指向表头flag=0;while(p!=NULL){if(strcmp(q->con,p->number)==0||strcmp(q->con,p->name)==0){printf("员工信息如下:\n");printf(" 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 \n%s \t%s \t%s \t%s \t%s \t%s \t%s \t%s\n",p->number ,p->name ,p->sex ,p->birthday ,p->degree ,p->business ,p->phone ,p->place );printf("是否需要:1.更改 2.删除 3.继续\n");scanf(" %c",&sh);if(sh=='1')Change(head,p->number); //调用更改函数else if(sh=='2')head=Del(head,p->number); //调用删除函数flag=1;break;}p=p->next ;}if(flag==0)printf("没有找到该员工信息!\n");}return head;}//更改函数Stuff *Change(Stuff *head,char n[10]){Stuff *p=head;int flag=0;if(head==NULL)printf("信息表为空,请先建立信息表!\n");else{while(p!=NULL){if(!strcmp(p->number,n)){printf("找到员工,请输入新的信息:\n 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 \n");scanf("%s%s%s%s%s%s%s%s",p->number ,p->name ,p->sex ,p->birthday ,p->degree ,p->business ,p->phone ,p->place );printf("员工信息如下:\n");flag=1;}p=p->next;}if(flag==0)printf("未找到该员工信息!\n");}Show(head); return head;}//删除函数Stuff *Del(Stuff *head,char n[10]){Stuff *p,*pr;int flag;flag=0;p=head,pr=head;if(head==NULL)printf("未找到员工信息!\n");else{while(strcmp(p->number ,n)&&p->next !=NULL){pr=p;p=p->next ;}if(!strcmp(p->number ,n)){if(p==head)head=p->next ;elsepr->next=p->next ;free(p);printf("删除成功!\n");n--;}elseprintf("未找到员工信息!\n");}Show(head); return head;}//输出函数void Show(Stuff *head){Stuff *p=head;int i=1;if(head!=NULL){printf("员工信息如下:\n"); while(p!=NULL){printf("%d. %s %s %s %s %s %s %s %s\n",i++,p->number ,p->name ,p->sex ,p->birthday ,p->degree ,p->business ,p->phone ,p->place); p=p->next ;}}else{printf("信息为空!\n");}}//释放函数void Fre(Stuff *head){Stuff *p;while(head!=NULL){p=head;head=head->next ;free(p);}} void main(){char Index[10]; Stuff *head=NULL; //链表头指针定义 printf("---------------欢迎使用《员工信息管理系统》-------------\n"); Sleep(1000); while(1){switch(Menu()){case 1:printf("请输入员工信息,直接输入'#'结束\n"); head=App(head); break; case 2: Sort(head); break; case 3: head=Search(head); break; case 4: Show(head); break; case 5: printf("请输入员工编号:"); scanf("%s",Index); Change(head,Index); break; case 6: printf("请输入员工编号:"); scanf("%s",Index); head=Del(head,Index); break; case 0: printf("-------------------欢迎下次光临!-----------------\n");Sleep(2000); exit(0);break; default: printf("输入错误,请重新输入!\n");} printf("按Enter键继续~"); getchar();getchar(); system("cls"); //清屏效果} Fre(head);} //结束
系统菜单
输入数据
(1)输入操作字符1;
(2)输入员工信息;
(3)输入“#”字符结束输入。
显示数据
信息排序
更改信息
删除信息
0 0
- 系统功能设置
- 系统设置功能
- CentOS设置系统回收站功能
- Android调用系统设置壁纸功能
- ios --- 调用系统"设置"里的功能 .
- ios --- 调用系统"设置"里的功能
- 【Win7系统的电源设置功能】
- wince系统功能或设置怎么调用
- 系统功能显示相关的设置
- ios --- 调用系统"设置"里的功能
- ios --- 调用系统"设置"里的功能
- ios --- 调用系统"设置"里的功能
- ios --- 调用系统"设置"里的功能
- ios --- 调用系统"设置"里的功能
- ios --- 调用系统"设置"里的功能
- iOS调用系统功能与跳转到系统设置
- 巧妙设置 激活Google日历任务功能-系统技巧
- chkconfig 功能说明:检查,设置系统的各种服务。
- 看完才知道酒瓶用处这么多
- 如何获取recyclerView的第一个Item的视图
- Python 1. 如何选择python版本,以及如何选择开发环境(IDE)
- vim自动补全神器Youcompleteme的安装
- 系统学习C语言
- 系统功能设置
- 安卓定时任务Timer一直失败
- androidStudio运行项目报错,
- Android SQLite无法查询数据
- 有没有方法能够自动获取手机的“有权查看使用情况”这个权限
- ASP编写一个网页界面,页面中设置按钮,按钮能够调用外部命令行程序
- JAVA 数组转换成List及List转换成数组
- 分解质因数
- IT人员应该经常逛的网站