zoukankan      html  css  js  c++  java
  • 三个c#入门小程序

    2008-03-27 14:47

    1、邮包计费程序  

    【说明】: 

    1)假定向国外邮寄包裹计费如下计算:首先,包裹重量四舍五入到最近的15的倍数,然后按照表2.1收费。试编写一个程序是先邮包计费,要求编写为Windows应用程序。

    2.1邮寄包裹收费表

    重量/

    收费/

    0~14.9

    5

    15~29.9

    9

    30~44.9

    12

    45~59.9

    14

    60~74.9

    15

    75以上

    每增加10,邮费增加1

    2)提示:输入一个包裹的重量,根据邮包重量计算相应的邮费。这里采用多分支程序设计,可使用switch语句。switch后面的表达式不应为邮包的重量,而应是邮包的重量除以15后再取整。

    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Text;
    namespace WindowsApplication1
    {
    /// <summary>
    /// Form1 的摘要说明。
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
       private System.Windows.Forms.Label label1;
       private System.Windows.Forms.Label label2;
       private System.Windows.Forms.TextBox textBox1;
       private System.Windows.Forms.TextBox textBox2;
       private System.Windows.Forms.Button button1;
       private int weight;
       private int money;
       /// <summary>
       /// 必需的设计器变量。
       /// </summary>
       private System.ComponentModel.Container components = null;

       public Form1()
       {
        //
        // Windows 窗体设计器支持所必需的
        //
        InitializeComponent();

        //
        // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
        //
       }

       /// <summary>
       /// 清理所有正在使用的资源。
       /// </summary>
       protected override void Dispose( bool disposing )
       {
        if( disposing )
        {
         if (components != null)
         {
          components.Dispose();
         }
        }
        base.Dispose( disposing );
       }

       #region Windows 窗体设计器生成的代码
       /// <summary>
       /// 设计器支持所需的方法 - 不要使用代码编辑器修改
       /// 此方法的内容。
       /// </summary>
       private void InitializeComponent()
       {
        this.label1 = new System.Windows.Forms.Label();
        this.label2 = new System.Windows.Forms.Label();
        this.textBox1 = new System.Windows.Forms.TextBox();
        this.textBox2 = new System.Windows.Forms.TextBox();
        this.button1 = new System.Windows.Forms.Button();
        this.SuspendLayout();
        //
        // label1
        //
        this.label1.Location = new System.Drawing.Point(16, 24);
        this.label1.Name = "label1";
        this.label1.Size = new System.Drawing.Size(80, 16);
        this.label1.TabIndex = 0;
        this.label1.Text = "包裹重量(克)";
        //
        // label2
        //
        this.label2.Location = new System.Drawing.Point(8, 88);
        this.label2.Name = "label2";
        this.label2.Size = new System.Drawing.Size(96, 23);
        this.label2.TabIndex = 1;
        this.label2.Text = "应收费用(元)";
        //
        // textBox1
        //
        this.textBox1.Location = new System.Drawing.Point(112, 24);
        this.textBox1.Name = "textBox1";
        this.textBox1.TabIndex = 2;
        this.textBox1.Text = "textBox1";
        //
        // textBox2
        //
        this.textBox2.Location = new System.Drawing.Point(112, 88);
        this.textBox2.Name = "textBox2";
        this.textBox2.TabIndex = 3;
        this.textBox2.Text = "textBox2";
        //
        // button1
        //
        this.button1.Location = new System.Drawing.Point(280, 96);
        this.button1.Name = "button1";
        this.button1.TabIndex = 4;
        this.button1.Text = "结果";
        this.button1.Click += new System.EventHandler(this.button1_Click);
        //
        // Form1
        //
        this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
        this.ClientSize = new System.Drawing.Size(392, 273);
        this.Controls.Add(this.button1);
        this.Controls.Add(this.textBox2);
        this.Controls.Add(this.textBox1);
        this.Controls.Add(this.label2);
        this.Controls.Add(this.label1);
        this.Name = "Form1";
        this.Text = "邮资计算器";
        this.ResumeLayout(false);

       }
       #endregion

       /// <summary>
       /// 应用程序的主入口点。
       /// </summary>
       [STAThread]
       static void Main()
       {
        Application.Run(new Form1());
       }

       private void button1_Click(object sender, System.EventArgs e)
       {
        weight = (int)(Convert.ToSingle(this.textBox1.Text)/15);
        switch(weight)
        {
         case 0:this.textBox2.Text = "5";break;
         case 1:this.textBox2.Text = "9";break;
                    case 2:this.textBox2.Text = "12";break;
         case 3:this.textBox2.Text = "14";break;
         case 4:this.textBox2.Text = "15";break;
         default:this.textBox2.Text =Convert.ToString((int)(Convert.ToSingle(this.textBox1.Text)-74.9)/10+15);break;

        }
      
       }
    }
    }

    2、捉拿肇事司机

    【说明】:

    1)一辆卡车违反交通规则,撞死行人,司机畏罪驾车逃跑。当时有三个人目击这一车祸的发生,但是都没有看清卡车的车牌号码,只记住车牌的部分特征:甲牌照号码的前两位数字相同,乙记住牌照号码的后两位数字也是相同的,丙是一位数学家,他说:“车牌号码肯定是四位数,而且恰好是一个整数的平方。”并且丙已经脱到处符合该条件的号码只可能有一个。根据这些信息来判断车牌号码并捉拿肇事司机。要求编写一个控制台应用程序。

    2提示:假定车牌号码的前两位我们用a表示,后两位用b表示,这四位数可写成:a*1000+a*100+b*10+b。又知道这个四位数为某个数的平方,假定该数为i,则应该有如下等式成立:a*1000+a*100+b*10+b=i*i

    本题的目的是求出abi。假设m为汽车车牌号码,i作为循环控制变量,则i= ;因为m为一个四位数,所以i的取值范围一定在3299之间。利用循环语句,判断由i所得到的mi*i)是否满足前两位相等,后两位相等。如果满足则m就是车牌号码,推出循环,否则继续循环。

    3)参考运行结果:肇事车辆车牌号码为:7744

    using System;

    namespace zuonashiji
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
       /// <summary>
       /// 应用程序的主入口点。
       /// </summary>
       [STAThread]
       static void Main(string[] args)
       {
        int s,a1,a2,b1,b2;
        for(int i=32;i<=99;i++)
        {
         s = i*i;
         a1 = s/1000;
         a2 = (s-a1*1000)/100;
         b1 = (s-a1*1000-a2*100)/10;
         b2 = (s-a1*1000-a2*100-b1*10);
         if(a1==a2&b1==b2)
         {
          Console.WriteLine("偷车贼是{0}",s);
          break;
         }


        }
        Console.ReadLine();
       }
      
    }
    }

    3、二分法查找

    【提示】:

    1)所谓二分法查找就是折半查找。定义一个具有是个元素的一位数组,为它赋一个有序正数序列,然后采用折半查找算法查找一个输入的数m在数组中的位置。如果找到,输出其下标;若找不到,则显示没有找到信息。

    2)折半查找法是一种在有序数列中快速查找指定数据的一种方法,具体算法如下:每次查找前确定数组中待查找的下表范围lowhighlow<high),然后用m与中间位置(mid)处的元素进行比较。如果m的值大于中间位置处的元素值,则下一次查找的范围放在中间位置之后的元素中(设定low=mid+1);如果m的值小如中间位置的元素,则下一次查找的范围在中间元素之前(设定high=mid-1),如果中间位置的元素等于m,则找到。反复查找直到找到或者low<high为止。

    using System;

    namespace erfenchazhao
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
       /// <summary>
       /// 应用程序的主入口点。
       /// </summary>
       [STAThread]
       static void Main(string[] args)
       {
      
        int[]s = new int[10]{10,11,12,13,14,15,16,17,18,19};
        int m,low=0,high=9,mid=s.Length/2;
        Console.WriteLine("请输入您要查找的数,必须在10-19之间");
        m = Convert.ToInt32(Console.ReadLine());
        try
        {
         while(true)
         {
          if(s[mid]<m)
          {
           low = mid+1;
           mid = low+(high-low)/2;
          }
          else
           if(s[mid]>m)
          {
           high = mid-1;
           mid = high - (high-low)/2;
          }
          else
          {
           Console.WriteLine("找到了:在第{0}位",mid);
           break;
          }

         }
        }
        catch
        {
         Console.WriteLine("输入的数有误");
        }
        Console.ReadLine();
       }
    }
    }


    作者:玄魂
    出处:http://www.cnblogs.com/xuanhun/
    原文链接:http://www.cnblogs.com/xuanhun/ 更多内容,请访问我的个人站点 对编程,安全感兴趣的,加qq群:hacking-1群:303242737,hacking-2群:147098303,nw.js,electron交流群 313717550。
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    关注我:关注玄魂的微信公众号

  • 相关阅读:
    Anaconda-navigator 打不开的解决方法(亲测有效!)
    Python3.7安装keras和TensorFlow的教程图解
    win10环境下使用anaconda安装opencv
    windows环境下的Anaconda安装与OpenCV机器视觉环境搭建
    各种工具汇总(20210702更新)
    关于文章致谢
    公共数据库信息汇总(20210709更新)
    关于摆脱痛苦
    pip 本地安装 python 包
    报错Error: Sorted input specified, but the file file.bedgraph has the following out of order record解决方案
  • 原文地址:https://www.cnblogs.com/xuanhun/p/1662408.html
Copyright © 2011-2022 走看看