首页 > 学院 > 开发设计 > 正文

课堂练习之最高折扣,最低优惠规划

2019-11-17 02:26:55
字体:
来源:转载
供稿:网友

课堂练习之最高折扣,最低优惠规划

一、题目要求与设计思路

1.题目要求

书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:

本数 折扣

2 5%

3 10%

4 20%

5 25%

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。设计算法能够计算出读者购买一批书的最低价格。2.设计思路五本一下的情况就是基础,其他所有比五本以上的情况都在该基础之上,我们只需将买6、7、8、9本的用户最低价格解决了,其他的就可以直接叠加了,通过计算,买6本的时候按5-25%打折、1本不打折方式价钱最少;买7本的时候按5-25%打折、2-5%打折方式价钱最少;买8本的时候按两次4-20%打折方式价钱最少;买9本的时候按5-25%打折、4-20%打折方式价钱最少。然后用户输入购买数量i,利用下列语句实现a = i / 5;b = 30 * a;c = i % 5。二、源代码
 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 10 namespace youhuifangfa11 {12     public partial class Form1 : Form13     {14         double b, sum;15         int a, i, c;16         public Form1()17         {18             InitializeComponent();19         }20 21         PRivate void button1_Click(object sender, EventArgs e)22         {23             i = int.Parse(textBox1.Text);24             if (i % 5 != 3)25             {26                 a = i / 5;27                 b = 30 * a;28                 c = i % 5;29                 if (c == 0)30                 {31                     sum = b;32                    33                 }34                 if (c == 1)35                 {36                     sum = b + 8;37                 }38                 else if (c == 2)39                 {40                     sum = b + 16 * 0.95;41                 }42                 else if (c == 3)43                 {44                     sum = b + 24 * 0.9;45                 }46                 else if (c == 4)47                 {48                     sum = b + 32 * 0.8;49                 }50 51             }52             else if(i%5==3&&i!=3)53             {54                 a = i / 5;55                 b = 30 * (a - 1);56                 c = i % 5;57                 sum = b + 32 * 0.8 * 2;58             }59             else if (i == 3)60             {61                 sum = 0.9 * 24;62             }63             textBox3.Text = sum.ToString();64         }65 66         private void textBox1_TextChanged(object sender, EventArgs e)67         {68 69         }70     }71 }

三、运行结果截图

四、心得体会

这个题目一开始看着挺不好计算的,但是再复杂再大的高楼都有一个基础,那么这道题目来说,店里给的折扣说明就是基础,我们只需要按着这个基础往上考虑就好了,所以,软件开发,尤其像这一类的实现肯定会有办法,找到实质性的东西,找到什么是变量,什么是不变的量,什么是基础就好办了。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表