题目4

本文介绍了一位大学生在毕业求职期间接受中国移动通信公司面试时,设计并实现了一个客户咨询电话管理系统的课程设计案例。通过使用C++语言,设计了一个单链表数据结构来存储和管理客户咨询电话,包括查询特定日期的咨询电话、查询特定电话号码的咨询记录、以及查看所有咨询号码等功能。此外,作者分享了在实现过程中遇到的问题和解决心得,强调了实践和勤奋的重要性。
摘要由CSDN通过智能技术生成

一、实训目的

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

二、实训环境

计算机windows xp或其它版本,VC6.0或更高版本,或其它语言环境。

三、实习题目

    赵斌是一个信管专业的学生,大学四年顺利毕业了。在毕业季,他也像其他学子一样,投身于求职大军,投出一份又一份求职简历,在苦苦地等待之后,他接到了中国移动通信公司广东分司的面试通知书,通知他于本月110点到公司面试。当天,晴空万里,艳阳高照,他身着西装,高兴地早早来到公司楼下等待。10点钟整,他和其他新人一起,坐到公司的面试现场。他领取的一一份程序设计题: 假如你是我公司一名客服技术人员,现请你选择自己熟悉的语言,来设计一个程序,管理客户向公司打进来的咨询电话。请事行分析析使用方法和工具,说明自己的思路方法,写一份完整的程序,并实例测试。

源代码:

#include<iostream>
using namespace std;
template<class DT>
struct Node
{
	DT data;
	Node<DT> *next;
	Node<DT> *phone;
	
};
template<class DT>
class Link
{
public:
	Link(){};                     //构造函数
	Link(DT a[],DT b[]);  //建立有n个元素的单链表
	~Link(){};                    //析构函数
	int Find(DT d);             //在表中查找某日的所有咨询电话
	int Locate(DT x);           //在表中查找电话号码为x的元素
	void Insert(DT d,DT x);     //插入
	void Printlink();           //遍历
private:
	Node<DT> *first;
};

template<class DT>
Link<DT>::Link(DT a[],DT b[])
{
	Node<DT> *r,*s,*p;
	first=new Node<DT>;     //头结点
	r=first;
	int n=15;
	for(int i=0;i<n;i++)
	{
		s=new Node<DT>;         //创造一个新的节点
		s->data=a[i];           //把日期输入该节点
		r->next=s;r=s;          //连接在尾节点,尾指针指向尾节点
	}
	for(int j=0;i<n;j++)
	{ 
		s=new Node<DT>
		s->data=b[j];
		p->phone = s;p=s;
	}
}

template<class DT>
int Link<DT>::Find(DT d)
{
	Node<DT> *p = first;    //工作指针p指向头结点
	while(p->next!=NULL)
	{
		p = p->next;
		if(p->data==d)
			break;
	}
	if(p==NULL)
		cout<<"查无此日信息"<<endl;
	else{
		cout<<"在"<<p->data<<"的所有咨询电话如下:\n";
		while(p!=NULL){
			p=p->phone;
			cout<<p->data<<endl;
		}
	}
	return 0;

}

template<class DT>
int Link<DT>::Locate(DT x)
{ 
	bool pp=false;
	Node<DT> *p=first;
	while(p!=NULL)
	{
		p=p->next;
		Node<DT> *q=p;
		while(q!=NULL)
		{
			q=q->phone;
			if(q->data==x){
				cout<<"此号码在"<<p->data<<"打过咨询电话。"<<endl;
				pp=true;break;
			}
		}
		if(pp==false)
			cout<<"查无此号码的咨询记录"<<endl;

}
	return 0;
}
/*
template<class DT>
void Link::Insert(DT d,DT x)                    //来电存储一般按顺序
{
	Node<DT> *p=first;
                             
	while(p->next!=NULL)                             //所以只要存在他们的末尾即可 
		p=p->next;
	if(p->data==d){
		while(p->phone!=NUll)
		{
			p=p->phone;
		}
		s=new Node<DT>;
		s->data=x;
		p->phone=s
	}
	else                        
	{
		s=new Node<DT>;
		p->next=s;p=s;
		s=new Node<DT>;
		s->data=x;
		p->phone=s;
	}
}
*/

template<class DT>
void Link<DT>::Printlink()
{
	Node<DT> *a, *b;
	Node<DT> *s = NULL;
	s=new Node<DT>;
	s->next = NULL;
	a = b = s;

	Node<DT> *p = first;
	while(p!=NULL)
	{
		s=new Node<DT>;
		s=p;
		p=p->next;
		cout<<"在"<<s->data<<" 的咨询电话如下:"<<endl;
		while(s!=NULL)
		{
			s=s->phone;
			cout<<s->data<<endl;
		}
		cout<<endl;
	}
}


void main()
{
	Link<double> L;
	double a[14]={20130101,20130102,20130103,20130104,20130105,};
	double b[15][15]={10000,10086,10010,95588,12580,12315};
	L.Link(a,b);
	int l;double d,x;
	cout<<"请选择你要执行的功能:\n"
		<<"1:按咨询日期查询\n"
		<<"2:按咨询号码查询\n"
		<<"3:查看所有咨询号码\n"
		<<"*:任意键回车退出\n"<<endl;
	cin>>l;

	if(l==1)
	{
		cout<<"请输入某日:";
		cin>>d;
		L.Find(d);
	}
	else if(l==2)
	{
		cout<<"清输入查询号码:";
		cin>>x;
		L.Locate(x);
	}
	else if(l==3)
		L.Printlink();

}

特此申明,该源代码还未通过测试。




4.课程设计心得及体会:

       思考用了一周,实现用了2天,但还是未能通过,因爲遇到了我最烦遇到的问题,就是这个位置冲突。无法得知原因,问了挺多人的,都说没见过这情况,心情有点急躁。

       也从这次课程设计知道,自己知道的还是太少了,想当日,肖老师跟我们说,没敲过一万行以上代码的程序都不能称之为程序。想想,道理至简,不过如此。勤!方可进步!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值