个人通讯录管理系统

已实现的功能:

1. 界面选择是否进入通讯录;
2. 一次添加多条联系人;
3. 显示全部联系人;

未实现的功能:

1. 退出程序后通讯录不会保存;
2. 退出系统后需要重新打开程序才可进入系统;

通讯录信息包括:姓名、工作单位、固定电话、手机号、关系、EMAIL、QQ。

数据变量 类型 说明
name char [30] 姓名
telephone char [30] 固定电话
mobilephone char [30] 手机号
type char [30] 关系
qq char [30] qq号
email char [64] EMAIL
department char [512] 工作单位

包含的功能:添加联系人、显示全部联系人。

添加联系人:首先需要输入添加几个联系人,然后分别添加每个联系人的信息,输入信息时需要与添加的信息内容保持一致;

代码:

#include <stdio.h>
#include <stdlib.h>#define MAX_CHARS 512
#define MAX_CONTACTS_COUNT 256
enum {SYS_CONTACTS_INPUT=1,SYS_CONTACTS_OUTPUT=2,SYS_CONTACTS_EXIT = 3,
};// 结构体 记录要输入或显示的信息,包括 姓名、单位、固定电话、手持电话、关系、email、qq
typedef struct T_SYS_CONTACTS{char name[30];  // 姓名char telephone[30];  // 固定电话char mobilphone[30];  // 手持电话char type[30];  // 关系char qq[30];  // qqchar email[64];  // emailchar department[MAX_CHARS];  // 单位
}ContactSys;void InputContacts();  // 添加联系人
void OutputContacts();  // 显示联系人ContactSys g_contacts[MAX_CONTACTS_COUNT];  // 通讯录里的联系人信息
int nContacts;  // 联系人个数int main()
{int isAccess = -1;  // 是否进入通讯录管理系统printf("【0】 进入个人通讯录管理系统\n");printf("【非0】 退出程序\n");printf("请输入你需要完成的操作:");scanf("%d",&isAccess);if(0 != isAccess)return 0;printf("*******************欢迎访问个人通讯录系统^_^****************************\r\n\n");do {printf("\t序号【1】:添加联系人.\r\n");printf("\t序号【2】:显示联系人.\r\n");printf("\t序号【3】:退出系统\r\n\n");printf("请输入你需要完成的操作序号:");int nCommand;scanf("%d",&nCommand);switch(nCommand){case SYS_CONTACTS_INPUT:InputContacts();break;case SYS_CONTACTS_OUTPUT:OutputContacts();break;case SYS_CONTACTS_EXIT:    {printf("退出个人通讯录管理系统\r\n");}break;}if(SYS_CONTACTS_EXIT == nCommand)break;} while (1);printf("\r\n*******************退出个人通讯录系统^_^****************************\r\n\n");system("pause");return 0;
}void InputContacts()
{printf("\n##开始添加联系人\r\n请输入添加的联系人的个数(<256):");scanf("%d",&nContacts);printf("\t请输入联系人的信息,输入时使用Tab键对齐要输入的信息\r\n\t\t姓名\t单位\t固定电话\t移动手机\t分类\tEMAIL\t\tQQ\t\r\n");for(int i=0;i<nContacts;i++){printf("\t\t");scanf("%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s",&g_contacts[i].name,&g_contacts[i].department,&g_contacts[i].telephone,&g_contacts[i].mobilphone,&g_contacts[i].type,&g_contacts[i].email,&g_contacts[i].qq);}printf("\n添加联系人结束\r\n\n");}void OutputContacts()
{printf("\n##显示联系人\r\n");printf("姓名\t单位\t固定电话\t移动手机\t分类\tEMAIL\t\tQQ\t\r\n");for(int i=0;i<nContacts;i++){printf("%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\r\n",g_contacts[i].name,g_contacts[i].department,g_contacts[i].telephone,g_contacts[i].mobilphone,g_contacts[i].type,g_contacts[i].email,g_contacts[i].qq);if((i+1) %10 ==0)printf("-------------------------------------------------------------\r\n");}printf("\n显示联系人结束\r\n\n");
}

运行结果:

C程序实例1--个人通讯录管理系统相关推荐

  1. c语言设计通讯录管理程序,C语言程序的设计学生通讯录管理系统方案.docx

    include ustdio.hH include "stdlib.h" include "string.h" include "conio.h&qu ...

  2. python程序实例教程基础-编程小案例

    编程小案例 本小节实现一个通讯录管理程序,通过这个案例来融会贯通之前所学习的知识,该程序使用到如下知识点: 条件选择 循环 列表 字典 键盘输入 屏幕输出 编写程序 addr-manage.py 实现 ...

  3. 【黑马程序员 C++教程从0到1入门编程】【笔记2】通讯录管理系统

    黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 文章目录 1.系统需求 2.创建项目 2.1 创建项目 3.菜单功能 4.退出功能 5.添加联系人 5.1 设计联系人结构体 5.2 设 ...

  4. Java通讯录管理系统使用线性表任务台程序

    下载点此去 运行截图: 我自己选择的是通讯录管理系统,该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺序,控制语句是实现结构化程序设计的基础.该设计的任务是利用一个简单实用的菜单,通 ...

  5. 《黑马程序员》通讯录管理系统实战

    通讯录管理系统 想直接看源码直达:https://blog.csdn.net/Augenstern_QXL/article/details/116982366 更新:源码我设置的是0cb/积分下载,但 ...

  6. [黑马程序员C++笔记]P72-P83通讯录管理系统

    目录 系统需求 1.菜单功能 2.退出功能 3.添加联系人 (1)​​​​​​​设计联系人结构体 (2) 设计通讯录结构体 ​​​​​​​(3)main函数中创建通讯录 (4)封装添加联系人函数 (5 ...

  7. [黑马程序员C++笔记]P72-P83通讯录管理系统总体概览

    系统需求 通讯录是一个可以记录亲人.好友信息的工具. 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别.年龄.联系电话.家 ...

  8. 【黑马程序员匠心之作|C++教程】C++基础入门、通讯录管理系统

    文章目录 C++基础入门 1 C++初识 1.2 注释 1.3变量 1.4 常量 1.5 关键字 1.6 标识符命名规则 2 数据类型 2.1 整形 2.2 `sizeof` 关键字 2.3 实型(浮 ...

  9. c语言通讯录程序线性表,数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)...

    数据结构(C语言)课设1--单位员工通讯录管理系统(线性表应用) 题目要求: 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息 ...

  10. 通讯录管理系统课设使用c编写基于链表增查删改分组文本操作随程序实时同步

    通讯录管理系统已经有好多人写过了 但是基于文本操作大多数只有从文件中输出和输入并不是即时的 解决方法是将链表里的数据输出以结构体的方式到文本 读入应该以一样的方式 增加个人信息函数定义 void Ad ...

最新文章

  1. c语言括号匹配的检验,检验括号匹配的算法
  2. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
  3. 【控制】《鲁棒控制-线性矩阵不等式处理方法》-俞立老师-目录
  4. xshell连接服务器失败_xshell-ssh连接服务器被经常意外中断
  5. 深入理解 SpringBoot 启动机制(starter 机制)
  6. Cocoa/iPhone App/静态库 嵌入资源文件 rtb v0.1发布
  7. iOS8 【xcode6中添加pch全局引用文件】
  8. android 按键会触发ontouch吗?_Android实现炫酷的拖拽浮动按钮
  9. 那个悲伤的朋友,去了一趟菜场竟然活过来了
  10. oracle dg snapshot,Oracle Broker Snapshot Standby测试
  11. MyEclipse的Debug模式
  12. ospf v3 及WIN XP ipv6
  13. 字符串(后缀自动机):COGS 2399. 循环同构
  14. R语言并行计算的原理和案例
  15. 编程语言:8086汇编中int 16h接收alt+方向键
  16. 李南江 html5笔记,Mr.Woo跟着李南江学习HTML5—项目总结
  17. 期权定价模型之经典--BS模型
  18. java fx scen,很好的JavaFX2.0基础教程
  19. 一键清理系统垃圾文件
  20. voyage java_GitHub - zhaoshiling1017/voyage: 采用Java实现的基于netty轻量的高性能分布式RPC服务框架...

热门文章

  1. Orcad Pspice仿真
  2. 扫描仪显示没有服务器,扫描仪安装好了,点击显示寻找扫描仪怎么显示未找出扫描仪...
  3. 关于影视后期制作的就业市场调查报告
  4. 51开发板的功能及简单使用
  5. 功放世界 debug
  6. 数学分析教程(科大)——2.5笔记+习题
  7. 小白如何通俗地理解 - - 遗传算法以及其实际应用?
  8. ubuntu18字符终端不支持中文问题(汉字菱形)
  9. asp毕业设计—— 基于asp+access的网上论坛设计与实现(毕业论文+程序源码)——网上论坛
  10. 新sniffer pro 4.75 sp5下载