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

📄 学生通讯管理系统.cpp

📁 学生通讯管理系统 1.课程设计的目的 培养学生应用《面向对象程序设计》设计方法及思想解决实际问题的能力
💻 CPP
字号:
/************************学生通讯管理系统***********************/

#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#include<fstream.h>
//Book类,对应于通讯簿中学生信息的各种字段
class Book
{
public:
	char name[8];
	char sex[2];
	int  num;
	char add[20];
	Book *next;
};

//BookOperator类,用于操作通讯簿中的记录,每条记录用链表的形式连接起来
class BookOperator
{
public:
	void InitBook(Book *&Head);//初始化通讯簿链表
	void ClearBook(Book *&Head);//清空通讯簿中的记录
	int BookSize(Book *Head);//求通讯簿中的记录数
	bool BookEmpty(Book *Head);//检查通讯簿是否为空
	void TraverseBook(Book *Head);//显示所有记录
	void InsertBook(Book *&Head);//插入一条记录
	void FindBook(Book * Head);//查询一条记录
	void UpdateBook(Book *Head);//修改一条记录
	void DeleteBook(Book *&Head);//删除一条记录
};

void BookOperator::InitBook(Book *&Head)
{
	Head=NULL;
}

void BookOperator::ClearBook(Book *&Head)
{
	Book *cp,*np;
	cp=Head;
	while(cp!=NULL)
	{
		np=cp->next;
		delete cp;
		cp=np;
	}
	Head=NULL;
	cout<<"已清空通讯簿中所有记录..."<<endl;
}

int BookOperator::BookSize(Book *Head)
{
	Book *p=Head;
	int i=0;
	while(p!=NULL)
	{
		i++;
		p=p->next;
	}
	return i;
}

bool BookOperator::BookEmpty(Book *Head)
{
	return (Head==NULL);
}

void BookOperator::TraverseBook(Book *Head)
{
	cout<<"姓名\t性别\t电话\t住址\n";
 
	Book *p=Head;
	while(p!=NULL)
	{
		cout<<p->name<<"\t"<<p->sex<<"\t"<<p->num<<"\t"<<p->add<<endl;
		p=p->next;
	}
	cout<<endl;
}

void BookOperator::InsertBook(Book *&Head)
{
	Book *new1;
	new1=new Book;

	cout<<"请输入姓名:";
	cin>>new1->name;
 
	cout<<endl;
	cout<<"请输入性别:";
	cin>>new1->sex;

	cout<<endl;
	cout<<"请输入联系电话:";
	cin>>new1->num;

	cout<<endl;
	cout<<"请输入联系地址:";
	cin>>new1->add;

	{
		new1->next=Head;
		Head=new1;
	}
	cout<<"\n成功添加一条记录..."<<endl<<endl;
}


void BookOperator::FindBook(Book * Head)
{
	char x[8];
	Book *p=Head;
	cout<<"请输入你想要查找的人的姓名:";
	cin>>x;
	while(p!=NULL)
	{
		while(strcmp(p->name,x)!=0)
		{
			p=p->next;
		}
		break;
	}

	cout<<"======================================="<<endl;
	cout<<endl;
	cout<<" 姓名:"<<p->name<<"\t性别:"<<p->sex<<endl;     
	cout<<" 电话:"<<p->num<<"\t地址:"<<p->add<<endl;       
              
	cout<<endl;
	cout<<"========================================"<<endl;

}

void BookOperator::UpdateBook(Book *Head)
{
	char x[8];
	Book *p=Head;
	cout<<"请输入你想要修改的人的姓名:";
	cin>>x;
	while(p!=NULL)
	{
		while(strcmp(p->name,x)!=0)
		{
			p=p->next;
		}
		cout<<"请输入新的资料"<<endl;
		cout<<"请输入姓名:";
		cin>>p->name;
    
		cout<<"请输入性别:";
		cin>>p->sex;
     
		cout<<"请输入联系电话:";
		cin>>p->num;
    
		cout<<"请输入联系地址:";
		cin>>p->add;
        
		cout<<"\n修改成功..."<<endl<<endl;
	    break;
	}
}

void BookOperator::DeleteBook(Book *&Head)
{
	if(Head==NULL)
	    cout<<"当前通讯簿为空,无法进行删除操作..."<<endl;
	else
	{
		char x[8];
		cout<<"请输入要删除的人的姓名:";
		cin>>x;
		Book *p=Head,*q=NULL;
    
		while(p!=NULL)
			 if(strcmp(p->name,x)==0)
			  break;
			 else
			 {
				  q=p;
				  p=p->next;
			 }
		if(p==NULL)
			  cout<<"对不起,找不到你要删除的人..."<<endl;
		else
		{
			if(q==NULL)
				Head=Head->next;
			else
				q->next=p->next;
			delete p;
			cout<<"此人已删除"<<endl;
		 }
	  }
}
//主函数
void main()
{
    cout<<"+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"<<endl;
    cout<<"              *学生通讯管理系统*               "<<endl;
    cout<<"+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"<<endl;
    cout<<endl;     
	
    cout<<"(1):增加一条学生记录;"<<endl;
    cout<<"(2):删除一条学生记录;"<<endl;
    cout<<"(3):修改一条学生记录;"<<endl;
    cout<<"(4):查询对应学生记录;"<<endl;
    cout<<"(5):显示所有学生记录;"<<endl;
    cout<<"(6):清空通讯录中记录;"<<endl;
    cout<<"(0):安全退出管理系统;"<<endl;

    cout<<endl;
    cout<<"-----------------------------------------------"<<endl;
    cout<<"请选择序号,进行对应的操作:"<<endl;
    cout<<"-----------------------------------------------"<<endl;
 
	cout<<"请选择:";
	int a;
	cin>>a;
    Book *z;
	BookOperator bo;
    bo.InitBook(z);
	while(a!=0)
	{
		switch(a)
		{
			case 1: bo.InsertBook(z);
					cout<<"请选择:";      
					break;   
			case 2: bo.DeleteBook(z);
					cout<<"请选择:";   
					break;    
			case 3: bo.UpdateBook(z);
					cout<<"请选择:";     
					break;
			case 4: bo.FindBook(z);
					cout<<"请选择:";      
					break;
			case 5: bo.TraverseBook(z);
					int i;
					i=bo.BookSize(z);
					cout<<"通讯录中的人数:"<<i<<endl;
					cout<<"请选择:";
					break;
			case 6: bo.ClearBook(z);
					cout<<"请选择:";
					break;
			case 0: exit(0);
			default:cout<<"输入错误请重新选择:";   
		}
		cin>>a;
	}
}

⌨️ 快捷键说明

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