数据结构课程设计《电话客服管理》

广东海洋大学学生课程设计报告

一、 题目:客服电话管理

二、 目的要求:通过课程设计,学会运用数据结构知识,针对具体应用,自己设计合理数据结构,确定存储结构,并能设计具体操作算法,选择使用具体语言进行实现。掌握c++较复杂程序的组织和设计过程,调试技巧。学习解决实际问题的能力。

三、 主要内容及实现的功能

 1、本程序具体功能如下:

(1)用户登录界面设计。

(2)信息维护:包括子模块有:增加电话号码信息、删除电话号码信息、修改电话号码信息。其中电话号码信息包括姓名、电话号码。

(3)信息查询:查询时实现按姓名查询,提供电话号码信息。

2、程序设计资料调研

本课程的要求是电话号码信息管理,要求完成其基本功能。其信息经过搜索,查得电话号码表。在进行某种电话号码管理操作时,通过是先显示所有的电话号码的信息,再找到符合自己要找的电话号码的操作,本系统遵循了这一习惯。

3、关键算法

在本程序中使用了struct 数据类型,所用最多的是WHILE循环结构和IF语句,然而这也正为了它的特色。循环体的嵌套思路清晰,目的明确,格式规范,易于阅读和理解。

If语句的逐层运用,正形象化的描述了计算机工作流程,而且与人的一般习惯相吻合,简单明了,易于观察理解它的来龙去脉,思路清晰直观。该程序是在汉化系统下编写完成的,所以它支持在汉化系统下运行,还支持在普通系统下

运行,它允许完全用中文操作,包括对信息的添加浏览和查询等功能,它使用的指针是动态分配内存的,允许用户大量的信息录入,对它的长短不加限制,这样就方便了很多。而且中文环境更加方便使用,一目了然。

四、设计的思路

1.建立ifstream/ofstream/fstream、输入、输出、输入输出流对象,建立ifndef,define预编命令,STRUCT 数据。

2.建立TelephoneBook类,构建PRIVATE私有成员和PUBLIC公有成员

3.建TelephoneBook函数,建立输入输出文件,如何打开文件

4.建立AddData函数,请输入序号、名字、电话号码构建电话号码本

5.建立UpdateData函数,可以更改序号、名字、电话号码本功能项

6.建立SearchData函数,制作输入查询电话号码的序号功能项

7.建立DeleteData函数,制作输入可以删除的电话号码的序号

8.建立Pack函数,写入电话号码二进制文件,写入电话号码本

9.建立Run函数,用do. while界面制作界面

10.建立一个主函数main(),#include"telephone_book .h"

void main(void)

{

TelephoneBook obj;

obj.run();

}

五、设计要求:

该系统在磁盘上存储客户打进来咨询的电话。电话簿包含每个客户的信息如下:姓名、电话、邮箱、所属类别等。电话簿在磁盘上以文本文件形式存储,文件名为telbook.txt,初始时文件为空。

系统功能要求如下:

(1)增加某新客户的通讯信息

(2)删除某客户的通讯信息

(3)修改某客户的通讯信息

(4)输出符合某种特征的客户信息列表。

A.全体客户信息列表;

B.根据提供的客户姓名输出该客户的信息;

六、问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)分析系统中的各个实体之间的关系及其属性和行为;

(2)根据问题描述,设计系统的类层次;

(3)完成类层次中各个类的描述(包括属性和方法);

(4)完成类中各个成员函数的定义;

(5)完成系统的模块组装、调试;


七、主要源代码如下:

#include<iostream>
#include<string>
#include<stdio.h>
#include<windows.h>
#include<iomanip>
using namespace std;
class InfNode         //构建结点
{
friend class people;   //将people类定义为友元类
 string name;
string job;
string telnum;
string Email;
int num;
InfNode *next;
};
class people             //定义的类
{
public:
people()                //构造函数,初始化一个空链表 
{
first=new InfNode;
first->next=NULL;
}
void see();                  //成员函数,实现查找功能
void input();                //成员函数,实现添加功能
void printf();               //成员函数,实现输出功能
void change();               //成员函数,实现修改功能
void Delete();
void print();
private:
InfNode *ptr,*first;         //头指针
};
void people::input()
{                           //input函数的实现,实现添加功能 
	ptr=first;
int i=1;
char k='y';
InfNode *p=new InfNode;
cout<<"第"<<i<<"个结点;"<<endl;
cout<<setw(18)<<"请输入姓名:";
cin>>p->name;
cout<<setw(18)<<"请输入所属类别:";
cin>>p->job;
cout<<setw(18)<<"请输入电话号码:";
cin>>p->telnum;
cout<<setw(18)<<"请输入邮箱:";
cin>>p->Email;
cout<<endl<<endl;p->num=1;
cout<<"是否继续录入信息?【y/n】";
cin>>k;
cout<<endl;
p->next=first->next;
first->next=p;
while(k=='y'&&i<15)            //要求录入数据少于15个 
{
int j=0;
InfNode *q=first->next;
p=new InfNode;
cout<<"第"<<i+1<<"个结点;"<<endl;
cout<<setw(18)<<"请输入姓名:"; 
cin>>p->name;
 while(q!=NULL) {
if((q->name)==(p->name)) 
j=1;
q=q->next; 
 }
if(j==1) 
{
cout<<setw(18)<<"请输入所属类别:"; 
cin>>p->job;
cout<<setw(18)<<"请输入电话号码:"; 
cin>>p->telnum;
cout<<setw(18)<<"请输入邮箱:"; 
cin>>p->Email; 
cout<<endl<<endl; 
i++; p->num=i; 
} 
else
cout<<"录入失败!(禁止重复录入!)"<<endl; 
cout<<"是否继续录入信息?【y/n】"; 
cin>>k;
p->next=first->next; 
first->next=p; 
}
if(i>=15)
cout<<"已达到信息录入的上线"<<endl; 
}
void people::see()               // see函数的实现, 实现查找功能 
{
InfNode *p; 
p=ptr; 
string s;
cout<<endl<<endl<<"开始按类别查询! 请输入查询类别:"<<endl<<endl; 
cout<<"officer(办公类)"<<" "<<"personal(个人类)"<<" "<<"business(商务类)"<<endl; 
cin>>s;
cout<<"查找结果如下:"<<endl; 
while(p!=NULL) 
{
if((p->job)==s) 
{
cout<<setw(12)<<"姓名:"<<p->name<<setw(12)<<"电话号码:"<<":"<<p->telnum<<endl; 
}
p=p->next; } 
}
void people::change()             //change的实现,实现信息修改功能 
{
cout<<endl<<endl<<"请输入想修改的人的姓名"<<endl; string s1; cin>>s1;
InfNode *p=ptr; while(p!=NULL) 
{
if(p->name==s1) 
{
cout<<"请输入新的所属类别:"<<endl; 
cin>>p->job;
cout<<"请输入新的电话号码:"<<endl; 
cin>>p->telnum;
cout<<"请输入新的邮箱:"<<endl; 
cin>>p->Email;
cout<<"修改后的结果:"<<endl;
cout<<setw(12)<<"姓名:"<<p->name<<setw(12)<<"类别:"<<p->job<<setw(12)<<"电话号码:"<<":"<<p->telnum<<"邮箱:"<<":"<<p->Email<<endl; } p=p->next; } 
}
void people::Delete()
{                            //Delete函数的实现 ,实现删除功能
cout<<endl<<"请输入想删除人的姓名"<<endl; string s1; cin>>s1;
InfNode *p=ptr; 
while(p!=NULL) 
{
if(p->name==s1)
{
InfNode *q; 
q=p;
p=q->next; 
delete q;
cout<<"结点删除成功!"<<endl; return; } 
else
p=p->next; } 
}
void people::print() 
{
InfNode *p=ptr; 
string ns;
cout<<"请输入要拨号的姓名:"<<endl; 
cin>>ns;
while(p!=NULL) 
{
if(ns==p->name) 
{
string s1=p->telnum; 
int n=s1.size(),i=0; 
char ch[100];
strcpy(ch,s1.c_str()); 
while(i<n) 
{
Beep(1000,200); 
cout<<ch[i]; 
Sleep(500); i++; }
cout<<"成功拨号!"<<endl; }
p=p->next; } 
}
int main()
{                 //测试函数
people a1;         //调用各个成员函数 
a1.input(); 
a1.see(); 
a1.print();
a1.change(); 
a1.Delete(); 
system("pause"); 
return 0; }

界面:




八、总 结

为期一个星期的数据结构课程设计已经基本结束,但是给了我很大的影响。通过这次实训,使我明白数据结构这门课程光仅仅是听课是远远不够的,上机训练也不容忽视。通过上机训练,才能够明白自己知识的不足,才能够有的放矢,更加深刻的理解数据结构中的知识点。 通过实训,我找到了许多知识漏点,学到了很多以前不懂的知识,以前认为自己已经懂了的知识点也理解更加深刻了。尤其是遇到了自己当时不知道如何编写的数据结构题目如何编写,通过自己的学习和同同学的交流后,试编和改错,最后能够顺利的编写出来,带来的也有成就感。


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值