C++个人通信录系统

背景:

使用C++编写一个通信录程序,来完成作业上的一些需求。

1-提供录入个人信息、修改个人信息(姓名和出生日期除外)、删除个人信息等编辑功能

2-提供按姓名查询个人信息的功能

3-提供查找在5天之内过生日的人员的信息,以便发出祝贺电话或 E_mail

4-按照姓名或出生日期排序,显示输出【这里我们选择使用出生日期】

5-统计在给定月份出生的人数,并显示输出

6-能列出全体人员的姓名、出生日期、电话和email地址

7-能分别列出同学、同事、朋友、亲戚的所有信息

8-用菜单形式提供程序的各种功能的选择

C++个人通信录系统_第1张图片

提示:
(1)将同学、同事、朋友和亲戚的信息分别存入通信录文件 AddressBook1.txt ,AddressBook2.txt,AddressBook3.txt和AddressBook4.txt中。文件中除了包含每人的姓名、出生日期、电话和 Email地址等信息外,对同学还要包含一起上学的学校名称,对同事还要包含共事的单位名称,对朋友还要包含认识的地点,对亲戚包含称呼。其中姓名用汉语拼音或英文表示。
(2)在查出的5天内过生日的人员信息中,要包括该日期是星期几的信息。例如:3月21日(星期四) 哥哥:张晓阳 Tel: 39380285, Email:[email protected]
(3)能够自动生成祝贺生日的电子邮件的文本文件,文件由被祝贺人姓名和祝贺词等组成。其内容为:【这看起来还要单独生成文件- -~~】
--这俩是一起的!!!
     被祝贺人姓名:
            祝生日快乐,健康幸福。
                                     祝贺人姓名

效果:

主菜单

C++个人通信录系统_第2张图片

录入联系人

C++个人通信录系统_第3张图片

查看所有联系人

C++个人通信录系统_第4张图片修改联系人

C++个人通信录系统_第5张图片

删除联系人

C++个人通信录系统_第6张图片

按姓名查询

C++个人通信录系统_第7张图片

五天内生日联系人

C++个人通信录系统_第8张图片

C++个人通信录系统_第9张图片

 C++个人通信录系统_第10张图片

按出生日期排序

C++个人通信录系统_第11张图片

根据月份查询联系人

C++个人通信录系统_第12张图片

根据同学-同事-朋友-亲戚分组查看

C++个人通信录系统_第13张图片

退出系统

主要代码:

本系统ide为vision studio2020,如果是vision studio,基本都能运行

C++个人通信录系统_第14张图片

vx-zew1040994588
主菜单
	cout << "\t\t\t\t**************************************************" << endl;
	cout << "\t\t\t\t*****                个人通讯录软件           *****" << endl;
	cout << "\t\t\t\t*****========================================*****" << endl;
	cout << "\t\t\t\t*****                 1.录入联系人信息        *****" << endl;
	cout << "\t\t\t\t*****                                        *****" << endl;
	cout << "\t\t\t\t*****                 2.修改联系人信息        *****" << endl;
	cout << "\t\t\t\t*****                                        *****" << endl;
	cout << "\t\t\t\t*****                 3.删除联系人            *****" << endl;
	cout << "\t\t\t\t*****                                        *****" << endl;
	cout << "\t\t\t\t*****                 4.查询联系人            *****" << endl;
	cout << "\t\t\t\t*****                                        *****" << endl;
	cout << "\t\t\t\t*****                 5.显示所有联系人        *****" << endl;
	cout << "\t\t\t\t*****                                        *****" << endl;
	cout << "\t\t\t\t*****                 6.查询最近五天生日联系人 *****" << endl;
	cout << "\t\t\t\t*****                                        *****" << endl;
	cout << "\t\t\t\t*****                 7.查询给定月份生日人数   *****" << endl;
	cout << "\t\t\t\t*****                                        *****" << endl;
	cout << "\t\t\t\t*****                 8.按出生日期排序        *****" << endl;
	cout << "\t\t\t\t*****                                        *****" << endl;
	cout << "\t\t\t\t*****                 9.分组查询              *****" << endl;
	cout << "\t\t\t\t*****                                        *****" << endl;
	cout << "\t\t\t\t*****                 0.退出通讯录            *****" << endl;
	cout << "\t\t\t\t**************************************************" << endl;
vx-zew1040994588
void birthday_sort() {
	//默认值赋为-1,默认他通信录数据不超过100条
	time_t a[100] = {0};
	int flag = 0;
	int h = 1;
	int n = 1;
	class Person* p1;
	p1 = new Person;
	p1 = head->next;
	do
	{
		//给数组赋时间戳的值
		a[++flag] = p1->birthday_number;
		p1 = p1->next;
		n++;

	} while (p1 != NULL);
	/*
	时间戳越大越年轻,那么我们需要先输出时间戳小的那一方,
	用逆冒泡无问题
	n多了一个!!!!
	*/
	for (int i = 0; i < n - 1; i++)
	{
		for (int j = 0; j < n - 1 - i; j++)
		{
			if (a[j] < a[j + 1])//降序排序就用: < 
			{
				time_t temp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = temp;
			}
		}
	}
	//for (int i = 0; i < n - 1; i++) {
	//	cout << a[i] <next;
		do
		{
			if (p3->birthday_number == a[i]) {
				cout << "该联系人的姓名为:" << p3->name << endl;
				cout << "该联系人的出生日期为:" << p3->birthday_str << endl;
				cout << "该联系人的电话号为:" << p3->mobile << endl;
				cout << "该联系人email地址为:" << p3->address << endl;
				if (p3->relationship == 1)
					cout << "该联系人是:同学" << endl;
				else if (p3->relationship == 2)
					cout << "该联系人是:同事" << endl;
				else if (p3->relationship == 3)
					cout << "该名联系人是:朋友" << endl;
				else if (p3->relationship == 4)
					cout << "该名联系人是:亲戚" << endl;
				cout << "该联系人的联系提示为:" << p3->tip << endl;
				break;
			}
			p3 = p3->next;
		} while (p3 != NULL);
	}
}

你可能感兴趣的:(C++课程设计,c++,java,数学建模)