📄 1.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 + -