日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

单位员工通讯录管理系统(线性表的应用)

發(fā)布時(shí)間:2025/4/16 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单位员工通讯录管理系统(线性表的应用) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

[問題描述]

為某個(gè)單位建立一個(gè)員工通訊錄管理系統(tǒng),可以方便查詢每一個(gè)員工的辦公室電話、手機(jī)號(hào)、及電子郵箱。其功能包括通訊錄鏈表的建立、員工通訊信息的查詢、修改、插入與刪除、以及整個(gè)通訊錄表的輸出。

[實(shí)現(xiàn)提示]

可以采用單鏈表的存儲(chǔ)結(jié)構(gòu),如可定義如下的存儲(chǔ)結(jié)構(gòu):

typedef struct {? /*員工通訊信息的結(jié)構(gòu)類型定義*/

??? char num[5];?????? /*員工編號(hào)*/

? ??char name[10];????? /*員工姓名*/

?? ?char phone[15];???? /*辦公室電話號(hào)碼*/

char call[15];??? ?/*手機(jī)號(hào)碼*/

char mail[25];????? /*郵箱*/

}DataType;

/*通訊錄單鏈表的結(jié)點(diǎn)類型*/

typedef struct node

{ DataType data;?? /*結(jié)點(diǎn)的數(shù)據(jù)域*/

? struct node *next;?? /*結(jié)點(diǎn)的指針域*/

}ListNode,*LinkList;

#include<iostream> #define OK 1 #define ERROR 0 #define OVERFLOW -2 #include<cstring> using namespace std;typedef int Status;typedef struct { /*員工通訊信息的結(jié)構(gòu)類型定義*/char num[5]; /*員工編號(hào)*/char name[10]; /*員工姓名*/ char phone[15]; /*辦公室電話號(hào)碼*/char call[15]; /*手機(jī)號(hào)碼*/char mail[25]; /*郵箱*/ }DataType;/*通訊錄單鏈表的結(jié)點(diǎn)類型*/ typedef struct node{DataType data; /*結(jié)點(diǎn)的數(shù)據(jù)域*/struct node *next; /*結(jié)點(diǎn)的指針域*/ }ListNode,*LinkList; LinkList L; /*單鏈表的初始化*/ void InitList(LinkList &L){/*構(gòu)造一個(gè)空的單鏈表L*/L=new ListNode;//生成的新的結(jié)點(diǎn)是頭結(jié)點(diǎn),L是指向結(jié)點(diǎn)的頭指針 L->next=NULL;//頭結(jié)點(diǎn)指針域?yàn)榭? }/*輸出全體員工的信息*/ void FindListAll(LinkList L){LinkList p=L;cout<<"員工編號(hào)"<<" "<<"員工姓名"<<" "<<"辦公室電話"<<" "<<"手機(jī)號(hào)碼"<<" "<<"郵箱"<<endl;while(p->next){//指針域不為空就輸出 p=p->next;cout<<p->data.num<<"\t "<<p->data.name<<"\t "<<p->data.phone<<" "<<p->data.call<<"\t"<<p->data.mail<<endl;} }/*單鏈表的插入(插入某位員工的信息)尾插法*/ void ListInsert(LinkList &L){LinkList p=new ListNode;//申請(qǐng)一個(gè)結(jié)點(diǎn)空間 cout<<"PS:目前支持員工編號(hào)4位,員工姓名4位,電話9位,手機(jī)9位"<<endl;cout<<endl; cout<<"請(qǐng)輸入員工的信息:員工編號(hào),員工姓名,辦公室電話,手機(jī)號(hào),郵箱"<<endl;//單鏈表數(shù)據(jù)域是結(jié)構(gòu)體類型 cin>>p->data.num>>p->data.name>>p->data.phone>>p->data.call>>p->data.mail;LinkList q=L;while(q->next){//檢查該員工編號(hào)是否存在 q=q->next;if(strcmp(p->data.num,q->data.num)==0){cout<<"該員工信息已存在,請(qǐng)重新輸入!"<<endl; ListInsert(L); }}LinkList m=L;//*找到最后一個(gè)結(jié)點(diǎn) while(m->next){m=m->next;}m->next=p;p->next=NULL;cout<<"插入成功!"<<endl;FindListAll(L); system("pause");system("cls"); } /*單鏈表的刪除(根據(jù)編號(hào)刪除某位員工的全部信息)*/ void ListDelete(LinkList &L){char a[5];cout<<"請(qǐng)輸入要?jiǎng)h除的員工的編號(hào):";cin>>a;LinkList p=L; if(p->next==NULL) exit(OVERFLOW);LinkList act=L;//保存p的前驅(qū) Status b=ERROR;//設(shè)置一個(gè)標(biāo)記,如果沒有找到這個(gè)標(biāo)記還是0 while(p->next){//從頭結(jié)點(diǎn)開始找員工編號(hào) act=p;p=p->next;if(strcmp(a,p->data.num)==0){//如果找到了就標(biāo)記為1 b=OK;break;}}if(b){//刪除操作 act->next=p->next;delete p;cout<<"刪除成功!"<<endl; FindListAll(L); system("pause");system("cls");}else{cout<<"請(qǐng)輸入正確的員工編號(hào)!"<<endl;//沒有此員工(編號(hào)錯(cuò)誤,重新輸入) ListDelete(L); } }/*修改員工信息*/ Status ListChagneSpe(LinkList &p){Status chose;cout<<"*********2.姓名*********"<<endl;cout<<"*********3.辦公室電話***"<<endl;cout<<"*********4.手機(jī)號(hào)碼*****"<<endl;cout<<"*********5.郵箱*********"<<endl;cout<<"請(qǐng)選擇您要修改的信息:";cin>>chose;switch(chose){//選擇后直接輸入即可 case 2: cin>>p->data.name; break; case 3: cin>>p->data.phone; break;case 4: cin>>p->data.call; break;case 5: cin>>p->data.mail; break;default: cout<<"請(qǐng)輸入正確的選擇!"<<endl; ListChagneSpe(p);} cout<<"是否需要繼續(xù)修改?(y(是)/other(其他修改完成))";char is_continue;cin>>is_continue;if(is_continue=='y') ListChagneSpe(p);elsereturn OK; return OK; } /*單鏈表的修改(根據(jù)編號(hào)修改員工的某一項(xiàng)信息)*/ void ListChange(LinkList &L){char a[5];Status b=ERROR;cout<<"請(qǐng)輸入要修改的員工的編號(hào):";cin>>a;LinkList p=L;//找存儲(chǔ)此員工信息的結(jié)點(diǎn)if(p->next==NULL) exit(OVERFLOW); while(p->next){p=p->next;if(strcmp(a,p->data.num)==0){b=ListChagneSpe(p);break;} }if(b){cout<<"修改成功!"<<endl;FindListAll(L);system("pause");system("cls");}else{cout<<"請(qǐng)輸入正確的員工編號(hào)!"<<endl;//沒有此員工(編號(hào)錯(cuò)誤,重新輸入) ListChange(L); } } /*輸出某員工的信息*/ void FindListSome(LinkList L){char a[5];Status b=ERROR;cout<<"請(qǐng)輸入員工編號(hào):";cin>>a;LinkList p=L;if(p->next==NULL) exit(OVERFLOW);while(p->next){p=p->next;if(strcmp(a,p->data.num)==0){b=OK;break;}}if(b){cout<<"員工編號(hào)"<<" "<<"員工姓名"<<" "<<"辦公室電話"<<" "<<"手機(jī)號(hào)碼"<<" "<<"郵箱"<<endl;cout<<p->data.num<<"\t "<<p->data.name<<"\t "<<p->data.phone<<" "<<p->data.call<<"\t"<<p->data.mail<<endl;}else{cout<<"員工編號(hào)錯(cuò)誤,請(qǐng)重新輸入!"<<endl;FindListSome(L); } }/*單鏈表的查詢(根據(jù)編號(hào)查詢某員工信息/查詢?nèi)繂T工信息)*/ void FindList(LinkList L){cout<<"1.查詢某員工的信息"<<endl;cout<<"2.查詢?nèi)w員工的信息"<<endl; cout<<"請(qǐng)選擇您要查詢的操作:";Status chose;cin>>chose;switch(chose){case 1: FindListSome(L);break;case 2: FindListAll(L); break;default : cout<<"請(qǐng)輸入正確的選擇!"<<endl;FindList(L);} system("pause");system("cls"); }/*功能實(shí)現(xiàn)*/ void SystemMenu(LinkList &L){Status chose;cout<<"******************************************"<<endl; cout<<"**********歡迎進(jìn)入×××員工系統(tǒng)**********"<<endl; cout<<"**************1.添加員工信息**************"<<endl;cout<<"**************2.刪除員工信息**************"<<endl;cout<<"**************3.修改員工信息**************"<<endl;cout<<"**************4.查找員工信息**************"<<endl;cout<<"**************5.退出系統(tǒng)******************"<<endl;cout<<"******************************************"<<endl;cout<<"請(qǐng)輸入您要選擇的操作:";cin>>chose;switch(chose){case 1: {ListInsert(L);SystemMenu(L);}case 2: {ListDelete(L);SystemMenu(L);}case 3: {ListChange(L);SystemMenu(L);}case 4: {FindList(L);SystemMenu(L);}case 5: {exit(0);}default : {cout<<"輸入異常!請(qǐng)重新輸入!" <<endl;system("pause");system("cls");SystemMenu(L); } } } int main(){InitList(L);SystemMenu(L);return 0; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/zut-syp/p/10543708.html

總結(jié)

以上是生活随笔為你收集整理的单位员工通讯录管理系统(线性表的应用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。