c++学生信息管理系统+项目报告

一.系统分析:
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文档

 

(二)系统运行界面及结果

 

  • 系统测试

 在编写程序的过程中出现了一些语法错误,后通过调试逐一解决

五、总结:

收获:

  1. C++很难,似乎是学不完的,你觉得自己了解一点,是总会发现还有很多自己所不懂的东西,还有很多自己所没探知的领域,很多知识运用到实践中很有一定的难度,看着自己和同学的程序运行结果,突然发现C++真的很神奇,居然能运行出那么漂亮的系统,看着运行结果
  2. 一个大的程序是由许多小的程序组成的,总的程序就是对这些小的程序的调用,来实现各项功能。只要处理好这些小的程序,做出一个大的程序并不是很困难。
  3. 根据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;

}

}

}

 

猜你喜欢

转载自blog.csdn.net/nanaz11/article/details/81805520