C++语言学生宿舍管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言学生宿舍管理”。
#include #include #include using namespace std;
typedef struct
/*定义结构体数组*/ {
string roomnum;
/*房间号*/ string stunum;
/*学号*/ string name;
/*姓名*/ }Student;
Student stu[1000];
/*结构体数组变量*/ int menu_select()
/*菜单函数*/ { char c;
system(“cls”);
/*运行前清屏*/ cout
§n“;cout
§n”;
cout
§n“;
cout
§n”;
cout
§n“;
cout
§n”;
cout
§n“;
cout
§n”;
cout
§n“;
cout
§n”;
cout
/*读入选择*/ return c;
/*返回选择*/ }
int Input()
/*输入若干条记录*/ { int i=0;
char flag,x[10];
/*x[10]为清除多余的数据所用*/
do{
cout
/*交互输入*/
cin>>stu[i].roomnum;
cout
cin>>stu[i].stunum;
/*菜单选择*/
cout
cin>>stu[i].name;
gets(x);
/*清除多余的输入*/
cout
cin>>flag;
/*输入判断*/
i++;
} while(flag=='y'||flag=='y');
/*判断*/
return i;}
void Display(int n)
/*显示所有记录*/ {
int i;
cout
/*格式头*/
cout
学号
姓名
n“;
cout
for(i=0;i
/*循环输入*/
{
cout
if(i>1&&i%10==0)
/*每十个暂停*/
{
cout
cout
system(”pause“);
cout
}
} cout
void Sort_by_stunum(int n)
/*按学号排序*/ {
int i,j;
string t;
for(i=0;i
/*冒泡法排序*/
for(j=0;j
if(stu[j].stunum>stu[j+1].stunum)
{
t=stu[j].stunum;
stu[j].stunum=stu[j+1].stunum;
stu[j+1].stunum=t;
t=stu[j].roomnum;
”
stu[j].roomnum=stu[j+1].roomnum;
stu[j+1].roomnum=t;
t=stu[j].name;
stu[j].name=stu[j+1].name;
stu[j+1].name=t;
} }
void Sort_by_roomnum(int n)
/*按房间号排序*/ {
int i,j;string t;
for(i=0;i
/*冒泡法排序*/
for(j=0;j
if(stu[j].stunum>stu[j+1].stunum)
{
t=stu[j].stunum;
stu[j].stunum=stu[j+1].stunum;
stu[j+1].stunum=t;
t=stu[j].roomnum;
stu[j].roomnum=stu[j+1].roomnum;
stu[j+1].roomnum=t;
t=stu[j].name;
stu[j].name=stu[j+1].name;
stu[j+1].name=t;
} }
int Insert_a_record(int n)
/*插入一条记录*/ {
cout
/*交互输入*/
cin>>stu[n].roomnum;
cout
cin>>stu[n].stunum;
cout
cin>>stu[n].name;
n++;
Sort_by_roomnum(n);
/*调用排序函数*/
cout
/*返回成功信息*/
return n;} int Delete_a_record(int n)
/*按姓名查找,删除一条记录*/ {
string s;
int i=0,j;
cout
/*交互式问寻*/ cin>>s;while(i
{
if(stu[i].name==s)
break;
else
i++;
}/*查找并判断*/ if(i==n){
cout
/*返回失败信息*/
return n;} for(j=i;j
/*删除操作*/ {
stu[j].stunum=stu[j+1].stunum;
stu[j].roomnum=stu[j+1].roomnum;
stu[j].name=stu[j+1].name;}
cout
/*返回成功信息*/
return n-1;}
void Query_a_record(int n)
/*查找并显示一条记录*/ {
string s;
int i=0;
cout
/*交互式输入*/
cin>>s;
while(i
{
if(stu[i].name==s)
break;
else
i++;
}/*查找并判断*/
if(i==n)
{
cout
}
cout
/*输出该学生信息*/
cout
int ReadfromText(int n)
/*从文件中读入数据*/ {
int i=0;ifstream in(“students.txt”);//ofstream out(“students.txt”);while(i
in>>stu[i].roomnum>>stu[i].stunum>>stu[i].name;
i++;}
} cout
/*返回成功信息*/ return n;void WritetoText(int n)
/*将所有记录写入文件*/ {
int i=0;//ifstream in(“students.txt”);ofstream out(“students.txt”);while(i
out
i++;} cout
/*返回成功信息*/
}
int main(){ int n=0;
while(1)
{
switch(menu_select())
/*选择判断*/
{
case '1':
cout
/*输入若干条记录*/
n=Input();
break;
case '2':
cout
/*显示所有记录*/
Display(n);
break;
case '3':
cout
Sort_by_roomnum(n);
/*按房间号排序*/
cout
Display(n);
cout
break;
case '4':
cout
Sort_by_stunum(n);
/*按学号排序*/
cout
Display(n);
cout
break;
case '5':
cout
n=Insert_a_record(n);
/*插入一条记录*/
Display(n);
cout
break;
case '6':
cout
n=Delete_a_record(n);
/*按姓名查找,删除一条记录*/
cout
system(“pause”);
break;
case '7':
cout
Query_a_record(n);
/*查找并显示一条记录*/
cout
system(“pause”);
break;
case '8':
cout
n=ReadfromText(n);
/*从文件中读入数据*/
cout
system(“pause”);
break;
case '9':
cout
WritetoText(n);
/*循环写入数据*/
cout
system(“pause”);
break;
case '0':
cout
/*结束程序*/
cout
system(“pause”);
exit(0);
}
} return 0;}