面试:航天远景挂在机试了,好弱好弱的说到达公司,HR会让你先填写个人详情,填写完后,给你台电脑,机试,一共两道C++的题目,环境是VS2010,第一题审题很半天,由于不熟练,没有做,我一直在做第二题。结果时间到了,第二题都还没写完,直接挂了,灰溜溜地回家了。
面试感受:不好
面试难度:有难度
面试来源:网络招聘
共1个问题,1条回答
Q:请叫我雷锋!!!
有一个天气信息发布系统,由服务器和客户端两部分组成:
服务器:
服务器能从不同地区的气象站获取当地的气象信息,每小时更新一次,气象信息由 天气、温度、湿度 三部分组成,但各个气象站所提供的获取天气信息的客户端接口不同。
客户端:
客户端可显示任一地区或多个地区三种信息的任意一种组合(如可只显示天气情况,也可显示温度和湿度,也可以三种都显示),且都支持两刷新模式:和服务器同步刷新,主动向服务器请求信息后更新。
现编写一个控制台程序模拟上述系统(50分)
假设已经获取武汉北京上海三个地区的气象信息的接口,编写一个类代表服务器程序,编写一个类代表客户端程序。控制台程序运行后生成一个服务器对象,服务器对象每秒更新一次数据,三个客户端对象(ca,cb,cc),ca显示武汉的天气,cb显示北京的文档,cc显示上海的湿度信息,ca和cb都随服务器同步更新,cc每3秒更新一次,注意这是同一个进程内对象直接的通信。
要求:
系统要能够方便的接入其他地区的数据源
提示:
如果是C++实现的话,可运用多态的特性实现服务器对象和客户端对象之间的同步更新。
三个气象站接口如下:
//武汉
class WuHan
{
public string getPlace()
{
return “WuHan”;
}
public string getLastUpdateTime()
{
return "2015/8/24 10:00";
}
public string getTemperature()
{
return "32.5";
}
public string getHumidity()
{
return "90";
}
public string getWeather()
{
return "fine";
}
}
//北京
enum WEATHERTYPE
{
FINE,
RAIN
}
class Beijing
{
public string getPlace()
{
return "Beijing";
}
public string getLastUpdateTime()
{
return "2015/8/24 10:00";
}
public float getTemperature()
{
return 32.5f;
}
public float getHumidity()
{
return 90;
}
public WEATHERTYPE getWeather()
{
return WEATHERTYPE.FINE;
}
}
//上海
class shanghai
{
public string getPlace()
{
return "Shanghai";
}
public string getLastUpdateTime()
{
return "2015/8/24 10:00";
}
public void getData(string[] data)
{
data[0] = "fine"; //Weather
data[1] = "32.5"; //Temperature
data[2] = "90"; //Humidity
}
}