C++课程设计

#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
#include <cstdlib>


using namespace std;
class book
{
public:
	book();
	char inter_face();
	void add_person();
	void del_person();
	void show_all();
	void alter();
	void select();
	void save_new();
private:
    string   name;
	string address;
	string number;
	string post;
	string qq;
};
book::book()
{
	name = "\0";
	address = "\0";
	number = "\0";
	post = "\0";
	qq = "\0";
}

//首页
char book::inter_face()
{
	system("cls");

	cout <<endl;
	cout<<"\t\t=================================================" <<endl
		<<"\t\t=                                               =" <<endl
		<<"\t\t=                通    迅   录                  =" <<endl 
		<<"\t\t=                                               =" <<endl
		<<"\t\t=     1. 添加新联系人.      4. 修改信息.        =" <<endl 
		<<"\t\t=                                               =" <<endl
		<<"\t\t=     2. 删除联系人.        5. 查询联系人.      =" <<endl
		<<"\t\t=                                               =" <<endl
		<<"\t\t=     3. 显示所有联系人.    6. 关闭通迅录.      =" <<endl 
		<<"\t\t=                                               =" <<endl
		<<"\t\t=================================================" <<endl <<endl
		<<"\t\t\t选择:" ;

	char choose;
	cin >>choose;
	fflush(stdin);

	return choose;
}

//1.
void book::add_person()
{
	cout <<endl <<"根据下面提示输入新联系人信息" <<endl <<endl
		<<"姓名:" ;
	cin >>name;
	fflush(stdin);
	cout <<"电话: ";
	cin >>number;
	fflush(stdin);
	cout <<"QQ   : ";
	cin >>qq;
	fflush(stdin);
	

	save_new();

	cout <<endl <<endl <<"新联系人信息已经保存" <<endl <<endl;
	system("pause");
}

//2.
void book::del_person()
{
	ofstream outData("temp.txt", ios::out);
	ifstream inData("pbook.txt", ios::in); //
	if (!outData || !inData)
	{
		cout <<endl <<"对不起,找不到文件" <<endl;
		system("pause");
		return;
	}

	string sign;
	cout <<endl <<"你要删除输入姓名:";
	cin >>sign;
	string str1;
	bool flag = true;
	string str;

	while (inData >>name)
	{
		getline(inData, str);

		if ((sign==name))
		{
			cout <<endl <<"你想删除的联系人:" <<endl <<endl;
			cout <<str1 <<endl;
			cout <<setiosflags(ios::left) <<setw(17) <<name<<" "<<str <<endl;	
			flag = false;
			break;
		}

		outData <<setiosflags(ios::left) <<setw(17) <<name<<" "<<str <<endl;		
	}

	if (flag)
	{
		cout <<endl <<"对不起,联系人中没你找的人" <<endl <<endl;
	}
	else
	{
		while (getline(inData, str))
		{
			outData <<str <<endl;
		}

		outData.close();
		inData.close();

		ofstream out("pbook.txt", ios::out);
		ifstream in("temp.txt", ios::in);

		if (!out || !in)
		{
			cout <<endl <<"对不起,不能打开文件" <<endl <<endl;
			system("pause");
			return;
		}

		while (getline(in, str))
		{
			out <<str <<endl;
		}

		out.close();
		in.close();
		cout <<endl <<"这个人的信息已经从你的通迅录中删除" <<endl <<endl;
	}

	system("pause");    
}

//3.
void book::show_all()
{
	ifstream inData("pbook.txt",ios::in);


	if (!inData)
	{
		cout <<endl <<"对不起,没有找到文件" <<endl;
		system("pause");
		return;
	}

	bool flag = true;
	string record;

	while (getline(inData, record))
	{
		if (flag)
		{
			cout <<endl <<"所有联系人信息如下: "<<endl;
		}
		cout <<record <<endl;
		flag = false;
	}

	if (flag)
	{
		cout <<endl <<"你的通迅录中没有联系人" <<endl <<endl;
	}
	else
	{
		cout <<endl <<"所有联系人已经全部显示出来" <<endl <<endl;
	}

	system("pause");
}
//4.
void book::alter()
{
	ofstream outData("temp.txt", ios::out);
	ifstream inData("pbook.txt", ios::in); //
	if (!outData || !inData)
	{
		cout <<endl <<"对不起,找不到文件" <<endl;
		system("pause");
		return;
	}

	string sign;
	cout <<endl <<"你要修改输入姓名:";
	cin >>sign;
	string str1;
	bool flag = true;
	string str;

	while (inData >>name)
	{
		getline(inData, str);

		if ((sign==name))
		{
			cout <<endl <<"你想修改的联系人:" <<endl <<endl;
			cout <<str1 <<endl;
			cout <<setiosflags(ios::left) <<setw(17) <<name<<" "<<str <<endl;
			cout <<endl <<"请根据下面提示修改信息: " <<endl;
			cout <<"姓名 :" ;
			cin >>name;
			fflush(stdin);
			cout <<"电话号:";
			cin >>number;
			fflush(stdin);
			cout <<"QQ    :";
			cin >>qq;
			fflush(stdin);
			break;
		}

		outData <<setiosflags(ios::left) <<setw(17) <<name<<" "<<str <<endl;		
	}

	if (flag)
	{
		cout <<endl <<"对不起,联系人中没你找的人" <<endl <<endl;
	}
	else
	{
		while (getline(inData, str))
		{
			outData <<str <<endl;
		}

		outData.close();
		inData.close();

		ofstream out("pbook.txt", ios::out);
		ifstream in("temp.txt", ios::in);

		if (!out || !in)
		{
			cout <<endl <<"对不起不能打开文件" <<endl <<endl;
			system("pause");
			return;
		}

		while (getline(in, str))
		{
			out <<str <<endl;
		}

		out.close();
		in.close();
		cout <<endl <<"这个人的信息已经在你的通迅录中修改" <<endl <<endl;
	}

	system("pause");    
}

//5.
void book::select()
{
	ifstream inData("pbook.txt",ios::in);

	if (!inData)
	{
		cout <<endl <<"对不起,文件找不到" <<endl;
		system("pause");
		return;
	}

	string sign;
	cout <<endl <<"输入你想查找的联系人的姓名: ";
	cin >>sign;
	fflush(stdin);

	string str1;
	bool flag = true;

	string str;
	while (inData >>name)
	{
		getline(inData, str);

		if ((name==sign))
		{
			cout <<endl <<"你要查找的联系人是: " <<endl <<endl;
			cout <<str1 <<endl;
			cout <<setiosflags(ios::left) <<setw(17) <<name<<str <<endl;
			flag = false;
			system("pause");
			break;
		}
	}
}
void book::save_new()
{
	ofstream outData("pbook.txt", ios::app);

	if (!outData)
	{
		cout <<endl <<"对不起,打开文件失败" <<endl <<endl;
		system("pause");
		return;
	}

	outData << setiosflags(ios::left) << setw(17) << name<<" " << setw(16) << number <<" "<< setw(18) << qq <<" "<<endl;
		
	outData.close();
}
enum power{ADD = '1', DEL = '2', SHOW = '3', Alter = '4', Select = '5', END = '6'};

int main()
{
	char choose;
	book abj;

	while (choose = abj.inter_face())
	{
		switch (choose)
		{
		case ADD:
			abj.add_person();
			break;
		case DEL:
			abj.del_person();
			break;
		case SHOW:
			abj.show_all();
			break;
		case Alter:
			abj.alter();
			break;
		case Select:
			abj.select();
			break;
		case END:
			cout <<endl <<"谢谢使用" <<endl <<endl;
			exit(0);
			break;
		default:
			break;
		}
	}
	return 0;
}




  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值