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

📄 软协基本信息管理系统.cpp

📁 学生基本信息管理系统.rar
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/********************************************************************
 本程序是学生基本信息管理系统,主要是用面向对象类的思想,通过结构体数组,实现
 软件协会信息的建立,查找,插入,删除,修改,输出等功能。
 Copyright:广西工学院计算机工程系计算机022班李林宏(学号2001041143)
  ******************************************************************/
//#include <graphics.h> 
//#include <stdlib.h> 
//#include <stdio.h> 
#include <conio.h> 


#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <iomanip.h>
#include <fstream.h>
#include <malloc.h>

//const int MAX1=200;
//const int MAX2=20;
//const int MAX3=3;

#define NULL 0
#define N 200

typedef struct Link      //定义节点类型
{
	long  num;            //卡号—查找的主码 
	char  name[10];       //姓名
	int   sex;            //性别
	int   age;            //年龄
	long  telep;          //电话号码
}NODE;
class List               //成员类
{
private:
	int top;
	NODE Array[N];
public:
	List( );             //构造函数
	~List( );              //析构函数
	void Show(int temp);
//	void Creat();       //创建
	void Queey();       //按卡号排序
	int  Find();        //查找
    void Insert();      //插入
	void Delete();      //删除
	void Modify();      //修改
    void Output();      //输出
};
List::List( )                      //构造函数,将文本读到数组里
{
		NODE s;
		top=-1;
		fstream file("list.txt",ios::in);
		while (1)
		{
			file.read((char *)&s,sizeof(s));
			if(!file) break;
			top++;
			Array[top]=s;
		}
		file.close;
};	

List::~List( )       // 析构函数 将Array[]写入文本中
{
	fstream file("list.txt",ios::out);
	for(int i=0;i<=top;i++)
	{
	//	if (List[i].gettag()==0)
			file.write((char *)&Array[i],sizeof(Array[i]));
		file.close;
	}
}

//输出函数成员,实现对某一特定的行级的输出
void List::Show(int temp)
{
	if(temp==-1)
		cout<<"\t对不起!没有你要查找的学生!"<<endl;
	else
	{
		if(Array[temp].sex==1)
			{
				cout<<"\t你要查找的学生的信息如下:"<<endl;
				cout<<"\t学号\t\t姓名\t性别\t年龄\t电话"<<endl;
				cout<<"\t"<<Array[temp].num<<"\t"<<Array[temp].name<<"\t男\t"<<Array[temp].age<<"\t"<<Array[temp].telep<<endl;
			}
		else
		{
			if(Array[temp].sex==-1)
			{
				cout<<"\t你要查找的学生的信息如下:"<<endl;
				cout<<"\t学号\t\t姓名\t性别\t年龄\t电话"<<endl;
				cout<<"\t"<<Array[temp].num<<"\t"<<Array[temp].name<<"\t女\t"<<Array[temp].age<<"\t"<<Array[temp].telep<<endl;
			}
			else
			{
				cout<<"\t你要查找的学生的信息如下:"<<endl;
				cout<<"\t学号\t\t姓名\t性别\t年龄\t电话"<<endl;
				cout<<"\t"<<Array[temp].num<<"\t"<<Array[temp].name<<"\t"<<Array[temp].sex<<"\t"<<Array[temp].age<<"\t"<<Array[temp].telep<<endl;
			}
		}
	}
}
//创建函数成员,实现对最初的类的数据成员进行初始化
/*void List::Creat()
{
	int i=0;
	cout<<"\t请输入你要输入的学生基本信息:"<<endl;
	cout<<"\t卡号,姓名,性别,年龄,电话号码"<<endl;
	cout<<"\t如果你要结束输入,请输入0 "<<endl;
    for(i=0;i<N;i++)
	{
		cout<<"\t请输入第"<<i+1<<"节点:"<<endl;
		cin>>Array[i].num;
		if(Array[i].num==0)
			break;
		//for(int j=0;j<10;j++)
		//{
			cin>>Array[i].name;
		//	if(Array[i].name[j]=='q')
		//	{
		//		Array[i].name[j]=NULL;
		//		break;
		//	}
		//	else
		//		continue;
		//}
		cout<<"\t男/女(1/-1)?"<<endl;
		cin>>Array[i].sex;
	    cin>>Array[i].age;
		cin>>Array[i].telep;
	}
}*/
//排序函数成员,实现对类中已有的数据成员进行排序
void List::Queey()
{
	NODE Array1;
	for(int i=0;i<N;i++)
	{
		int k=i;
		if(Array[i].num==0)
			break;
		else
		{
			for(int j=i+1;j<N;j++)
			{
				if(Array[j].num==0||Array[i].name==0||Array[i].sex==0||Array[i].age==0||Array[i].telep==0)
					break;	
				else
					if(Array[k].num>Array[j].num)
						k=j;
			}
			if(k!=i)
			{
				Array1.num=Array[i].num;
				Array[i].num=Array[k].num;
				Array[k].num=Array1.num;//
				for(int j=0;j<10;j++)
				{
					if(Array[i].name[j]==NULL)
						break;
					else
					{
						Array1.name[j]=Array[i].name[j];
						Array[i].name[j]=Array[k].name[j];
						Array[k].name[j]=Array1.name[j];//
					}
				}
				Array1.sex=Array[i].sex;
				Array[i].sex=Array[k].sex;
				Array[k].sex=Array1.sex;//
				Array1.age=Array[i].age;
				Array[i].age=Array[k].age;
				Array[k].age=Array1.age;//
				Array1.telep=Array[i].telep;
				Array[i].telep=Array[k].telep;
				Array[k].telep=Array1.telep;
			}
		}
	}
}
//插入函数成员,对你输入的学号所对应的学生的信息进行查找,并输出
int List::Find()
{
	cout<<"\t请输入你要查找的成员卡号!"<<endl;
	long number;
	cin>>number;
	for(int i=0;i<N;i++)
	{
		if(Array[i].num==0)
		{
			cout<<"\t对不起!没有你要找的数据!"<<endl;
			return (-1);
			break;
		}
		else
		{
			if(Array[i].num==number)
			{
				return (i);
				break;
			}
			else
				continue;
		}
	}
}
//插入函数成员,对你输入的学生进行按卡号插入
void List::Insert()
{
	cout<<"\t请输入你要插入的学生的信息"<<endl;
	NODE Array2;
	int temp;
	cin>>Array2.num;
	for(int j=0;j<10;j++)
	{
		cin>>Array2.name[j];
		if(Array2.name[j]=='q')
		{
			Array2.name[j]=NULL;
            break;
		}
		else
			continue;	
	}
    cout<<"\t男/女(1/-1)?"<<endl;
	cin>>Array2.sex;
	cin>>Array2.age;
	cin>>Array2.telep;
	for(int i=0;i<N;i++)
	{
		for(int j=0;j<N;j++)
		{
			if(Array[j].num==0)
			{
				temp=j;
				break;
			}
			else
				continue;
		}
		if(Array[i].num==0)
		{
			Array[i].num=Array2.num;
			for(int j=0;j<10;j++)
			{
				if(Array2.name[j]==NULL)
				{
					Array[i].name[j]=Array2.name[j];
					break;
				}
				else
					Array[i].name[j]=Array2.name[j];
			}
			Array[i].sex=Array2.sex;
			Array[i].age=Array2.age;
			Array[i].telep=Array2.telep;
			break;
		}
		else
		{
			if(Array[i].num>Array2.num)
			{
				for(j=temp;j>i;j--)
				{
					Array[j].num=Array[j-1].num;
                    for(int h=0;h<10;h++)
					{
						if(Array2.name[h]==NULL)
						{
							Array[j].name[h]=Array2.name[h];
							break;
						}
						else
							Array[j].name[h]=Array2.name[h];
					}
					Array[j].sex=Array[j-1].sex;
					Array[j].age=Array[j-1].age;
					Array[j].telep=Array[j-1].telep;
				}
				Array[i].num=Array2.num;
				for(int j=0;j<10;j++)
				{
					if(Array2.name[j]==NULL)
					{
						Array[i].name[j]=Array2.name[j];
						break;
					}
					else
						Array[i].name[j]=Array2.name[j];
				}
				Array[i].sex=Array2.sex;
				Array[i].age=Array2.age;
				Array[i].telep=Array2.telep;
				break;
			}
		}
	}
}
//删除函数成员,对你要删除的学生以卡号为查找依据进行删除,并输出删除的数据
void List::Delete()
{
	cout<<"\t请输入你要删除的学生的学号"<<endl;
	long number=0;
	cin>>number;
	for(int i=0;i<N;i++)
	{
		int temp=0;
		if(Array[i].num==0)
		{
			cout<<"\t表中没有你要找的学生,请查证后再试!"<<endl;
			break;
		}
		else
		{
			for(int j=0;j<N;j++)
			{
				if(Array[j].num==0)
				{
					temp=j;
					break;
				}
				else
					continue;
			}
			if(Array[i].num==number)
			{
				cout<<"\t找到了!删除的学生的信息如下:"<<endl;
				cout<<"\t"<<Array[i].num<<","<<Array[i].name<<","<<Array[i].sex<<","<<Array[i].age<<","<<Array[i].telep<<endl;
				for(j=i;j<temp;j++)

⌨️ 快捷键说明

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