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

📄 1.cpp

📁 学生公寓管理系统
💻 CPP
字号:
#include <iostream.h>
#include <string.h>
#define MAXSIZE 30
class database
{
private:
	char name[8];//学生姓名
	char department[10];//学生系别
	int grade;//年级
	int classroom;//班级
	int buildingnum;//公寓楼号
	int roomnum;//寝室号
public:
	void getname()
	{cout<<"学生姓名"; cin>>name;}
	void getdepartment()
	{cout<<"系别"; cin>>department;}
	void getgrade()
	{cout<<"年级"; cin>>grade;}
	void  getclassroom()
	{cout<<"班级"; cin>>classroom;}
	void  getbuildingnum()
	{cout<<"公寓楼号"; cin>>buildingnum;}
	int  getroomnum()
	{cout<<"寝室号"; cin>>roomnum;return roomnum;}
	friend void search(database *a[]);//查找函数
	friend void registeration(database *a[]);//登记函数
	friend void scan(database *a[]);//浏览函数
	friend void sum (database *a[]);//统计函数
	friend void modify(database *a[]);//修改函数
};
int num=1;//全局变量,记录登记的学生人数
void main()
{
	void registeration(database *a[]);
	void search(database *a[]);
	void display(database *a[],int i);
	void scan(database *a[]);
	void sum (database *a[]);
	void modify(database *a[]);
	database *student[MAXSIZE];
	char choice, ch;
	cout<<"欢迎使用学生公寓管理系统"<<endl;
	cout<<"(输入人名和系别请用英语,输入其他信息请用阿拉伯数字)"<<endl;
	do
	{
		cout<<"请选择:a(登记)b(查找)c(浏览)d (统计)e(资料修改)"<<endl;		
		cin>>choice;
		switch (choice)
		{
		case 'a':
			registeration( &student[MAXSIZE]); break;
		case 'b':
			search( &student[MAXSIZE]); break;
		case'c':
			scan(&student[MAXSIZE]); break;
		case'd':
			sum(&student[MAXSIZE]); break;
		case'e':
			modify(&student[MAXSIZE]); break;
		default: cout<<"输入错误!"<<endl;
		}
		cout<<"还需要其他服务吗(y n)"<<endl;
		cin>>ch;
	}while(ch=='y');
   cout<<"感谢你使用本系统";
}
void  registeration(database *student[MAXSIZE])//登记函数
{
	int count=0;char ch;
	cout<<"输入学生基本信息"<<endl;
	do
	{
		database *ptr = new database;
		ptr->getname();
		ptr->getdepartment();
		ptr->getgrade();
		ptr->getclassroom();
		ptr->getbuildingnum();
		ptr->getroomnum();
		student[count++]=ptr;
		num=count;
		cout<<"继续吗(y n)"<<endl;
		cin>>ch;
	}while(ch=='y');
	cout<<"登记结束"<<endl;
}
void search (database *student[MAXSIZE])//查找函数
{
	char ch,ch1, t_name[8], t_department[10];
	int  t_grade,t_classroom, t_buildingnum, t_roomnum, i,tag;
	do
	{
		cout<<"选择你要查找的内容 a(学生姓名)b(系别)c(年级)d(班级)e(学生公寓楼号)f(学生寝室号)"<<endl;
		cin>>ch;
		switch (ch)
		{
		case'a':		
			 tag=0;
			cout<<"输入要找的学生姓名"<<endl;
			cin>>t_name;
			for ( i=0; i<num; i++)
			{
				if(strcmp(student[i]->name, t_name)==0)
				{
				   cout<<"姓名"<<'\t'<<"系别"<<'\t'<<"年级"<<'\t'<<"班级"<<'\t'<<"公寓楼号"<<'\t'<<"寝室号"<<endl;
                   cout<<student[i]->name<<'\t'<<student[i]->department<<'\t'<<student[i]->grade<<'\t'<<student[i]->classroom<<'\t'<<student[i]->buildingnum<<'\t'<<'\t'<<student[i]->roomnum<<endl;	
				   tag=1;//如果找到,则将标志置为1
				}
			}
			if(tag==0)
			cout<<"你查找的信息不在记录中"<<endl;
		break;
		case'b':
			  tag=0;
			cout<<"输入要找的系的名称"<<endl;
			cin>>t_department;
			for (i=0; i<num; i++)
			{
				if(strcmp(student[i]->department,t_department)==0)
				{
				    cout<<"姓名"<<'\t'<<"系别"<<'\t'<<"年级"<<'\t'<<"班级"<<'\t'<<"公寓楼号"<<'\t'<<"寝室号"<<endl;
					cout<<student[i]->name<<'\t'<<student[i]->department<<'\t'<<student[i]->grade<<'\t'<<student[i]->classroom<<'\t'<<student[i]->buildingnum<<'\t'<<'\t'<<student[i]->roomnum<<endl;	
					tag=1;
				}
			}
			if(tag==0)
			cout<<"你查找的信息不在记录中"<<endl;
			break;
		case'c':
			tag=0; 
			cout<<"输入要找的年级"<<endl;
			cin>>t_grade;
			for (i=0; i<num; i++)
			{
				if(t_grade==student[i]->grade)
				{
                   cout<<"姓名"<<'\t'<<"系别"<<'\t'<<"年级"<<'\t'<<"班级"<<'\t'<<"公寓楼号"<<'\t'<<"寝室号"<<endl;
                   cout<<student[i]->name<<'\t'<<student[i]->department<<'\t'<<student[i]->grade<<'\t'<<student[i]->classroom<<'\t'<<student[i]->buildingnum<<'\t'<<'\t'<<student[i]->roomnum<<endl;
				   tag=1;
				}
			}
			if(tag==0)
			cout<<"你查找的信息不在记录中"<<endl;
			break;
		case'd':
			tag=0;
			cout<<"输入要找的班级"<<endl;
			cin>>t_classroom;
			for(i=0; i<num; i++)
			{
				if(t_classroom==student[i]->classroom)
				{
                   cout<<"姓名"<<'\t'<<"系别"<<'\t'<<"年级"<<'\t'<<"班级"<<'\t'<<"公寓楼号"<<'\t'<<"寝室号"<<endl;
                   cout<<student[i]->name<<'\t'<<student[i]->department<<'\t'<<student[i]->grade<<'\t'<<student[i]->classroom<<'\t'<<student[i]->buildingnum<<'\t'<<'\t'<<student[i]->roomnum<<endl;
				   tag=1;
				}
			}
			if(tag==0)
			cout<<"你查找的信息不在记录中"<<endl;
			break;
		case'e':
			tag=0;
			cout<<"输入要找的公寓楼号"<<endl;
			cin>>t_buildingnum;
			for(i=0; i<num; i++)
			{
				if(t_buildingnum==student[i]->buildingnum)
				{
                   cout<<"姓名"<<'\t'<<"系别"<<'\t'<<"年级"<<'\t'<<"班级"<<'\t'<<"公寓楼号"<<'\t'<<"寝室号"<<endl;
                   cout<<student[i]->name<<'\t'<<student[i]->department<<'\t'<<student[i]->grade<<'\t'<<student[i]->classroom<<'\t'<<student[i]->buildingnum<<'\t'<<'\t'<<student[i]->roomnum<<endl;
				   tag=1;
				}
			}
			if(tag==0)
			cout<<"你查找的信息不在记录中"<<endl;
			break;
		case'f':
			tag=0;
			cout<<"输入要找的寝室号"<<endl;
			cin>>t_roomnum;
			for (i=0; i<num; i++)
			{
				if (t_roomnum==student[i]->roomnum)
				{
					cout<<"姓名"<<'\t'<<"系别"<<'\t'<<"年级"<<'\t'<<"班级"<<'\t'<<"公寓楼号"<<'\t'<<"寝室号"<<endl;
                    cout<<student[i]->name<<'\t'<<student[i]->department<<'\t'<<student[i]->grade<<'\t'<<student[i]->classroom<<'\t'<<student[i]->buildingnum<<'\t'<<'\t'<<student[i]->roomnum<<endl;
					tag=1;
				}
			}
			if(tag==0)
			cout<<"你查找的信息不在记录中"<<endl;
			break;
		default:cout<<"输入错误!"<<endl;
		}
	cout<<"继续查找吗?(y n)"<<endl;
	cin>>ch1;
	}while(ch1=='y');
	cout<<"查找结束"<<endl;
}
void scan(database *student[MAXSIZE])//浏览函数
{
	char ch, ch1;
	int i, j;
	do
	{
		cout<<"输入你想浏览的顺序:a(按人名字母先后)b(按系别字母先后)c(按公寓楼号大小)"<<endl;
		cin>>ch;
		if (ch=='a')
		{
			database *ptr = new database;
			for ( i=0; i<num-1; i++)
				for ( j=0; j<num-i-1; j++)
					if(strcmp(student[j]->name, student[j+1]->name)>0)
					{
						ptr = student[j];
						student[j]=student[j+1];
						student[j+1] = ptr;
					}
			cout<<"姓名"<<'\t'<<"系别"<<'\t'<<"年级"<<'\t'<<"班级"<<'\t'<<"公寓楼号"<<'\t'<<"寝室号"<<endl;
			for (i=0; i<num; i++)	
				cout<<student[i]->name<<'\t'<<student[i]->department<<'\t'<<student[i]->grade<<'\t'<<student[i]->classroom<<'\t'<<student[i]->buildingnum<<'\t'<<'\t'<<student[i]->roomnum<<endl;	
		}
		if(ch=='b')
		{
			database *ptr1 = new database;
			for (i=0; i<num-1; i++)
				for (j=0; j<num-i-1; j++)
					if (strcmp(student[j]->department, student[j+1]->department)>0)
					{
						ptr1=student[j];
						student[j]=student[j+1];
						student[j+1]=ptr1;
					}
             cout<<"姓名"<<'\t'<<"系别"<<'\t'<<"年级"<<'\t'<<"班级"<<'\t'<<"公寓楼号"<<'\t'<<"寝室号"<<endl;
             for (i=0; i<num; i++)	
				cout<<student[i]->name<<'\t'<<student[i]->department<<'\t'<<student[i]->grade<<'\t'<<student[i]->classroom<<'\t'<<student[i]->buildingnum<<'\t'<<'\t'<<student[i]->roomnum<<endl;	
		}
		if(ch=='c')
		{
			database *ptr2=new database;
			for (i=0; i<num-1; i++)
			{
				int min=student[i]->buildingnum;
				int no=i;
				for(j=i+1; j<num; j++)
					if (student[no]->buildingnum>student[j]->buildingnum)
					{
						min = student[j]->buildingnum;
						no=j;
					}
					ptr2=student[i];
					student[i]=student[no];
					student[no]=ptr2;
			}
             cout<<"姓名"<<'\t'<<"系别"<<'\t'<<"年级"<<'\t'<<"班级"<<'\t'<<"公寓楼号"<<'\t'<<"寝室号"<<endl;
             for (i=0; i<num; i++)	
				cout<<student[i]->name<<'\t'<<student[i]->department<<'\t'<<student[i]->grade<<'\t'<<student[i]->classroom<<'\t'<<student[i]->buildingnum<<'\t'<<'\t'<<student[i]->roomnum<<endl;	
		}
		if(ch!='a'&&ch!='b'&&ch!='c')
			cout<<"输入错误!"<<endl;
		cout<<"继续浏览吗(y n)?"<<endl;
		cin>>ch1;
	}while (ch1=='y');
}
void sum(database *student[MAXSIZE])//统计函数
{
	char ch, ch1;
	int i,n,count=0;
	do
	{
		cout<<"输入你想进行人数统计的范围 a(按年级)b(按班级)"<<endl;
		cin >>ch;
		if(ch=='a')
		{			
			cout<<"你要统计哪个年级的人数?"<<endl;
			cin>>n;
			for (i=0; i<num; i++)
			{
				if (student[i]->grade==n)
					count++;
			}
			cout<<n<<"年级共有"<<count<<"人"<<endl;
		}
		count=0;
		if(ch=='b')
		{
			cout<<"你要统计哪个班级的人数?"<<endl;
			cin>>n;
			for (i=0; i<num; i++)
			{
				if(student[i]->classroom==n)
					count++;
			}
			cout<<n<<"班级共有"<<count<<"人"<<endl;
		}
		if(ch!='a'&&ch!='b')
			cout<<"输入错误!"<<endl;
		cout<<"继续统计吗?(y n)?"<<endl;
		cin>>ch1;
	}while(ch1=='y');
}
void modify (database *student[MAXSIZE])//修改函数
{
	char t_name[8], ch,ch1,ch2;
	int k;
	do
	{
		cout<<"输入你想修改资料的学生姓名"<<endl;
		cin>>t_name;
		for (int i=0; i<num; i++)
		{
			if (strcmp(student[i]->name,t_name)==0)
			{
				 k=i;
				cout<<"他(她)的原始记录是"<<endl;
				cout<<"姓名"<<'\t'<<"系别"<<'\t'<<"年级"<<'\t'<<"班级"<<'\t'<<"公寓楼号"<<'\t'<<"寝室号"<<endl;
				cout<<student[i]->name<<'\t'<<student[i]->department<<'\t'<<student[i]->grade<<'\t'<<student[i]->classroom<<'\t'<<student[i]->buildingnum<<'\t'<<'\t'<<student[i]->roomnum<<endl;	
			}
		}
		do
			{
				cout<<"请选择你想修改的信息a(系别)b(年级)c(班级)d(公寓楼号)e(寝室号)"<<endl;
				cin>>ch;
				if(ch=='a')
				{
					char t_department[10];
					cout<<"输入新的系别的名称"<<endl;
					cin>>t_department;
					strcpy(student[k]->department,t_department);
				}
				if(ch=='b')
				{
					int t_grade;
					cout<<"输入新的年级"<<endl;
					cin>>t_grade;
					student[k]->grade=t_grade;
				}
				if (ch=='c')
				{
					int t_classroom;
					cout<<"输入新的班级"<<endl;
					cin>>t_classroom;
					student[k]->classroom=t_classroom;
				}
				if(ch=='d')
				{
					int t_buildingnum;
					cout<<"输入新的公寓楼号"<<endl;
					cin>>t_buildingnum;
					student[k]->buildingnum=t_buildingnum;
				}
				if(ch=='e')
				{
					int t_roomnum;
					cout<<"输入新的寝室号"<<endl;
					cin>>t_roomnum;
					student[k]->roomnum=t_roomnum;
				}
                if(ch!='a'&&ch!='b'&&ch!='c'&&ch!='d'&&ch!='e')
					cout<<"输入错误!"<<endl;
				cout<<"还要修改他(她)的其他信息吗(y n)?"<<endl;
				cin>>ch1;				
			}while(ch1=='y');
		cout<<"他(她)的新的资料记录是"<<endl;
		cout<<"姓名"<<'\t'<<"系别"<<'\t'<<"年级"<<'\t'<<"班级"<<'\t'<<"公寓楼号"<<'\t'<<"寝室号"<<endl;
		cout<<student[k]->name<<'\t'<<student[k]->department<<'\t'<<student[k]->grade<<'\t'<<student[k]->classroom<<'\t'<<student[k]->buildingnum<<'\t'<<'\t'<<student[k]->roomnum<<endl;	
		cout<<"还要修改其他学生的信息吗?(y n)"<<endl;
		cin>>ch2;
	}while(ch2=='y');
}



				

⌨️ 快捷键说明

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