北京信息科技大学Java语言程序设计-Java语言设计基础Word版

上传人:每**** 文档编号:49224679 上传时间:2022-01-18 格式:DOC 页数:25 大小:348.50KB
返回 下载 相关 举报
北京信息科技大学Java语言程序设计-Java语言设计基础Word版_第1页
第1页 / 共25页
北京信息科技大学Java语言程序设计-Java语言设计基础Word版_第2页
第2页 / 共25页
北京信息科技大学Java语言程序设计-Java语言设计基础Word版_第3页
第3页 / 共25页
点击查看更多>>
资源描述
【实验名称】Java程序设计基础 【实验目的】 1、学习和掌握Java程序的基本结构。 2、学习和掌握Java程序的基本开发过程和方法。 3、学习和掌握程序设计的基本开发步骤。 4、学习和掌握Java程序的基本输入、输出方法。 5、学习和掌握Java程序设计的基本技术。 【实验日期和时间记录】实验预习时间:2014.4.12.8:3010:30实验过程时间:2014.4.12 10:3017:00及2014.4.26.8:3012:00【实验内容】 1、创建、编译和执行Welcome.java。(参见教材1.7和1.8小节,P8-11)【实验预习】1. 这道题需要解决的是输出“welcome to java”这个字符串。2. 解决方案:用system.out.println(“welcome to java”).方法输出。没有输入与处理,直接输出。3. 学会输出字符串的方法。【附:程序代码】public class Welcomepublic static void main(Stringargs)System.out.println(Welcome to java!);/输出并显示信息Welcome to java!推荐精选【实验过程及结果记录】在实验过程中没有遇到问题,需要注意的是System.out.println();的第一个字母大写。2、(财务应用程序:工资单)编写程序,读入工资基本信息并打印工资单。编写两种版本的程序,依次使用控制台实现输入输出和GUI实现输入输出。运行效果可参见图1和图2。 说明:题目来源,教材编程练习2.11(P51)。控制台输入输出,请参考教材2.3(P21)和1.8小节(P10)。GUI输入输出,请参考教材2.18(P44)和1.9(P12)小节。 图1 工资单(控制台输入、输出) 1)从控制台输入【实验预习】1. 该程序是用来打印工资单。2. 读入信息,将信息以按照一定格式输出。【附:程序代码】import java.util.Scanner;推荐精选public class Payrollpublic static void main(Stringargs)/创建一个Scanner Scanner input=new Scanner(System.in);/输入姓名System.out.print(Enter employees name:);String name=input.next();/输入工作时间System.out.print(Enter number of hour worked in a week:);double weekHour=input.nextInt();/输入每小时工资数System.out.print(Enter hourly pay rate:);double payRate=input.nextDouble();/输入联邦税率System.out.print(Enter federal tax withoutholding rate:);double federalRate=input.nextDouble();/输入州税税率System.out.print(Enter state tax withoutholding rate:);double stateRate=input.nextDouble();/输出工资单System.out.println(雇员姓名:+ name);System.out.println(工作小时数:+ weekHour);推荐精选System.out.println(每小时工资数:$ + payRate);System.out.println( 工资总收入:$+ payRate*weekHour);System.out.println( 所纳税款:);System.out.println( 联邦税:$ + federalRate*payRate*weekHour);System.out.println( 州税:$ + (int)(stateRate*100*payRate*weekHour)/100.0);System.out.println( 总纳税:$ + (int)(federalRate*payRate*weekHour+stateRate*payRate*weekHour)*100)/100.0 );System.out.println( 净收入:$ + (int)(payRate*weekHour - federalRate*payRate*weekHour - stateRate*payRate*weekHour)*100)/100.0);【实验过程及结果记录】推荐精选实验过程遇到的问题是:不会保留两位小数。在题中最后求州税和净收入和总纳税需保留两位小数。解决方法是现将要保留的乘以100,取整后,在除以100.0即可。2)使用GUI【实验预习】1.该程序是用来打印工资单。2.通过GUI读入信息,将信息按照一定格式用GUI输出。【附:程序代码】import javax.swing.JOptionPane;public class PayrollGUIpublic static void main(Stringargs)/输入雇员姓名推荐精选String name=JOptionPane.showInputDialog(Enter employees name:);/输入工作小时数String weekHourString=JOptionPane.showInputDialog(Enter number of hour worked in a week:);int weekHour=Integer.parseInt(weekHourString);/输入每小时工资数String payRateString=JOptionPane.showInputDialog(Enter hourly pay rate:);Double payRate=Double.parseDouble(payRateString);/输入联邦税率String federalRateString=JOptionPane.showInputDialog(Enter federal tax withoutholding rate:);Double federalRate=Double.parseDouble(federalRateString);/输入州税税率String stateRateString=JOptionPane.showInputDialog(Enter state tax withoutholding rate:);Double stateRate=Double.parseDouble(stateRateString);/用GUI输出工资单String output1=雇员姓名:+ name+n;String output2=工作小时数:+ weekHour +n;String output3=每小时工资数:$ + payRate +n;推荐精选String output4=工资总收入:$+ payRate*weekHour +n;String output5=所纳税款:+n;String output6= 联邦税:$ + federalRate*payRate*weekHour+n;String output7= 州税:$ + (int)(stateRate*100*payRate*weekHour)/100.0+n;String output8= 总纳税:$ + (int)(federalRate*payRate*weekHour+stateRate*payRate*weekHour)*100)/100.0 +n;String output9=净收入:$ + (int)(payRate*weekHour - federalRate*payRate*weekHour - stateRate*payRate*weekHour)*100)/100.0 +n;JOptionPane.showMessageDialog(null,output1+output2+output3+output4+output5+output6+output7+output8+output9);【实验过程及结果记录】 推荐精选 实验中遇到的问题是:在使用推荐精选federalRateString=JOptionPane.showInputDialog(Enter federal tax withoutholding rate:);这句话中,JOptionPane.showInputDialog()函数直接返回的是String类型。不用在转化。3、(财务应用程序:计算税款)按照表1,基于纳税人的身份和可征税收入,编写程序,计算某个纳税人的纳税额。比如,计算一个收入400000美元的单身纳税人的纳税额。程序的运行效果见图3。 说明:题目来源,编程练习3.13(P85)和程序清单3-6(P68)。程序设计的基本步骤,参见2.2小节(P18)和教材P84给出的教学注意。解决方案的选择模型,参见授课ppt文稿。 【实验预习】1、 这道题解决的是计算某个纳税人的纳税额。2、 输入:用户先输入选择的纳税人所属类型。输入纳税人收入。处理:判读纳税人所属类型,及分别求纳税人的收入的不同阶段所需的纳税额,求和。输出:输出纳税人所交税款3、 技术支持:用到的是输入函数,条件语句,输出函数。4、 实验步骤:先写出输入输出语句,在写中间处理部分。【附:程序代码】import java.util.Scanner;public class ComputeTaxpublic static void main(Stringargs)推荐精选/创建一个ScannerScanner input=new Scanner(System.in);/输入用户所属类型System.out.println(0-单身税人,1-已婚共同纳税人或证实的鳏寡,2-已婚单独纳税人,3-家庭户主纳税人);System.out.println(Enter the filling status:);int status= input.nextInt();/输入用户收入System.out.println(Enter the taxable income:);double income=input.nextDouble();double tax=0;if(status=0)/计算单身税人的税款if(income=6000)tax=income*0.10;else if(income=27950)tax=6000*0.10+(income-6000)*0.15;else if(income=67700)tax=6000*0.10+(27950-6000)*0.15+(income-27950)*0.27;else if(income=141250)tax=6000*0.10+(27950-6000)*0.15+(67700-27950)*0.27+(income-67700)*0.30;推荐精选else if(income=307050)tax=6000*0.10+(27950-6000)*0.15+(57700-27950)*0.27+(141250-67700)*0.30+(income-141250)*0.35;else tax=6000*0.10+(27950-6000)*0.15+(57700-27950)*0.27+(141250-67700)*0.30+(307050-141250)*0.35+(income-307050)*0.386;else if(status=1)/计算已婚共同纳税人或证实的鳏寡的税款if(income=12000)tax=income*0.10;else if(income=46700)tax=12000*0.10+(income-12000)*0.15;else if(income=112850)tax=12000*0.10+(46700-12000)*0.15+(income-46700)*0.27;else if(income=171950)tax=12000*0.10+(46700-12000)*0.15+(112850-46700)*0.27+(income-112850)*0.30;else if(income=307050)tax=12000*0.10+(46700-12000)*0.15+(112850-46700)*0.27+(171950-112850)*0.30+(income-171950)*0.35;else tax=12000*0.10+(46700-12000)*0.15+(112850-46700)*0.27+(171950-112850)*0.30+(307950-171950)*0.35+(income-307050)*0.386;推荐精选else if(status=2)/计算已婚单独纳税人的税款if(income=6000)tax=income*0.10;else if(income=23350)tax=6000*0.10+(income-6000)*0.15;else if(income=56425)tax=6000*0.10+(46700-6000)*0.15+(income-23350)*0.27;else if(income=85976)tax=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(income-56425)*0.30;else if(income=153525)tax=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(85976-56425)*0.30+(income-85976)*0.35;else tax=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(85976-56425)*0.30+(85976-171950)*0.35+(income-85976)*0.386;else if(status=3)/计算家庭户主纳税人的税款if(income=10000)推荐精选tax=income*0.10;else if(income=37450)tax=10000*0.10+(income-10000)*0.15;else if(income=96700)tax=10000*0.10+(37450-10000)*0.15+(income-37450)*0.27;else if(income=156600)tax=10000*0.10+(37450-10000)*0.15+(96700-37450)*0.27+(income-96700)*0.30;else if(income=307050)tax=10000*0.10+(37450-10000)*0.15+(96700-37450)*0.27+(156600-96700)*0.30+(income-156600)*0.35;else tax=10000*0.10+(37450-10000)*0.15+(96700-37450)*0.27+(156600-96700)*0.30+(307050-156600)*0.35+(income-307050)*0.386;else System.out.println(Error:invalid status);System.exit(0);/输出该用户所交税款推荐精选System.out.println(Tax is+(int)(tax*100)/100.0);【实验过程及结果记录】实验中遇到的问题:暂无。4、(财务应用程序:打印税表)在问题3的基础上,使用下面的方法头部,编写一个计算税款的方法: public static double computeTax()int status,double taxableIncome) 使用这个方法编写程序,打印可征税收入从50000美元到60000美元,收入间隔50美元的所有四种纳税人的纳税表。 说明:题目来源,编程练习5.15(P152)。程序设计的基本步骤,参见2.2小节(P18)和教材P84给出的教学注意。解决方案的循环设计策略,参见4.2.2小节(P94)。方法,参见教材第5章。【实验预习】1、 问题描述:打印四种纳税人的纳税表推荐精选2、 没有输入,处理:判断收入每部分所需付税款,求和。输出:每隔50美元写出四种纳税人所需付税款3、 技术支持:用到的是条件语句,循环语句,输出语句。【附:程序代码】import java.util.Scanner;public class PrintTaxpublic static void main(Stringargs)System.out.println(Taxable income+t+Single+tt+Married joint+t+Married Seperate+t+Head of);/打印可征税收入从50000美元到60000美元,收入间隔50美元的所有四种纳税人的纳税表。for(double income=50000;income=60000;income=income+50)System.out.print(income);for(int status=0;status=3;status+)System.out.print(ttt+computeTax(status,income);System.out.println();/计算税款的函数public static double computeTax(int status,double income)推荐精选double tax=0;if(status=0)if(income=6000)tax=income*0.10;else if(income=27950)tax=6000*0.10+(income-6000)*0.15;else if(income=67700)tax=6000*0.10+(27950-6000)*0.15+(income-27950)*0.27;else if(income=141250)tax=6000*0.10+(27950-6000)*0.15+(67700-27950)*0.27+(income-67700)*0.30;else if(income=307050)tax=6000*0.10+(27950-6000)*0.15+(57700-27950)*0.27+(141250-67700)*0.30+(income-141250)*0.35;else tax=6000*0.10+(27950-6000)*0.15+(57700-27950)*0.27+(141250-67700)*0.30+(307050-141250)*0.35+(income-307050)*0.386;else if(status=1)推荐精选if(income=12000)tax=income*0.10;else if(income=46700)tax=12000*0.10+(income-12000)*0.15;else if(income=112850)tax=12000*0.10+(46700-12000)*0.15+(income-46700)*0.27;else if(income=171950)tax=12000*0.10+(46700-12000)*0.15+(112850-46700)*0.27+(income-112850)*0.30;else if(income=307050)tax=12000*0.10+(46700-12000)*0.15+(112850-46700)*0.27+(171950-112850)*0.30+(income-171950)*0.35;else tax=12000*0.10+(46700-12000)*0.15+(112850-46700)*0.27+(171950-112850)*0.30+(307950-171950)*0.35+(income-307050)*0.386;else if(status=2)if(income=6000)tax=income*0.10;推荐精选else if(income=23350)tax=6000*0.10+(income-6000)*0.15;else if(income=56425)tax=6000*0.10+(46700-6000)*0.15+(income-23350)*0.27;else if(income=85976)tax=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(income-56425)*0.30;else if(income=153525)tax=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(85976-56425)*0.30+(income-85976)*0.35;else tax=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(85976-56425)*0.30+(85976-171950)*0.35+(income-85976)*0.386;else if(status=3)if(income=10000)tax=income*0.10;else if(income=37450)tax=10000*0.10+(income-10000)*0.15;else if(income=96700)推荐精选tax=10000*0.10+(37450-10000)*0.15+(income-37450)*0.27;else if(income=156600)tax=10000*0.10+(37450-10000)*0.15+(96700-37450)*0.27+(income-96700)*0.30;else if(income=307050)tax=10000*0.10+(37450-10000)*0.15+(96700-37450)*0.27+(156600-96700)*0.30+(income-156600)*0.35;else tax=10000*0.10+(37450-10000)*0.15+(96700-37450)*0.27+(156600-96700)*0.30+(307050-156600)*0.35+(income-307050)*0.386;else System.out.println(Error:invalid status);System.exit(0);return tax;【实验过程及结果记录】推荐精选 注意找出通式。5、(财务应用程序:计算税款)使用数组重新编写问题3的实现。使用数组表示税率: double rates = 0.10,0.15,0.25,0.28,0.33,0.35; 使用数组表示收入分段: int brackets = 8350,33950,82250,171550,372950, 16700,67900,137050,208850,372950, 8350,33950,68525,104425,186475, 推荐精选11950,45500,117450,190200,372950 ; 参照问题3和4,编程实现计算税款。 说明:题目来源,编程练习7.12(P205)。数组技术,参见教材第6和第7章。 【实验预习】1. 用数组计算税款2. 输入:输入纳税人所属类型,及纳税人的收入。处理:用数组方法调用税率及收入上下限,求收入每部分所需付的税款,求和。输出:输出税款。3、技术支持:数组,输入语句,条件语句,输出语句。【附:程序代码】import java.util.Scanner;public class arrayComputeTaxpublic static void main(Stringargs)double rates=0.10,0.15,0.25,0.28,0.33,0.35;int brackets=8350,33950,82250,171550,372950,16700,67900,137050,208850,372950,8350,33950,68525,104425,186475,11950,45500,117450,190200,372950;/输入纳税人所属类型推荐精选Scanner input=new Scanner(System.in);System.out.println(0-单身税人,1-已婚共同纳税人或证实的鳏寡,2-已婚单独纳税人,3-家庭户主纳税人);System.out.println(Enter the filling status:);int filingStatus= input.nextInt();/输入纳税人的收入System.out.println(Enter the taxable income:);double taxableIncome=input.nextDouble();double tax=0;/计算税款 if (taxableIncome = bracketsfilingStatus0) tax = taxableIncome * rates0; else tax = bracketsfilingStatus0 * rates0; int i; for (i = 1; i bracketsfilingStatusi) tax += (bracketsfilingStatusi - bracketsfilingStatusi - 1) * ratesi;推荐精选 else tax += (taxableIncome - bracketsfilingStatusi - 1) * ratesi; break; if (i = brackets0.length & taxableIncome bracketsfilingStatusi - 1) tax += (taxableIncome - bracketsfilingStatusi - 1) * ratesi;System.out.println(Tax is+(int)(tax*100)/100.0);【实验过程及结果记录】在处理阶段遇到一些问题,需要弄清关系。推荐精选【思考题】1.开始“你每天做一点编程练习”了吗?我还没有达到每天都做题,但是每周都会抽出时间的。2.在问题3的解决方案中,你使用的是哪种选择结构模型(可以使用流程图描述)?实现这个选择结构模型的java语法结构是什么?If选择语句结构。3、在问题4中,你使用了哪种循环方法?为什么? For循环,对每次循环进行。4、你如何理解教材作者说的“如果能够使用循环编写程序,你就懂得如何编程了”?(语出教材P103) 使用循环语句说明会使用基本程序设计方法。5、从问题3到问题5,可以使用不同的编程技术,解决同一个问题。说说你对这个过程中的编程感受和想法? 使用的方法越多,编出的代码越简洁。 (注:可编辑下载,若有不当之处,请指正,谢谢!) 推荐精选
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!