1、 需求描述13.1 详细设计13.2 代码编写13.3 完整的源代码13.4 测试13.5 思考题13.6对编程语言语法的掌握虽然是学习程序设计的必经之路,但要想真正掌握开发技术,就必须要通过大量编程实践来达到。需求描述:虽然国际上有重量的标准公制单位,包括克、千克、吨等,但很多国家在市场上还保留了传统的度量单位,比如中国有市斤、市两等,欧美使用磅、盎司等。1千克(kg)=2.205磅(lb)1磅(lb)=0.454千克(kg)1磅(1b)=16盎司(oz)1盎司(oz)=28.350克(g)1吨(t)=1000千克(kg)1长吨(long ton)=1.016吨(t)功能方面,可以实现多种重
2、量单位(包括公制、英制等)直接的相互换算。界面方面,用户可以任意选择换算前后的单位,程序根据用户输入的换算前的数量计算出换算后的数量并显示在页面中。性能方面,虽然用Javascript实现会有更好的运行效率,但为了学习基于ASP.NET的页面开发技术,系统将尽可能优化前后台的数据传输以保障运行效率。系统应有良好的可扩充性,可以容易地加入更多的重量单位。通过这个项目练习Web页面的开发,提高综合应用开发能力。作为一个具有特定功能的程序,下面分别列出界面设计和逻辑设计的思路。界面设计:界面中,通过输入框输入原单位的数值,通过两个下拉列表分别让用户选择原单位和目标单位,用户点击“换算”按钮后在目标单
3、位显示出相应的数值。逻辑设计:程序的核心逻辑是根据原单位和目标单位的比例进行数值计算,而多个重量单位之间的任意换算需要一个换算矩阵来描述。吨千克克市斤磅盎司1吨11000100000020002204.635273.96194961千克0.0011100022.204635.27396191克0.0000010.00110.0020.002204620.035273961市斤0.00050.550011.102317.6369811磅0.0004540.4536453.592370.90721161盎司0.00002835 0.02834952 28.349523128.349523130.0
4、6251对应上述设计思路,可以将代码分为两个部分:一部分负责与用户交互的界面,代码在.aspx文件中;另一部分负责程序的逻辑,代码在.aspx.cs文件中。在编写代码的过程中,通常是先通过可视化的开发方式“画”出界面,然后再编写相应的逻辑代码。但在开发实践中,不应该写出大量代码后才进行调试,而是随着代码的编写不断地进行测试运行,以便及时发现错误并进行修改。在基于ASP.NET的开发过程中,界面和逻辑两部分需要配合才能运行。(1)创建网站项目及文件(2)基本页面元素设计(3)填充“原单位”下拉列表Items(4)填充“目标单位”下拉列表Items(5)响应“换算”按钮点击事件(6)用户输入验证项
5、目中converter.aspx文件源代码如下:吨 千克 项目中converter.aspx.cs文件源代码如下:protected void Page_Load(object sender,EventArgs e)if(!Page.IsPostBack)foreach(ListItem li in ddlOriginalUnit.Items)ddlTargetUnit.Items.Add(li);protected void btConvert_Click(object sender,EventArgs e)double OriginalUnit=double.Parse(ddlOrigin
6、alUnit.SelectedValue);double TargetUnit=double.Parse(ddlTargetUnit.SelectedValue);double Ratio=OriginalUnit/TargetUnit;double OriginalValue=double.Parse(tbOriginalValue.Text);double TargetValue=OriginalValue*Ratio;lbResult.Text=TargetValue.ToString();代码编写的过程中就可以不断进行测试运行。在“解决方案资源管理器”中使用鼠标右键点击页面文件Conv
7、erter.aspx,在弹出的菜单中选择“在浏览器中查看”就可以运行该页面。制定测试计划时需要考虑的测试工作主要包括:功能测试、性能测试、兼容性测试和安全测试等。本项目主要的测试环节是功能测试,需要测试用户界面是否正常以及单位换算是否正确。功能测试需要选择一定数量的测试用例(Test Case)。测试用例是将软件测试的行为活动做一个科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式。可以根据不同的方法,可以采用白盒技术和黑盒技术进行测试。所谓白盒技术是指测试人员以程序的内部逻辑为基础设计测试用例;黑盒技术则不必关心程序的源代码,而以用户的角度设计用例进行测试。(1)在本章的开发中,如何进行用户输入验证?(2)温度单位(摄氏度、华氏度)可否用本章单位转换器例子中提供的方法进行换算呢?为什么?