郑州地铁计费项目
软件:vs2019,ASP.NET
计划:实现一个地铁计费项目,我首先考虑的是如何把地铁的各个站显示出来,用RadioButton,DropDownList还是ListBox,经过比较我选择的是LisBox。然后再设置一个Button按钮把计算的结果返回到一个Text文本框中。目前所知郑州地铁线路太多了,我只做了1号线和2号线这俩条线。因为郑州地铁是按公里计费的,我也不了解每一站大概距离多少,所以我打算偷个懒0到5站2元,5到10站3元,10到15站4元,15到20站5元,20站以上6元。整个过程只要能实现俩个地铁站之间的站数差就好办了,主要就是写代码的时间比较长,思路不需要太多时间,具体就做着看着吧。
开发
需求分析:需要通过用户在ListBox中选择起点站与终点站,来计算出俩站需要花费的路费。
设计文档:用户可以随意选择ListBox中的元素,可以清楚的看到某站到某站的路费,并在页面下面写上提示,乘坐几站多少钱,那一站是转线站。
具体设计:
具体编码:
public partial class WebForm1 : System.Web.UI.Page
{
int oneQ ;//一号起点
int twoQ ;//二号起点
int oneZ ;//一号终点
int twoZ ;//二号终点
int sum;//起点到终点的站数
string sum2;//用来输出路费
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn1_Click(object sender, EventArgs e)
{
good();
oneQ = lst11.SelectedIndex;
twoQ = lst12.SelectedIndex;
oneZ = lst21.SelectedIndex;
twoZ = lst22.SelectedIndex;
//紫荆山站可以转线 紫荆山站在一号线的Index值是17,在二号线的值是14
//一号线到一号线
if (lst11.SelectedIndex != -1 && lst21.SelectedIndex != -1)
{
OneOne();
Js(sum);
txt1.Text = lst11.SelectedValue + "站到" + lst21.SelectedValue + "站" + sum2;
}
//一号线到二号线
else if (lst11.SelectedIndex != -1 && lst22.SelectedIndex != -1)
{
OneTwo();
Js(sum);
txt1.Text = lst11.SelectedValue + "站到" + lst22.SelectedValue + "站" + sum2;
}
//二号线到一号线
else if(lst12.SelectedIndex!=-1&&lst21.SelectedIndex!=-1)
{ TwoOne();
Js(sum);
txt1.Text = lst12.SelectedValue + "站到" + lst21.SelectedValue + "站" + sum2;
}
//二号线到二号线
else if (lst12.SelectedIndex != -1 && lst22.SelectedIndex != -1)
{ TwoTwo();
Js(sum);
txt1.Text = lst12.SelectedValue + "站到" + lst22.SelectedValue + "站" + sum2;
}
Qk();
}
//good方法判断有没有选择
public void good()
{
if(lst11.SelectedIndex!=-1||lst12.SelectedIndex!=-1)
{
if(lst21.SelectedIndex!=-1||lst22.SelectedIndex!=-1)
{
}
else { txt1.Text = "您没有选择终点站"; }
}
else { txt1.Text = "您没有选择起点站"; }
}
//定义一个一号线到一号线的方法
public void OneOne()
{
if (oneQ > oneZ)
{ sum = oneQ - oneZ; }
else { sum = oneZ - oneQ; }
}
//定义一个一号线到二号线的方法
public void OneTwo()
{
//判断一号线到紫荆山站的站数
if(oneQ>17)
{ oneQ -= 17; }
else { oneQ = 17 - oneQ; }
//判断二号线到紫荆山站的站数
if (twoZ > 14)
{ twoZ -= 14;}
else{twoZ = 14 - twoZ;}
sum = oneQ + twoZ;
}
//定义二号线到一号线的方法
public void TwoOne()
{
if(twoQ>14)
{ twoQ -= 14; }
else { twoQ = 14 - twoQ; }
if(oneZ>17)
{ oneZ -= 17; }
else { oneZ = 17 - oneZ; }
sum = twoQ + oneZ;
}
//定义二号线到二号线方法
public void TwoTwo()
{
if(twoQ>twoZ)
{ sum = twoQ - twoZ; }
else { sum = twoZ - twoQ; }
}
//通过站数来计算路费
public void Js(int a)
{
if (a <= 5)
{
sum2 = "2元";
}
else if (a <= 10)
{
sum2 = "3元";
}
else if (a <= 15)
{
sum2 = "4元";
}
else if (a <= 20)
{
sum2 = "5元";
}
else
{ sum2 = "6元"; }
}
public void Qk()
{
lst11.SelectedIndex = -1;
lst21.SelectedIndex = -1;
lst12.SelectedIndex = -1;
lst22.SelectedIndex = -1;
}
}
计算的思路就是通过选择的ListBox的SelectedIndex属性来计算,转线的话先判断你目前的站点的SelectedIndex值是否比中转站"紫荆山"站大,然后来通过大小来决定是"紫荆山"减当前站,还是当前站减"紫荆山"。最后通过QK()方法把ListBox控件的值都返回未选中状态以便可以继续选择。
代码复审:找班里的同学和我来阅读一下代码,没什么问题。
测试:测试如图。
报告
测试报告:经过多轮运行一号线到一号线和二号线,二号线到一号线和二号线都没有什么问题。
计算工作量:这个计费器工作量不大,aspx.cs代码大概100行多一点,aspx页面代码170多行左右,大多都是每个站点一行复制修改。
事后总结:这个计费器的难度并不大,目前就适合俩条线,如果再加上5号线3号线等等,再用我这种方法我感觉就太麻烦了,也不美观,整个过程大概花费了2个多小时的时间,功能都能实现,中间也遇到过一些问题,经过上网查阅资料和同学讨论,问题大大小小的都解决了。最重要的我感觉不是代码的编写,而是思路,只要思路清晰,知道每个功能都是要怎么实现,该用设计什么控件,改定义那些方法在哪里调用等等。路漫漫其修远兮,继续努力加油。
另附PSP图:
著:计应192(西)王栋欣
日期:2021/3/26
原文转载:http://www.shaoqun.com/a/656726.html
haofang:https://www.ikjzd.com/w/1046
indiegogo:https://www.ikjzd.com/w/265
郑州地铁计费项目软件:vs2019,ASP.NET计划:实现一个地铁计费项目,我首先考虑的是如何把地铁的各个站显示出来,用RadioButton,DropDownList还是ListBox,经过比较我选择的是LisBox。然后再设置一个Button按钮把计算的结果返回到一个Text文本框中。目前所知郑州地铁线路太多了,我只做了1号线和2号线这俩条线。因为郑州地铁是按公里计费的,我也不了解每一站大概
tiki:https://www.ikjzd.com/w/2053
贝贝官网:https://www.ikjzd.com/w/1321
上海跨境通:https://www.ikjzd.com/w/1329
爆单了!中国自行车全球"热"!欧洲集体抵制亚马逊,黑五会"凉"吗?:https://www.ikjzd.com/home/134873
亚马逊AB测试,需要注意一些细节:https://www.ikjzd.com/home/114907
圣诞节快到了!认识波兰市场热销的圣诞礼物:https://www.ikjzd.com/home/136066
No comments:
Post a Comment