课程设计电话簿管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.程序功能简介

一个基本的电话簿管理程序,具有插入、删除、显示、修改和查询联系人电话码的功能。

主菜单如右图所示,每个菜单项功能如下:

1.增加记录菜单:请输入用户姓名,如果该用户已经存在则添加失败,否则,输入用户的电话号码,进行添加。

2.修改某条记录:请输入用户姓名,如果没有该用户显示“该用户不存在”信息,否则,输出原电话号码,然后输入新的电话号码,进行修改。

3.删除记录:

输入用户姓名,进行删除(删除时要进行确认)。

4.查询:输入用户姓名,进行查找。

5.排序:根据子菜单,选择不同的排序方式。

6.显示:逐屏显示(每屏显示10条记录)。

7.全删:进行全部删除(要确认)。

二.课程设计要求

请选择以下功能

1- 增加记录

2- 修改记录

3- 删除记录

4- 查找(按姓名)

5- 排序

6- 显示记录

1.用汉化菜单实现。

2.提供按姓名查询电话号码的功能。

3.显示功能(提供逐屏显示的功能,每屏显示10条记录)。

4.删除和修改时要进行确认。

5.将电话簿记录以文件的形式存在磁盘上;每次操作时将电话簿调出,操作完毕后存盘。

三.课程设计说明

1.程序采用数组数据结构实现。

2.用类来实现数据的封装。

四.参考数据结构

1.“电话簿”称为用户信息表,用数组实现。用户信息表由若干用户信息构成,每个用户信息是一个数组元素。

2.“user.txt”是一个文件,用于保存“用户信息表”中的信息。当系统启动时,从该文件中读入信息,当退出系统时,将“用户信息表”中的信息写到该文件中。该文件中信息存放形式如下:

ZhangHong 5221369

LiLi 84891112

ZhaoQiang 5221498

其中

name(姓名)占20列

phone_num(电话号码)占12列

五.具体功能及实现

定义Fphone类,通过其私有成员数组name[20]和phone[12]分别记录用户姓名与电话号码,定义UserDatabase类记录用户信息,通过公有成员函数实现对数据的操作。

六.源程序及注释

#include

#include

#include

#include

#include

#define M 20

#define N 12

#define MAX 100

class Fphone //用户信息类的定义

{

char name[M]; // 姓名

char phone_num[N]; //电话号码

public:

Fphone(char *na="",char *ph="")

{ strcpy(name,na);

strcpy(phone_num,ph);

}

char*getname(); //获取姓名

char*getphone_num(); //获取电话号码

void setname(char*a); //设置姓名

void setphone_num(char*a); //设置电话号码

void disp(); //显示用户信息

};

char *Fphone::getname()

{ return name;

}

char *Fphone::getphone_num()

{ return (phone_num);

}

void Fphone::setname(char *a)

{ strcpy(name,a);

}

void Fphone::setphone_num(char*a)

{ strcpy(phone_num,a);

}

void Fphone::disp()

{ cout<<"姓名:"<

}

class UserDatabase //用户信息表类的定义

{ int nElem; //用户信息表中的元素个数,即当前记录总数int Maxu; //最多的用户

Fphone *user; //指向用户信息表的指针

public:

UserDatabase() //构造函数,初始化用户信息表,将user.txt文件中数据读到User[]中

{ nElem=0;

Maxu=50;

user=new Fphone[Maxu];

fstream in;

in.open("user.txt",ios::in|ios::nocreate); //打开文件

for(int i=0;(!in.eof());i++)

{ in>>user[i].getname();in>>user[i].getphone_num();

nElem++;

}

in.close();

}

~UserDatabase() //析构函数,将user[]写入user.txt文件中{ fstream out;

Fphone *p=NULL;

p=user;

out.open("user.txt",ios::out,filebuf::sh_none);

for(int i=0;i

{ out<getname())<

<<((p+i)->getphone_num())<

}delete []user;

out.close();

}

void clear() //删除所有用户信息

{ char ord;

cout<<"确定删除吗?(选择:[y]是;[n]否)\a\a"<

do

{ cin>>ord;

if(ord=='N'||ord=='n') return;

else if(ord=='Y'||ord=='y')

{ delete[Maxu]user;

相关文档
最新文档