📄 软协基本信息管理系统.cpp
字号:
/********************************************************************
本程序是学生基本信息管理系统,主要是用面向对象类的思想,通过结构体数组,实现
软件协会信息的建立,查找,插入,删除,修改,输出等功能。
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 + -