用C/C++写一个电子名片管理系统
用C/C++写一个电子名片管理系统
- 要包含的头文件
- 首先定义联系人的结构体、根据需要定义结构体内容和声明所需要的功能函数
- 其次是菜单函数用来选择各种功能
- 下面是各个功能函数
- 然后是以联系人电话为名字,将联系人信息储存到电脑中
- 最后做一个美观一点的开始界面
- 一个程序的入口 主函数
手机已成为生活中必不可少的,管理其中的联系人信息,包括常用的社交信息更是不可或缺的。下面是如何用 C/C++实现联系人信息的管理。
要包含的头文件
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <iostream>
#include<stdio.h>
#include <fstream>
using namespace std;
#define N 15 //最多储存人数
string classify[20];
首先定义联系人的结构体、根据需要定义结构体内容和声明所需要的功能函数
struct person //结构体定义个人信息
{int number;string Name;string place;string Phonenumber[3]; //每人最多存三个电话号码,用于实现一人多号string QQ;string Wechat;string e_mile;string blog;string classify;
}per[N];
void meun();
void search();
void add();
void modify();
void delect();
void show();
void wr();
void save();
void definetype();
其次是菜单函数用来选择各种功能
void menu()
{system("cls");int n, w; //菜单选项do{puts("\t\t****************通讯录界面******************");puts("\t\t\t\t1.添加联系人");puts("\t\t\t\t2.搜索联系人");puts("\t\t\t\t3.修改资料");puts("\t\t\t\t4.删除资料");puts("\t\t\t\t5.查看全部联系人");puts("\t\t\t\t6.进行分组");puts("\t\t\t\t7.存储");puts("\t\t\t\t8.退出");puts("\t\t*******************************************\n");cout << "选择功能:【】\b\b" << endl;cin >> n;if (n < 1 || n>8){w = 1; getchar();}else w = 0;} while (w == 1);switch (n){case 1:system("cls");add(); break; //查找case 2:system("cls");search(); break; //增加case 3:system("cls");modify(); break; //修改case 4:system("cls");delect(); break; //删除 case 5:system("cls");show(); break; //展示所有联系人姓名、分组case 6:system("cls");definetype(); break;case 7:system("cls");save(); break;case 8:system("cls");cout << "********************程序结束,谢谢使用********************";exit(0);defult:cout << "输入正确数字" << endl;}
};
下面是各个功能函数
void showone(int x, person per[])
{cout << "姓名: " << per[x].Name << endl;cout << "电话: " << per[x].Phonenumber[0] << " " << per[x].Phonenumber[1] << " " << per[x].Phonenumber[2] << endl;cout << "博客: " << per[x].blog << endl;cout << "类别: " << per[x].classify << endl;cout << "邮箱: " << per[x].e_mile << endl;cout << "QQ: " << per[x].QQ << endl;cout << "微信: " << per[x].Wechat << endl;cout << "地址: " << per[x].place << endl;
}
void definetype() //自定义分组函数
{int n, i;cout << "输入分组数量:" << endl;cin >> n;for (i = 1; i <= n; i++){cout << "输入第";cout << i;cout << "组名称" << endl;cin >> classify[i - 1];}cout << "分组完成" << endl;system("pause");system("cls");menu();
}
void search() //查询
{int x, count = 0;int countNUM;int countCLA=0;string name;string num;int a, b;string cla;cout << "\n\t\t*********************查找菜单**********************";cout << "\n\t\t*******************1--按名字查找*******************";cout << "\n\t\t*******************2--按电话查找*******************";cout << "\n\t\t*******************3--按分组查找*******************"; cin >> a;if (a == 1) //查名字{cout << "输入联系人姓名:" << endl;cin >> name;for (x = 0; x < N; x++){if (per[x].Name == name)//历遍结构体成员{showone(x, per);count++;}}if (count == 0)cout << "查无此人!" << endl;}if(a==2) //查电话{cout << "请输入要查电话:" << endl;cin >> num;for (x = 0; x < N; x++){for (countNUM = 0; countNUM < 3; countNUM++)//历遍每个电话号码if (per[x].Phonenumber[countNUM] == num)//历遍结构体成员{showone(x, per);countNUM++;}}if (countNUM == 0)cout << "查无此人!" << endl;}if (a == 3) //查分组{cout << "请输入分组名称:" << endl;cin >> cla;for (x = 0; x < N; x++){if (per[x].classify == cla){showone(x, per);countCLA++;}}if (countCLA == 0)cout << "查无此人!" << endl;}cout << "1----继续查找" << " " << "2----返回菜单" << endl;cin >> b;if (b == 2){system("cls");menu();}else{search();}}
void show() //查看全部资料
{int i, p, u;static int t;cout << endl;cout <<" "<< "类别" << "--" << "姓名" << "--" << "编号" << endl;if (per[0].classify == ""){cout << "未添加联系人" << endl;system("pause");system("cls");menu();}for (i = 0; i < N; i++){t = 0;for (p = i; p < N; p++)if (per[i].classify == per[p].classify)//输出同分组联系人{if (i == 0)//直接输出第一组cout << " "<< per[p].classify << "--" << per[p].Name << "--" << p << endl;else if (i > 0){for (u = p; u >= 0; u--)//第一组后,对比位置靠前的联系人,分组不同即输出{if (t == 0){if (per[u - 1].classify == per[p].classify)break;if (u == 0)//若与前面所有分组都不同{cout << " " << per[p].classify << "--" << per[p].Name << "--" << p << endl;t++;}}elseif (per[u - 1].classify == per[p].classify){cout << " " << per[p].classify << "--" << per[p].Name << "--" << p << endl;break;}}}}}cout << "输入要查询的联系人的编号";int index;cin >> index;showone(index, per);system("pause");system("cls");menu();}
void add() //增加
{int i, x,p;for (i = 0; ; i++){cout << "请输入要增加联系人的信息" << endl;cout << "姓名: ";cin >> per[i].Name;cout << "电话号码: " << endl;;cout << "选择输入电话号码的个数(最多可输入三个)" << endl;cout << "--1--2--3--"<<endl;cin >> p;if (p > 3){cout << "wrong number!"<<endl;}switch (p){case 1:cout << "选择成功 请输入电话号码" << endl;cin >> per[i].Phonenumber[0];break;case 2:cout << "选择成功 请输入电话号码" << endl;cin >> per[i].Phonenumber[0] >> per[i].Phonenumber[1];break;case 3:cout << "选择成功 请输入电话号码" << endl;cin >> per[i].Phonenumber[0] >> per[i].Phonenumber[1] >> per[i].Phonenumber[2];break;}cout << "地址: ";cin >> per[i].place;cout << "QQ: ";cin >> per[i].QQ;cout << "微信: ";cin >> per[i].Wechat;cout << "邮箱: ";cin >> per[i].e_mile;cout << "博客: ";cin >> per[i].blog;cout << "分类: ";cin >> per[i].classify;for (int m = 0;m < i;m++){if (classify[m] == per[i].classify){break;}classify[i] = per[i].classify;}cout << "添加成功" << endl;cout << "1----继续添加" << endl << "2----返回菜单" << endl;cin >> x;if (x == 2){break;}system("cls");}system("cls");menu();}
void delect() //删除
{string deName;cout << "请输入要删除的对象姓名"<<endl;cin >> deName;int k=0, n;for (int j = 0;j<N; j++){if (deName == per[j].Name){for (int z = j; z < N; z++){per[z] = per[z + 1];}k = 1;}}cout << "删除成功" << endl;if (k == 0)printf("查无此人");system("pause");system("cls");menu();
}
void modify() //修改
{string deName;cout << "请输入要修改的对象"<<endl;cin >> deName;for (int j = 0; j < 100; j++){if (per[j].Name == deName){int p;cout << "请输入要修改联系人的信息"<<endl;cout << "姓名: ";cin >> per[j].Name;cout << "电话号码: " << endl;;cout << "选择输入电话号码的个数(最多可输入三个)" << endl;cout << "--1--2--3--" << endl;cin >> p;if (p > 3){cout << "wrong number!" << endl;modify();}switch (p){case 1:cout << "选择成功 请输入电话号码" << endl;cin >> per[j].Phonenumber[0];break;case 2:cout << "选择成功 请输入电话号码" << endl;cin >> per[j].Phonenumber[0] >> per[j].Phonenumber[1];break;case 3:cout << "选择成功 请输入电话号码" << endl;cin >> per[j].Phonenumber[0] >> per[j].Phonenumber[1] >> per[j].Phonenumber[2];break;}cout << "地址: ";cin >> per[j].place;cout << "QQ: ";cin >> per[j].QQ;cout << "微信: ";cin >> per[j].Wechat;cout << "邮箱: ";cin >> per[j].e_mile;cout << "博客: ";cin >> per[j].blog;cout << "分类: ";cin >> per[j].classify;system("cls");cout << "您的修改结果为:" << endl;showone(j, per);}}cout << "修改成功";system("pause");system("cls");menu();
}
然后是以联系人电话为名字,将联系人信息储存到电脑中
这里用到了C++中的流的知识
void save() //储存文件
{for (int i = 0;i < N;i++){ofstream out(("d:\\"+per[i].Phonenumber[0] + ".txt").c_str());if (!out) {cout << "文件打开失败\n";return;}out <<"姓名: "<< per[i].Name<<" 电话: "<<per[i].Phonenumber[0] << " " << per[i].Phonenumber[1] << " " << per[i].Phonenumber[2];out <<"地址: " <<per[i].place << " QQ: " << per[i].QQ<<" 微信: "<< per[i].Wechat << " 博客: " << per[i].blog << " 所属分类: " << per[i].classify << " 邮箱: " << per[i].e_mile;out.close();cout << "文件" << i << "储存完成" << endl;cout << "按任意键返回菜单";}system("cls");system("pause");menu();
}
最后做一个美观一点的开始界面
void start()
{system("cls");cout << "\t\t*********************************************************" << endl;cout << "\t\t* *" << endl;cout << "\t\t* *" << endl;cout << "\t\t* *" << endl;cout << "\t\t* 欢迎使用电子名片管理系统 *" <<endl;cout << "\t\t* *" << endl;cout << "\t\t* *" << endl;cout << "\t\t* *" << endl;cout << "\t\t* *" << endl;cout << "\t\t* *" << endl;cout << "\t\t*********************************************************" << endl;system("pause");}
一个程序的入口 主函数
这里是先调用了开始函数,然后调用菜单函数 后面的所有操作都在菜单函数中进行了。
int main() //主函数
{system("title 电子名片管理");//设置cmd窗口标题system("mode con cols=95 lines=30");//窗口宽度高度system("color 0A");//设置颜色start();menu();
}
用C/C++写一个电子名片管理系统相关推荐
- 用c语言给心仪的女生写一个电子钢琴
导火线 2020/3/26 周四的晚上,上完公选课的我跑去打了几局排位,还遇到对面开挂.我心里那个气啊,就差2颗星了,还让不让人玩了.直接举报! 完了之后.某某人给我发了一条微信,说某某人其实比较喜欢 ...
- VUE写一个本地教室管理系统
VUE写一个本地教室管理系统 实现效果 主体 模态框 Vue JS主体 Vue实现删除功能 splice语法 Vue实现添加功能 push()语法 Vue实现修改功能 源码 实现效果 点击添加按钮后, ...
- 用Java写一个公司员工管理系统!
用Java写一个公司员工管理系统! 今天看CSDN发现写管理系统的文章不少,我在这里也给大家用java写一篇!(当然这里只是最简单的那种qwq) 核心功能:对员工各项信息的管理 采用属性文件+资源文件 ...
- c语言怎么表示字节集,用易语言写一个电子钢琴软件
这只是一个窗口程序集,是整个软件的一部分,算是核心吧 易语言不同于C语言.java,易语言是全中文编写,说实话,我感觉中文编写还不如英文编写顺手.我感觉最简单的还是我当初自己学的Python语言. 下 ...
- 用C语言写一个人员文件管理系统(一)
题目如下: 1.输入三个人的信息(姓名,年龄.性别.家庭住址),并保存到txt文件中.再从文件中读取信息显示在屏幕上: 2.实现人员信息重复显示功能: 3.实现人员信息的添加. 过程如下: 首先建立一 ...
- 用PHP写一个学生学籍管理系统
为了搭建一个完整的学生学籍管理系统,需要分模块进行设计和实现.这里我们按照以下模块来讲解: 数据库设计 用户登录和权限控制 学生信息管理 班级信息管理 课程信息管理 成绩信息管理 1. 数据库设计 我 ...
- 用 python写一个学生信息管理系统
好的,首先需要设计学生信息管理系统的数据结构. 假设我们需要记录每个学生的姓名.学号.年龄.性别以及成绩,我们可以使用 Python 的字典来表示一个学生的信息,字典的键表示信息的名称,值表示信息的内 ...
- 利用html加css以及JavaScript写一个学生后台管理系统简单平台
之前学习的时候做了一个简单的crud,下面是效果图 html内容如下 <div class="conter"><div><button id=&quo ...
- mysql 设计超市订单图_利用maven模板写一个超市订单管理系统(1)项目基础搭建
步骤: 1.创建并配置maven,(这里我用的是maven3.6.1版本,没用idea自带maven) 1.1配置web.xml版本(因为使用idea模板时默认配置的是web 1版本),在这里我自定义 ...
最新文章
- ×××第三话:基础Ez×××配置
- 算法笔记_098:蓝桥杯练习 算法提高 盾神与条状项链(Java)
- Struts中用bean:size和bean:write的使用,用于显示集合的总记录数
- w25n01g 代码_W25N01GV 驱动
- 解决maven项目Cannot change version of project facet Dynamic web module to 3.0
- 基于Hmily实现TCC分布式事务解决方案
- Python实现计算机屏幕任意区域截图
- 转帖:DotNet 资源大全中文版
- sv信道模型是什么_信道模型(信道模型分类)
- 【MATLAB】几种特殊矩阵,Hilbert矩阵,Toeplitz矩阵,Vandermonde矩阵......
- 【spring cloud】(四)服务网关——gateway
- 生成二维码与条形码的各种方法
- 银联支付前端页面跳转
- element-ui calendar 日历控件实现编辑假期功能以及样式修改
- maxcompute-入门-数据下载
- 常用oracle命令
- 如何在enable了database vault的数据库里运行datapump
- 【蓝桥杯真题】成绩统计
- 【python】print函数的用法示例与讲解
- 青龙面板获取京东ck的新老方法
热门文章
- STC51入门笔记(郭天祥C语言)---第四节:键盘检测原理及应用实现
- 每天一道英文题,ICPC不自闭(14)
- 这个网站安全吗?您的完整网站安全检查指南
- Symbol Factory.NET 仿真SDK
- mybatis plus查询上个月和本月的数据
- 餐饮管理系统开源java_java课程设计餐饮管理系统
- Go语言基础篇 (一)初识Golang
- FCW Forward Collision Warning 前车碰撞预警
- Sep 15 FullCalendar日历插件说明文档
- msgsnd()函数 msgrcv()函数