#include<stdio.h>

 #include <string.h>

 #include<stdlib.h>

 int n=;        

 struct person

 {char name[];

 char WP[];

 char PN[]; 

 char MPN[];

 char FZ[];

 char EM[];

 char QQ[];       

 };

 void fun1 (struct person b[],int B[])     

 {int i=; 

 int H;

 do

 {printf("请输入第%d个联系人的信息\n",i+);

 printf("请输入姓名:");

 scanf("%s",b[B[i]].name); printf("\n");

 printf("请输入工作地址:");

 scanf("%s",b[B[i]].WP); printf("\n");

 printf("请输入固定电话号码:");

 scanf("%s",b[B[i]].PN); printf("\n");

 printf("请输入移动电话号码:");

 scanf("%s",b[B[i]].MPN); printf("\n");

 printf("请输入与本人关系:");

 scanf("%s",b[B[i]].FZ); printf("\n");

 printf("请输入邮箱:");

 scanf("%s",b[B[i]].EM); printf("\n");

 printf("请输入QQ号码:");

 scanf("%s",b[B[i]].QQ); printf("\n");

 i++;n++;                              

 printf("1继续输入;0退出\n");

 scanf("%d",&H);

 }while(H!=);

 printf("\n");

 }

 void fun2 (struct person F[],int h[])     

 {int i=,t,k,p,m;

 t=n/;

 printf("所有联系人的信息如下:\n");

 if(t==)

 {for(i=;i<n;i++)

 printf("姓名:%s\t单位:%s\t固定电话:%s\t移动电话:%s\t分类:%s\t邮箱:%s\tQQ:%s\n",F[h[i]].name,F[h[i]].WP,F[h[i]].PN,F[h[i]].MPN,F[h[i]].FZ,F[h[i]].EM,F[h[i]].QQ);}

 else

 {for(k=;k<t;k++)

 {for(i=;i<;i++)

 printf("姓名:%s\t单位:%s\t固定电话:%s\t移动电话:%s\t分类:%s\t邮箱:%s\tQQ:%s\n",F[h[*k+i]].name,F[h[*k+i]].WP,F[h[*k+i]].PN,F[h[*k+i]].MPN,F[h[*k+i]].FZ,F[h[*k+i]].EM,F[h[*k+i]].QQ);

 printf("输入'1'显示下一页\n");

 scanf("%d",&p);

 if(p==)

 system("cls");}

 m=*t;

 for(i=;m<n;m++)

 printf("姓名:%s\t单位:%s\t固定电话:%s\t移动电话:%s\t分类:%s\t邮箱:%s\tQQ:%s\n",F[h[m]].name,F[h[m]].WP,F[h[m]].PN,F[h[m]].MPN,F[h[m]].FZ,F[h[m]].EM,F[h[m]].QQ);}

 }

 void fun3(struct person d[],int e[])   

 {char x[],p[];

 int D,i;

 do{int m=;

 printf("请输入要查找的信息:\n");

 scanf("%s",&x);

 for(i=;i<n;i++)

 if(!strcmp(d[e[i]].name,x)||!strcmp(d[e[i]].WP,x)||!strcmp(d[e[i]].PN,x)||!strcmp(d[e[i]].MPN,x)||!strcmp(d[e[i]].FZ,x)

    ||!strcmp(d[e[i]].EM,x)||!strcmp(d[e[i]].QQ,x))  

 {D=e[i];   

 printf("要查询的联系人信息如下:\n");

 printf("姓名:%s\t单位:%s\t固定电话:%s\t移动电话:%s\t分类:%s\t邮箱:%s\tQQ:%s\n",d[D].name,d[D].WP,d[D].PN,d[D].MPN,d[D].FZ,d[D].EM,d[D].QQ);}

 printf("输入Y或y继续查询,输入N或n退出\n");

 scanf("%s",&p);

 }while(!strcmp(p,"Y")||!strcmp(p,"y"));

 }

 void fun4(struct person c[],int k[])   

 {char d[]; char p[];

 int t[],j,i,x;

 do{printf("请输入要删除的联系人信息:\n");

 scanf("%s",&d);

 for(i=;i<n;i++)

 if(!strcmp(d,c[k[i]].name)||!strcmp(d,c[k[i]].WP)||!strcmp(d,c[k[i]].PN)||!strcmp(d,c[k[i]].MPN)||!strcmp(d,c[k[i]].FZ)||!strcmp(d,c[k[i]].EM)||!strcmp(d,c[k[i]].QQ))        

 j=k[i];

 for(x=j;x<n;x++)

 k[x]=x+;

 n--;

 printf("输入Y或y继续,输入N或n退出\n");

 scanf("%s",&p);

 }while(!strcmp(p,"Y")||!strcmp(p,"y")); 

 }

 void fun5(struct person b[],int B[])

 {int H;

 do

 {printf("请输入添加联系人的信息\n");

 printf("请输入姓名:");

 scanf("%s",b[B[n]].name); printf("\n");

 printf("请输入工作地址:");

 scanf("%s",b[B[n]].WP); printf("\n");

 printf("请输入固定电话号码:");

 scanf("%s",b[B[n]].PN); printf("\n");

 printf("请输入移动电话号码:");

 scanf("%s",b[B[n]].MPN); printf("\n");

 printf("请输入与本人关系:");

 scanf("%s",b[B[n]].FZ); printf("\n");

 printf("请输入邮箱:");

 scanf("%s",b[B[n]].EM); printf("\n");

 printf("请输入QQ号码:");

 scanf("%s",b[B[n]].QQ); printf("\n");

 n++;                               

 printf("1继续添加;0退出\n");

 scanf("%d",&H);

 }while(H!=);

 printf("\n");

 }

 void fun6(struct person T[],int r[]) 

 {char p[],d[];

 int i,t;

 do

 {printf("请输入要修改联系人信息:\n");

 scanf("%s",&d);

 for(i=;i<n;i++)

 if(!strcmp(d,T[r[i]].name)||!strcmp(d,T[r[i]].WP)||!strcmp(d,T[r[i]].PN)||!strcmp(d,T[r[i]].MPN)||!strcmp(d,T[r[i]].FZ)||!strcmp(d,T[r[i]].EM)||!strcmp(d,T[r[i]].QQ))          

 {t=r[i];                

 printf("请输入改后联系人的信息\n");

 printf("请输入姓名:");

 scanf("%s",T[t].name); printf("\n");

 printf("请输入工作地址:");

 scanf("%s",T[t].WP); printf("\n");

 printf("请输入固定电话号码:");

 scanf("%s",T[t].PN); printf("\n");

 printf("请输入移动电话号码:");

 scanf("%s",T[t].MPN); printf("\n");

 printf("请输入与本人关系:");

 scanf("%s",T[t].FZ); printf("\n");

 printf("请输入邮箱:");

 scanf("%s",T[t].EM); printf("\n");

 printf("请输入QQ号码:");

 scanf("%s",T[t].QQ); printf("\n");     

 }

 printf("输入Y或y继续,输入N或n退出\n");

 scanf("%s",&p);

 }while(!strcmp(p,"Y")||!strcmp(p,"y"));

 }

 void main()

 {struct person a[];   

 int A[],i,X;

 for(i=;i<;i++)

 A[i]=i;

 do

 {printf("*************************菜单************************\n");

 printf("           请选择要进行的操作\n");

 printf("           1 : 输入联系人信息\n");

 printf("           2 :分屏显示所有联系人信息\n");

 printf("           3 : 查找联系人信息\n");

 printf("           4 : 删除联系人信息\n");

 printf("           5 : 增加联系人信息\n");

 printf("           6 : 修改联系人信息\n");

 printf("           0 :退出\n");

 scanf("%d",&X);                   

 switch(X)

  {case : fun1(a,A);break;

     case : fun2(a,A);break;

      case : fun3(a,A);break;

   case : fun4(a,A);break;

      case : fun5(a,A);break;

      case : fun6(a,A);break;

  }

 }while(X!=);

 }

C语言编写的简单的电话本管理系统的更多相关文章

  1. 用C语言编写一个简单的词法分析程序

    问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...

  2. 用 C 语言编写一个简单的垃圾回收器

    人们似乎觉得编写垃圾回收机制是非常难的,是一种仅仅有少数智者和Hans Boehm(et al)才干理解的高深魔法.我觉得编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc例 ...

  3. 用SMIL语言编写一个简单的演示

    一.首先需要注意的几点是: 1.用记事本编写代码时,要保存为后缀名为.smil或.smi的文件,并且编码格式选择为UTF-8. 2.打开.smil文件的播放器选择为:RealPlayer或是Ambul ...

  4. C语言编写一个简单游戏

    感悟:这算是一个起点吧,我都大二了,还这么菜,才开始写游戏,这个游戏很简单,利用随机数猜大小! #include <stdlib.h> #include <stdio.h> # ...

  5. 用java语言编写的简单二叉树

    package com.cjonline.foundation.evisa; public class TestTree { private int data=-1; private TestTree ...

  6. 记一次开发:Qt简单电话本程序

    前言 断断续续学习C++一年了,现在要做课设,觉得控制台界面实在太难看,于是用Qt做一个图形化的程序出来. 学习Qt也没有多久,只是了解了个大概,这次开发基本上是啃了2天的官方帮助文档,然后利用各种Q ...

  7. Java入门篇(一)——如何编写一个简单的Java程序

    最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...

  8. java模拟而一个电话本操作

    哈哈.大家平时都在使用电话本.以下使用java来模拟而一个简单的电话本吧... 首先给出联系人的抽象类 package net.itaem.po; /** * * 电话人的信息 * */ public ...

  9. 用java中的Arraylist实现电话本系统管理

    大致思路:创建一个电话本条目的类,在主类中实例化.用实例化的对象调用构造参数接收输入值,然后将此对象存入Arraylist的对象中,实现动态添加电话本条目. 该系统具备添加.删除.修改.查询所有和按姓 ...

随机推荐

  1. wp中TextBox在中文输入法下清空问题

    如图,在中文输入法下我希望点击“X”,然后把TextBox清空,一般来说,直接用TextBox.Text = "";或者TextBox.Text = String.Empty;就可 ...

  2. Java面试宝典答案详解与感悟(第二天)

    19.构造器 Constructor 是否可被 override? 答案:构造器Constructor不能被继承,因此不能重写Override,但是可以被重载Overload. 解析:构造器:在面向对 ...

  3. 对dijkstra算法的自我理解,c#例子

    dijkstra该算法主要应用在求解最短路径,从最近点开始,广度搜索. 假设有向图中有10个顶点,求其中某个顶点a到其它顶点的最短路径..满足贪心算法的2个标准.时间复杂度为O(N2) 此问题可以进行 ...

  4. C++STL学习笔记_(1)deque双端数组知识

    #include<iostream> using namespace std; #include "deque" #include "algorithm&qu ...

  5. 【Android端 APP 内存分析】使用工具进行APP的内存分析

    Android端可以通过adb 命令直接获取内存信息,当然Android studio也提供了对内存的监控分析工具,并且后续可以结合MAT做分析 今天介绍的是通过Android studio和MAT工 ...

  6. ffmpeg 音频转换: use ffmpeg convert the audio from stereo to mono without changing the video part

    To convert the audio from stereo to mono without changing the video part, you can use FFmpeg: ffmpeg ...

  7. Unity3D中制作Loading场景进度条

    背景 通常游戏的主场景包含的资源较多,这会导致加载场景的时间较长.为了避免这个问题,可以首先加载Loading场景,然后再通过Loading场景来加载主场景.由于Loading场景包含的资源较少,所以 ...

  8. ELK日志管理之——logstash配置语法

    Logstash 设计了自己的 DSL -- 有点像 Puppet 的 DSL,或许因为都是用 Ruby 语言写的吧 -- 包括有区域,注释,数据类型(布尔值,字符串,数值,数组,哈希),条件判断,字 ...

  9. jfreechart 整合sturts2牛刀小试

    一.增加的jar包 struts2-jfreechart-plugin-2.1.6.jar      在struts2的相应jar包中找 jcommon-1.0.23.jar              ...

  10. 2-2. Initializing Objects with Initializer Lists

    Using Uniform Initialization to Construct a vector #include <iostream> #include <vector> ...