实习中期报告

楚雄师范学院

化学与生命科学系专业实习中期报告

        实习中期报告                 

        范召志                      

        20091053145                 

        科学教育                     

指导教师    梁晓华                        

20## 10 13

化学与生命科学系教育实习中期报告

填表人(实习生):   范召志                                   填表日期:2012113

 

第二篇:计算机实习中期报告

中期报告

经过了为期一个半月的实习,可以说是把我从内到外来了一次彻底的转变。

我实习的是一家开发客服电话语音导航软件的公司,公司里面所用的语言是学校所没有教过的c#语言,到了公司我开始了我的c#学习旅程,在不断的学习过程中我也学到了许多的新知识。

在c#语言中提供了一种将方法作为参数来进行传递的类型——委托。

关键字是:delegate。这是C和C++里面所没有的机制(当然前两种语言中有方法指针与其类似)。委托是将方法作为对象封装起来,允许在运行时间接地绑定一个方法来调用。有了委托我们就可以减少了重复代码的数量。利用委托可以传递一组能再不同位置调用的指令。这些指令不是立即调用的,而是在完成编码之后,再在其他的位置调用。C#语言将所有的委托定一层间接派生与System.Delegate,下图显示了委托类型的对象模型:

在C#语言中还有另一种是基于委托的机制——事件。

关键字为event。事件中有两种角色,即事件的发行者(publisher)和事件的订阅者(subscriber)。事件的订阅者通常提供一个事件的处理程序,在时间的发行者触发一个事件后,自动的执行代码的内容。时间的发行者只会把事件发送给那些订阅了自己的用户(事件订阅者)。事件的触发是“事件名+();”。

定义一个事件需要完成四个步骤:1.在事件发行者中定义一个事件;2.在事件发行者中触发事件;3.在事件订阅者中定义事件处理程序;4.向事件发行者订阅一个事件。事件的处理程序必须跟委托类型相一致,也就是说返回值类型和参数类型都必须与委托相同。事件的本质就是一个委托链。调用委托时使用类名称,调用事件时使用实例名称。之所以这样是因为委托本省就是静态类型,我们也可以把事件定义成静态的类型之后就可以用类型进行调用了。

委托结构中存在的缺陷可能造成程序员不经意地引入一个bug。错误的使用赋值运算符“=”而不是“+=”。例如下面的程序:

Class Program

{

Public static void Main()

计算机实习中期报告

}

} { Thermostat thermostat =new Thermostat(); Heater heater =new Heater(60); Cooler cooler=new Cooler(90); String temperature; Thermostat.OnTemperatureChange=heater.OnTemperatureChanged; Thermostat.OnTemperatureChange=cooler.OnTemperatureChanged; Console.Write(“Enter temperature: ”); Temperature =Console.Readline(); Thermostat.CurrentTemperature-int.Parse(temperature);

上面的代码中它没有使用“+=”而是使用的“=”。结果就是,当代码将cooler.OnTemperatureChanged赋给OnTemperatureChange时,heater.OnTemperatureChanged 会被清除,因为一个全新的委托链替代了之前的链。在本该使用“+=”运算符的地方使用了复制运算符“=”,由于是一个十分容易犯的错误,所以最好的解决方案就是根本不为包容类外部提供对复制运算符的支持。Event关键字段目的。

比匿名方法更加简洁的一种匿名函数语法——Lambda表达式。这里面所指的匿名函数是Lambda表达式和匿名方法。示意图如下:

计算机实习中期报告

这种语法不包含delegate挂件子,但是添加了Lambda运算符“=>”,运算符可以理解成“用于”,例如“n=>{return n.ToString}”理解成“n是用于返回ToString”。语句Lambda允许通过“类型参数推断”来进一步简化语法,可以不显示声明参数的数据类型,只要编译器能推断出参数类型或者能将参数类型隐式转换成期望的类型,语句Lambda就不需要参数类型。然而,如果要指定类型,那么必须指定的类型必须和委托类型完全匹配。如果无法进行推断就必须加上数据类型,除了语句Lambda还有表达式Lambda,表达式Lambda只是一个表达式没有语句块,他不像语句Lambda含有一个语句块,所以可以包含零个语句块或者更多的语句。通常一个语句Lambda云悬浮理解成“用于”,但有时候理解成“变成”更加贴切更加容易理解,当我们把Lambda是一个断言要返回一个布尔值的时候就要理解成“满足……条件”会更清楚。

由于刚到公司对开发公司的软件还不了解,所以先从事于软件的测试工作。由于我们公司的产品是语音导航系统所以我们的测试就离不开打电话和客户端的坐席测试。

测试分为两个部分的测试:其一是功能方面的测试,其二是记录统计部分的测试。 功能方面的测试主要是取决于客户需要我们生产的软件需要哪些功能,基本上都需要有呼叫、监听、强拆、强插、转接等功能,这些功能的实现要有软面板实现和机械话盒的实现。 呼叫功能主要是内线呼内线;内线呼外线;外线呼内线几种。这三种都需要软面板和硬件真实电话的实现。其中内线呼外线是需要先拨打一个出局码然后再拨打外线的具体号码,采用先出局占中继然后再接通的原则。

监听功能主要是主要是电话接通的双方在通话时被第三方监听,第三方能听到通话双方的通话但是通话双方却不知道第三方的监听动作。

强插功能主要是通话双方被第三方强行插入,在这种情况下三方均能听到任意一方的通话。

强拆功能主要是通话双方,通话时间过长影响到其他客户的拨入。这时需要第三方强行拆断。

记录统计部分的测试基本上都要测试数据库中存储的表,看表中的数据,例如用户的评价(用户满意度调查),话务员的工作休息时间统计,话务员工作情况的统计。用户满意度调查就是用户对客服人员服务的满意程度的调查要给出一个量性的评价,非常满意,满意等;话务员的工作休息时间统计,是每个话务员接通电话的时间给客户的服务时间,以及签出休息的时间都会自动的记录到数据库中;话务员工作情况的统计测试是每个话务员在什么时间接通电话和具体的通话时长和挂断电话的时间也都会自动的记录到数据库中。我们要对那些记录到数据库中的真实的数据进行测试。看是否符合实际情况。

相关推荐