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