第一次大作业,小记录一下
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
#define MAX 1000
//创建联系人结构体
struct Person
{
char m_Name[100];//姓名
char m_Phone[100]; //电话
char m_Addr[100]; //工作单位
char m_Email[100];//电子邮箱
};
//创建通讯录结构体
struct Addressbooks
{
struct Person personArray[MAX]; //通讯录中保存的联系人数组
int m_Size; //通讯录中人员个数
};
//1、添加联系人函数
void addPerson(Addressbooks* abs)
{
if (abs->m_Size == MAX) { //判断通讯录是否满了
printf("通讯录已满,无法添加");
return;
}
else {
//姓名
char name[100];
printf("请输入姓名:");
scanf_s("%s", name);
strcpy_s(abs->personArray[abs->m_Size].m_Name, name); //把得到的新信息覆盖原来的信息
//电话号码
printf("请输入电话号码:");
char phone[100];
scanf_s("%s", phone);
strcpy_s(abs->personArray[abs->m_Size].m_Phone, phone);
//工作单位
printf("请输入工作单位:");
char address[100];
scanf_s("%s", address);
strcpy_s(abs->personArray[abs->m_Size].m_Addr, address);
//电子邮箱
printf("请输入电子邮箱:");
char email[100];
scanf_s("%s", email);
strcpy_s(abs->personArray[abs->m_Size].m_Email, email);
//更新通讯录人数
abs->m_Size++;
printf("添加成功!");
system("pause");
system("cls");//清屏
}
}
//2、显示联系人信息函数
void showPerson(Addressbooks* abs)
{
if (abs->m_Size == 0)
{
printf("当前记录为空");
}
else {
for (int i = 0; i < abs->m_Size; i++) {
printf("姓名:%s\n", abs->personArray[i].m_Name);
printf("电话号码:%s\n", abs->personArray[i].m_Phone);
printf("工作单位:%s\n", abs->personArray[i].m_Addr);
printf("电子邮箱:%s", abs->personArray[i].m_Email);
}
}
system("pause");
system("cls");
}
//3、删除联系人函数
void deletePerson(Addressbooks* abs)
{
printf("请输入您要删除的联系人的姓名:");
char name[100];
scanf_s("%s", name);
for (int i = 0; i < abs->m_Size; i++)
{
if (strcmp(abs->personArray[i].m_Name, name) == 0)
{
abs->personArray[i] = abs->personArray[i + 1];//删除功能
abs->m_Size--;
printf("删除成功!");
}
else if (strcmp(abs->personArray[i].m_Name, name) != 0) printf("查无此人");
}
system("pause");
system("cls");
}
//4、查找联系人函数
void findPerson(Addressbooks* abs)
{
printf("请输入您要查找的联系人的姓名:");
char name[100];
scanf_s("%s", name);
for (int i = 0; i < abs->m_Size; i++)
{
if (strcmp(abs->personArray[i].m_Name, name) == 0)
{
printf("姓名:%s\n", abs->personArray[i].m_Name);
printf("电话号码:%s\n", abs->personArray[i].m_Phone);
printf("工作单位:%s\n", abs->personArray[i].m_Addr);
printf("电子邮箱:%s\n", abs->personArray[i].m_Email);
}
else if (strcmp(abs->personArray[i].m_Name, name) != 0) printf("查无此人");
}
system("pause");
system("cls");
}
//5、修改联系人函数
void modifyPerson(Addressbooks* abs) {
printf("请输入您要修改的联系人的姓名:");
char name[100];
scanf_s("%s", name);
for (int i = 0; i < abs->m_Size; i++)
{
if (strcmp(abs->personArray[i].m_Name, name) == 0)
{
char name[100];
printf("请输入姓名:");
scanf_s("%s", name);
strcpy_s(abs->personArray[i].m_Name, name); //把得到的新信息覆盖原来的信息
//电话号码
printf("请输入电话号码:");
char phone[100];
scanf_s("%s", phone);
strcpy_s(abs->personArray[i].m_Phone, phone);
//工作单位
printf("请输入工作单位:");
char address[100];
scanf_s("%s", address);
strcpy_s(abs->personArray[i].m_Addr, address);
//电子邮箱
printf("请输入电子邮箱:");
char email[100];
scanf_s("%s", email);
strcpy_s(abs->personArray[i].m_Email, email);
printf("修改成功!");
}
else if (strcmp(abs->personArray[i].m_Name, name) != 0) printf("查无此人");
}
system("pause");
system("cls");
}
//菜单界面
void showMenu()
{
printf("***************************\n");
printf("***** 1、添加联系人 *****\n");
printf("***** 2、显示联系人 *****\n");
printf("***** 3、删除联系人 *****\n");
printf("***** 4、查找联系人 *****\n");
printf("***** 5、修改联系人 *****\n");
printf("***** 0、退出通讯录 *****\n");
printf("***************************\n");
}
int main() {
int select = 0;
//创建通讯录
Addressbooks abs;
//初始化通讯录中的人数
abs.m_Size = 0;
while (true) {
showMenu();
scanf_s("%d", &select);
switch (select) {
case 1: //添加联系人
addPerson(&abs);
break;
case 2: //显示联系人
showPerson(&abs);
break;
case 3: //删除联系人
deletePerson(&abs);
break;
case 4: //查找联系人
findPerson(&abs);
break;
case 5: //修改联系人
modifyPerson(&abs);
break;
case 0: //退出通讯录
printf("欢迎下次使用!");
system("pause");
return 0;
break;
default:
break;
}
}
system("pause");
return 0;
}