信风
任务描述:
一、标题
信风
二、题目
一个虚拟的短信应用,支持各种短信箱子、支持短信模拟收发、支持短信过滤、支持短信聊天。内嵌简单电话本功能,支持黑白名单。
采用QT 4.8开发。
三、初赛阶段要求
1. 一个虚拟的短信应用,提供收件箱和垃圾箱功能;允许用户将短信在收件箱、垃圾箱之间移动
2. 用户可以在应用里设置自己的信息(如:姓名、号码等)
3. 短信收发通过socket进行,端口规定为1573,报文格式规定为
<Sms>
<Number>发送者号码</Number>
<content>短信内容</content>
</Sms>
注意:选手应当提供一个测试工具测试短信应用的收发功能。测试工具和短信应用可以运行在同一台电脑上
4. 该应用提供简单电话本功能,记录两个信息(姓名和号码)。用户可以设置白名单以及黑名单功能,启用白名单功能时,只有白名单的号码发来的短信放入收件箱;启用黑名单功能时只有黑名单中号码发来短信放入垃圾箱。白名单与黑名单互斥,即同一个联系人不能同时处于白名单和黑名单中
5. 该应用支持垃圾短信过滤,进行关键词匹配,对某些特定的关键词能够感应并且将其放入垃圾箱,关键字放在key.txt里
6. 数据须保存在XML文件中
7. 支持从 TestSms.xml 文件导入短信,在导入时,进行短信过滤
8. 必须使用QT 4.8进行开发,必须使用C++语言,必须在windows XP sp3上开发(注意:在发布作品时,应当附带作品依赖的qt dll),不得使用VC/BC/java等工具开发
QT 4.8下载地址:http://qt.nokia.com/downloads/sdk-windows-cpp-offline
9. 作品目录
├─BuildResult
├─Code
├─doc
└─Test
10. 可执行文件放在BuildResult目录里,且该目录下只能有一个可执行文件,作品所依赖的qt dll也放在这里。
a) 整个工程放在code目录里
b) 说明文档放在doc目录里
c) 测试数据放在Test目录里
11. 支持中文和英文
四、审核标准及评价细则
初赛阶段满分100分
1. 程序基本功能(小计50分):
a) 收件箱和垃圾箱(5分)
b) 短信接收发送(10分)
c) 自身信息设置(5分)
d) 简单电话本(5分)
e) 黑白名单(5分)
f) 短信过滤(10分)
g) 短信导入(10分)
2. 代码编写情况(小计25分):
a) 代码注释情况(5分)
评委按注释情况打分(0-5分)
b) 代码复杂情况(5分)
评委按复杂程度酌情打分(0-5分)
c) 具体编码情况(10分)
评委按优劣酌情打分(0-10分)
d) 代码的模块化程度和可复用可扩展程度的情况(0-5分)
评委按优劣酌情打分(0-5分)
3. 文档编写情况(小计25分):
a) 设计文档(15分)
有系统总体框架设计(5分)
有界面设计(5分)
有数据结构描述(5分)
b) 用户文档(10分)
有操作步骤说明(5分)
有截图示例(5分)
手机RSS阅读器
任务描述:
一、标题
手机RSS阅读器
二、题目
目前网上新闻很多,但如果都用网页浏览找起来很麻烦,而且很多新闻都价值不高,只要看个标题就够了。我们希望构造一款跨平台的网上新闻阅读器,能够在各种主流的手机平台上阅读新闻。
三、初赛阶段要求
1. 功能需求
a) 搜狐提供各种RSS新闻频道(http://rss.news.sohu.com/rss.shtml),网易也有新闻RSS(http://www.163.com/rss/),用户可以订购感兴趣的新闻频道
b) 界面内展示用户订购的新闻频道,可以浏览,获取最新新闻
c) 用户根据需要可以自动/手动更新新闻列表
d) 可以打开阅读新闻详细内容
e) 设计页面图标
f) 支持换肤
2. 非功能需求
a) 使用Phonegap 开发
b) 要求提供 Android版本
c) Android 版本支持2.2,800*480 分辨率
四、初赛阶段说明
1. 开发语言使用HTML5 + Phonegap
2. 提交任务包包括编译完成可执行的二进制程序以及源文件
3. 提供开发设计说明书及使用手册各一份
4. 提供Android环境下操作录像一份 (建议使用屏幕录制软件,增加解说词,保存为mpeg或avi文件格式)
5. 开发在Android2.2 版本模拟器上进行(Android2.2,分辨率800*480,内存256M,存储512M),运行期内存限制在32M以内,占用存储资源少于10M
五、系统实现技术提示信息
RSS资料:RSS(简易信息聚合,也叫聚合内容)是一种描述和同步网站内容的格式。RSS可以是以下三个解释的其中一个:Really Simple Syndication;RDF (ResourceDescription Framework)Site Summary;Rich Site Summary。但其实这三个解释都是指同一种Syndication的技术。RSS目前广泛用于网上新闻频道,Blog和Wiki,主要的版本有0.91, 1.0, 2.0。使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新。网络用户可以在客户端借助于支持RSS的聚合工具软件,在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。
http://baike.baidu.com/view/1644.htm
PhoneGap是一个开源的开发框架,使用HTML,CSS和JavaScript来构建跨平台的移动应用程序。它使开发者能够利用IPhone,Android,Palm,Symbian,Blackberry,Windows Phone和Beda智能手机的核心功能——包括地理定位、加速器、联系人、声音和振动等。
六、审核标准及评价细则
1. 程序包内容完整
2. 评价起始分100分,下不保底,上不封顶
3. 程序能够在Android正常运行
4. 程序运行过程中无致命故障(导致系统崩溃),每出现一个致命故障点扣除20分
5. 运行过程出现严重故障导致某功能无法正常执行扣除10分
6. 每出现一个不影响业务流程的小故障扣除2分
7. 需求中明确列出的功能点必须实现,缺少一个功能点扣除10分
8. 界面美观大方,用户体验好,触控灵活,页面切换效果平滑,加30分
9. 除基础功能外,可以自由发挥增加额外功能,每个功能点加5分,最多加30分
10. 说明书编写需要有功能说明、操作方法、设计思路、代码说明等四部分内容,不完整扣除0-20分
11. 程序代码完整,可正常编译运行,注释清晰,不满足扣除0-20分
12. 操作录像(含视频解说)能够正常播放,展示列出的主要功能,不满足扣除20分
IP 公务电话仿真系统
任务描述:
一、标题
IP 公务电话仿真系统
二、题目
公务电话(Order Wire,简称OW)是传输设备的一个基本功能,随着无线通信的普及和覆盖范围越来越大,公务电话的重要性在减弱,但是在一些偏远地区,以及一些特殊场合下,公务电话还是有不可取代的作用,随着传输设备管理通信网(MCN)的IP化、通道的数据化,传统公务电话的脉冲编码调制(PCM)方式已经不适合,需要一个基于IP网络的IP公务电话系统。
IP公务电话的原理如图1所示,传输设备的网元组成一个管理通信网络(MCN),提供L2/L3(Level 2/3,这里指数据链路层/IP层)的路由和报文转发,可以把这些网元看作是一个一个的交换机或者路由器连接起来,每个公务电话板卡和网元的接入就是一个网络接口,每个公务电话分配一个IP地址(该IP地址随着网络和IP地址规划不同而不同),每个公务电话有一个电话号码,这里为了简化,电话号码为001-998中任意一个值,000和999号码为特殊号码,999为群呼号码,000为组呼号码,组号限制为01-99,每组最多30个公务电话号码。
拨号规则如下:
1. 001-998为单呼号码,实现点到点的电话呼叫
2. 999为群呼号码,实现全网的电话呼叫
3. 000为组呼号码,实现组内呼叫
公务电话要实现的功能就是在任何一个网元,可以和其它网元的公务电话建立单呼(点到点通话),群呼(多点到多点通话),组呼(把一些网元分为一个组,组内的广播通话)功能。
如果组呼和群呼的发起方公务电话主动挂断,本次通话结束;如果非发起方挂断电话,其它多方电话还能正常通话。
本次题目假设(限制)如下:
1. 公务电话功能和拨号界面在PC上模拟,公务电话的语音输入和输出用PC的麦克和喇叭
2. 一个PC机模拟一个公务电话的功能
3. 公务电话之间的信令传递和语音传递以IP为基础,可以采用广播,组播和单播方式
4. 公务电话之间拨号需要用短号(000-999),不能直接用IP地址拨号
5. 预先配好的至少是公务号和组号
6. 需要考虑通信管理网(MCN)带宽的占用率,语音通话的质量和延时,以及电话的接通率,异常情况下的拨号处理,典型的通信管理网(MCN)带宽为300Kbps到8Mbps
7. 需要考虑程序执行效率,该公务电话的软件模拟的是需要在100MIPS处理能力,64MB内存的硬件系统下实际运行的系统,所以,使用不包含界面在内的软件进程占用的CPU时间和进程的专用工作及内存这两方面来衡量应该能大致上满足上述要求
一般传输网络中数据通信网(DCN)的IP地址配置是根据运营商的网络来进行规划的,所以IP地址可以在同一个子网,也可以在不同的子网,也可以经过外部的数据通信网(DCN),甚至是Internet网络,下面是典型网络和公务配置例子,公务号码一般是随机配置的,号码范围有限定,群呼号码是固定的。
典型配置1:以上述的网络拓扑图为例,网元的IP地址为公务号码配置
典型配置2:以上述的网络拓扑图为例子,网元的IP地址为公务号码配置
三、初赛阶段要求(含编程语言、开发及运行环境的要求;若有附件需包含)
1. 界面和业务层分开,业务层编程语言限制为C/C++,界面编程语言要求C++或者Java
2. 运行环境为windows XP 的32位操作系统
3. 每台PC模拟一个公务电话功能
4. 需要完成的内容为:基本的公务电话功能(包括:拨号、振铃、接通、通话、挂断等),组呼功能(实现一个群组之内的公务电话呼叫),电话的基本语音通话功能
5. 初始化设置由配置文件完成,设置内容包含本机号码、本机组号等
四、初赛阶段说明
1. 拨号的界面的输入仅限于模拟电话的键盘输入(0-9,*,#)
2. 摘机和挂机使用界面的一个按键模拟
3. 摘机、振铃、呼叫、被呼、挂断等状态通过喇叭的声音来表示
五、系统实现技术提示信息
1. 管理通信网(MCN)网络可以由交换机和路由器来模拟网络
2. 语言编码部分,用PC模拟的时候,参考DirectSound的API实现
六、参考资料信息
1. G.712Transmission performance characteristics of pulse code modulation channels
http://www.itu.int/rec/T-REC-G.712/en
2. G.7712Architecture and specification of data communication network
http://www.itu.int/rec/T-REC-G.7712/en
七、审核标准及评价细则
初赛阶段满分100分
1. 程序基本功能(小计60分)
a) 电话基本通话功能(20分)
b) 拨号功能(10分)
c) 公务电话的组呼功能(20分)
d) 公务电话的通话质量(10分)
2. 代码编写情况(小计20分)
a) 代码注释情况(5分)
评委按注释情况打分(0-5分)
b) 代码复杂情况(5分)
评委按复杂程度酌情打分(0-5分)
c) 具体编码情况(5分)
评委按优劣酌情打分(0-5分)
d) 代码的模块化程度和可复用可扩展程度的情况(0-5分)
评委按优劣酌情打分(0-5分)
3. 文档编写情况(小计20分)
a) 设计文档(10分)
有系统总体框架设计(4分)
有界面设计(3分)
有数据结构描述(3分)
b) 用户文档(10分)
有操作步骤说明(5分)
有截图示例(5分)
负荷分担的可靠性系统仿真
任务描述:
一、标题
负荷分担的可靠性系统仿真
二、题目
在无线通信系统中,无论是运营商或者设备商对系统的可靠性、可用性都极其关注。请设计一套考虑负荷分担的可靠性仿真系统。如图1所示,总控节点(System Controller Node)负责用户接入,通过一定的分配规则分配相应的负荷节点(Payload Node)为其服务,总控节点本身不涉及用户具体的服务。负荷节点(Payload Node)负责用户具体的服务,各个负荷节点完成功能一致。
三、初赛阶段要求
编程语言:C语言
开发及运行环境:Windows操作系统、VC6.0
本题用Windows可执行文件模拟进程,进程间采用Socket通信。各个进程的具体要求如下:
SysCtrlNode进程:
1. 支持3个PlNode的接入
2. 处理用户的接入。即分配并通知PlNode节点为用户服务,采用均衡分配
3. 处理用户的释放。即通知所分配的PlNode释放用户
PlNode进程:
1. 处理用户的接入。即记录用户信息,并自动显示新接入的用户标识和当前的用户数
2. 处理用户的释放。即删除用户信息,并自动显示释放的用户标识和当前的用户数
测试进程:
1. 提供以下几个API接口
a) VOIDConnectReq(A)
向SysCtrlNode进程发消息通知用户A建立
b) VOID ReleaseReq(A)
向SysCtrlNode进程发消息通知用户A释放
c) int GetPnodeByUser(A)
返回用户A的PlNode标识。无效值为-1
d) unsigned int GetUserNumByPnode(B)
返回PlNode B进程当前处理的用户数
2. 需要提供典型的测试用例代码并测试通过,测试用例格式参考以下:
用例1
ConnectReq (A);
PnodeId =GetPnodeByUser(A);
assert(PnodeId!= -1);
n =GetUserNumByPnode (PnodeId);
assert(n == 1);
ReleaseReq(A)
n =GetUserNumByPnode (PnodeId);
assert(n == 0);
均衡分配规则:各个PlNode当前处理的用户数尽量平均分布。下面以接入4个用户为例:
系统开始接入4个用户后(假定中间无用户释放),该4个用户在各个PlNode的分布场景,如表1所示,其所列出的场景1、2 、3满足要求,场景4、5则不满足要求。
表1无用户释放的情况
如果用户释放,各个PlNode的分布场景发生变化。在本例中,假定PlNode2上的一个用户释放,当前系统总用户数变成3,此时各个PlNode的用户分布情况如表2所示,场景1、2、3满足需求。
表2 有用户释放的分布情况
四、初赛阶段说明
在初赛阶段需要提交下列材料:
1. 设计、测试说明文档
2. 可编译执行的源代码(内含测试用例代码)
3. 可执行程序
如有缺失将直接影响评分。
五、审核标准及评价细则
满分100分。不遵守题目要求的结果,将直接淘汰。
1. 程序基本功能(60分)
a) 满足功能
b) 测试用例完备
2. 代码质量(30分)
a) 代码复杂度
b) 代码可读性
c) 代码注释
3. 文档质量(10分)
a) 设计文档
b) 用户文档