作业4

031602435 肖逸清

031602431 王源

设计思路

通过VS编辑resx文件并生成resources文件,然后用诸多API对资源进行部署、枚举和输出

具体来说:

1.LangList.resx

存储配置好的所有语言名称,以及对应于名称的区域性名称(如zh-CN)

2.Resource.XX.resx

XX对应区域性名称

存储对应语言的提示文字等等

3. ResourceManager类

public : ResourceManager(System::String^ baseName, System::Reflection::Assembly^ assembly)

baseName: 资源的根名称。例如,名为“MyResource.en-US.resources”的资源文件的根名称为“MyResource”。

assembly: 资源的主 System::Reflection::Assembly。

通过ResourceManager“管理”不同语言所用的资源文件,除此以外也用来便利地管理单个资源文件

4. ResourceSet类

public : ref class ResourceSet

存储已针对某个特定区域性进行了本地化的所有资源,忽略所有其他区域性(包括任何代用规则)。

在本程序中实际用来存储LangList并利用System::Resources::ResourceSet::GetEnumerator()实现对Langlist的遍历

5.Cultrueinfo类

public : ref class CultureInfo

提供有关特定区域性的信息(对于非托管代码开发,则称为“区域设置”)。这些信息包括区域性的名称、书写系统、使用的日历以及对日期和排序字符串的格式化设置。

通过Cultrueinfo指定区域性配合System::Resources::ResourceManager::GetString(System::String^, System::Globalization::CultureInfo^)函数提取资源文件Resource.XX.resx中key(即string^)对应的value

6.System::Console类

通过Console类的函数便利地输出string^类型的数据

7.System::Text::UnicodeEncoding

通过设置Console::OutputEncodingConsole::OutputEncodingSystem::Text::UnicodeEncoding,使得输入输出采用Unicode编码,从而解决不同语言而产生的乱码问题。


程序实现和结果测试的截图






github的提交链接和提交日志截图

git链接


两位同学的分工和协作证据截图


本次作业感想

刚看到这次作业要求是我是一脸茫然的。。。还是问王源同学才知道是什么意思。。。
这次的实现方法看起来很***钻,但是仔细想想却发觉自己早就知晓这种方法的存在了。比如一款游戏,它的图片文件,bgm文件等都在一个相应的文件夹,然后等待调用。那么,如果我找好相应素材,运用调用素材的方式是否就能写出贪吃蛇,坦克大战等简单小游戏咯?等等,所以这次的作业是为以后的windows程序作业作铺垫?!!(惊恐脸)


posted @ 2017-03-11 23:12  daydreams  阅读(243)  评论(3编辑  收藏  举报