数据结构 课程设计报告

来源:互联网 发布:java stackofinteger 编辑:程序博客网 时间:2024/05/22 12:30

 

 

 

 

 

 

《数据结构课程设计》

 

 

 

 

 

 

课程题目

电话客服模拟系统

课程编号

j1620102

学生姓名

严乾聪

学生学号

201311671424

所在专业

信息管理与信息系统

所在班级

     信管1134班    

任课老师

     易学明

实习时间

      2015年1月9日

设计成绩

 

 

 




一、数据结构课程设计题目

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

二、系统需求、功能分析

1:系统需求

 计算机windows 7  VC C++6.0

2:功能分析

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

本系统利用队列出队,入队,读取队头,判空等操作编写一个电话模拟系统,来处理打进来的咨询电话.

3:要求

1、独立完成,设计算法并编写代码,调试通过。

2、写设计说明书。内容:题目、功能、要求、分析、代码,收获和体会及不足等。

3、以个人独立完成。每一个选择一个题目。选题方式是:自己学号整除5所得的余数是几就做几号题。如学号为12做2号题,学号为5的做0号题。

4、时间:从第13周开始收集资料,进行准备。具体设计时间在16-17周(等实验室安排)。在设计周周五检查(在机房子单独接受老师检查并提问),次周周五前提交设计说明书(实习报告)。

5、实习单独计算成绩,学分1分,成绩好坏和考试没关系。

4:流程图


三、运行和调试

1.       判断是否有电话接入


 

2.客户按顺序等待排队, 依次处理电话



四、课程设计的心得

课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。学了一个学期的数据结构,现在终于到了实践检验真理的时候了,这长达两周的课程设计让我深刻地认识到了自己编程方面的许多缺点很不足,检验了自己的学习成果。或许是大一的时候贪玩了一些,导致自己在C++程序设计这一块学的不是很好,直接影响了数据结构的课程设计。不过浓厚的学习氛围帮助了我许多,当我遇到困难时,我都会去询问周围的同学们,经过他们的解答,问题总是能够迎仍而解。本次课程设计我选到的是第四个,是关于模拟电话系统的一个程序设计,是用链队列这一方面的知识来解决的,正好利用这次的课程设计又把队列的知识好好地复习了一遍。一开始运行时总是会出现许多错误,有些错在语法,有些错在了粗心,不过错多了之后,再去看错误的代码时,总是能比较快的找出自己错误的地方,这一点是收获挺大的。通过这次课程设计,使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,将结论用于实践,从而提高自己的实际动手能力和独立思考的能力。通过本次课程设计,我发现编程还是挺有趣的,我希望以后能通过这个课程设计,激发我对编程的兴趣,进一步提高自己的专业水平。

五、参考文献

《C++语言程序设计教程与实验》第三版,清华大学出版社

《数据结构学习辅导与实验指导》第二版,清华大学出版社

六、附录:源代码

头文件call.h

#ifndef call_H //避免重复包含call.h头文件#define call_Htemplate<class T>//定义链队列结点struct Node{    T data;    Node<T>*next;};template<class T>//声明链队列class LinkQueue{public:    LinkQueue();    ~LinkQueue();    void EnQueue(T x);//入队    T DeQueue();//出队    T GetQueue();//取对头元素    int Empty();//判空private:    Node<T>*front,*rear;//定义对头队尾指针};#endif;

源文件callcpp.cpp

#include"call.h"//引入类call的声明//开始定义队列成员函数template<class T>LinkQueue<T>::LinkQueue(){    Node<T>*s=NULL;    s=new Node<T>;    s->next=NULL;    front=rear=s;}template<class T>LinkQueue<T>::~LinkQueue(){    Node<T>*p=NULL;    while(front!=NULL)    {          p=front->next;          delete front;          front=p;    }}template<class T>void LinkQueue<T>::EnQueue(T x){    Node<T>*s=NULL;    s=new Node<T>;    s->data=x;    s->next=NULL;    rear->next=s;rear=s;}template<class T>T LinkQueue<T>::DeQueue(){    Node<T>*p=NULL;    int x;    if(rear==front)throw"位置";    p=front->next;    x=p->data;    front->next=p->next;    if(p->next==NULL)rear=front;    delete p;    return x;}template<class T>T LinkQueue<T>::GetQueue(){    if(front!=rear)        return front->next->data;}template<class T>int LinkQueue<T>::Empty(){    if (front==rear)        return 1;    else        return 0;}

主函数callmain.cpp

#include<iostream>//输入输出流using namespace std;#include"callcpp.cpp"//引入类call的成员函数定义void main(){cout<<"--------------欢迎使用电话客服模拟系统--------------"<<endl;    getchar();    LinkQueue<int>Q;//创建类模板实例    if(Q.Empty())          cout<<"没有排队的用户!"<<endl;    else          cout<<"还有用户在排队!"<<endl;getchar();cout<<"有电话接入,等待处理"<<endl;getchar();    try{Q.EnQueue(673080);//入队Q.EnQueue(645676);}catch(char*wrong){cout<<wrong<<endl;;}cout<<"正在等待的电话:";cout<<Q.GetQueue()<<endl;//读队头getchar();cout<<"开始处理"<<endl;    getchar();cout<<"正在处理的电话:";cout<<Q.DeQueue()<<endl;//出队getchar();    cout<<"处理完毕"<<endl;getchar();cout<<"正在等待的电话是:";cout<<Q.GetQueue()<<endl;getchar();cout<<"开始处理"<<endl;    getchar();cout<<"正在处理的电话:";cout<<Q.DeQueue()<<endl;}


 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

0 0
原创粉丝点击