C程序实例1--个人通讯录管理系统
个人通讯录管理系统
已实现的功能:
1. 界面选择是否进入通讯录;
2. 一次添加多条联系人;
3. 显示全部联系人;
未实现的功能:
1. 退出程序后通讯录不会保存;
2. 退出系统后需要重新打开程序才可进入系统;
通讯录信息包括:姓名、工作单位、固定电话、手机号、关系、EMAIL、QQ。
数据变量 | 类型 | 说明 |
name | char [30] | 姓名 |
telephone | char [30] | 固定电话 |
mobilephone | char [30] | 手机号 |
type | char [30] | 关系 |
char [30] | qq号 | |
char [64] | ||
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--个人通讯录管理系统相关推荐
- c语言设计通讯录管理程序,C语言程序的设计学生通讯录管理系统方案.docx
include ustdio.hH include "stdlib.h" include "string.h" include "conio.h&qu ...
- python程序实例教程基础-编程小案例
编程小案例 本小节实现一个通讯录管理程序,通过这个案例来融会贯通之前所学习的知识,该程序使用到如下知识点: 条件选择 循环 列表 字典 键盘输入 屏幕输出 编写程序 addr-manage.py 实现 ...
- 【黑马程序员 C++教程从0到1入门编程】【笔记2】通讯录管理系统
黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 文章目录 1.系统需求 2.创建项目 2.1 创建项目 3.菜单功能 4.退出功能 5.添加联系人 5.1 设计联系人结构体 5.2 设 ...
- Java通讯录管理系统使用线性表任务台程序
下载点此去 运行截图: 我自己选择的是通讯录管理系统,该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺序,控制语句是实现结构化程序设计的基础.该设计的任务是利用一个简单实用的菜单,通 ...
- 《黑马程序员》通讯录管理系统实战
通讯录管理系统 想直接看源码直达:https://blog.csdn.net/Augenstern_QXL/article/details/116982366 更新:源码我设置的是0cb/积分下载,但 ...
- [黑马程序员C++笔记]P72-P83通讯录管理系统
目录 系统需求 1.菜单功能 2.退出功能 3.添加联系人 (1)设计联系人结构体 (2) 设计通讯录结构体 (3)main函数中创建通讯录 (4)封装添加联系人函数 (5 ...
- [黑马程序员C++笔记]P72-P83通讯录管理系统总体概览
系统需求 通讯录是一个可以记录亲人.好友信息的工具. 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名.性别.年龄.联系电话.家 ...
- 【黑马程序员匠心之作|C++教程】C++基础入门、通讯录管理系统
文章目录 C++基础入门 1 C++初识 1.2 注释 1.3变量 1.4 常量 1.5 关键字 1.6 标识符命名规则 2 数据类型 2.1 整形 2.2 `sizeof` 关键字 2.3 实型(浮 ...
- c语言通讯录程序线性表,数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)...
数据结构(C语言)课设1--单位员工通讯录管理系统(线性表应用) 题目要求: 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息 ...
- 通讯录管理系统课设使用c编写基于链表增查删改分组文本操作随程序实时同步
通讯录管理系统已经有好多人写过了 但是基于文本操作大多数只有从文件中输出和输入并不是即时的 解决方法是将链表里的数据输出以结构体的方式到文本 读入应该以一样的方式 增加个人信息函数定义 void Ad ...
最新文章
- c语言括号匹配的检验,检验括号匹配的算法
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- 【控制】《鲁棒控制-线性矩阵不等式处理方法》-俞立老师-目录
- xshell连接服务器失败_xshell-ssh连接服务器被经常意外中断
- 深入理解 SpringBoot 启动机制(starter 机制)
- Cocoa/iPhone App/静态库 嵌入资源文件 rtb v0.1发布
- iOS8 【xcode6中添加pch全局引用文件】
- android 按键会触发ontouch吗?_Android实现炫酷的拖拽浮动按钮
- 那个悲伤的朋友,去了一趟菜场竟然活过来了
- oracle dg snapshot,Oracle Broker Snapshot Standby测试
- MyEclipse的Debug模式
- ospf v3 及WIN XP ipv6
- 字符串(后缀自动机):COGS 2399. 循环同构
- R语言并行计算的原理和案例
- 编程语言:8086汇编中int 16h接收alt+方向键
- 李南江 html5笔记,Mr.Woo跟着李南江学习HTML5—项目总结
- 期权定价模型之经典--BS模型
- java fx scen,很好的JavaFX2.0基础教程
- 一键清理系统垃圾文件
- voyage java_GitHub - zhaoshiling1017/voyage: 采用Java实现的基于netty轻量的高性能分布式RPC服务框架...
热门文章
- Orcad Pspice仿真
- 扫描仪显示没有服务器,扫描仪安装好了,点击显示寻找扫描仪怎么显示未找出扫描仪...
- 关于影视后期制作的就业市场调查报告
- 51开发板的功能及简单使用
- 功放世界 debug
- 数学分析教程(科大)——2.5笔记+习题
- 小白如何通俗地理解 - - 遗传算法以及其实际应用?
- ubuntu18字符终端不支持中文问题(汉字菱形)
- asp毕业设计—— 基于asp+access的网上论坛设计与实现(毕业论文+程序源码)——网上论坛
- 新sniffer pro 4.75 sp5下载