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

📄 通讯录信息管理系统.cpp

📁 数据结构课程设计
💻 CPP
字号:
题目:学生通讯录管理系统

一:需求分析

通过此系统可以实现如下功能:
1、录入:
可以录入学生情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
2、查询:
可以查询某个学生的情况(如,输入学生姓名,查询学生电话号码、家庭地址、邮箱地址、QQ号码);
3、更改:修改学生信息内容;
4、删除:删除相关学生信息;
5、打印:打印出学生的相关信息;
6、显示结果。
   根据以上功能说明,设计具体的存储结构,要求程序要有一个可供用户选择的简单操作界面。操作前要有简单的提示,设计程序完成功能。


二:概要设计

为实现上述程序功能,应该将程序分成五个模块:
	1、主程序模块:
void main()
{
	输入学生的姓名、联系电话、家庭地址、e_mail地址、QQ号码;
	查找学生的信息;
	更改学生的信息;
        删除学生的信息;
	打印结果;
}
	2、输入学生信息模块:输入学生的相关信息;
	3、查找信息模块:查找相关学生的信息;
	4、更改信息模块:更改指定学生的信息;
	5、删除信息模块:删除指定的信息;
	6、打印模块:在屏幕上输出结果。
调用函数:
	Bookbase bo;
	bo.bookbase();

三:源程序
#include"iostream.h"
#include"string.h"
#include"iomanip.h"
#include"fstream.h"
#define max 100
class Book
{ 
private:
	char name[20];
	char tel[15];
	char address[100];
	char e_mail[50];
	char QQ[12];
	int mark;
public:
	Book(){}
	char*getname()
	{
		return name;
	}
	int getmark()
	{
		return mark;
	}
	void delbook()
	{
		mark=1;
	}
	void setname(char *na)
	{
		strcpy(name,na);
	}
	void settel(char *t)
	{
		strcpy(tel,t);
	}
	void setaddress(char *a)
	{
		strcpy(address,a);
	}
	void setemail(char *e)
	{
		strcpy(e_mail,e);
	}
	void setQQ(char *q)
	{
		strcpy(QQ,q);
	}
	void addbook(char *na,char *t,char *a,char *e,char *q)
	{
		strcpy(name,na);
		strcpy(tel,t);
		strcpy(address,a);
		strcpy(QQ,q);
		strcpy(e_mail,e);
		mark=0;
	}
    void disp()
	{   cout<<"*********************"<<endl;
		cout<<"姓名:"<<endl;
		cout<<"     "<<name<<endl;
		cout<<"电话:"<<endl;
		cout<<"     "<<tel<<endl;
		cout<<"地址:"<<endl;
		cout<<"     "<<address<<endl;
		cout<<"e_mail:"<<endl;
		cout<<"       "<<e_mail<<endl;
		cout<<"QQ:"<<endl;
		cout<<"    "<<QQ<<endl;
		cout<<"*********************"<<endl;
	}
};
class Bookbase
{
private:
	int p;
	Book book[max];
public:
	Bookbase()
	{
		Book b;
		p=-1;
		ifstream file("e:\\book.txt");
		while(1)
		{
			file.read((char*)&b,sizeof(b));
            if(!file) break;
			p++;
			book[p]=b;
		}
		file.close();
	}
	void clear()
	{
		p=-1;
	}
	int addbook(char *na,char *t,char *a,char *e,char *q)
	{
		Book *p1=lookup(na);
		if(p1==NULL)
		{
			p++;
			book[p].addbook(na,t,a,e,q);
			return 1;
		}
		return 0;
	}
Book *lookup(char *na)
{
	for(int i=0;i<=p;i++)
		if((strcmp(book[i].getname(),na)==0)&&book[i].getmark()==0)
			return &book[i];
		return NULL;
}
void bookbase();
void disp()
{
	for(int i=0;i<=p;i++)
		if(book[i].getmark()==0)
			book[i].disp();
}
~Bookbase()
{
	ofstream file("e:\\book.txt");
	for(int i=0;i<=p;i++)
		if(book[i].getmark()==0)
			file.write((char *)&book[i],sizeof(book[i]));
		file.close();
}
};
void Bookbase::bookbase()
{
	int choice=1;
	char name[20];
	char t[20];
	char a[100];
	char q[12];
	char e[50];
	Book *b;
	while(choice!=0)
	{
		cout<<"电话记录 1新增  2更改  3删除 4  查找  5全显  6全删 0 退出==>?";
		cin>>choice;
		switch(choice)
		{
		case 1:
			cout<<"请输入姓名:";
			cin>>name;
			cout<<endl;
			cout<<"请输入电话号码:";
			cin>>t;
			cout<<endl;
			cout<<"请输入家庭地址:";
			cin>>a;
			cout<<endl;
			cout<<"请输入e_mail:";
			cin>>e;
			cout<<endl;
			cout<<"请输入OICQ:"<<endl;
			cin>>q;
			addbook(name,t,a,e,q);
			break;
		case 2:
			cout<<"请输入姓名:";
			cin>>name;
			b=lookup(name);
			if(b==NULL)
			{
				cout<<"该人在电话本中有记录:";
				break;
			}
			cout<<"输入新的电话号码:";
			cin>>t;
			cout<<endl;
			cout<<"输入新的家庭地址:";
			cin>>a;
			cout<<endl;
			cout<<"输入新的e_mail:";
			cin>>e;
			cout<<endl;
			cout<<"输入新的OICQ:";
			cin>>q;
			b->settel(t);
			b->setaddress(a);
			b->setemail(e);
			b->setQQ(q);
			break;
		case 3:
			cout<<"请输入姓名:";
			cin>>name;
			b=lookup(name);
			if(b==NULL)
			{
				cout<<"该人在电话本中没有记录:";
				break;
			}
			b->delbook();
			break;
		case 4:
			cout<<"请输入姓名:";
			cin>>name;
			b=lookup(name);
			if(b==NULL)
			{
				cout<<"该人在电话本中没有记录:";
				break;
			}
			b->disp();
			break;
		case 5:
			disp();
			break;
		case 6:
			clear();
			break;
		}
	}
}
void main()
{   cout<<"******************************欢迎进入通讯管理系统******************************"<<endl;
    cout<<"**************************************"<<endl;
		cout<<"请输入你要的服务项:"<<endl;
		cout<<"**************************"<<endl;
	Bookbase bo;
	bo.bookbase();
}
四:用户手册
1、本程序运行环境为DOS 操作系统和C++系统,执行文件为test.exe 
2、进入本程序后,如下图所示
  	***************欢迎进入通讯管理系统******************
 		1、新增  
		2、更改  
		3、删除 
		4、查找  
		5、全显  
		6、全删 
		0、退出
	**************************************
		请输入你要服务项:
	**************************************

3、此次程序是直接在屏幕上打印出程序的运行结果,用户将在屏幕上看到程序功能显示的结果。

五:调试、显示
***************欢迎进入小功能学籍管理系统*****************
 		1、新增  
		2、更改  
		3、删除 
		4、查找  
		5、全显  
		6、全删 
		0、退出
	**************************************
		请输入你要服务项:
	**************************************

1
请输入姓名:
崔玉明
请输入电话号码:
8310226
请输入家庭地址:
江西理工大学应用科学学院学生宿舍
请输入e_maiL:cuiyuming508@yahoo.com		
请输入OICQ:20379835		
2
请输入姓名:
崔玉明		
该人在电话本中有记录
输入新的电话号码:
13766304705
输入新的家庭地址:
江西赣州
输入新的e_mail:
myself@sina.com			
输入新的OICQ:
13576734927
3
请输入姓名:
小崔
该人在电话本中没有记录:
4
请输入姓名:
该人在电话本中没有记录

5
崔玉明
13766304705
江西赣州
myself@sina.com
13576734927
张瑞堂
13767717624
江西理工大学应用科学学院学生宿舍
35666565
孙伟
13263018236
江西理工大学应用科学学院学生宿舍
61733456
6

六:附录
class Book			//创建一个类			
void disp()			//存储学生通讯录的内容
Book *lookup(char *na)		//控制存储容量的循环函数
class Bookbase			//定义一个类
void Bookbase::bookbase()	//定义在结构体Bookbase里的函数Bookbase()
void main()			//主函数

⌨️ 快捷键说明

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