通讯录管理软件的设计
/*
课题名称:通讯录管理软件的设计
说明:通讯录至少包括以下数据项:姓名,地址,电话,邮编,E-mail等。
要求:
1)通讯录编辑(添加、删除);
2)按不同的项进行查找;
3)对已存在的通讯录按不同的项排序;
4)将通讯录写入文件;
5)从文件读入通讯录。
*/
本项目是我学习C++过程中编写的程序,有不足的地方还望见谅,欢迎大家留言评论。
本项目中变量命名是利用简单的英文字母,方便理解程序
简述:
本项目分为几大功能:1:增加通讯录项 2:删除通讯录项 3:查找联系人 4:查看全部联系人 。
同时在第三功能查找联系人下又支持如下查找: 1:姓名查找 2:性别查找 3:地址查找 4:电话号码查找 5:邮编查找 6:E_mail查找 7:部分信息查找
本程序中的文件操作中的文件目录为“d:\tongxunlu.txt ”,文件中的数据格式如下:
王帆帆 1 四川泸州 16508239061 646500 4568237516@qq.com
陈小非 0 四川成都 13005642306 646524 17468953@qq.com
赵敏 0 安徽合肥 18805462354 455415 115546623@qq.com
。。。。。。
//源代码如下
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
#include<iomanip>
using namespace std;
struct people{
string name; //姓名
char sex; //性别 1代表男,0代表女
string location; //地址
unsigned long long int telphone; //电话号码
long postcode; //邮编
string e_mail; //E_mail
//people * next; //指向下一个节点的指针
/*可以使用链表来存储联系人信息,本项目使用不定长数组vector*/
};
void function_1(void); //增加通讯录项函数
void function_2(void); //删除通讯录项函数
void function_3(void); //查找通讯录项函数
void function_4(void); //查找全部联系人函数
void import(people &m,ifstream &infile); //从文件读入一个结点数据函数
void output(people &m,ofstream &outfile); //向文件写入一个结点数据函数
void new_people(people &m); //初始化结构体变量,使各项均为0
void c_out(people &m); //标准输出结构体变量数据
void c_out_head(void); //标准输出通讯录表头
void vec_sort(vector<people> &vec_1); //对结构体数组vec_1按照电话号码排序(升序)(电话号码唯一)
int main() //通讯录管理软件
{
int x; //功能选择变量
loop:
{
cout<<"请输入您的需求:"<<endl;
cout<<"1:增加通讯录项 2:删除通讯录项 3:查找联系人 4:查看全部联系人 -1:结束 "<<endl;
cin>>x;
if(x==1) //增加通讯录项(查重后直接在文件末尾添加数据)
{
function_1();
cout<<endl;
goto loop;
}
else if(x==2) //删除通讯录项(先提取文件中所有数据,更改后再重新写入全部数据)
{
function_2();
cout<<endl;
goto loop;
}
else if(x==3) //查找通讯录
{
function_3();
cout<<endl;
goto loop;
}
else if(x==4) //查看全部联系人
{
function_4();
cout<<endl;
goto loop;
}
else if(x==-1)
{
//system("pause");
return 0;
}
else
{
cout<<"输入数据无效!"<<endl;
cout<<endl;
goto loop;
}
}
return 0;
}
void function_1(void) //增加通讯录项函数