1.此篇为使用类方法编写
#include<iostream>
#include<string>
#include<fstream>
#include<iomanip>
using namespace std;
#define MAXPEOPLE 100 //定义一百人
static int scount = 0;
class telephone
{
char name[20]; //姓名
char sex[10]; //性别
char age[10]; //年龄
char number[12]; //电话号码
char addr[20]; //地址
public:
telephone() {};
void instial(char na[20], char s[10], char a[10], char nu[20], char ad[20]) {
strcpy_s(name, na);
strcpy_s(sex, s);
strcpy_s(age, a);
strcpy_s(number, nu);
strcpy_s(addr, ad);
};
void setname(char na[20]) {
strcpy_s(name, na);
}
void setsex(char s[10]) {
strcpy_s(sex, s);
}
void setage(char a[10]) {
strcpy_s(age, a);
}
void setnumber(char nu[20]) {
strcpy_s(number, nu);
}
void setaddr(char ad[20]) {
strcpy_s(addr, ad);
}
char* getname() //获得姓名
{
return name;//数组返回类型通过指针来实现
};
char* getsex() //获得性别
{
return sex;//数组返回类型通过指针来实现
};
char* getage() //获得年龄
{
return age;//数组返回类型通过指针来实现
};
char* getnumber() //获得电话号码
{
return number;
};
char* getaddr() { //获得地址
return addr;
};
};
class manage {
telephone tel[MAXPEOPLE];
public:
void input(); //添加
void display(); //显示
void Delete(); //删除
void search(); //查询
void change(); //修改
//void exit(); //退出
};
void menu() //定义菜单函数
{
cout << "***********************************" << endl;
cout << "***********1.添加联系人*************" << endl;
cout << "***********2.显示联系人*************" << endl;
cout << "***********3.删除联系人*************" << endl;
cout << "***********4.查询联系人*************" << endl;
cout << "***********5.修改联系人*************" << endl;
cout << "***********6.退出本系统*************" << endl;
cout << "***********************************" << endl;
}
void manage::input() { //添加1
char name[20], sex[10],age[10], number[20], addr[20];
cout << "输入姓名:" << endl;
cin >> name;
cout << "输入性别:" << endl;
cin >> sex;
cout << "输入年龄:" << endl;
cin >> age;
cout << "输入号码:" << endl;
cin >> number;
cout << "输入地址:" << endl;
cin >> addr;
tel[scount].instial(name,sex,age, number, addr);
scount++;
display();
}
void manage::search() { //查询4
char name1[20];
char name2[20];
int q = -1;
cout << "请输入要查询人姓名:" << endl;
cin >> name1;
for (int i = 0; i < scount; i++)
{
strcpy_s(name2, tel[i].getname());
if (strcmp(name1, name2) == 0) {
cout << "名字:" << tel[i].getname() << setw(10) << "性别:" << tel[i].getsex() << setw(10) << "年龄:" << tel[i].getage() << setw(10) << "号码:" << tel[i].getnumber() << setw(10) << "地址:" << tel[i].getaddr() << endl; q = 1;
}
}
if (q != 1) { cout << "该用户不存在!" << endl; }
}
/*
void manage::Delete() { //删除3
int index = 0;
cout << "请输入要删除的序号数:" << endl;
cin >> index; //输入序列号,如果号大于所存在的默认删除最后一个
for (int i = index - 1; i < scount; i++)
{
tel[i] = tel[i + 1];
}
scount = scount - 1;
}
*/
// 按姓名进行删除
/**
void manage::Delete() { //删除
char name;
cout << "请输入要删除的联系人姓名:" << endl;
cin >> name;
for (int i = 0; i < scount; i++) {
if (tel[i].getname() == "name") {
//int j = i;
//tel[i] = NULL; 删除操作
tel[i] = tel[i + 1];
cout << "删除成功!" << endl;
break;
}
else {
cout << "没有此人!" << endl;
//break;
system("pause");
}
}
//system("pause");
scount = scount - 1;
}*/
void manage::Delete() { //删除
char name1[20];
char name2[20];
int q = -1;
cout << "请输入要删除的人姓名:" << endl;
cin >> name1;
for (int i = 0; i < scount; i++)
{
strcpy_s(name2, tel[i].getname());
if (strcmp(name1, name2) == 0) {
//执行删除操作
tel[i] = tel[i + 1];
q = 1;
}
}
if (q != 1)
{ cout << "该用户不存在!" << endl; }
}
void manage::change() { //修改5
char name[20],sex[10];
int index = 0;
char age[10],number[20], addr[20];
int q = -1;
cout << "请输入要修改人姓名:" << endl;
cin >> name;
for (int i = 0; i < scount; i++)
{
if (strcmp(name, tel[i].getname()) == 0) {
index = i; q = 1;
}
}
if (q != 1) {
index = scount;
scount++;
cout << "联系人不存在,自动创建新用户!" << endl;
tel[index].setname(name);
}
cout << "请输入性别:" << endl;
cin >> sex;
tel[index].setsex(sex);
cout << "请输入年龄:" << endl;
cin >> age;
tel[index].setage(age);
cout << "请输入电话:" << endl;
cin >> number;
tel[index].setnumber(number);
cout << "请输入地址:" << endl;
cin >> addr;
tel[index].setaddr(addr);
cout << "修改成功!" << endl;
display();
}
void manage::display() { //显示2
for (int i = 0; i < scount; i++)
{
cout << i + 1 << setw(10) << "名字:" << tel[i].getname() << setw(10) << "性别:" << tel[i].getsex() << setw(10) << "年龄:" << tel[i].getage() << setw(10) << "号码:" << tel[i].getnumber() << setw(10) << "地址:" << tel[i].getaddr() << endl;
}
}
//void manage::input() {
// system("pause");
//}
int main()
{
manage manager; //读入选项
while (1)
{
int choice;
menu();
cout << "请选择以下功能:";
cin >> choice;
switch (choice)
{
case 1:manager.input(); break;
case 2:manager.display(); break;
case 3:manager.Delete(); break;
case 4:manager.search(); break;
case 5:manager.change(); break;
case 6: system("pause");
default:break;
}
}
return 0;
}