一.系统分析:
1.开发背景:
随着科学技术的发展,计算机管理在日常生活中的地位变得越来越重要。它能够代替人做各种重复,繁琐的劳动,并且拥有操作简单,可信度好,不易出错等优点,大大减少了不必要的人力消耗,提高个人的工作效率。学生档案管理是每个学校必须面临的问题,所以,如何开发一个应用简单,见面友好,容易操作,数据安全性好的管理系统就成为非常重要的技术问题。
学生信息管理系统,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。
它是一个教育单位不可缺少的部分,它的内容对于学校管理者来说是至关重要的,能有效的帮助学校和老师掌握学生的情况。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率,也是学校实现科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情。
2.系统开发的意义:
(1)记录学生的信息;
(2)对学生信息进行储存;
(3) 对学生信息进行修改;
(4)随时对学生信息进行查询;
(5)可以删除学生信息进行管理;
3.系统应含有那些功能:
1.界面菜单:
2.信息录入:
3.储存信息:
4.信息查询:
5.信息修改:
6删除信息:
7退出系统:
二.系统设计:
(一)系统的概要设计
1、功能模块图
2、设计思路
将学生信息定义为一个person类,在类中包含数据成员:
int num;
string name;
string sex;
int age;
int banji;,
分别表示学号、姓名、性别、年龄、班级。
分别定义小、中、大学三个类为class xiaoxuesheng、class zhongxuesheng、class daxuesheng并继承person类,而后分别为它们一个管理类并定义公有成员函数
void Add(); 实现数据添加功能
void Show(); 实现数据显示功能
void Search(); 实现数据查询功能
void Edit(); 实现数据修改功能
void Delete(); 实现数据删除功能
然后定义了一个主菜单函数和三个分菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作。
主函数是一个程序必不可少的,在主函数中,使用一个switch语句来选择调用主菜单中的各个功能函数。
- 系统的详细设计
1、程序中函数及数据介绍
class Person 学生类
class zhongxuesheng 中学生类
class daxuesheng 大学生类
class xiaoxuesheng 小学生类
class xiao_Manage 小学生管理类
class zhong_Manage 中学生管理类
class da_Manage 大学生管理类
void xiaoMenu() 小学生管理菜单函数
void zhongMenu() 中学生管理菜单函数
void daMenu() 大学生管理菜单函数
int main() 主函数
2、函数功能介绍
2.1显示函数
显示保存的数据
2.2 添加函数
此函数实现的功能主要是,添加一个学生的信息,也就是说调用一次这个函数只能添加一个学生的信息。在此函数中也使用文件处理的方式,但使用的是以追加的方式打开文件,使输入的学生信息写在文件里原有信息的后面。
2.3 删除函数
此函数实现的功能主要是,删除一个学生的信息。在此函数中,先以读的方式打开文件,读出文件里的信息在显示在屏幕上,用户再根据提示信息输入想要删除第几个人的信息,关闭文件。再以写的方式打开文件,以一个if条件语句控制,再重新将学生信息写入文件(除了打算删除的那个学生的信息),由于是以写的方式打开的文件,所以文件里原有的输入就都没有了,存入的新的数据。
2.4 修改函数
此函数实现的功能主要是,修改一个学生的信息。此函数的设计方法和删除函数的设计思想相类似,应用的思想都是将学生信息重新写入文件的方法,将原有数据覆盖。
2.5 查询函数
在查询功能中,可以按多条件查询,本系统分为两个查询条件,即按学号查询和按姓名查询。使用if语句来选择查询条件。
2.5.1 按学号查询
根据提示信息输入学号后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的学号和输入的学号相等,则输出该学生的信息,由于学生的学号是唯一固定的,所以并使用break语句跳出循环。
当无查询结果时,会输出一条提示信息“无此人信息!” 。
2.5.2 按姓名查询
根据提示信息输入姓名后,然后使用一个for循环语句,从第一个学生开始检索,如果该学生的姓名和输入的姓名一样,则输出该学生的信息,由于学生的姓名有可能重复出现,所以不能使用break语句跳出循环,应该从第一个学生开始检索直到最后一名学生。
当无查询结果时,会输出一条提示信息“无此人信息!” 。
2.6 显示函数
此函数实现的功能主要是,显示所有学生的信息。先是从文件中读取学生信息,然后在输出到显示窗口中。用一个for循环语句,来把所有学生的信息都输出。
2.7 退出系统
当输入“0”时,就能退出系统,这是通过while语句来控制实现的。
三、系统编码及运行
(一)系统开发涉及的软件
1.编译软件 :codeblocks
2.报告编写:word文档
(二)系统运行界面及结果
- 系统测试
在编写程序的过程中出现了一些语法错误,后通过调试逐一解决
五、总结:
收获:
- C++很难,似乎是学不完的,你觉得自己了解一点,是总会发现还有很多自己所不懂的东西,还有很多自己所没探知的领域,很多知识运用到实践中很有一定的难度,看着自己和同学的程序运行结果,突然发现C++真的很神奇,居然能运行出那么漂亮的系统,看着运行结果
- 一个大的程序是由许多小的程序组成的,总的程序就是对这些小的程序的调用,来实现各项功能。只要处理好这些小的程序,做出一个大的程序并不是很困难。
- 根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。
附录(源代码):
#include<iostream>
#include<string>
#include<fstream> //c++STL中对 文件操作的合集,文件流 <<插入器,>>析取器
#include<iomanip>//输入操纵, setw(int n)控制输出间隔
const int TMAX=50;//定义常变量
using namespace std;
class Person//定义了第一个类
{
public:
int num;
string name;
string sex;
int age;
int banji;
public:
Person(int n=0,string nm="",string s="",int a=0,int b=0):num(n),name(nm),sex(s),age(a),banji(b){};//复制函数
virtual void Input(){};//虚函数,派生类中重新定义
virtual void Output(){};
int GetNum(){return num;}//获取编号
string GetName(){return name;}//获取姓名
};
class zhongxuesheng:virtual public Person//声明为虚基类是因为在派生类中只继承一次
{
public:
string depart;
int spec;
int title;
int yuwen;
int shuxue;
int yingyu;
int choice1;
int choice2;
public:
zhongxuesheng(int n=0,string nm="",string s="男",int a=0,int b=0,string d="上海路",int sp=0,int t=0,int yw=0,int sx=0,int yy=0)
:Person(n,nm,s,a,b),depart(d),spec(sp),title(t),yuwen(yw),shuxue(sx),yingyu(yy){};
void Input()
{
cout<<"请输入学生生学号"<<endl;
cin>>num;
cout<<"请输入学生名字"<<endl;
cin>>name;
cout<<"选择性别";
cout<<"(1.男 2.女)"<<endl;
cout<<"请输入你的选择"<<endl;
cin>>choice2;
switch(choice2)
{
case 1:sex="男";break;
case 2:sex="女";break;
default:cout<<"输入错误。"<<endl;break;
}
cout<<"请输入学生年龄"<<endl;
cin>>age;
cout<<"请输入学生班级"<<endl;
cin>>banji;
cout<<"选择地址"<<endl;
cout<<setw(10)<<"1.三大动力路"<<setw(10)<<"2.中央大街"<<setw(10)<<"3.群力大道"<<setw(10)<<"4.果戈里大街"<<setw(10)<<"5.学府路"
<<setw(10)<<"6.林园路"<<setw(10)<<"7.哈平路"<<setw(10)<<"8.和兴路"<<setw(10)<<"9.新阳路"<<endl;
cout<<"请输入你的选择"<<endl;
cin>>choice1;
switch(choice1)
{
case 1:depart="三大动力路";break;
case 2:depart="中央大街";break;
case 3:depart="群力大道";break;
case 4:depart="果戈里大街";break;
case 5:depart="学府路";break;
case 6:depart="林园路";break;
case 7:depart="哈平路";break;
case 8:depart="和兴路";break;
case 9:depart="新阳路";break;
default:cout<<"输入错误。"<<endl;break;
}
cout<<"地理成绩 "<<endl;
cin>>spec;
cout<<"历史成绩"<<endl;
cin>>title;
cout<<"语文成绩 "<<endl;
cin>>yuwen;
cout<<"数学成绩"<<endl;
cin>>shuxue;
cout<<"英语成绩 "<<endl;
cin>>yingyu;
}
void Output()
{ cout<<setw(10)<<"学号"
<<setw(10)<<"姓名"
<<setw(10)<<"性别"
<<setw(10)<<"年龄"
<<setw(10)<<"班级"
<<endl;
cout<<setw(10)<<num
<<setw(10)<<name
<<setw(10)<<sex
<<setw(10)<<age
<<setw(10)<<banji
<<endl;
cout<<setw(10)<<"地址"
<<setw(10)<<"地理"
<<setw(10)<<"历史"
<<setw(10)<<"语文"
<<setw(10)<<"数学"
<<setw(10)<<"英语"
<<endl;
cout<<setw(10)<<depart
<<setw(10)<<spec
<<setw(10)<<title
<<setw(10)<<yuwen
<<setw(10)<<shuxue
<<setw(10)<<yingyu
<<endl;
}
};
class daxuesheng:virtual public Person//大学生
{
public:
string zzmm;//家庭住址
string zc;//专业
int choice2;//性别选择
int choice1;
int yuwen;
int shuxue;
int yingyu;
int dili;
int lishi;
string lianxi;
public:
daxuesheng(int n=0,string nm="",string s="男",int a=0,int b=0,string z="",string zc="",int yw=0,int sx=0,int yy=0,int dl=0,int ls=0,string lx="")
:Person(n,nm,s,a),zzmm(z),zc(zc),yuwen(yw),shuxue(sx),yingyu(yy),dili(dl),lishi(ls),lianxi(lx){};
void Input()
{
cout<<"输入学号"<<endl;
cin>>num;
cout<<"输入名字"<<endl;
cin>>name;
cout<<"选择性别";
cout<<"(1.男 2.女)"<<endl;
cout<<"请输入你的选择"<<endl;
cin>>choice2;
switch(choice2)
{
case 1:sex="男";break;
case 2:sex="女";break;
default:cout<<"输入错误。"<<endl;break;
}
cout<<"输入年龄"<<endl;
cin>>age;
cout<<"请输入学生班级"<<endl;
cin>>banji;
cout<<"选择地址"<<endl;
cout<<setw(10)<<"1.三大动力路"<<setw(10)<<"2.中央大街"<<setw(10)<<"3.群力大道"<<setw(10)<<"4.果戈里大街"<<setw(10)<<"5.学府路"
<<setw(10)<<"6.林园路"<<setw(10)<<"7.哈平路"<<setw(10)<<"8.和兴路"<<setw(10)<<"9.新阳路"<<endl;
cout<<"请输入你的选择"<<endl;
cin>>choice1;
switch(choice1)
{
case 1:zzmm="三大动力路";break;
case 2:zzmm="中央大街";break;
case 3:zzmm="群力大道";break;
case 4:zzmm="果戈里大街";break;
case 5:zzmm="学府路";break;
case 6:zzmm="林园路";break;
case 7:zzmm="哈平路";break;
case 8:zzmm="和兴路";break;
case 9:zzmm="新阳路";break;
default:cout<<"输入错误。"<<endl;break;
}
cout<<"输入专业"<<endl;
cin>>zc;
cout<<"大物成绩 "<<endl;
cin>>dili;
cout<<"c++成绩"<<endl;
cin>>lishi;
cout<<"语文成绩 "<<endl;
cin>>yuwen;
cout<<"数学成绩"<<endl;
cin>>shuxue;
cout<<"英语成绩 "<<endl;
cin>>yingyu;
cout<<"联系电话 "<<endl;
cin>>lianxi;
}
void Output()
{
cout<<setw(10)<<"学号"
<<setw(10)<<"姓名"
<<setw(10)<<"性别"
<<setw(10)<<"年龄"
<<endl;
cout<<setw(10)<<num
<<setw(10)<<name
<<setw(10)<<sex
<<setw(10)<<age
<<endl;
cout<<setw(10)<<"班级"
<<setw(10)<<"地址"
<<setw(10)<<"专业"
<<setw(10)<<"大物"
<<setw(10)<<"c++"
<<endl;
cout<<setw(10)<<banji
<<setw(10)<<zzmm
<<setw(10)<<zc
<<setw(10)<<dili
<<setw(10)<<lishi
<<endl;
cout<<setw(10)<<"语文"
<<setw(10)<<"数学"
<<setw(10)<<"英语"
<<setw(10)<<"联系电话"
<<endl;
cout<<setw(10)<<yuwen
<<setw(10)<<shuxue
<<setw(10)<<yingyu
<<setw(12)<<lianxi
<<endl;
}
};
class xiaoxuesheng:virtual public Person//小学生
{
public:
int yuwen;//语文
int yingyu;//英语
int shuxue;//数学
int choice2;//选择性别
public:
xiaoxuesheng(int n=0,string nm="",string s="男",int a=0,int b=0,int yw=0,int yy=0,int sx=0)
:Person(n,nm,s,a),yuwen(yw),yingyu(yy),shuxue(sx){};
void Input()
{
cout<<"输入学号"<<endl;
cin>>num;
cout<<"输入姓名"<<endl;
cin>>name;
cout<<"选择性别";
cout<<"(1.男 2.女)"<<endl;
cout<<"请输入你的选择"<<endl;
cin>>choice2;
switch(choice2)
{
case 1:sex="男";break;
case 2:sex="女";break;
default:cout<<"输入错误。"<<endl;break;
}
cout<<"输入年龄"<<endl;
cin>>age;
cout<<"输入班级"<<endl;
cin>>banji;
cout<<"语文成绩"<<endl;
cin>>yuwen;
cout<<"英语成绩"<<endl;
cin>>yingyu;
cout<<"数学成绩"<<endl;
cin>>shuxue;
}
void Output()
{
cout<<setw(10)<<"职工编号"
<<setw(10)<<"姓名"
<<setw(10)<<"性别"
<<setw(10)<<"年龄"
<<setw(10)<<"班级"
<<setw(10)<<"语文"
<<setw(10)<<"英语"
<<setw(10)<<"数学"
<<endl;
cout<<setw(10)<<num
<<setw(10)<<name
<<setw(10)<<sex
<<setw(10)<<age
<<setw(10)<<banji
<<setw(10)<<yuwen
<<setw(10)<<yingyu
<<setw(10)<<yingyu
<<endl;
}
};
class xiao_Manage//小学生管理类
{
xiaoxuesheng zhong[TMAX]; //TMAX为常量,为数组中可存储的教师记录的最大数;
int top; //top表示当前系统中存储的记录个数;
public:
xiao_Manage(){top=0;} //初始时记录的个数为0,所以设置top=0;
void Add(); //添加;
void Show(); //显示;
void Search(); //查询;
void Edit(); //修改;
void Delete(); //删除;
};
void xiao_Manage::Add()//小学生
{
if(top>=TMAX)
{
cout<<"用户已满"<<endl;
return;
}
xiaoxuesheng t;//声明对象
cout<<"输入新添加的人员的信息"<<endl;
t.Input();
for(int i=0;i<top;i++)
if (t.GetNum()==zhong[i].GetNum())//输入的编号与存在的编号比较
{
cout<<"该编号的人员已存在"<<endl;
return;
}
zhong[top]=t;
top=top+1;
cout<<"添加成功!"<<endl;
}
void xiao_Manage::Show()//小学生
{
if(top==0)
{
cout<<"无数据!"<<endl;
return;
}
else
{
for(int i=0;i<top;i++)
zhong[i].Output();
}
}
void xiao_Manage::Search()//小学生
{
if(top==0)
{
cout<<"当前系统中没有存储记录"<<endl;
return;
}
int choice;
cout<<"请选择查找方式:1.按编号查找 2.按姓名查找."<<endl;
cin>>choice;
switch(choice)
{
case 1:{
cout<<"请输入要查找的编号:"<<endl;
int num;
cin>>num;
for(int i=0;i<top;i++)
{
if(zhong[i].GetNum()==num)
{
zhong[i].Output();
return;
}
}
cout<<"查无此人!"<<endl;
}break;
case 2:{
cout<<"请输入要查找的姓名"<<endl;
string name;
cin>>name;
for(int i=0;i<top;i++)
{
if(zhong[i].GetName()==name)
{
zhong[i].Output();
}
}
for(int i=0;i<top;i++)
if(zhong[i].GetName()==name)
return;
cout<<"查无此人!"<<endl;
}break;
default :cout<<"无此选项!请重试!"<<endl;break;
}
}
void xiao_Manage::Edit()//小学生
{
if(top==0)
{
cout<<"当前系统中没有存储记录!"<<endl;
return;
}
int num;
cout<<"请输入要查找的教编号:"<<endl;
cin>>num;
for(int i=0;i<top;i++)
{
if(zhong[i].GetNum()==num)
{
cout<<"请对这位教师的信息进行修改:"<<endl;
zhong[i].Input();
cout<<"修改成功"<<endl;return;
}
}
cout<<"查无此人"<<endl;
}
void xiao_Manage::Delete()//小学生
{
if(top==0)
{
cout<<"当前系统中没有存储记录!"<<endl;
return;
}
cout<<"1、按编号查找删除 2、按姓名查找删除"<<endl;
int choice;
cin>>choice;
switch(choice)
{
case 1:
{
cout<<"请输入编号:";
int num;
cin>>num;
for(int i=0;i<top;i++)
{
if(num==zhong[i].num)
{
cout<<"是否确认删除? 1、是 2、否 "<<endl;
int choice;
cin>>choice;
switch(choice)
{
case 1:
{
for(int j=i;j<top-1;j++)
zhong[j]=zhong[j+1];
cout<<"删除成功!"<<endl;
top--;
};break;
case 2:return;
default:cout<<"无此项,失败!"<<endl;break;
}return;
}
}
cout<<"无此人!"<<endl;
} ;break;
case 2:
{
cout<<"请输入姓名:";
string name;
cin>>name;
for(int i=0;i<top;i++)
{
if(name==zhong[i].name)
{
cout<<"是否确认删除? 1、是 2、否 "<<endl;
int choice;
cin>>choice;
switch(choice)
{
case 1:
{
for(int j=i;j<top-1;j++)
zhong[j]=zhong[j+1];
cout<<"删除成功!"<<endl;
top--;
};break;
case 2:return;
default:cout<<"无此项,失败!"<<endl;break;
}return;
}
}
cout<<"无此人!"<<endl;
}; break;
default:cout<<"没有此项,失败:"<<endl;break;
}
}
class zhong_Manage
{
zhongxuesheng zhong[TMAX]; //TMAX为常量,为数组中可存储的教师记录的最大数;
int top; //top表示当前系统中存储的记录个数;
public:
zhong_Manage(){top=0;} //初始时记录的个数为0,所以设置top=0;
void Add(); //添加;
void Show(); //显示;
void Search(); //查询;
void Edit(); //修改;
void Delete(); //删除;
};
void zhong_Manage::Add()
{
if(top>=TMAX)
{
cout<<"用户已满"<<endl;
return;
}
zhongxuesheng t;
cout<<"输入新添加的人员的信息"<<endl;
t.Input();
for(int i=0;i<top;i++)
if (t.GetNum()==zhong[i].GetNum())
{
cout<<"该编号的人员已存在"<<endl;
return;
}
zhong[top]=t;
top=top+1;
cout<<"添加成功!"<<endl;
}
void zhong_Manage::Show()
{
if(top==0)
{
cout<<"无数据!"<<endl;
return;
}
for(int i=0;i<top;i++)
zhong[i].Output();
}
void zhong_Manage::Search()
{
if(top==0)
{
cout<<"当前系统中没有存储记录"<<endl;
return;
}
int choice;
cout<<"请选择查找方式:1.按编号查找 2.按姓名查找."<<endl;
cin>>choice;
switch(choice)
{
case 1:{
cout<<"请输入要查找的编号:"<<endl;
int num;
cin>>num;
for(int i=0;i<top;i++)
{
if(zhong[i].GetNum()==num)
{
zhong[i].Output();
return;
}
}
cout<<"查无此人!"<<endl;
}break;
case 2:{
cout<<"请输入要查找的姓名"<<endl;
string name;
cin>>name;
for(int i=0;i<top;i++)
{
if(zhong[i].GetName()==name)
{
zhong[i].Output();
}
}
for(int i=0;i<top;i++)
if(zhong[i].GetName()==name)
return;
cout<<"查无此人!"<<endl;
}break;
default :cout<<"无此选项!请重试!"<<endl;break;
}
}
void zhong_Manage::Edit()
{
if(top==0)
{
cout<<"当前系统中没有存储记录!"<<endl;
return;
}
int num;
cout<<"请输入要查找的教编号:"<<endl;
cin>>num;
for(int i=0;i<top;i++)
{
if(zhong[i].GetNum()==num)
{
cout<<"请对该生信息进行修改:"<<endl;
zhong[i].Input();
cout<<"修改成功"<<endl;return;
}
}
cout<<"查无此人"<<endl;
}
void zhong_Manage::Delete()
{
if(top==0)
{
cout<<"当前系统中没有存储记录!"<<endl;
return;
}
cout<<"1、按编号查找删除 2、按姓名查找删除"<<endl;
int choice;
cin>>choice;
switch(choice)
{
case 1:
{
cout<<"请输入编号:";
int num;
cin>>num;
for(int i=0;i<top;i++)
{
if(num==zhong[i].num)
{
cout<<"是否确认删除? 1、是 2、否 "<<endl;
int choice;
cin>>choice;
switch(choice)
{
case 1:
{
for(int j=i;j<top-1;j++)
zhong[j]=zhong[j+1];
cout<<"删除成功!"<<endl;
top--;
};break;
case 2:return;
default:cout<<"无此项,失败!"<<endl;break;
}return;
}
}
cout<<"无此人!"<<endl;
} ;break;
case 2:
{
cout<<"请输入姓名:";
string name;
cin>>name;
for(int i=0;i<top;i++)
{
if(name==zhong[i].name)
{
cout<<"是否确认删除? 1、是 2、否 "<<endl;
int choice;
cin>>choice;
switch(choice)
{
case 1:
{
for(int j=i;j<top-1;j++)
zhong[j]=zhong[j+1];
cout<<"删除成功!"<<endl;
top--;
};break;
case 2:return;
default:cout<<"无此项,失败!"<<endl;break;
}return;
}
}
cout<<"无此人!"<<endl;
}; break;
default:cout<<"没有此项,失败:"<<endl;break;
}
}
class da_Manage
{
daxuesheng zhong[TMAX]; //TMAX为常量,为数组中可存储的教师记录的最大数;
int top; //top表示当前系统中存储的记录个数;
public:
da_Manage(){top=0;} //初始时记录的个数为0,所以设置top=0;
void Add(); //添加;
void Show(); //显示;
void Search(); //查询;
void Edit(); //修改;
void Delete(); //删除;
};
void da_Manage::Add()
{
if(top>=TMAX)
{
cout<<"用户已满"<<endl;
return;
}
daxuesheng t;
cout<<"输入新添加的人员的信息"<<endl;
t.Input();
for(int i=0;i<top;i++)
if (t.GetNum()==zhong[i].GetNum())
{
cout<<"该编号的人员已存在"<<endl;
return;
}
zhong[top]=t;
top=top+1;
cout<<"添加成功!"<<endl;
}
void da_Manage::Show()
{
if(top==0)
{
cout<<"无数据!"<<endl;
return;
}
for(int i=0;i<top;i++)
zhong[i].Output();
}
void da_Manage::Search()
{
if(top==0)
{
cout<<"当前系统中没有存储记录"<<endl;
return;
}
int choice;
cout<<"请选择查找方式:1.按编号查找 2.按姓名查找."<<endl;
cin>>choice;
switch(choice)
{
case 1:{
cout<<"请输入要查找的编号:"<<endl;
int num;
cin>>num;
for(int i=0;i<top;i++)
{
if(zhong[i].GetNum()==num)
{
zhong[i].Output();
return;
}
}
cout<<"查无此人!"<<endl;
}break;
case 2:{
cout<<"请输入要查找的姓名"<<endl;
string name;
cin>>name;
for(int i=0;i<top;i++)
{
if(zhong[i].GetName()==name)
{
zhong[i].Output();
}
}
for(int i=0;i<top;i++)
if(zhong[i].GetName()==name)
return;
cout<<"查无此人!"<<endl;
}break;
default :cout<<"无此选项!请重试!"<<endl;break;
}
}
void da_Manage::Delete()
{
if(top==0)
{
cout<<"当前系统中没有存储记录!"<<endl;
return;
}
cout<<"1、按编号查找删除 2、按姓名查找删除"<<endl;
int choice;
cin>>choice;
switch(choice)
{
case 1:
{
cout<<"请输入编号:";
int num;
cin>>num;
for(int i=0;i<top;i++)
{
if(num==zhong[i].num)
{
cout<<"是否确认删除? 1、是 2、否 "<<endl;
int choice;
cin>>choice;
switch(choice)
{
case 1:
{
for(int j=i;j<top-1;j++)
zhong[j]=zhong[j+1];
cout<<"删除成功!"<<endl;
top--;
};break;
case 2:return;
default:cout<<"无此项,失败!"<<endl;break;
}return;
}
}
cout<<"无此人!"<<endl;
} ;break;
case 2:
{cout<<"请输入姓名:";
string name;
cin>>name;
for(int i=0;i<top;i++)
{
if(name==zhong[i].name)
{
cout<<"是否确认删除? 1、是 2、否 "<<endl;
int choice;
cin>>choice;
switch(choice)
{
case 1:
{
for(int j=i;j<top-1;j++)
zhong[j]=zhong[j+1];
cout<<"删除成功!"<<endl;
top--;
};break;
case 2:return;
default:cout<<"无此项,失败!"<<endl;break;
}return;
}
}
cout<<"无此人!"<<endl;
}; break;
default:cout<<"没有此项,失败:"<<endl;break;
}
}
void da_Manage::Edit()
{
if(top==0)
{
cout<<"当前系统中没有存储记录!"<<endl;
return;
}
int num;
cout<<"请输入要查找的学号:"<<endl;
cin>>num;
for(int i=0;i<top;i++)
{
if(zhong[i].GetNum()==num)
{
cout<<"请修改该生信息:"<<endl;
zhong[i].Input();
cout<<"修改成功"<<endl;return;
}
}
cout<<"查无此人"<<endl;
}
void xiaoMenu();
void zhongMenu();
void daMenu();
int main()
{
cout<<" ***欢迎进入高校人员信息管理系统***"<<endl;
int choice;
do{
cout<<" *****主菜单*****\n"<<endl;
cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl;
cout<<"|| ||"<<endl;
cout<<"|| ||"<<endl;
cout<<"|| ||"<<endl;
cout<<"|| 1=>小学生信息管理 ||"<<endl;
cout<<"|| 2=>中学生信息管理 ||"<<endl;
cout<<"|| 3=>大学生信息管理 ||"<<endl;
cout<<"|| 0=>退出系统 ||"<<endl;
cout<<"|| ||"<<endl;
cout<<"|| ||"<<endl;
cout<<"|| ||"<<endl;
cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;
cout<<"\n请输入您的选择:";
cin>>choice;
switch(choice)
{
case 1:xiaoMenu();break;
case 2:zhongMenu();break;
case 3:daMenu();break;
case 0:cout<<"\n您已安全退出系统."<<endl;break;
default:cout<<"\n没有此选项.请重选."<<endl;break;
}
}while(choice!=0);
cout<<"\n ***欢迎您下次再使用本系统!***"<<endl;
return 0;
}
void xiaoMenu()
{
xiao_Manage t;
int choice;
while(choice!=0)
{
cout<<" *****小学生*****\n"<<endl;
cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl;
cout<<"|| ||"<<endl;
cout<<"|| 1=>添加信息 ||"<<endl;
cout<<"|| 2=>查找信息 ||"<<endl;
cout<<"|| 3=>修改信息 ||"<<endl;
cout<<"|| 4=>删除信息 ||"<<endl;
cout<<"|| 5=>显示信息 ||"<<endl;
//cout<<"|| 6=>保存信息 ||"<<endl;
//cout<<"|| 7=>读取信息 ||"<<endl;
//cout<<"|| 8=>统计信息 ||"<<endl;
cout<<"|| 0=>退出 ||"<<endl;
cout<<"|| ||"<<endl;
cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;
cout<<"\n输入您操作的选项:";
cin>>choice;
switch(choice)
{
case 1:t.Add();break;
case 2:t.Search();break;
case 3:t.Edit();break;
case 4:t.Delete();break;
case 5:t.Show();break;
//case 6:t.Save();break;
//case 7:t.Read();break;
//case 8:t.Total();break;
case 0:cout<<"退出成功!"<<endl;break;
default:cout<<"无此选项!请重试!"<<endl;break;
}
}
}
void zhongMenu()
{
zhong_Manage t;
int choice;
while(choice!=0)
{
cout<<" *****中学生*****\n"<<endl;
cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl;
cout<<"|| ||"<<endl;
cout<<"|| 1=>添加信息 ||"<<endl;
cout<<"|| 2=>查找信息 ||"<<endl;
cout<<"|| 3=>修改信息 ||"<<endl;
cout<<"|| 4=>删除信息 ||"<<endl;
cout<<"|| 5=>显示信息 ||"<<endl;
//cout<<"|| 6=>保存信息 ||"<<endl;
//cout<<"|| 7=>读取信息 ||"<<endl;
//cout<<"|| 8=>统计信息 ||"<<endl;
cout<<"|| 0=>退出 ||"<<endl;
cout<<"|| ||"<<endl;
cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;
cout<<"\n输入您操作的选项:";
cin>>choice;
switch(choice)
{
case 1:t.Add();break;
case 2:t.Search();break;
case 3:t.Edit();break;
case 4:t.Delete();break;
case 5:t.Show();break;
//case 6:t.Save();break;
//case 7:t.Read();break;
//case 8:t.Total();break;
case 0:cout<<"退出成功!"<<endl;break;
default:cout<<"无此选项!请重试!"<<endl;break;
}
}
}
void daMenu()
{
da_Manage t;
int choice;
while(choice!=0)
{
cout<<" *****大学生*****\n"<<endl;
cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl;
cout<<"|| ||"<<endl;
cout<<"|| 1=>添加信息 ||"<<endl;
cout<<"|| 2=>查找信息 ||"<<endl;
cout<<"|| 3=>修改信息 ||"<<endl;
cout<<"|| 4=>删除信息 ||"<<endl;
cout<<"|| 5=>显示信息 ||"<<endl;
//cout<<"|| 6=>保存信息 ||"<<endl;
//cout<<"|| 7=>读取信息 ||"<<endl;
//cout<<"|| 8=>统计信息 ||"<<endl;
cout<<"|| 0=>退出 ||"<<endl;
cout<<"|| ||"<<endl;
cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl;
cout<<"\n输入您操作的选项:";
cin>>choice;
switch(choice)
{
case 1:t.Add();break;
case 2:t.Search();break;
case 3:t.Edit();break;
case 4:t.Delete();break;
case 5:t.Show();break;
//case 6:t.Save();break;
//case 7:t.Read();break;
//case 8:t.Total();break;
case 0:cout<<"退出成功!"<<endl;break;
default:cout<<"无此选项!请重试!"<<endl;break;
}
}
}