C++课设通讯录管理系统(类与对象)

此代码为本人课设作业,小白一枚,还望大佬指正。

题目:通讯录管理系统

以本班同学的具体数据为背景,设计一个本班同学通讯录。

1. 设计要求:

(1)学生通讯录基本信息包括:学号、姓名、性别、年龄、电话号码、家庭地址、备注等。

(2)使用类和对象的概念实现程序设计。

(3)将学生通讯录基本信息保存到文件,所有操作都针对文件中的数据。

(4)程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。

(5)编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等)。

#include<iostream>
#include<string>
#include<fstream>
#include<iomanip>
using namespace std;

#define MAXPEOPLE 100
static int scount=0;
class telephone
{
	char xuehao[20];//学号
	char xingming[20];//姓名
	char xingbie[20];//性别
	char nianling[20];//年龄
	char dianhua[20];//电话
	char zhuzhi[20];//住址
	char beizhu[20];//备注

public:
	telephone()
	{

	};
	void instial(char xh[20],char xm[20],char xb[2],char nl[20],char dh[20],char zz[200],char bz[20])
	{
		strcpy_s(xuehao,xh);
		strcpy_s(xingming,xm);
		strcpy_s(xingbie,xb);
		strcpy_s(nianling,nl);
		strcpy_s(dianhua,dh);
		strcpy_s(zhuzhi,zz);
		strcpy_s(beizhu,bz);
	};
	void setxuehao(char xh[20])
	{
		strcpy_s(xuehao,xh);
	}

	void setxingming(char xm[20])
	{
		strcpy_s(xingming,xm);
	}
	void setxingbie(char xb[20])
	{
		strcpy_s(xingbie,xb);
	}
	void setnianling(char nl[20])
	{
		strcpy_s(nianling,nl);
	}
	void setdianhua(char dh[20])
	{
		strcpy_s(dianhua,dh);
	}
	void setzhuzhi(char zz[20])
	{
		strcpy_s(zhuzhi,zz);

	}
	void setbeizhu(char bz[20])
	{
		strcpy_s(beizhu,bz);

	}
	char * getxuehao()
	{
		return xuehao;
	};
	char * getxingming()
	{
		return xingming;
	};
	char * getxingbie()
	{
		return xingbie;
	};
	char * getnianling()
	{
		return nianling;
	};
	char * getdianhua()
	{
		return dianhua;
	};
	char * getzhuzhi()
	{
		return zhuzhi;
	};
	char * getbeizhu()
	{
		return zhuzhi;
	};
};

class manage//操作类
{

	telephone tel[MAXPEOPLE];
public:

	void luru();
	void shanchu();
	void xiugai();
	void chaxun();
	void paixv();
	void liulan();
};

void menu()//菜单
{
	cout<<"******************************"<<endl;
	cout<<"*****    1.录入联系人    *****"<<endl;
	cout<<"*****    2.删除联系人    *****"<<endl;
	cout<<"*****    3.修改联系人    *****"<<endl;
	cout<<"*****    4.查询联系人    *****"<<endl;
	cout<<"*****    5.排序联系人    *****"<<endl;
	cout<<"*****    6.浏览联系人    *****"<<endl;
	cout<<"*****    7.退出通讯录    *****"<<endl;
	cout<<"******************************"<<endl;
}

void manage::luru()//1.录入联系人
{
	char xuehao[20],xingming[20],xingbie[20],nianling[20],dianhua[20],zhuzhi[20],beizhu[20];
	cout<<"请输入学号:"<<endl;
	cin>>xuehao;

	cout<<"请输入姓名:"<<endl;
	cin>>xingming;

	cout<<"请输入性别:"<<endl;
	cin>>xingbie;

	cout<<"请输入年龄:"<<endl;
	cin>>nianling;

	cout<<"请输入电话:"<<endl;
	cin>>dianhua;

	cout<<"请输入住址:"<<endl;
	cin>>zhuzhi;

	cout<<"请输入备注:"<<endl;
	cin>>beizhu;
	tel[scount].instial(xuehao,xingming,xingbie,nianling,dianhua,zhuzhi,beizhu);
	scount++;
	cout<<"添加成功"<<endl;
	system("pause");
	system("cls");//清屏操作
}

void manage::shanchu()//2.删除联系人
{
	int index=0;
	cout<<"请输入要删除的学号:"<<endl;
	cin>>index;
	for(int i=index-1;i<scount;i++)
	{
		tel[i]=tel[i+1];
	}
	scount=scount-1;
	cout<<"删除成功!"<<endl;
	system("pause");
	system("cls");//清屏操作
}

void manage::xiugai()//修改联系人
{
	char xingming[20];
	int index=0;
	char xuehao[20],xingbie[20],nianling[20],dianhua[20],zhuzhi[20],beizhu[20];
	int q=-1;
	cout<<"请输入要修改的联系人姓名:"<<endl;
	cin>>xingming;
	for(int i=0;i<scount;i++)
	{
		if (strcmp(xingming,tel[i].getxingming())==0)
		{
			cout<<"将学号修改为:"<<endl;
	        cin>>xuehao;
	        tel[index].setxuehao(xuehao);

	        cout<<"将姓名修改为"<<endl;
	        cin>>xingming;
	        tel[index].setxingming(xingming);

	        cout<<"将性别修改为"<<endl;
	        cin>>xingbie;
	        tel[index].setxingbie(xingbie);
 
	        cout<<"将年龄修改为:"<<endl;
	        cin>>nianling;
	        tel[index].setnianling(nianling);

	        cout<<"将联系电话修改为:"<<endl;
	        cin>>dianhua;
            tel[index].setdianhua(dianhua);

	        cout<<"将家庭住址修改为:"<<endl;
	        cin>>zhuzhi;
	        tel[index].setzhuzhi(zhuzhi);

	        cout<<"将备注修改为:"<<endl;
	        cin>>beizhu;
            tel[index].setbeizhu(beizhu);
	        cout<<"修改成功!"<<endl;
		}
		else
		{
			cout<<"联系人不存在"<<endl;
		}
	}
	
	system("pause");
	system("cls");
}

//查询联系人
//4-1选择查询方法
int xz()
{
	int a=0;
	cout<<"1.按姓名查找"<<endl;
	cout<<"2.按学号查找"<<endl;
	cin>>a;
	return a;
}

void manage::chaxun()//查询联系人
{
	int a=xz();
	if(a==1)
	{

	    char xingming1[20];
	    char xingming2[20];
	    cout<<"请输入要查询人姓名:"<<endl;
	    cin>>xingming1;
	    for (int i=0;i<scount;i++)
	    {
		    strcpy_s(xingming2,tel[i].getxingming());
		    if (strcmp(xingming1,xingming2)==0)
		    {
			    cout<<"学号:"<<tel[i].getxuehao()<<"\t";
			    cout<<"姓名:"<<tel[i].getxingming()<<"\t";
			    cout<<"性别:"<<tel[i].getxingbie()<<"\t";
			    cout<<"年龄:"<<tel[i].getnianling()<<"\t";
			    cout<<"电话:"<<tel[i].getdianhua()<<"\t";
			    cout<<"住址:"<<tel[i].getzhuzhi()<<"\t";
			    cout<<"备注:"<<tel[i].getbeizhu()<<endl;
		    }
			else
	        {
		        cout<<"查无此人"<<endl;
	        }
	    }

	}
	if(a==2)
	{
		char xuehao1[20];
		char xuehao2[20];
		cout<<"请输入要查询的学号:"<<endl;
		cin>>xuehao1;
		for(int i=0;i<scount;i++)
		{
			strcpy_s(xuehao2,tel[i].getxuehao());
			if (strcmp(xuehao1,xuehao2)==0)
			{
				cout<<"学号:"<<tel[i].getxuehao()<<"\t";
			    cout<<"姓名:"<<tel[i].getxingming()<<"\t";
			    cout<<"性别:"<<tel[i].getxingbie()<<"\t";
			    cout<<"年龄:"<<tel[i].getnianling()<<"\t";
			    cout<<"电话:"<<tel[i].getdianhua()<<"\t";
			    cout<<"住址:"<<tel[i].getzhuzhi()<<"\t";
			    cout<<"备注:"<<tel[i].getbeizhu()<<endl;
			}
			else
			{
				cout<<"查无此人"<<endl;
			}
		}
	}

	system("pause");
	system("cls");
}

void manage::paixv()//5.排序联系人
{
	telephone var;
	for(int i=0;i<scount;i++)
	{
		for(int j=i+1;j<scount;j++)
		{

			if(strcmp(tel[j].getxuehao(),tel[i].getxuehao())<0)
			{
				var=tel[i];tel[i]=tel[j];tel[j]=var;
			}
		}
	}
	cout<<"排序后:"<<endl;
	for (int i=0;i<scount;i++)
	{
		cout<<"学号:"<<tel[i].getxuehao()<<"\t";
		cout<<"姓名:"<<tel[i].getxingming()<<"\t";
		cout<<"性别:"<<tel[i].getxingbie()<<"\t";
		cout<<"年龄:"<<tel[i].getnianling()<<"\t";
		cout<<"电话:"<<tel[i].getdianhua()<<"\t";
		cout<<"住址:"<<tel[i].getzhuzhi()<<"\t";
		cout<<"备注:"<<tel[i].getbeizhu()<<endl;
	}
	system("pause");
	system("cls");	
}

void manage::liulan()//6.浏览联系人
{
	for (int i=0;i<scount;i++)
	{
		cout<<"学号:"<<tel[i].getxuehao()<<"\t";
		cout<<"姓名:"<<tel[i].getxingming()<<"\t";
		cout<<"性别:"<<tel[i].getxingbie()<<"\t";
		cout<<"年龄:"<<tel[i].getnianling()<<"\t";
		cout<<"电话:"<<tel[i].getdianhua()<<"\t";
		cout<<"住址:"<<tel[i].getzhuzhi()<<"\t";
		cout<<"备注:"<<tel[i].getbeizhu()<<endl;
	}
	system("pause");
	system("cls");
}

int main()
{
	manage manager;
	while(1)
	{
		int choice;

		menu();
		cout<<"请输入您的选择:";
		cin>>choice;
		switch(choice)
		{
		case 1:
			manager.luru();
			break;
		case 2:
			manager.shanchu();
			break;
		case 3:
			manager.xiugai();
			break;
		case 4:
			manager.chaxun();
			break;
		case 5:
			manager.paixv();
			break;
		case 6:
			manager.liulan();
			break;
		case 7:
			cout<<"欢迎您下次使用!"<<endl;
			system("pause");
			return 0;
			break;
		}
	}
	return 0;
}

(参考资料的基础上加以修改)


版权声明:本文为m0_64048563原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。