- /*
- Copyright (c)2016,烟台大学计算机与控制工程学院
- * All rights reserved.
- * 文件名称:项目1.cpp
- * 作 者:泮春宇
- * 完成日期:2016年1月1日
- * 版 本 号:v1.0 *问题描述:学生信息管理系统 *输入描述:无 *程序输出:测试数据
我的学生信息管理系统包括基于管理员的操作和基于学生的操作。管理员的操作应包括录入学生信息,查询信息,修改信息,删除信息等;学生的操作只有查询信息。
以顺序表SeqList存储集合,在此基础上完成对集合的操作。
类包括俩个一个为student类:其中包括学生的学号,姓名,年龄,以及各科的成绩,总成绩及平均成绩等。
第二个类为SeqList:其中包括一个student类的数组和一个数组大小的size;以及对顺序表的插入和删除操作。
管理员账号为:boss
管理员密码为:10086
系统的功能结构,用文字描述系统要完成的功能,用结构框图表示各个功能之间的关系
。
ADT SeqList{
数据对象D:D是具有数值的常量C和没有数值的变量V;
数据关系:R={<(V或者C)P(V或者C)>|V,C∈D, <(V或者C)P(V或者C)>表示由运算符P结合起来的表达式E}
基本操作:
Void chang(int n)
初始条件:list类型的数组存在;
操作结果:修改list中的数据
void del(int n)
初始条件:list类型的数组存在;
操作结果:删除一个list数组中的元素。
Void erfeng(datatype a[],int key,int n)
初始条件:list类型的数组存在;
操作结果:对datatype类型的数组进行排序。
void Find(datatype& item)
初始条件:list类型的数组存在;
操作结果:将datatype类型的数组显示在显示器上。
void kecheng(int n)
初始条件:list类型的数组存在;
操作结果:对list类型的数组查找其课程数据项。
void luru(int n)
初始条件:list类型的数组存在;
操作结果:将数据写入list类型的数组
void paixu1(datatype array[],int k,int length)。
初始条件:list类型的数组存在;
操作结果:datatype类型的数组array中的数据进行排序。
void xianshi(int n)
初始条件:list类型的数组存在;
操作结果:将liste类型的数组中的数据进行显示。
} ADT
只有一个工程如图4.1
共有俩个类,一个为SeqList如图4.2.1;另一个为student,如图4.2.2
函数调用;
class student
{
private:
int num; //学号
int grade[5]; //成绩数组
float sum; //总成绩
float ping; //平均成绩
char name[20]; //姓名
int age; //年龄
public:
student(){}
void setnum(int nu){num=nu;} 建立学号
int getnum(){int n;n=num;return n;} 得到学号
void setgrade(int a,int b){grade[b]=a;} 建立成绩
int getgrade(int n){inta;a=grade[n];return a;} 得到成绩
void setname(char *na){strcpy(name,na);} 建立姓名
char *getname(){char *na;na=name;returnna;} 得到姓名
void setage(int a){age=a;} 建立年龄
int getage(){int a;a=age;return a;} 得到年龄
friend class SeqList;
float getping(); 获得平均成绩
int getsum(); 获得总成绩
student (student &s);
};
删除函数模块设计
void SeqList::del(int n)
{
system("cls");
int i,j;
int c;
printf("\n输入你要删除的学生学号 :\n");
printf("num:");
cin>>c;
for(i=0;i<list.size;i++)
if(list.data[i].getnum()==c) break;
for(j=i;j<list.size;j++)
list.data[j]=list.data[j+1];
printf("\t\t你已经删除 %d的信息\n",c);
list.size--;
duoyu2();
}
输入模块设计
voidSeqList::luru(int n) //luru函数
{
system("cls");
int j,num,age,grade[5],k=0; //输入5科成绩
char ch[20];
do
{ k=0;
system("cls");
printf("\n输入学生信息:\n");
printf("\n学号: ");
scanf("%d",&num);
for(inti=0;i<=list.size;i++)
if(list.data[i].getnum()==num)
k=1;
if(k==0)
{
list.data[size].setnum(num);
printf("\n姓名: ");
cin>>ch;
list.data[size].setname(ch);
printf("\n年龄: ");
cin>>age;
list.data[size].setage(age);
printf("注:(成绩1为数学,成绩2为计算机,成绩3为英语,成绩4为语文,成绩5为思修 \n");
for(j=0;j<5;j++) //输出5科成绩
{
printf("\n成绩%d: ",j+1);
cin>>grade[j];
list.data[size].setgrade(grade[j],j);
}
list.size++;
}
else if(k==1)
printf("此学号已存在,请查实后再输入!!");
printf("\n如要继续输入学生信息,请选择(y/n): ");
scanf("%s",ch); //判断是否要继续
}
while(strcmp(ch,"y")==0||strcmp(ch,"Y")==0);
paixun(list.data,list.size);
guanliyuan(n);
}
修改函数模块设计
voidSeqList::change(int a)
{
int n,i,j;
int k=0;
int num,grade[5];
char name[20],ch[5];
printf("请输入要修改的学生学号:");
cin>>n;
for(i=0;i<list.size;i++)
{
if(list.data[i].getnum()==n)
{
printf("\n你确定要修改学号吗?(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) //判断是否要继续
{
printf("\n学号:");
cin>>num;
list.data[i].setnum(num);
k=1;
}
printf("\n你确定要修改学生姓名吗?(y/n): ");
cin>>ch;
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) //判断是否要继续
{
printf("\n名字:");
cin>>name;
list.data[i].setname(name);
k=1;
}
printf("\n你确定要修改学生成绩吗?(y/n): ");
scanf("%s",ch);
printf("\n");
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) //判断是否要继续
{
printf("注:(成绩1为数学,成绩2为计算机,成绩3为英语,成绩4为语文,成绩5为思修 \n");
for(j=0;j<5;j++)
{
printf("成绩%d:",j+1);
cin>>grade[j];
list.data[size].setgrade(grade[j],j);
printf("\n");
k=1;
源代码
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
const MaxListSize=100;
class student
{
private:
int num; //姓名
int grade[5];//学号
float sum;//总分
float ping;//平均
char name[20];//成绩
int age;//年龄
public:
student(){}//学生
void setnum(int nu){num=nu;}//建立名字
int getnum(){int n;n=num;return n;}//得到名字
void setgrade(int a,int b){grade[b]=a;}//建立学号
int getgrade(int n){int a;a=grade[n];return a;}//输入学号
void setname(char *na){strcpy(name,na);}//建立名字
char *getname(){char *na;na=name;return na;}
void setage(int a){age=a;}//年龄
int getage(){int a;a=age;return a;}//得到年龄
friend class SeqList;//班级成绩
float getping();//平均
int getsum();//总成绩
student (student &s);//学生个人成绩
};
int student::getsum()
{
int sum=0;
for(int i=0;i<5;i++)
sum=sum+grade[i];
return sum;
}
float student::getping()
{
float sum=0;
for(int i=0;i<5;i++)
sum=sum+grade[i];
sum=sum/5;
return sum;
}
student::student (student &s)
{
num=s.num;
age=s.age;
strcpy(name,s.name);
for(int i=0;i<5;i++)
grade[i]=s.grade[i];
}
typedef student datatype;
class SeqList
{
private:
datatype data[MaxListSize];
public:
int size;
int ListSize(){ return size;};//建立数组
void Find(datatype& item);//找到
void Find3(datatype& item);//找到
void Insert(datatype& item,int pos);//删除
void ClearList();
void luru(int n);//录入成绩
void xianshi(int n); //学号
void xinming(int n);//姓名查询
void xuehao(int a);//学号
void kecheng(int n);//
void change(int a);//修改成绩
void del(int n);//删除成绩
void paixu1(datatype array[],int k,int length);//
void Find1(datatype& item,int j);返回管理员
datatype erfeng(datatype a[],int key,int n);
void duoyu1();//返回目录
void Find2(datatype& item);//返回目录2
void zong(int n);//总目录
};
void SeqList::Find1(datatype& item,int j)
{
printf("学号:%d",item.getnum());
printf(" 姓名:%s",item.getname());
printf(" 年龄:%d",item.getage());
printf(" 成绩%d:%d",j,item.getgrade(j));
printf("\n");
}
void SeqList::Find2(datatype& item)
{
printf("学号:%d",item.getnum());
printf(" 姓名:%s",item.getname());
printf(" 年龄:%d",item.getage());
printf(" 总成绩:%d",item.getsum());
printf(" 平均成绩:%.2f",item.getping());
printf("\n");
}
void paixun(datatype array[],int length) //希尔排序 >快速排序 《插入排序 简单
{
int d = length/2; //设置希尔排序的增量
int i ;
int j;
student temp,t;
while(d>=1)
{
for(i=d;i<length;i++)
{
temp=array[i];//分组
j=i-d;
while(j>=0 && array[j].getnum()>temp.getnum())//排序
{
t=array[j];
array[j+d]=t;
j=j-d;
}
array[j+d]=temp;
}
d= d/2; //缩小增量
}
}
void SeqList::Find(datatype& item)
{
printf("学号:%d",item.getnum());
printf(" 姓名:%s",item.getname());
printf(" 年龄:%d",item.getage());
for(int j=0;j<5;j++)
printf(" 成绩:%d",item.getgrade(j));
printf(" 总成绩:%d",item.getsum());
printf(" 平均成绩:%.2f",item.getping());
}
void SeqList::Find3(datatype& item)
{
printf("学号:%d",item.getnum());
printf(" 姓名:%s",item.getname());
printf(" 年龄:%d",item.getage());
for(int j=0;j<5;j++)
printf(" 成绩:%d",item.getgrade(j));
printf(" 总成绩:%d",item.getsum());
printf(" 平均成绩:%.2f",item.getping());
}
void SeqList::ClearList ()
{
size =0;
}
SeqList list;
void guanliyuan(int n);
void guanliyuanmain(int n);
void guanliyuan_denglu(int n);
void duoyu1();
void xianshi1(int n);
void duoyu2();
void paixun(datatype array[],int length);
void studentmain(int n);
void zhu();
void main()
{
int a;
do
{
system("cls");
list.ClearList();
printf("\n\n\n");
printf("\t\t\t 欢迎使用学生信息查询系统 \n ");
printf("\t\t\t******************************\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 1.管理员登陆 *\n");
printf("\t\t\t* 2.学员登录 *\n");
printf("\t\t\t* 3.退出 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t******************************\n\n");
printf("\t\t\t请输入你要操作的序号:\n");
printf("\t\t\t你要输入的序号是:");
scanf("%d",&a);
if(a<0||a>3)
printf("您输入的有误,请重新输入!!!");
switch(a)
{
case 1:guanliyuan_denglu(0);break;
case 2:studentmain(1);break;
case 3:exit(0);break;
}
}
while(a!=0);
}
void zhu()
{
int a;
do
{
system("cls");
printf("\n\n\n");
printf("\t\t\t 欢迎使用学生信息查询系统 \n ");
printf("\t\t\t******************************\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 1.管理员登陆 *\n");
printf("\t\t\t* 2.学员登录 *\n");
printf("\t\t\t* 3.退出 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t******************************\n\n");
printf("\t\t\t请输入你要操作的序号:\n");
printf("\t\t\t你要输入的序号是:");
scanf("%d",&a);
if(a<0||a>3)
printf("您输入的有误,请重新输入!!!");
switch(a)
{
case 1:guanliyuan_denglu(0);break;
case 2:studentmain(1);break;
case 3:exit(0);break;
}
}
while(a!=0); //0 3 退出
}
void guanliyuan_denglu(int n)
{
system("cls");//清屏
char z[10],sun[10]={'\0'},c;
int i=0;
printf("\t\t\n\n\n\n");
printf("\t\t\t 欢迎使用学生信息查询系统 \n ");
printf("\t*************************************************************\n\n\n");
printf("\t\t\t 请输入管理员账号:");
scanf("%s",&z);
printf("\t\t\t 请输入管理员密码:");
while(1)
{
c=getch();
if(c != '\r')
{
printf("*");
sun[i]=c;
i++;
}
else break;
}
if(strcmp("boss",z)==0&&strcmp("10086",sun)==0)
guanliyuan(n);
else
{
printf("\t\t\t您输入的有误!!!");
}
}
void guanliyuan(int n)
{
int a;
do
{
system("cls");
printf("\n\n\n");
printf("\t\t\t 欢迎使用学生信息查询系统 \n ");
printf("\t\t\t**************************************\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 1.录入系统 *\n");
printf("\t\t\t* 2.查询系统 *\n");//有序 折半查找算法
printf("\t\t\t* 3.修改系统 *\n");
printf("\t\t\t* 4.删除系统 *\n");
printf("\t\t\t* 5.返回主菜单 *\n");
printf("\t\t\t* 6. 退出 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t**************************************\n\n");
printf("\t\t\t请输入你要操作的序号:\n");
printf("\t\t\t你要输入的序号是:");
scanf("%d",&a);
if(a<0||a>6)
printf("您输入的有误,请重新输入!!!");
switch(a)
{
case 1:list.luru(n);break;
case 2:guanliyuanmain(n);break;
case 3:list.change( n);break;
case 4:list.del(n);break;
case 5:zhu();break;
case 6:exit(0);break;
}
}
while(a!=0);
system("cls");
}
void guanliyuanmain(int n) //学生
{
int a;
do
{
system("cls");
printf("\n\n\n");
printf("\t\t\t 欢迎使用学生信息查询系统 \n ");
printf("\t\t\t*************************************\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 1.查询全班信息 *\n");
printf("\t\t\t* 2.查询个人信息 *\n");
printf("\t\t\t* 3.返回上一级菜单 *\n");
printf("\t\t\t* 4.返回主菜单 *\n");
printf("\t\t\t* 5.退出 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t*************************************\n\n");
printf("\t\t\t请输入你要操作的序号:\n");
printf("\t\t\t你要输入的序号是:");
scanf("%d",&a);
if(a<0||a>4)
printf("您输入的有误,请重新输入!!!");
switch(a)
{
case 1:list.xianshi(n);break;
case 2:xianshi1(n);break;
case 3:guanliyuan(n);break;
case 4:zhu();break;
case 5:exit(0);break;
}
}
while(a!=0);
}
void SeqList::luru(int n)
{
system("cls");
int j,num,age,grade[5],k=0;
char ch[20];
do
{ k=0;
system("cls");
printf("\n输入学生信息:\n");
printf("\n学号: ");
scanf("%d",&num);
for(int i=0;i<=list.size;i++)
if(list.data[i].getnum()==num)
k=1;
if(k==0)
{
list.data[size].setnum(num);
printf("\n姓名: ");
cin>>ch;
list.data[size].setname(ch);
printf("\n年龄: ");
cin>>age;
list.data[size].setage(age);
printf("注:(成绩1为高数,成绩2为计算机,成绩3为英语,成绩4为数据结构,成绩5为思修 \n");
for(j=0;j<5;j++)
{
printf("\n成绩%d: ",j+1);
cin>>grade[j];
list.data[size].setgrade(grade[j],j);
}
list.size++;
}
else if(k==1)
printf("此学号已存在,请查实后再输入!!");
printf("\n如要继续输入学生信息,请选择(y/n): ");
scanf("%s",ch);
}
while(strcmp(ch,"y")==0||strcmp(ch,"Y")==0);
paixun(list.data,list.size);
guanliyuan(n);
}
void SeqList::xianshi(int n)
{
system("cls");
int i;
for(i=0;i<list.size;i++)
{
Find(list.data[i]);
printf("\n");
}
if(n==1)
duoyu1();
else if(n==0)
duoyu2();
}
void xianshi1(int n)
{
int a;
do
{
system("cls");
printf("\n\n\n");
printf("\t\t\t 欢迎使用学生信息查询系统 \n ");
printf("\t\t\t**************************************\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 1.按姓名查找 *\n");
printf("\t\t\t* 2.按学号查找 *\n");
printf("\t\t\t* 3.按课程名查找 *\n");
printf("\t\t\t* 4.按总成绩查找 *\n");
printf("\t\t\t* 5.返回主菜单 *\n");
printf("\t\t\t* 6. 退出 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t**************************************\n\n");
printf("\t\t\t请输入你要操作的序号:\n");
printf("\t\t\t你要输入的序号是:");
scanf("%d",&a);
if(a<0||a>6)
printf("您输入的有误,请重新输入!!!");
switch(a)
{
case 1:list.xinming(n);break;
case 2:list.xuehao(n);break;
case 3:list.kecheng(n);break;
case 4:list.zong(n);break;
case 5:zhu();break;
case 6:exit(0);break;
}
}while(a!=0);
}
void SeqList::xinming(int n)
{
system("cls");
char key[20];
printf("请输入姓名:");
scanf("%s",key);
for(int i=0;i<list.size;i++)
{
if(i>list.size)
printf("无该人,请确认后在输入!");
else if(strcmp(list.data[i].getname(),key)==0)
Find(list.data[i]);
}
if(n==1)
duoyu1();
else if(n==0)
duoyu2();
}
datatype SeqList::erfeng(datatype a[],int key,int n) //二分法
{
int low=0,high=n-1;
int mid;
while(low<=high)
{
mid=(low+high)/2;
if(a[mid].getnum()==key)
return a[mid];
else if(a[mid].getnum()<key)
low=mid+1;
else high=mid-1;
}
guanliyuanmain(0);
printf("无该学生!!");
}
void SeqList::xuehao(int a)
{
system("cls");
int n;
student stu;
printf("请输入学号:");
cin>>n;
stu=erfeng(list.data,n,list.size);
Find(stu);
getch();
if(n==1)
duoyu1();
else if(n==0)
duoyu2();
}
void SeqList::kecheng(int n)
{
system("cls");
int key,j;
student stu[100];
printf("请输入课程代号:");
printf("(1为高数,2为计算机,3为英语,4为数据结构,5为思修) \n");
cin>>key;
if(key>5||key<1)
printf("输入错误!!");
else
for(j=0;j<list.size;j++)
{
stu[j]=list.data[j];
}
paixu1(stu,key,list.size);
if(n==1)
duoyu1();
else if(n==0)
duoyu2();
}
void SeqList::zong(int n)
{
system("cls");
int j;
student stu[100];
for(j=0;j<list.size ;j++)
stu[j]=list.data[j];
paixu1(stu,9,list.size);
getch();
if(n==1)
duoyu1();
else if(n==0)
duoyu2();
}
void SeqList::change(int a)
{
int n,i,j;
int k=0,l=0;
int num,grade[5];
char name[20],ch[5];
printf("请输入要修改的学生学号:");
cin>>n;
for(i=0;i<list.size;i++)
{
if(list.data[i].getnum()==n)
{
printf("\n你确定要修改学号吗?(y/n): ");
scanf("%s",ch);
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)
{
printf("\n学号:");
cin>>num;
for(j=i;j<list.size;j++)
if(list.data[j].getnum()==num)
l=1;
if(l==0)
{
list.data[i].setnum(num);
k=1;
}
else
{
k=8;
printf("学生输入异常!");
getch();
break;
duoyu2();
}
}
printf("\n你确定要修改学生姓名吗?(y/n): ");
cin>>ch;
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)
{
printf("\n名字:");
cin>>name;
list.data[i].setname(name);
k=1;
}
printf("\n你确定要修改学生年龄吗?(y/n): ");
cin>>ch;
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)
{
int age;
printf("\n年龄:");
cin>>age;
list.data[i].setage(age);
k=1;
}
printf("\n你确定要修改学生成绩吗?(y/n): ");
scanf("%s",ch);
printf("\n");
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)
{
printf("注:(成绩1为高数,成绩2为计算机,成绩3为英语,成绩4为数据结构,成绩5为思修 )\n");
for(j=0;j<5;j++)
{
printf("成绩%d:",j+1);
cin>>grade[j];
list.data[i].setgrade(grade[j],j);
printf("\n");
k=1;
}
}
}break;
}
system("cls");
if(k==1)
Find(list.data[i]);
else if(k==0)
printf("无该学生,或您没执行操作!!!");
paixun(list.data,list.size);
duoyu2();
}
void SeqList::del(int n)
{
system("cls");
int i,j;
int c;
int k=0;
printf("\n输入你要删除的学生学号 :\n");
printf("num:");
cin>>c;
for(i=0;i<list.size;i++)
if(list.data[i].getnum()==c)
{
k=1;
break;
}
if(k==1)
{
for(j=i;j<list.size;j++)
list.data[j]=list.data[j+1];
printf("\t\t你已经删除 %d的信息\n",c);
list.size--;
}
else if(k==0)
printf("无该学生,请确认后再输入!!!");
duoyu2();
}
void SeqList::paixu1(datatype array[],int k,int length)
{
int d = length/2; //设置希尔排序的增量
int i ;
int j;
student temp,t;
if(k==9)
{
while(d>=1)
{
for(i=d;i<length;i++)
{
temp=array[i];
j=i-d;
while(j>=0 && array[j].getsum()<temp.getsum())
{
t=array[j];
array[j+d]=t;
j=j-d;
}
array[j+d]=temp;
}
d= d/2; //缩小增量
}
for(i=0;i<list.size;i++)
Find2(array[i]);
}
else if(k!=9)
{
while(d>=1)
{
for(i=d;i<length;i++)
{
temp=array[i];
j=i-d;
while(j>=0 && array[j].getgrade(k)<temp.getgrade(k))
{
t=array[j];
array[j+d]=t;
j=j-d;
}
array[j+d]=temp;
}
d= d/2; //缩小增量
}
for(i=0;i<list.size;i++)
Find1(array[i],k);
}
}
void studentmain(int n)
{
int a;
do
{
system("cls");
printf("\n\n\n");
printf("\t\t\t 欢迎使用学生信息查询系统 \n ");
printf("\t\t\t*************************************\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 1.查询全班信息 *\n");
printf("\t\t\t* 2.查询个人信息 *\n");
printf("\t\t\t* 3.返回上一级菜单 *\n");
printf("\t\t\t* 4.退出 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t*************************************\n\n");
printf("\t\t\t请输入你要操作的序号:\n");
printf("\t\t\t你要输入的序号是:");
scanf("%d",&a);
if(a<0||a>4) //判断输入的是否大于4或小于0
printf("您输入的有误,请重新输入!!!");
switch(a)
{
//调用geren函数
case 1:list.xianshi(1);break;
case 2:xianshi1(1);break;
case 3:zhu();break;
case 4:exit(0);break;
}
}
while(a!=0);
}
void SeqList::duoyu1()
{
int a;
do
{
printf("\n\n\n");
printf("\t\t\t 欢迎使用学生信息查询系统 \n ");
printf("\t\t\t**********************************\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 1.返回学生菜单 *\n");
printf("\t\t\t* 2.返回主菜单 *\n");
printf("\t\t\t* 3.退出 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t**********************************\n\n\n");
printf("\t\t\t请输入你要操作的序号:\n");
printf("\t\t\t你要输入的序号是:");
scanf("%d",&a);
if(a<0||a>3)
printf("您输入的有误,请重新输入!!!");
switch(a)
{
case 1:studentmain(1);break;
case 2:zhu();break;
case 3:exit(0);break;
}
}while(a!=0);
system("cls");
}
void duoyu2()
{
int a;
do
{
printf("\n\n\n");
printf("\t\t\t 欢迎使用学生信息查询系统 \n ");
printf("\t\t\t**********************************\n");
printf("\t\t\t* *\n");
printf("\t\t\t* 1.返回管理员菜单 *\n");
printf("\t\t\t* 2.返回主菜单 *\n");
printf("\t\t\t* 3.退出 *\n");
printf("\t\t\t* *\n");
printf("\t\t\t**********************************\n\n\n");
printf("\t\t\t请输入你要操作的序号:\n");
printf("\t\t\t你要输入的序号是:");
scanf("%d",&a);
if(a<0||a>3)
printf("您输入的有误,请重新输入!!!");
switch(a)
{
case 1:guanliyuan(0);break;
case 2:zhu();break;
case 3:exit(0);break;
}`
}while(a!=0);
system("cls");
}