C语言编写的简单的电话本管理系统
#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语言编写的简单的电话本管理系统的更多相关文章
- 用C语言编写一个简单的词法分析程序
问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...
- 用 C 语言编写一个简单的垃圾回收器
人们似乎觉得编写垃圾回收机制是非常难的,是一种仅仅有少数智者和Hans Boehm(et al)才干理解的高深魔法.我觉得编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc例 ...
- 用SMIL语言编写一个简单的演示
一.首先需要注意的几点是: 1.用记事本编写代码时,要保存为后缀名为.smil或.smi的文件,并且编码格式选择为UTF-8. 2.打开.smil文件的播放器选择为:RealPlayer或是Ambul ...
- C语言编写一个简单游戏
感悟:这算是一个起点吧,我都大二了,还这么菜,才开始写游戏,这个游戏很简单,利用随机数猜大小! #include <stdlib.h> #include <stdio.h> # ...
- 用java语言编写的简单二叉树
package com.cjonline.foundation.evisa; public class TestTree { private int data=-1; private TestTree ...
- 记一次开发:Qt简单电话本程序
前言 断断续续学习C++一年了,现在要做课设,觉得控制台界面实在太难看,于是用Qt做一个图形化的程序出来. 学习Qt也没有多久,只是了解了个大概,这次开发基本上是啃了2天的官方帮助文档,然后利用各种Q ...
- Java入门篇(一)——如何编写一个简单的Java程序
最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...
- java模拟而一个电话本操作
哈哈.大家平时都在使用电话本.以下使用java来模拟而一个简单的电话本吧... 首先给出联系人的抽象类 package net.itaem.po; /** * * 电话人的信息 * */ public ...
- 用java中的Arraylist实现电话本系统管理
大致思路:创建一个电话本条目的类,在主类中实例化.用实例化的对象调用构造参数接收输入值,然后将此对象存入Arraylist的对象中,实现动态添加电话本条目. 该系统具备添加.删除.修改.查询所有和按姓 ...
随机推荐
- MySQL for Windows 解压缩版安装 和 多实例安装
MySQL 5.6 for Windows 解压缩版配置安装 http://jingyan.baidu.com/album/f3ad7d0ffc061a09c3345bf0.html?picindex ...
- CSharper 学Quick-Cocos2d-X (一) 开发环境的搭建
前言 本来想写CSharper 学Cocos2dx系列的.但是最近在了解许多跨平台游戏开发框架后 最终决定使用Quick-cocos2d-x+lua进行第一个游戏项目的开发.经过一天多的折腾 终于 ...
- 利用docker compose启动gitlab及runner
添加docker compose配置文件 新建文件docker-compose.yml,输入如下内容: gitlab: image: 'gitlab/gitlab-ce:latest' contain ...
- Python第一模块
一.Python简介 二.Python种类 三.Python环境 windows: 1.需要配置环境变量 2.更新:卸载重装 linux:1.常用命令: 查看默认Python版本 Python -V ...
- centos 6.5 msyql5.6安装
MySQL 安装 安装mysql前需要查询系统中含有的有关mysql的软件. rpm -qa | grep -i mysql 如下 代表有mysql ,则先进行卸载 mysql-libs-5.1. ...
- Android(Logcat、Monitors)
刚学习Android 的时候总喜欢输出"Hello Word"这样的信息来判断是不是执行了某个方法,最初连Android Studio控制台.断点这些在哪里都要找好久,现在好了多点 ...
- SpringMVC的controller方法上若需要参数 如User
Bean: public class User { private String name; private String password; public String getN ...
- LeetCode OJ 106. Construct Binary Tree from Inorder and Postorder Traversal
Given inorder and postorder traversal of a tree, construct the binary tree. Note:You may assume that ...
- tmux 操作
http://www.cnblogs.com/congbo/archive/2012/08/30/2649420.html https://www.digitalocean.com/community ...
- java_jdk_JDK版本切换批处理脚本
我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,这时候我们可能会在一台电脑上安装多个版本的JDK,如下图所示: