自动收费系统范文

2022-06-11

第一篇:自动收费系统范文

水质自动监测系统

阅读材料9-1:水质自动监测系统

水质自动监测系统是以在线自动分析仪器为核心,运用现代传感器技术、自动测量技术、自动控制技术、计算机应用技术以及相关的专用分析软件和通讯网络所组成的一个综合性的在线自动监测体系。能连续、及时、准确地监测目标水域的水质及其变化状况;中心控制室可随时取得各子站的实时监测数据,统计、处理监测数据,可打印输出日、周、月、季、年平均数据以及最大值、最小值等各种监测、统计报告及图表(棒状图、曲线图、多轨迹图、对比图等),并可输入中心数据库或上网。

实施水质自动监测,可以实现水质的实时连续监测和远程监控,达到及时掌握主要流域重点断面水体的实质状况、预警预报重大流域性水质污染事故、解决跨行政区域的水污染事故纠纷、监督总量控制制度落实情况、排放达标情况等。

在水质自动监测系统网络中,中心站通过卫星和电话拨号两种通讯方式实现对各子站的实时监视、远程控制及数据传输功能,托管站也可以通过电话拨号方式实现对托管子站的实时监视、远程控制及数据传输功能。其他经授权的相关部门可以通过电话拨号方式实现对相关子站的实时监视和数据传输功能。

每个子站是一个独立完整的水质自动监测系统,一般由6个主要子系统构成,包括:采样系统、预处理系统、监测仪器系统、控制系统、数据采集、处理与传输子系统及远程数据管理中心、监测站房或监测小屋。水质自动监测系统中的子站构成方式大致有三种:(1)由一台小型的多参数自动分析仪组成的子站,其特点是仪器可直接放入水中测量,系统构成灵活方便;(2)固定式子站,是较传统的组成方式,其特点是监测项目的选择范围宽;(3)流动式子站,是将固定式子站的仪器设备全部装于一辆拖车(监测小屋)上,可根据需要迁移场所,特点是组成成本高。

目前水质自动监测分析仪器仍在发展中,比较成熟的常规监测项目有:水温、溶解氧(DO)、电导率、浊度、氧化还原电位(ORP)、流速和水位等。常用的监测项目有:COD、高锰酸盐指数、TOC、氨氮、总氮、总磷。

第二篇:自动倒车测距系统

传感器课程设计

超声波倒车测距

班级: 11电子B班

姓名: 任 静

学号: 1115108030

华侨大学信息科学与工程学院

目录

摘要:....................................................................................................................................... 3 目录...........................................................................................................................................

2一、系统相关原理 ................................................................................................................... 3

1 整体原理图 ................................................................................................................... 3 2 超声波发送原理图 .......................................................................................................

5二、51系列单片机的功能特点及测距原理 .......................................................................... 5

三、硬件电路的设计

1、 原理图---------------------

2、 仿真--------------------------

3、超声波发送电路------------

4、超声波接收电路------------

四、总结 ................................................................................................................................... 8

五、参考文献 ........................................................................................................................... 9

六、附录 ................................................................................................................................. 10

1 测距程序 ..................................................................................................................... 11 2 HCSR04超声波测距模块说明书 ........................................................................... 15

摘要:

随着科学技术的快速发展,超声波将在传感器中的应用越越广。但就目前技术水平来说,人们可以具体利用的传感技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。展望未来,超声波传感器作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为:研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别.无庸置疑,未来的超声波传感器将与自动化智能化接轨,与其他的传感器集成和融合,形成多传感器。随着传感器的技术进步,传感器将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。在新的世纪里,面貌一新的传感器将发挥更大的作用。设计采用以

AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。整个电路采用模块化设计,由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。各探头的信号经单片机综合分析处理,实现超声波测距仪的各种功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块,LED显示。相关部分附有硬件电路图、程序流程图。

超声波测距原理

发射器发出的超声波以速度υ在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t,由S = v·△t /2 即可算出被测物体的距离。由于超声波也是一种声波,其声速v 与温度有关,下表列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。

表1-1 超声波波速与温度的关系表

温度(℃) -30 -20 -10 0 10 20 30 100 声速(m/s) 313 319 325 323 338 344 349 386 超声波在相同的传播媒体里 (大气条件) 传播速度相同, 即在相当大的频率范围内声速不随频率变化, 波动的传播方向与振动方向一致, 是纵向振动的弹性机械波, 它是借助于传播介质的分子运动而传播的, 波动方程描述方法与电磁波是类似的。

式中, A (x ) 为振幅, A 0 为常数, ω为圆频率, t 为时间, x 为传播距离, k= 2π/λ为波数, λ为波长, α为衰减系数。衰减系数α与声波所在介质及频率的关系为

α=af (3)

- 132式中, a 为介质常数, f 为振动频率。在空气里, a =2×10 s/cm, 当振动的声波频

-4-1率f = 40kHz (超声波) 代入式(3) 可得 a = 3.2×10 cm , 即1/α= 31m;若f = 30 kHz, 则1/α= 56m。它的物理意义是: 声波在空气媒质里传播, 因空气分子运动摩擦等原因, 能量被吸收损耗。在 (1/α) 长度上, 平面声波的振幅衰减为原来的e 分之一, 由此可以看出, 频率越高, 衰减得越厉害, 传播的距离也越短。考虑实际工程测量要求,在设计超声波测距仪时, 选用频率f = 40kHz 的超声波, 波长为34000/40000=0.85cm。

超声波测距模块原理框图:

如下图1-1,单片机发出40kHZ 的信号,经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t,再由软件进行判别、计算,得出距离数并送LED 显示。

Hcsr04的收发原理:

Hcsr04用户手册:初始化时将trig和echo端口都置低,首先向给 trig 发送至少10 us的高电平脉冲(模块自动向外发送8个40K的方波),然后等待,捕捉 echo 端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次等待捕捉echo的下降沿,当捕捉到下降沿,读出计时器的时间,这就是超声波在空气中运行的时间,按照 测试距离=(高电平时间*声速(340M/S))/2 就可以算出超声波到障碍物的距离。

51系列单片机的功能特点:

5l系列单片机中典型芯片(AT89C51)采用40引脚双列直插封装(DIP)形式,内部由CPU,4kB的ROM,256 B的RAM,2个16b的定时/计数器TO和T1,4个8 b的工/O端I:IP0,P1,P2,P3,一个全双功串行通信口等组成。特别是该系列单片机片内的Flash可编程、可擦除只读存储器(E~PROM),使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的仪器和系统中更为有用。该系列单片机引脚与封装如右图所示。

5l系列单片机提供以下功能:4 kB存储器;256 BRAM;32条工/O线;2个16b定时/计数器;5个2级中断源;1个全双向的串行口以及时钟电路。空闲方式:CPU停止工作,而让RAM、定时/计数器、串行口和中断系统继续工作。掉电方式:保存RAM的内容,振荡器停振,禁止芯片所有的其他功能直到下一次硬件复位。5l系列单片机为许多控制提供了高度灵活和低成本的解决办法。充分利用他的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。

测距原理图:

供电方式选择:

AT89C51:

(P0.0:超声波发送 P3.2:超声波接收 P2:数码管显示 P0.2:数码管位选 P0.4:数码管位选 P0.6:数码管位选 蜂鸣器:

晶振:

仿真:

按原理图和程序连接好protues电路图

超声波传感器用555来延时,模拟电磁波发送和接收。

调节 来控制高电平的占空比来模拟距离长短

超声波发射电路:

超声波发射电路原理图如图2-2所示。发射电路主要由反相器74LS04和超声波发射换能器T构成,单片机P1.0端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。上位电阻R1O、R11一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。

压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部有两个压电晶片和一个换能板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。

超声波检测接收电路:

集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38 kHz与测距的超声波频率40 kHz较为接近,可以利用它制作超声波检测接收电路。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。

CX20106由:前置放大器、限幅放大器、带通滤波器、检波器、积分器、整型电路组成。其中的前置放大器具有自动增益控制功能,可以保证在超声波传感器接收较远反射信号输出微弱电压时放大器有较高的增益,在近距离输入信号强时放大器不会过载。其带通滤波器中心频率可由芯片脚5的外接电阻调节。其主要指标:单电源5V供电,电压增益77-”

{

buffer[2]=0xBF;

buffer[1]=0xBF;

buffer[0]=0xBF;

}

else timeToBuffer(); //调用转换段码功能模块

if(s

//判断是否达到报警值

{ bj=0;

//产生滴、滴、滴声响,

i=s*2;

//报警声长短随距离变化而变化

while(--i)

{

scanLED();

}

}

else

{

bj=1;

i=100;

while(--i)

{

scanLED();

}

}

bj=1;

i=100;

while(--i)

{

scanLED();

} } }

void delay(i)

{ while(--i); }

void scanLED()

//{ LED=buffer[0];

LED3=0;

delay(20);

LED3=1;

delay(50);

LED=buffer[1]; LED2=0; delay(20); LED2=1; delay(50);

LED=buffer[2]; LED1=0; delay(20);

//调用显示函数

//关闭报警声

//调用显示函数

//调用显示函数 //延时子程序

显示功能模块 //显示个位数送P2端口

//选通个位数数码管位驱动端

//进行延时 注:下载到单片机中时20改为4 //关闭个位数数码管显示 //进行延时消隐 LED1=1; delay(50); }

void timeToBuffer() //转换段码功能模块 { xm0=s/100;

xm1=(s-100*xm0)/10; xm2=s-100*xm0-10*xm1; buffer[0]=convert[xm2]; buffer[1]=convert[xm1]; buffer[2]=convert[xm0]; if(buffer[2]==0x60) //判断百位为零时不显示

{

buffer[2]=0xFF;

if(buffer[1]==0x60) //判断十位为零时不显示

buffer[1]=0xFF; } }

void csbcj()

//电磁波测距子程序 {

TH0=0x00;

TL0=0x00; csbout=0; //启动电磁波测距模块

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

csbout=1;

TR0=1;

i=80;

while(i--)

{

}

i=0;

while(csbint)

{

i++;

if(i>=2500) 置零,退出接收回波处理程序

csbint=0;

}

csbint=1;

TR0=0;

t=TH0;

t=t*256+TL0;

s=t*csbc-8; }

void csbsc()

{ wdz=0.0000615*temp; csbc=0.03314+wdz; csbc=csbc/2; }

//启动定时器0

//盲区值(延时躲过电磁波发送头的余波)

//判断接收回路是否收到电磁波的回波

//如果达到一定时间没有收到回波,则将csbint

//关闭定时器

//计算测量结果 -8为测量值修证数

//根据给定的温度计算电磁波速度

HC-SR04超声波测距模块说明书:

1、产品特点:

HC-SR04超声波测距模块可提供 2cm-400cm的非接触式距离感测功能,测 距精度可达高到 3mm;模块包括超声波发射器、接收器与控制电路。 基本工作原理:

(1)采用IO 口TRIG 触发测距,给最少10us 的高电平信呈。 (2)模块自动发送8 个40khz 的方波,自动检测是否有信号返回;

(3)有信号返回,通过IO 口ECHO 输出一个高电平,高电平持续的时间就是超声

波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;

2、实物图:

如右图接线,VCC 供5V 电源, GND 为地线, TRIG 触发控制信号输 入,ECHO 回响信号输出 等四个接口端。

第三篇:办公自动化系统

项目详情

OA (办公自动化系统)

项目简介教育行政办公自动化(Office Automation简称OA)系统是针对中小学校领导、教师利用网络办公的一套网络软件。OA是为具有城域网环境或具有内部局域网的教委量身定做的产品。

办公自动化系统的重点在于信息产生、传递、发布和流程控制。

在此,以下几个特性贯穿整个流程的始终: 机构/部门/人员:所有的系统操作流程控制,都是因具体的机构/部门/人员的不同而设置的,而系统中某一信息的产生、信息的发布和传递等等,都是针对特定的机构/部门/人员的。所以,主体对象的选择是一个共同的问题。 信息传递和发布:当一个特定的信息需要告知特定的人员或部门时,可以通过多种渠道进行,如将主题内容发消息,发邮件,发布公告等等。所以选择发布方式也是贯穿系统始终的。

信息检索和打印输出:系统所有用户均需要在必要的时候对需要的内容进行检索,并可以将结果和具体内容进行打印输出。 因此以上四个功能应该贯穿整个系统的各个模块中。

办公自动化系统对于教委和学校内部、教委和学校之间、学校和学校之间按照教育系统内部办公的流程通过信息化的方式,为教育行政管理进行了全新的阐释。

需求和计划

整个项目的功能规格说明书和开发计划说明书,描述了整个项目的人员,项目控制、风险、限制,开发计划和业务系统组成及系统模块介绍、各模块用例和事件流分析、系统安全、技术体系等方面内容。

OA功能规格说明书.pdf

OA开发计划.pdf

设计和实现

软件设计规格说明书包含了项目设计要点、架构和策略、主要类和接口设计、数据库设计等方面,代码部分是具体实现的案例。

OA软件设计规格说明书.pdf

测试

包括测试计划、测试用例、评估结果,针对项目的系统化规范化的测试案例。

OA测试计划.pdf

OA测试用例.pdf

OA测试评估报告.pdf

第四篇:油库自动化系统

石化储运公司是石油供应链中非常重要的一环,由于直接面向终端用户的需求变化。所以拥有并提供迅速有效的供求信息将非常有助于提高整个供应链的竞争力。随着2004年底石油市场的开放,为数众多的中国石化储运公司将迅速走向自动化系统监控之路,因此适时地把油库自动化系统带入中国,让中国的石化储运行业迅速具备与欧美日各国同行竞争的有力武器。

作用如下:

1、提升效率

确保高效的油库运作 —— 罐车的快速周转和后端办公室的自动化等使得管理层在成本,时间和资源配置方面更有效率

·完全自动化装车控制 (非人工/司机自我管理)

·发油时自动添加剂注入以及油品混合

·与罐区计量系统和地磅系统集成在同一个人机界面上

·手机短信/语音寻呼 / 电子邮件传送报表:

·远程阀门开启/关闭

·集成会计系统(例如 SAP)的订单/装车信息以避免重复劳动

·每日/每月 MIS 报表,可从公司总部远程访问(内部网/互联网)

2、降低油品损失

大力强调更准确的计量,更严密的库存控制,通过以下途径显著地减少油品损失:

·在油品接收层次上轧帐

·确保每次油品发送都是经过授权的,并且记录在计算机中。

·以储罐和油品为对象,以小时为单位,在当前库存,油品接收和发送数据之间作轧帐.

·准确计量和校准/验证设备

3、增进安全 为油库设备,人员和环境实现操作高度安全:

·火警和燃气检测并及时停止相关的操作

·防止溢油

·罐车接地

·防止油泵气穴或油品过热

·用减压阀, 仪表验证作在线校准

·在油库的多个地点布置ESD 开关和呼叫点

4、全面保安 确保所有事务被控制,监视和记录

·门禁控制 (智能和光学阅卡器) 确保只有授权的司机和罐车进入库区

·付油区阅卡器检查付油授权

·记录和跟踪进出库区的每个司机 /罐车/油品移动

·数字闭路电视监视罐区,付油区,出入口等地点

·封口运输 (数字编号)

·司机/罐车执照,有效期检查

第五篇:自动售货机系统程序

Coin类:

#include #include #include

using namespace std;

class Coin { public: /** Constructs a coin with a given name and value @param n the coin name @param v the coin value */ Coin(string n, double v); /** Gets the coin name. @return the name */ string get_name() const; /** Gets the coin value @return the value */ double get_value() const; private: string name; double value; };

Coin::Coin(string n, double v) { name = n; value = v; }

string Coin::get_name() const { return name; }

double Coin::get_value() const { return value; }

Product类: #include #include #include

using namespace std;

class Product { public: /** Constructs a product with a given name, price and quantity @param n the product name @param p the price @param q the quantity */ Product(string n, double p, int q); /** Gets the product name @return the name */ string get_name() const; /** Gets the product price @return the price */ double get_price() const; /** Gets the product quantity @return the quantity */ int get_quantity() const; /** Adds to the product quantity @param amount the amount to add */ void add_quantity(int amount); private: string name; double price; int quantity; };

Product::Product(string n, double p, int q) { name = n; price = p; quantity = q; }

string Product::get_name() const { return name; }

double Product::get_price() const { return price; }

int Product::get_quantity() const { return quantity; }

void Product::add_quantity(int amount) { quantity = quantity + amount; }

VendingMachine类:

class VendingMachine { public: /** Constructs a vending machine with no current product selection. */ VendingMachine(); /** Adds product to the machine. @param p the product to add */ void add_product(Product p); /** Sets the currently selected product @param name the product name @return true if the machine has a product with the given name */ bool select_product(string name); void chaxun_product();//查询当前售货机内的商品

/** Adds a coin to pay for the currently selected product. @param c the coin to add @return true if sufficient coins have been added to pay for the selected product. */ bool add_coin(vector current_pay); /** Removes all coins that were added to pay for the current product. @return the value of the returned coins */ double return_coins(); /** Removes all money that was paid for products. @return the value of the money */ double remove_money(); double add_coinbijiao(vector current_pay );//对投入的金钱和所购买的商品的价格进行比较

double return_yiyoucoins();//统计售货机中已有的货款 void setcurrent_product();//把当前选择的商品代号置为-1 int getcurrent_product();//得到当前选择的商品代号 private: vector products; int current_product; vector current_payment; vector coins; };

VendingMachine::VendingMachine() { current_product = -1; }

void VendingMachine::add_product(Product p)//添加商品 { for (int i = 0; i < products.size(); i++) { if (products[i].get_name() == p.get_name() && products[i].get_price() == p.get_price()) { products[i].add_quantity(p.get_quantity()); cout<<"添加成功!"<

{

cout<<"已存在该商品,与您输入的价格不同!"<

return;

} } products.push_back(p); cout<<"添加成功!"<

bool VendingMachine::select_product(string name)//选择商品 {

int i; for ( i = 0; i < products.size(); i++) {

if (products[i].get_name() == name && products[i].get_quantity() > 0) { current_product = i; return true; } else { if(products[i].get_name() == name && products[i].get_quantity() == 0) { cout << "对不起,该商品已售完! "; return false; } } } if(i==products.size()) { cout<<"对不起,不存在该商品!"<

double VendingMachine::return_yiyoucoins()//统计售货机当前的金钱总额 { double total = 0; for (int i = coins.size()1; i >= 0; i--) { coins.push_back(current_payment[i]); current_payment.pop_back(); } products[current_product].add_quantity(-1); current_product = -1; cout<<"交易成功!"<

{ return false; } }

double VendingMachine::add_coinbijiao(vector current_pay ) { if (current_product == -1) return false; double total = 0; for(int k=0;k < current_pay.size(); k++) { total = total + current_pay[k].get_value();

} double m=products[current_product].get_price()-total; if (m>0) return m; else return -1; }

double VendingMachine::return_coins()//统计当前投入的金钱总额 { double total = 0; for (int i = current_payment.size()1; i >= 0; i--) { total = total + coins[i].get_value(); coins.pop_back(); } return total; }

void VendingMachine::chaxun_product() {

if(products.size()==0) { cout<<"暂时没有添加商品!"<

void VendingMachine::setcurrent_product() { current_product=-1; }

int VendingMachine::getcurrent_product() { return current_product; }

Main函数:

#include #include #include #include"coin.h" #include"product.h" #include"machine.h" using namespace std;

void main() { vector coins; vector current_pay; coins.push_back(Coin("nickel", 0.05)); coins.push_back(Coin("dime", 0.1)); coins.push_back(Coin("quarter", 0.25)); coins.push_back(Coin("rmb", 1.00));

VendingMachine machine; bool more = true; machine.chaxun_product(); while (more) { cout << "a)添加商品 x)查询商品 s)选择商品 p)投币 c)取消 e)查询当前金额 r)取款 q)退出: "; string command; cin>>command; if (command == "a") { cout << "商品名: "; string name; cin>>name;

cout << "价格: "; double price; cin >> price; cout << "数量: "; int quantity; cin >> quantity; machine.add_product(Product(name, price, quantity)); } else if (command == "s") {

double total1;

total1=machine.return_yiyoucoins();

if(total1>=5000)//当售货机中的货款大于等于5000时,暂停售货

{

cout<<"对不起,现在暂停售货!"<

}

else

{ machine.setcurrent_product(); cout << "商品名: "; string name; cin>>name; machine.select_product(name);

} } else if (command == "p") {

if(machine.getcurrent_product()!=-1)//如果当前已选择商品,才可以投币

{ bool panduan=false; while(!panduan)//多次投币的实现

{ cout << "所投钱币名称( 以 # 结束投币过程):"; string name; cin>>name; while(name!="#") { bool found = false; for (int i = 0; !found && i < coins.size(); i++) { if (coins[i].get_name() == name) { current_pay.push_back(coins[i]); found=true; } } if(!found) { cout << "不存在该货币,请重新投入: "; } cin>>name;

}

double k=machine.add_coinbijiao(current_pay ); if(k==-1)

{ machine.add_coin(current_pay); for (int i = current_pay.size()1; i >= 0; i--) { total = total + current_pay[i].get_value(); current_pay.pop_back(); } cout << "Returned(退还) " <

else

cout<<"您还没有选择商品!"<

{

machine.setcurrent_product();

double total=0;

for (int i = current_pay.size()1; i >= 0; i--) { total = total + coins[i].get_value(); coins.pop_back(); } return total; }

void VendingMachine::chaxun_product() {

if(products.size()==0) { cout<<"暂时没有添加商品!"<

void VendingMachine::setcurrent_product() { current_product=-1; }

int VendingMachine::getcurrent_product() { return current_product; } }

JAVA

import Input.touqian; import java.*; class shangpin {

} class fenpeiqi {

}

class xianshichanpin {

fenpeiqi fpq[]=new fenpeiqi[3]; public xianshichanpin() {

fpq[0]=new fenpeiqi(3.0); fpq[0].sp[0]=new shangpin("玉米烤肠

",10); fpq[0].sp[1]=new shangpin("可口可乐

",15); fpq[0].sp[2]=new shangpin("百事可乐

",10); fpq[1]=new fenpeiqi(5.0); fpq[1].sp[0]=new shangpin("哈德门香烟",10); fpq[1].sp[1]=new shangpin("将军香烟

",15); fpq[1].sp[2]=new shangpin("红梅香烟

",10); fpq[2]=new fenpeiqi(10.0); fpq[2].sp[0]=new shangpin("一支笔香烟",10); fpq[2].sp[1]=new shangpin("红塔山香烟",10); fpq[2].sp[2]=new shangpin("泰山香烟

",15); double price; shangpin sp[]=new shangpin[3]; public fenpeiqi(double price) { } this.price=price; String name; int num; public shangpin(String name,int num) {

} this.name=name; this.num=num;

#"); #"); #"); #"); #");

} } void show() { System.out.println("===============

System.out.println("#

System.out.println("#

System.out.println("#

欢迎使用自动售货机

System.out.println("#

System.out.println("#

================="); System.out.println("===============

System.out.println(); System.out.println("编号 "+"名称 "+"价格 "+"数量 "); for(int i=0;i

} if(fpq[i]!=null) {

} for(int j=0;j

} } if(fpq[i].sp[j]!=null) { ================="); System.out.println((i+1)*10+j+1+" "+fpq[i].sp[j].name+" "+fpq[i].price+" "+fpq[i].sp[j].num); System.out.println("=============== } ================="); class panduan { boolean ying()

} {

} boolean zhi() {

}

int z=touqian.in();

if(z==5||z==10) { } else { } return false; return true; double y=touqian.dou(); if(y==1||y==0.5) { } else { } return false; return true; class jiabi {

switch(touqian.in()) void ceshi() { System.out.println("请选择投放钱的类型 "); System.out.println("1 表示投放 硬币"); System.out.println("2 表示投放 纸币"); System.out.println("请输入您选择的钱的类型 :");

panduan pd=new panduan();

{ case 1:

System.out.println("请您投入有效的面值");

if(pd.ying())

{

System.out.println("您投入的是有效地硬币");

System.out.println();

// System.out.println("^_^ 请选择您所需要的物品^_^");

}

else

}

class chanpin {

{

System.out.println("您投入的不是有效地硬币,请您重新投入");

}

break;

case 2 :

System.out.println("请您投入有效的面值");

if(pd.zhi())

{

//

}

else

{

}

break;

default :

System.out.println("请您重新投入有效地货币");

} }

System.out.println("您投入的不是有效的纸币,请您重新投入"); System.out.println("您投入的是有效的纸币"); System.out.println(); System.out.println("^_^ 请选择您所需要的物品^_^");

} } public static void main(String args[]) {

System.out.println("请输入您想要产品的编码:"); int bianma; bianma=touqian.in(); System.out.println("请输入您想要产品的数量:"); int shuliang; shuliang=touqian.in(); System.out.println("您一共要付:"); double sumjine; sumjine= xianshichanpin xscp=new xianshichanpin(); xscp.show();

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:在电影中感悟范文下一篇:职场面试礼仪范文