欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

用C語言實現(xiàn)簡易通訊錄

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

C語言實現(xiàn)一個通訊錄,通訊錄可以用來存儲1000個人的信息,每個人的信息包括:

姓名、性別、年齡、電話、住址

**提供方法:

1. 添加聯(lián)系人信息
2. 刪除指定聯(lián)系人信息
3. 查找指定聯(lián)系人信息
4. 修改指定聯(lián)系人信息
5. 顯示所有聯(lián)系人信息
6. 清空所有聯(lián)系人
7. 以名字排序所有聯(lián)系人**

思路分析:

首先我們可以分三個模塊來解決這個問題,第一個模塊我們需要一個頭文件,這個頭文件里可以包含一些相應(yīng)信息,當(dāng)實現(xiàn)文件和測試文件包含自己定義的頭文件時便可以獲得一些相關(guān)的信息。所以頭文件里應(yīng)該包括一個結(jié)構(gòu)體,這個結(jié)構(gòu)體里應(yīng)包含姓名,性別,年齡,電話,住址。同時還可以定義一個結(jié)構(gòu)體,這個結(jié)構(gòu)體里包含通訊錄,同時通訊錄里人員的計數(shù)變量,將通訊錄的地址傳到別的地方便可以實現(xiàn)對它遍歷或者其他操作。
第二個模塊便是我們的測試函數(shù),測試函數(shù)便可以實現(xiàn)我們的菜單打印,同時由我們接收不同的值便可以實現(xiàn)不同的操作,就是相應(yīng)的方法的實現(xiàn),這里很明顯可以通過一個switch語句來進(jìn)行控制。
第三個模塊便是我們的方法實現(xiàn)的函數(shù),將模塊2里定義的類型為通訊錄的地址傳到各個方法里,這樣便可以實現(xiàn)對通訊錄的操作。
1.linkman.h(頭文件)

#ifndef __LINKMAN_H__
#define __LINKMAN_H__

#include<stdio.h>
#include<windows.h>
#include<string.h>
#pragma warning (disable:4996)
typedef struct LINKMAN//建立結(jié)構(gòu)體,存放聯(lián)系人信息
{
  char name[20];
  char sex[10];
  int age;
  int tel[12];
  char addr[50];
}LINKMAN;

typedef struct Statis //把通訊錄和人員統(tǒng)計放在結(jié)構(gòu)體內(nèi)
{
  LINKMAN num[1000];
  int count;
}Statis;

void inint_linkman(Statis *p);//初始化數(shù)組
void Add_linkman(Statis *p);// 添加聯(lián)系人信息
void Dele_linkman(Statis *p);//刪除指定聯(lián)系人信息
void Find_linkman(Statis *p);//查找指定聯(lián)系人信息
void Revise_linkman(Statis *p);//修改指定聯(lián)系人信息
void Display_linkman(Statis *p);//顯示所有聯(lián)系人信息
void Empty_linkman(Statis *p);//清空所有聯(lián)系人 
void sort_linkman(Statis *p);//以名字排序所有聯(lián)系人
#endif

2.test.c(測試)

#include "linkman.h"
Statis sta;
void menu()//菜單
{
  printf("***********************************\n");
  printf("********1.添加聯(lián)系人信息***********\n");
  printf("********2.刪除指定聯(lián)系人信息*******\n");
  printf("********3.查找指定聯(lián)系人信息*******\n");
  printf("********4.修改指定聯(lián)系人信息*******\n");
  printf("********5.顯示所有聯(lián)系人信息*******\n");
  printf("********6.清空所有聯(lián)系人***********\n");
  printf("********7.以名字排序所有聯(lián)系人*****\n");
  printf("**************按0退出程序**********\n");
  printf("***********************************\n");

}

void test()
{
  int i = 0;
  do
  {
    menu();
    printf("請輸入你要進(jìn)行的選項:");
    scanf("%d", &i);
    switch (i)
    {
    case 1:
      Add_linkman(&sta);
      break;
    case 2:
      Dele_linkman(&sta);
      break;
    case 3:
      Find_linkman(&sta);
      break;
    case 4:
      Revise_linkman(&sta);
      break;
    case 5:
      Display_linkman(&sta);
      break;
    case 6:
      Empty_linkman(&sta);
      break;
    case 7:
      sort_linkman(&sta);
      break;
    case 0:
      exit(1);
      break;
    default:
      printf("輸入錯誤\n");
      break;
    }
  } while (i);
}


int main()
{
  inint_linkman(&sta);
  test();
  system("pause");
  return 0;
}

3.game.c(實現(xiàn))

#include "linkman.h"


void inint_linkman(Statis *p)
{
  int count = sizeof(p->num);
  p->count = 0;
  memset(p->num, 0,count);
}
int Find(Statis *p, char *pname)//對于一個聯(lián)系人是否存在封裝一個函數(shù),在后面的修改、刪除、查找可以用到
{
  int i = 0;
  for (i = 0; i < (p->count); i++)
  {
    if (strcmp(p->num[i].name, pname) == 0)
      return i;

  }
  return -1;
}

void menu1()//修改聯(lián)系人時所用到的菜單
{
  printf("*********************\n");
  printf("****1.姓名*2.性別****\n");
  printf("****3.年齡*4.電話****\n");
  printf("****5.地址*6.返回****\n");
  printf("*********************\n");
}

void Add_linkman(Statis *p)//添加聯(lián)系人
{
  printf("請輸入你要添加的聯(lián)系人姓名:\n");
  scanf("%s", p->num[p->count].name);
  printf("請輸入你要添加的聯(lián)系人性別:\n");
  scanf("%s", p->num[p->count].sex);
  printf("請輸入你要添加的聯(lián)系人年齡:\n");
  scanf("%d", &(p->num[p->count].age));
  printf("請輸入你要添加的聯(lián)系人電話:\n");
  scanf("%s", p->num[p->count].tel);
  printf("請輸入你要添加的聯(lián)系人地址:\n");
  scanf("%s", p->num[p->count].addr);
  if ((p->count) > 1000)
  {
    printf("聯(lián)系人上限\n");
  }
  else
  {
    printf("添加成功\n");
    p->count++;
  }
}

void Dele_linkman(Statis *p)//刪除聯(lián)系人
{
  char name[20] = { 0 };
  int result = 0;
  int n = 0;
  int i = 0;
  printf("請輸入要刪除人的姓名:\n");
  scanf("%s", name);
  result = Find(p, name);
  if (result != -1)
  {
    printf("你是否要刪除該聯(lián)系人?\n");
    printf("刪除請按1,不刪除請按0\n");
    scanf("%d", &n);
    if (n == 1)
    {
      for (i = 0; i < (p->count)-1; i++)
      {
        p->num[i] = p->num[i + 1];
      }
      p->count --;
      printf("刪除成功\n");
    }
    else
    {
      printf("刪除失敗\n");
    }
  }
  else
  {
    printf("你要刪除的聯(lián)系人不存在\n");
  }
}

void Find_linkman(Statis *p)//查找聯(lián)系人
{
  char name[20] = { 0 };
  int result = 0;
  printf("請輸入要查找聯(lián)系人的姓名:\n");
  scanf("%s", name);
  result = Find(p, name);
  if (result != -1)
  {
    printf("姓名:%s\n", p->num[result].name);
    printf("性別:%s\n", p->num[result].sex);
    printf("年齡:%d\n", p->num[result].age);
    printf("電話:%s\n", p->num[result].tel);
    printf("地址:%s\n", p->num[result].addr);
  }
  else
  {
    printf("你要查找的聯(lián)系人不存在\n");
  }
}

void Revise_linkman(Statis *p)//修改聯(lián)系人
{
  char name[20] = {0};
  int result = 0;
  printf("請輸入你要修改聯(lián)系人的姓名:\n");
  scanf("%s", name);
  result = Find(p, name);
  if (result != -1)
  {
    printf("姓名:%s\n", p->num[result].name);
    printf("性別:%s\n", p->num[result].sex);
    printf("年齡:%d\n", p->num[result].age);
    printf("電話:%s\n", p->num[result].tel);
    printf("地址:%s\n", p->num[result].addr);
    int i = 0;
    do
    {
      menu1();
      printf("輸入你要修改的選項:\n");
      scanf("%d", &i);
      switch (i)
      {
      case 1:
        printf("請把姓名修改成:");
        scanf("%s", p->num[result].name);
        break;
      case 2:
        printf("請把性別修改成:");
        scanf("%s", p->num[result].sex);
        break;
      case 3:
        printf("請把年齡修改成:");
        scanf("%d", &(p->num[result].age));
        break;
      case 4:
        printf("請把電話修改成:");
        scanf("%s", p->num[result].tel);
        break;
      case 5:
        printf("請把地址修改成:");
        scanf("%s", p->num[result].addr);
        break;
      case 0:
        break;
      default:
        printf("輸入錯誤");
        break;
      }
    } while (i);
  }
  else
  {
    printf("你要修改的聯(lián)系人不存在\n");
  }
}

void Display_linkman(Statis *p)//打印所有聯(lián)系人信息
{
  int i = 0;
  printf("輸出所有人的信息:\n");
  printf("%10s%7s%6s%8s%10s\n","名字","性別","年齡","電話","住址");
  for (i = 0; i <(p->count); i++)
  {
    printf("%11s", p->num[i].name);
    printf("%5s", p->num[i].sex);
    printf("%5d", p->num[i].age);
    printf("%10s", p->num[i].tel);
    printf("%12s", p->num[i].addr);
    printf("\n");
  }
}

void Empty_linkman(Statis *p)//清空聯(lián)系人
{
  p->count = 0;
}

void sort_linkman(Statis *p)//以名字排序所有聯(lián)系人(冒泡)
{
  int i = 0;
  int j = 0;
  for (i = 0; i < p->count - 1; i++)
  for (j = 0; j < p->count - 1 - i; j++)
  {
    if (strcmp(p->num[j].name, p->num[j + 1].name)>0)
    {
      LINKMAN tmp;
      tmp = p->num[j];
      p->num[j] = p->num[j + 1];
      p->num[j + 1] = tmp;
    }
  }
}

程序運行結(jié)果部分示范:

到此為止,我們的簡易通訊錄就實現(xiàn)啦!?。?/p>

上一篇:C語言實現(xiàn)簡單的通訊錄

欄    目:C語言

下一篇:C++遍歷文件夾下所有文件的多種方法

本文標(biāo)題:用C語言實現(xiàn)簡易通訊錄

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/898.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有