java 计算机程序_跟我学java—什么是计算机程序?

程序是指完成某些事物的一种既定方式和过程,可以将程序看成是一系列动作的执行过程的描述。在百度百科中,计算机程序被定义为“一组指示计算机执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上”①。

在生活中,可以见到许多计算机程序实例。下面,我们看一个生活片段:

清晨六点十分,伴随着准时而优美的起床铃声,我迈出宿舍,走进了第一餐厅。餐厅里人很多,没有办法,我只买了两个包子做为我的早餐罢了。随着我的餐卡在打卡机上轻轻掠过,六毛钱便不翼而飞了。当我走到超市的时候,突然感觉只吃包子是不是太单调了,于是在超市里拿了一包早餐奶,但付钱的时候却发现超市的收银机坏掉了,没奈何,我只得忍痛把刚拿到手的早餐奶又放了回去,真郁闷!

在上面的生活片段中,我们能找出几处计算机程序为我们生活服务的痕迹来呢?

● 餐厅打卡机

● 超市收银机

前面关于计算机程序的定义提到了“计算机程序是一组执行动作或作出判断的指令并且运行于某种目标体系结构上”。定义有点晦涩难懂,但是只要我们结合实际运行的程序并稍微略加分析,就能够做到了然于心。

首先考察(餐厅打卡机)

餐厅打卡机一般采用了射频识别技术,“射频识别(RFID)是一种无线通信技术,可以通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或者光学接触。”②

打卡机利用射频识别技术将餐卡信息读取到打卡机,由打卡机的处理程序对读取的信息做进一步处理。打卡机中的处理程序就是计算机程序,它需要执行下述动作和指令完成一次打卡操作:

1) 接受输入的餐费金额

2) 读取卡内金额

3) 判断卡内金额是否大于餐费金额

4) 如果卡内金额小于餐费金额,给出余额不足提示

5) 如果卡内金额大于餐费金额,将卡内金额减去餐费金额后,回写到卡内

文字描述其动作或流程不够清晰或理解的话,我们可以用流程图来描述打卡机程序的执行动作或流程:

cba15745b79f0c71fad58a75a674fc2a.png图 1-1 餐厅打卡机程序流程图

图 1-1 餐厅打卡机程序流程图

采用流程图描述打卡机程序的执行动作,是不是更直观和清晰一些。

再来考察(超市收银机)

超市收银机的工作原理类似餐厅打卡机,也是采用射频识别技术读取商品条码,获取商品价格、名称等信息,并由收银机内置的计算机程序对商品价格等信息进行汇总处理,给出所购商品金额等信息。其处理流程要比餐厅打卡机复杂一些,它需要执行下述动作和指令完成一次收费操作:

1) 读取商品条码

2) 获取商品价格、名称等信息并显示到收银机屏幕上

3) 计算所扫商品总金额

4) 等待操作员按键

5) 操作员按下“商品”按键,继续读取商品条码

6) 操作员按下“等金额”或“找零”按键,钱柜自动开启

其流程图描述如下:

3930cb9803cedf5ab205ee29a5be08e7.png图 1-2 超市收银机程序流程图

图 1-2 超市收银机程序流程图

从餐厅打卡机和超市收银机的内置的程序可以看出,人们使用计算机,就是要利用计算机程序处理各种不同的问题,为了让计算机能够按照我们的意愿去工作,人们在设计计算机时,为计算机提供了一套指令,其中的每一种指令对应着计算机能执行的一个基本动作,为让计算机完成某项任务而编写的指令序列就称为计算机程序。

0e836868026c1974db7b5c66a10f5a94.png

现实问题模拟:《停车场的看门人》

某大型停车场对于进入该场地的车辆有如下的规定:

(1)进入该停车场的车辆必须为客运车辆,货运车辆谢绝入内。

(2)如果该车的乘员数量小于等于4人,则收费五元。

(3)如果该车的乘员数量大于4人,则收费八元。

作业要求:请根据该停车场的规定,用文字或流程图描述判断进入该场的车辆是否符合规定,应该收费多少的执行流程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以计算加减乘除的计算器小程序package zj lec1; import java awt BorderLayout; import java awt FlowLayout; import java awt GridLayout; import java awt event ActionEvent; import java awt event ActionListener; import java math BigInteger; import javax swing JButton; import javax swing JFrame; import javax swing JLabel; import javax swing JPanel; import javax swing JTextField; public class 简易计算机 extends JFrame implements ActionListener { JTextField a b c d; JButton ok exit; public 简易计算机 { this setLayout new FlowLayout ; this add a new JTextField 10 ; a setText "0" ; a setHorizontalAlignment JTextField RIGHT ; this add b new JTextField 1 ; this add c new JTextField 10 ; c setText "0" ; c setHorizontalAlignment JTextField RIGHT ; this add ok new JButton " " ; this add d new JTextField 10 ; this add exit new JButton "Exit" ; a addActionListener this ; b addActionListener this ; c addActionListener this ; exit addActionListener this ; ok addActionListener this ; this setSize 540 70 ; this setTitle "简易计算机" ; this setVisible true ; this setResizable false ; } public static void main String[] args { new 简易计算机 ; } @Override public void actionPerformed ActionEvent e { if e getSource ok || e getSource c || e getSource a { BigInteger ia new BigInteger a getText ; BigInteger ic new BigInteger c getText ; String ib b getText ; 判断是用加法 还是减法 还是乘法 除法 if ib contains "+" { BigInteger id ia add ic ; d setText id toString ; } else if ib contains " " { BigInteger id ia subtract ic ; d setText id toString ; } else if ib contains " " { BigInteger id ia multiply ic ; d setText id toString ; } else if ib contains " " { BigInteger id ia divide ic ; d setText id toString ; } } else if e getSource exit { System exit 0 ; } } }">可以计算加减乘除的计算器小程序package zj lec1; import java awt BorderLayout; import java awt FlowLayout; import java awt GridLayout; import java awt event ActionEvent; import java awt event ActionListener; import java math BigInteger; import javax swing JButton; import javax swing J [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值