⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 管理系统管理信息系统(学生成绩、人事、图书、资产、工资。。。。。。)完成功能的详细说明。 2. 对问题的分析、所选用的数据结构及理由、所选方法的优点及问题。 3. 程序
💻 CPP
字号:
#include <iostream>
#include <string>
#include "stdio.h"
#include"Student.cpp"
#include"member.cpp"

using namespace std;

void printMemberFunction(void* node)          //打印函数
{
	Node<Member>* memberNode = (Node<Member>*)node;
	(memberNode->getData( ))->print( );
}
int main( ) 
{
	Member* memberChair = new Member("书记", "张三", "男", "28", 100);      //初始化一棵树
	Member* memberSubChairOne = new Member("办事员", "李一", "男", "28", 101);
	Member* memberSubChairTwo = new Member("总辅导员", "李二", "男", "25", 102);
	Member* memberSubChairThree = new Member("训导员", "李三", "29", "三", 103);
	Member* memberSubChairFour = new Member("训导主任", "李四", "30", "一", 104);

	Member* member1 = new Member("a班", "王一", "女", "33", 105);
	Member* member2 = new Member("b班", "王二", "女", "35", 106);
	Member* member3 = new Member("c班", "王三", "男", "33", 107);

	Member* member4 = new Member("d班", "赵一", "男", "32", 108);
	Member* member5 = new Member("e班", "赵二", "男", "28", 109);
	Member* member6 = new Member("f班", "赵三", "男", "26", 110);



	Tree<Member> tree = Tree<Member>(memberChair);       //构造树的根结点

	tree.Insert(memberChair, memberSubChairOne);
	tree.Insert(memberChair, memberSubChairTwo);
	tree.Insert(memberChair, memberSubChairThree);
	tree.Insert(memberChair, memberSubChairFour);

	tree.Insert(memberSubChairOne, member1);
	tree.Insert(memberSubChairOne, member2);
	tree.Insert(memberSubChairOne, member3);

	tree.Insert(memberSubChairTwo, member4);
	tree.Insert(memberSubChairTwo, member5);
	tree.Insert(memberSubChairTwo, member6);

	  //初始化结束
    
 
	int control=1;          //声明控制变量来控制程序的执行与结束
	int which;              //选择变量用来选择执行的操作
	char flag;               //标志变量用来确认是否执行操作
   
	                        //声明要插入结点的父结点数据域的信息属性
	string parentclasses;   
	string parentname;
	string parentsex;
	string parentage;
	int parentscore;
                            //声明新结点数据域的信息属性
	string classes;
	string name;
	string sex;
	string age;
	int score;
                            //声明要删除结点数据域的信息属性
	string oldclasses;
	string oldname;
	string oldsex;
	string oldage;
	int oldscore;
	
	while(control)
	{
	    cout<<"个人信息管理系统"<<endl; 
		cout<<"请选择你要进行的操作:"<<endl;  //选择你要进行的操作
		cout<<"插入请选择1"<<endl;
		cout<<"删除请选择2"<<endl;
		cout<<"修改请选择3"<<endl;
		cout<<"查询请选择4"<<endl;
		cout<<"输出请选择5"<<endl;
		cout<<"退出请选择6"<<endl;
		cin>>which;
		switch (which)
		{
		   case 1:                                    //插入一个学生成员
			   cout<<"插入的班级:";
			   cin>>classes;
			   cout<<"插入姓名:";
			   cin>>name;
			   cout<<"插入性别:";
			   cin>>sex;
			   cout<<"插入的学生年龄:";
			   cin>>age;
			   cout<<"插入的学生学号:";
			   cin>>classes;

			   cout<<"插入该班:";
			   cin>>parentclasses;
			   cout<<"该班的辅导员姓名:";
			   cin>>parentname;
			   cout<<"该辅导员性别:";
			   cin>>parentsex;
			   cout<<"该辅导员年龄:";
			   cin>>parentage;
			   cout<<"该辅导员工号:";
			   cin>>parentscore;
			   cout<<"确定要插入?确定请按Y或y:" ;
			   cin>>flag;
			   if(flag=='Y'||'y')
			   {
                  Member* newmember=new Member(classes,name,sex,age,score);	
                  Member* parentmember=new Member(parentclasses,parentname,parentsex,parentage,parentscore);	
				  try
				  {
			         tree.Insert(parentmember,newmember);
					 cout<<"插入成功!\n";
				  }
				  catch(char*)
				  {
					  cout<<"插入失败!\n";
				  }
                  delete parentmember;    //释放结点的存储空间
			   }		 			
			   break;			  
		   case 2:                       //删除学生成员

			   cout<<"删除的学生班级:";
			   cin>>classes;
			   cout<<"删除的学生姓名:";
			   cin>>name;
			   cout<<"删除的学生性别:";
			   cin>>sex;
			   cout<<"删除的学生年龄:";
			   cin>>age;
			   cout<<"删除的学生学号:";
			   cin>>classes;
			   cout<<"确定要删除?确定请按Y或y:" ;
			   cin>>flag;			   
			   if(flag=='Y'||flag=='y')
			   {
                   Member* member=new Member(classes,name,sex,age,score);
				   try
				   {
					   tree.Delete(member);
					   cout<<"删除成功!\n";
				   }
				   catch(char*)
				   {	   
				       cout<<"删除失败!!!"<<endl;
				   }				
			   }
			   break;			 
		   case 3:                              		  
			   cout<<"要修改的学生班级:";
			   cin>>oldclasses;
			   cout<<"要修改的学生姓名:";
			   cin>>oldname;
			   cout<<"要修改的学生性别:";
               cin>>oldsex;
			   cout<<"要修改的学生年龄:";
               cin>>oldage;
			   cout<<"要修改的学生学号:";
               cin>>oldscore;

               cout<<"新学生的班级:";
			   cin>>classes;			   
               cout<<"新学生的姓名:";
			   cin>>name;
               cout<<"新学生的性别:";
			   cin>>sex;
               cout<<"新学生年龄:";
               cin>>age;
               cout<<"新学生学号:";
			   cin>>score;
		
			   cout<<"确定要修改?确定请按Y或y:" ;
			   cin>>flag;

               if(flag=='Y'||flag=='y')                   
			   {
                  Member* oldmember=new Member(oldclasses,oldname,oldsex,oldage,oldscore);
				  Member* newmember=new Member(classes,name,sex,age,score);
				  try                         //捕捉异常
				  {
					  tree.Update(oldmember,newmember);
					  cout<<"修改成功!\n";
				  }
				  catch(char*)
				  {
					  cout<<"修改失败!"<<endl;
				  }
				  delete oldmember;
			   }
			   break;
		   case 4:                     			  
			   cout<<"请输入你要查询的班级名称"<<endl;
			   cin>>classes;			  
			   cout<<"确定要查询?确定请按Y或y:" ;
			   cin>>flag;
			   if(flag=='Y'||flag=='y')
			   {
			     try
				 {
			        tree.FindNode(classes,printMemberFunction);
				 }
			     catch(char*)
				 {
				    cout<<"查询失败!"<<endl;	
				 }
			   }
			   break;
		   case 5:                    //输出所有成员
               try
			   {
				   tree.LeverOrder(printMemberFunction);
			   }
			   catch(char*)
			   {
				   cout<<"没有任何成员!"<<endl;
				   control=0;
			   }
			   break;
		   case 6:                     //退出操作
			   control=0;
			   break;
		   default: 
			   cout<<"请选择正确的操作:\n";
			   break;
		}
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -