簡介:

用順序表實現(xiàn)電話本的功能(C語言)
電話本具有如下4個功能:
1.創(chuàng)建一個電話本,電話本里面包含名字和電話號碼
2.在指定位置插入一個名字和電話號碼
3.在指定位置刪除一個名字和電話號碼
4.打印電話本
代碼:
//其中那個color函數(shù)是我為了美觀加上去的,如果感覺不需要的話可以將代碼中所有有關color的都刪掉即可
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <windows.h>
using namespace std;
const int N = 1000+10;
int n;
struct Node
{
char name[100];
char number[20];
};
typedef struct
{
struct Node* mylist;
int len;
int listsize;
}sqlist;
void Init(sqlist &s1);
void Creat(sqlist &s1);
void Delet(sqlist &s1);
void Add(sqlist &s1);
void Print(sqlist &s1);
void color(const unsigned short color1);
int main()
{
sqlist s1;
Init(s1);
color(10);
printf("\n\n\n\n --------------- WSM's phonetxt-------------------\n\n");
printf(" |You could chose these ops: |\n");
printf(" | 1.Creat the phonetxt |\n");
printf(" | 2.Delet the member in the phonetxt |\n");
printf(" | 3.Add the member in the phonetxt |\n");
printf(" | 4.Print the phonetxt |\n");
color(14);
printf("\n\n\n\n Now,you can enter an optiton:");
int op;
while(scanf("%d",&op)!=EOF)
{
if(op==1) Creat(s1);
else if(op==2) Delet(s1);
else if(op==3) Add(s1);
else if(op==4) Print(s1);
else
{
color(4);
printf(" You input is invalid,reinput please:)\n");
color(14);
}
printf("\n Now,you can enter an optiton:");
}
return 0;
}
void Init(sqlist &s1)
{
s1.mylist = (Node *)malloc(100*sizeof(Node));
s1.len = 0;
s1.listsize = 100;
return;
}
void Creat(sqlist &s1)
{
s1.len = 0;
cout<<" how many numbers do you want to built:";
scanf("%d",&n);
cout<<" please input their informations:"<<endl;
for(int i=1;i<=n;i++)
{
printf(" input the %d person name:",i);
scanf(" %s",s1.mylist[i-1].name);
printf(" input the %d person phonenumber:",i);
scanf(" %s",s1.mylist[i-1].number);
s1.len++;
}
color(9);
cout<<" well done,the phonetxt has been created!!!"<<endl;
color(14);
return;
}
void Delet(sqlist &s1)
{
cout<<" please enter the number you want to delet:";
heredelet:
int x;
scanf("%d",&x);
if( x<1 || x>s1.len)
{
color(4);
cout<<" sorry,your input is invalid,please input again:";
color(14);
goto heredelet;
}
struct Node *p,*q;
p = &(s1.mylist[x-1]);
q = s1.mylist + s1.len -1;
for(++p;p<=q;++p) *(p-1) = *p;
--s1.len;
color(9);
cout<<" well done,the member has been deleted!!!"<<endl;
color(14);
return;
}
void Add(sqlist &s1)
{
cout<<" please enter the number you want to add:";
hereadd:
int x;
scanf("%d",&x);
if( x<1 || x>s1.len+1)
{
color(4);
cout<<" sorry,your input is invalid,please input again:";
color(14);
goto hereadd;
}
struct Node cur;
printf(" input the person name:");
scanf(" %s",cur.name);
printf(" input the person phonenumber:");
scanf(" %s",cur.number);
struct Node *p,*q;
q = &(s1.mylist[x-1]);
for(p=&(s1.mylist[s1.len-1]);p>=q;--p) *(p+1) = *p;
*q = cur;
++s1.len;
color(9);
cout<<" well done,the member has been added!!!"<<endl;
color(14);
return;
}
void Print(sqlist &s1)
{
color(8);
printf(" Name------phonenumber\n");
struct Node *q = s1.mylist;
for(q;q<s1.mylist+s1.len;q++)
{
printf(" %s %s\n",q->name,q->number);
}
color(14);
color(9);
cout<<" well done,the phonetxt is above!!!"<<endl;
color(14);
return;
}
void color(const unsigned short color1)
{
if(color1>=0&&color1<=15)
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color1);
else
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
return;
}另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.chinadenli.net,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)頁標題:C語言使用順序表實現(xiàn)電話本功能-創(chuàng)新互聯(lián)
當前地址:http://www.chinadenli.net/article4/dehhie.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、網(wǎng)站策劃、網(wǎng)站建設、App開發(fā)、網(wǎng)站內(nèi)鏈、網(wǎng)站設計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)