C語言使用順序表實(shí)現(xiàn)電話本功能
簡介:
用順序表實(shí)現(xiàn)電話本的功能(C語言)
電話本具有如下4個(gè)功能: 
1.創(chuàng)建一個(gè)電話本,電話本里面包含名字和電話號(hào)碼 
2.在指定位置插入一個(gè)名字和電話號(hào)碼 
3.在指定位置刪除一個(gè)名字和電話號(hào)碼 
4.打印電話本
代碼:
//其中那個(gè)color函數(shù)是我為了美觀加上去的,如果感覺不需要的話可以將代碼中所有有關(guān)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;
}
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
上一篇:使用C語言編寫鋼琴小程序
欄 目:C語言
本文標(biāo)題:C語言使用順序表實(shí)現(xiàn)電話本功能
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/901.html
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
 - 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)式函數(shù)庫
 - 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
 - 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)數(shù)怎么表達(dá)
 - 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
 - 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
 - 04-02c語言沒有round函數(shù) round c語言
 - 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
 - 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
 - 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘
 


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
 - 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
 - 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
 - 04-02c語言用函數(shù)寫分段 用c語言表示分段
 - 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)
 - 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
 - 04-02c語言沒有round函數(shù) round c語言
 - 04-02c語言分段函數(shù)怎么求 用c語言求分段
 - 04-02C語言中怎么打出三角函數(shù) c語言中怎
 - 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
 
隨機(jī)閱讀
- 01-10delphi制作wav文件的方法
 - 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
 - 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
 - 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
 - 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
 - 04-02jquery與jsp,用jquery
 - 01-11ajax實(shí)現(xiàn)頁面的局部加載
 - 08-05DEDE織夢data目錄下的sessions文件夾有什
 - 01-10C#中split用法實(shí)例總結(jié)
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 


