⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 student.cpp

📁 用c++实现一个班级通讯录
💻 CPP
字号:
用c++实现一个班级通讯录,学生只有学号和姓名两个属性,能够添加学生,按学号查找学生,按学号的升序和降序两种方式排列所有学生



#include<iostream.h>
#include<string.h>

typedef struct docu
{
	int num;
	char name[10];
}* docum;

class student
{
	int quan;
	docum rec;
public:
	student()
	{
		quan=0;
		rec=new docu[100];
	}

	void input()
	{
		char * a;
		int i=0;
		bool s=0;
		if(quan>99)
		{
			cout<<"error1"<<endl;
			return;
		}
		cout<<"Please input name:"<<endl;
		do
		{
			a=new char[100];
			cin>>a;
			if(strlen(a)<11&&strlen(a)>0)
			{
				strcpy(rec[quan].name,a);
				s=1;
			}
			else
			{
				cout<<"重新输入"<<endl;
			}
			delete a;
		}while(s==0);
		cout<<"Please input the serial number:"<<endl;
		cin>>rec[quan].num;
		if(search(rec[quan].num))
			cout<<"error,the number is already exist!"<<endl;
		else
			quan++;
	}

	bool search(int number)
	{
		int i=0;
		bool d=0;
		while(d==0&&i<quan)
		{
			if(rec[i].num==number)
			{
				cout<<' '<<rec[i].num<<' '<<rec[i].name<<endl;
				d=1;
			}
			i++;
		}
		return d;
	}

	void list()
	{
		int i;
		if(quan==0)
		{
			cout<<"无记录"<<endl;
			return;
		}
		else
		{
			cout<<"升序(1)||降序(2)"<<endl;
			cin>>i;
		}
		if(i==1)
		{
			for(i=0;i<quan;i++)
				cout<<' '<<rec[i].num<<' '<<rec[i].name<<endl;
			return;
		}
		else if(i==2)
		{
			for(i=quan-1;i>=0;i--)
				cout<<' '<<rec[i].num<<' '<<rec[i].name<<endl;
			return;
		}
		cout<<"error2"<<endl;
	}

	void order()
	{
		int i,j;
		char tempc[10];
		int tempi;
		for(i=1;i<quan;i++)
		{
			j=i;
			while(rec[j].num<rec[j-1].num)
			{
				strcpy(tempc,rec[j].name);
				tempi=rec[j].num;

				strcpy(rec[j].name,rec[j-1].name);
				rec[j].num=rec[j-1].num;

				strcpy(rec[j-1].name,tempc);
				rec[j-1].num=tempi;

				if(j>1)
					j--;
			}
		}
	}

};

void main()
{
	student a;
	char select;
	int num;
	bool s=0;
	do
	{	
		cout<<"choose function:"<<endl;
		cout<<"  1-input the informations about a student"<<endl;
		cout<<"  2-get name from serial number"<<endl;
		cout<<"  3-make a list if students"<<endl;
		cout<<"  0-exit"<<endl;
		cin>>select;
		switch(select)
		{
		case '1':
			a.input();
			a.order();
			break;
		case '2':
			cout<<"Please input the serial number:"<<endl;
			cin>>num;
			(a.search(num)==1)?0:cout<<"无记录"<<endl;
			break;
		case '3':
			a.list();
			break;
		case '0':
			s=1;
			continue;
		default:
			cout<<"error3"<<endl;
		}
	}while(s!=1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -