Linux下c语言实现通讯录,C语言使用顺序表实现电话本功能

简介:

用顺序表实现电话本的功能(C语言)

电话本具有如下4个功能:

1.创建一个电话本,电话本里面包含名字和电话号码

2.在指定位置插入一个名字和电话号码

3.在指定位置删除一个名字和电话号码

4.打印电话本

//其中那个color函数是我为了美观加上去的,如果感觉不需要的话可以将代码中所有有关color的都删掉即可

#include

#include

#include

#include

#include

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<

scanf("%d",&n);

cout<

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:",s1.mylist[i-1].number);

s1.len++;

}

color(9);

cout<

color(14);

return;

}

void Delet(sqlist &s1)

{

cout<

heredelet:

int x;

scanf("%d",&x);

if( x<1 || x>s1.len)

{

color(4);

cout<

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<

color(14);

return;

}

void Add(sqlist &s1)

{

cout<

hereadd:

int x;

scanf("%d",&x);

if( x<1 || x>s1.len+1)

{

color(4);

cout<

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<

color(14);

return;

}

void Print(sqlist &s1)

{

color(8);

printf(" Name------phonenumber\n");

struct Node *q = s1.mylist;

for(q;q

{

printf(" %s %s\n",q->name,q->number);

}

color(14);

color(9);

cout<

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;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是编程之家为你收集整理的C语言使用顺序表实现电话本功能全部内容,希望文章能够帮你解决C语言使用顺序表实现电话本功能所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值