收藏 分销(赏)

Java程序设计实训试验参考指导书.doc

上传人:快乐****生活 文档编号:9904957 上传时间:2025-04-12 格式:DOC 页数:76 大小:2.62MB
下载 相关 举报
Java程序设计实训试验参考指导书.doc_第1页
第1页 / 共76页
Java程序设计实训试验参考指导书.doc_第2页
第2页 / 共76页
点击查看更多>>
资源描述
Java程序设计实训试验参考指导书 《JAVA 程 序 设 计实训》 实 验 报 告 班级: 学号: 姓名: 实验一 开发简单的Java应用程序 一、上机目标: 开发“我行我素”购物管理系统: 二、训练技能点 三、实验内容 阶段1: 训练要点: · 使用Eclipse平台开发Java程序 · Java输出语句 需求说明: · 从控制台输出一行信息: 实现思路: · 创建一个Java项目:ShopManagementSystem · 创建一个文本文件: · 编写程序框架 · 编写输出语句 · 编写注释 代码: public class LoginMenu1{ public static void main(String[ ] args){ (" "); } } 阶段2: 需求说明: · 从控制台输出多行信息 空行 代码: public class LoginMenu2 { public static void main(String[] args) { /*从控制台输出信息*/ ("************************************\n"); ( ); ( ); ("************************************"); } } 阶段3: 训练要点: · 使用\n和\t控制输出格式 需求说明: · 从控制台输出购物管理系统的登录菜单 实现思路: · 创建文件: · 结合使用\n和\t控制菜单输出格式 代码: public class LoginMenu { /* * 显示系统登录菜单 */ public static void main(String[] args) { ("\n\n\t\t\\n\n"); ( ); ( ); ("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n"); ("请选择,输入数字:"); } } 阶段4: 需求说明: · 输出两个菜单 1、系统主菜单 代码: 2、客户信息管理菜单   代码: 阶段5: 训练要点: · 代码排错技巧 需求说明: · 纠正程序中的错误,使其输出“我喜欢Java程序” public class wrongcode { public static void Main() { /*打印输出一条信息 (我喜欢Java程序) //修改为:(“我喜欢Java程序”);加””和; } 实验二 变量、数据类型和运算符 一、上机目标: 升级“我行我素”购物管理系统,完成以下功能: • 购物结算 • 打印购物小票 • 计算会员积分 • 模拟幸运抽奖 • 计算员工工资 二、训练技能点: • 会声明和使用变量 • 能熟练使用常用运算符 • 赋值运算符:= • 算术运算符:+、 - 、*、 /、 % 三、实验内容 阶段1: 训练要点: · 运算符(*、=)、从控制台输出信息 需求说明: · 根据购物清单及会员级别: 1、计算消费金额 客户 购买商品 单价 个数 折扣 1 T恤 ¥420.78 1 9.5 2 网球 ¥45 3 无 2、以下表形式输出结果(不要求表格边框) 客户 消费金额 1 张三 ? 2 李四 ? 实现思路: · 声明变量存放商品信息(单价、购物个数) · 根据不同折扣,分别计算消费金额 · 使用“+”连接输出信息,使用\t控制输出格式 代码: public class Pay1 { public static void main(String[] args) { double shirtPrice = ; //T恤单价 int shirtNo = 1; //购T恤件数 double tennisPrice = 45; //网球单价 int tennisNo = 3; //购网球个数 double shirtMoney = ; //张三消费金额 double tennisMoney = ; //李四消费金额 ("客户\t" + "消费金额"); ("张三\t" + shirtMoney); ( ); } } 阶段2: 需求说明: · 张三(享8折)购物如右表所示,结算时支付1500元 1、计算消费总额并打印购物小票(如下图) 商品 单价 个数 T恤 245 2 网球鞋 570 1 网球拍 320 1 2、计算购物获得的会员积分(100元获3分) 代码: 阶段3: 训练要点: · 运算符(%、/) 需求说明: · 幸运抽奖:凡是4位会员卡号的各个位上的数字之和大于20,则为幸运客户,有精美Mp3送上,编程计算8349各位数字之和 实现思路: · 结合使用“/”和“%”分解获得各位数字 · 计算各位数字之和 代码: 阶段4: 需求说明: · 商场为员工提供了基本工资(3000元)、物价津贴及房租津贴,其中物价津贴为基本工资的40%,房租津贴为基本工资的25%。编程计算实领工资 代码: 实验三 运算符和条件结构 一、 上机目标 升级“我行我素”购物管理系统,完成以下功能: • 录入会员信息 • 模拟幸运抽奖 • 菜单切换 • 计算会员折扣 二、训练技能点: • 会使用关系运算符和逻辑运算符 • 会从控制台获取键盘输入的数据 • 会使用if-else和多重if条件结构 • 会使用switch结构 三、 实验内容 阶段1: 训练要点: · 获取键盘输入 · 条件运算符 · 逻辑运算符 需求说明: · 录入会员信息(会员号、会员生日、会员积分)并显示录入信息 · 升级功能:判断录入是否合法(会员号必为4位整数),录入合法,显示录入的信息;不合法,显示“录入失败” 实现思路: · 完成信息录入:使用Scanner获取用户输入,存储在变量中 public class AddCust1 { public static void main(String[] args) { ("我行我素购物管理系统 > 客户信息管理 > 添加客户信息\n"); /* 录入会员信息 */ Scanner input = new Scanner(); ("请输入会员号(<4位整数>):"); int custNo = (); ("请输入会员生日(月/日<用两位数表示>):"); String custBirth = (); ("请输入积分:"); int custScore = (); /* 显示录入的信息 */ ("\n已录入的会员信息是: "); (custNo + "\t" + custBirth + "\t" + custScore); } } · 升级功能:判断会员号是否合法 代码: 阶段2: 需求说明: · 商场实行新的抽奖规则:会员号的百位数字等于产生的随机数字即为幸运会员。基于第2章阶段3,实现: 1、从键盘接收会员号 2、使用if-else实现幸运抽奖 代码: 阶段3: 训练要点: · switch结构 · 多重if结构 需求说明: · 实现从登录菜单进入二级菜单 1、输入1:进入主菜单 2、输入2:退出并显示“谢谢您的使用!” 3、输入其他数字:显示“输入错误” 实现思路: · 在第1章阶段3登录菜单程序()基础上完成 · 从控制台接收一个数字 · 使用switch结构或多重if结构实现菜单切换 代码: 阶段4: 需求说明: · 会员根据积分享受不同折扣,如右表。使用多重if结构计算会员折扣 折扣 x < 2000 9折 2000 ≤ x < 4000 8折 4000 ≤ x < 8000 7折 x ≥ 8000 6折 代码: 实验四 循环结构(一) 一、 上机目标: 升级“我行我素”购物管理系统,完成以下功能: • 查询商品价格 • 升级购物结算 • 升级菜单切换 • 升级幸运抽奖 二、训练技能点: • 会使用while循环 • 会使用do-while循环 • 会进行代码跟踪调试 三、实验内容: 阶段1: 训练要点: · while循环结构 需求说明: · 编程实现:计算100以内(包括100)的偶数之和 · 观察在每一次循环中变量值的变化 代码: 阶段2: 训练要点: · while循环结构 需求说明: · 实现商品查价: 1、输入商品编号,显示商品价格 2、循环查询 3、输入“n”退出循环 编号 商品 价格 1 T恤 245 2 网球鞋 570 3 网球拍 320 实现思路及关键代码: · · 声明变量存储商品信息 · 循环体:从键盘接收商品编号,使用switch语句选择该编号对应 的商品信息,并输出商品名称和商品价格 · 循环条件 · 获取用户输入,为“n”时结束循环 代码: 阶段3 需求说明: · 基于阶段2,升级实验二阶段2购物结算功能: 1、循环输入商品编号和购物数量,计算消费金额并累加到总金额 2、输入“n”开始结账(假设享8折) 3、输入实付金额,计算找零 代码: 阶段4: 训练要点: · do-while循环结构 需求说明: · 进入系统主菜单,提示输入数字选择进入相应菜单。用户输入错误,可以重复输入,直到输入正确,执行相应的操作后退出循环 代码: 阶段5: 需求说明: · 升级实验三阶段2幸运抽奖: 1、循环输入4位会员号,判断是否为幸运会员 2、输入“n”退出抽奖 代码: 实验五 循环结构(二) 一、上机目标: 升级“我行我素”购物管理系统,完成以下功能: • 统计顾客的年龄层次 • 循环录入会员信息 • 登录时用户信息验证 二、训练技能点: • 会使用for循环结构 • 会使用break和continue控制循环停止或继续 • 会进行代码跟踪调试 三、实验内容: 阶段1: 训练要点: · for循环结构 需求说明: · 为提高销售额,对顾客的年龄层次(30岁之上/之下)进行调查(样本数为10),计算两个层次的顾客比例 实现思路及关键代码: · · 定义计算器变量old和young · 循环录入被调查的10位顾客的年龄 for(int i = 0; i<10; i++){ //录入顾客年龄 //统计各层次的人数 } · 计算各层次比例 double oldRate = old / ; 代码: 阶段2: 训练要点: · for循环结构 · continue语句 需求说明: · 实现循环录入客户信息: 1、循环录入3位客户信息 2、判断会员号是否合法(4位整数) 3、会员号合法,显示录入的信息,否则显示录入失败 实现思路: · · 增加for循环结构 for(int i = 0; i<3; i++){ //从键盘获取信息 //判断:如果会员号不合法,输出错误提示,继续下一次循环 //会员号合法则输出录入的信息 } · 使用continue控制循环执行过程 代码: 阶段3: 需求说明: · 实现用户登录时的信息验证: 1、登录时提示输入用户名和密码并进行验证 2、如果输入超过3次,程序结束 3、根据3种匹配结果(信息匹配/信息不匹配/3次都不匹配),执行不同的操作 代码: 阶段4: 训练要点: · 循环结构,break,断点跟踪 需求说明: · 一个球从100米高度自由落下,每次落地后反弹回原高度的一 半;再落下,,并计算在这一次落地时共经过多少米? 对代码进行跟踪调试,使其输出正确结果 代码: 实验六循环和分支结构综合训练(阶段练习) 一、上机目标 从控制台输入 × × × ×年× ×月,从控制台输出该月日历 二、训练技能点 • 会使用分支结构解决问题 • 会使用循环结构解决问题 三、实验内容 需求说明: 任务从控制台输入 × × × ×年× ×月,从控制台输出该月日历 (1900年1月1日是星期一) 1、判断该年是否是闰 2、计算该月天数 3、计算该月第一天是星期几 4、按格式输出该月日历 阶段划分: – 阶段1 分析业务;实现从控制台接收年和月,判断是否是闰年 – 阶段2 编程计算输入月份的天数 – 阶段3 编程计算输入的月份距离1900年1月1日的天数 – 阶段4 编程计算输入月份的第一天是星期× – 阶段5 格式化输出× ×年× ×月日历 阶段1: 需求说明: · 实现: 从控制台接收年和月份,判断输入的年份是否是闰年 实现思路: 判断是否是闰年:能被4整除但不能被100整除;或者能被400整除 代码: import ; public class PrintCalendar1 { public static void main(String[] args) { ("**********欢 迎 使 用 万 年 历*************"); Scanner input = new Scanner(); ("\n请选择年份: "); int year = (); ("\n请选择月份: "); int month = (); (); int days = 0; // 存储当月的天数 boolean isRn; /* 判断是否是闰年 */ if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) { isRn = true; // 闰年 } else { isRn = false;// 平年 } if (isRn) { (year + " 闰年"); } else { (year + " 平年"); } } } 阶段2: 需求说明: · 扩展阶段1,实现2:计算输入月份的天数 实现思路: 闰年2月:29天 平年2月:28天 代码: /* 计算当月的天数 */ switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 2: if (isRn) { days = 29; } else { days = 28; } break; default: days = 30; break; } (month + "\t共" + days + "天"); 阶段3: 需求说明: · 扩展阶段2,实现3: · 1、计算输入月份距离1900年1月1日的天数 · 2、计算输入月份之前的天数(从当年年初开始) · 3、求和 实现思路: 代码: /* 计算输入的年份之前的天数 */ int totalDays = 0; for (int i = 1900; i < year; i++) { /* 判断闰年或平年,并进行天数累加 */ if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0) { // 判断是否为闰年 totalDays = totalDays + 366; // 闰年366天 } else { totalDays = totalDays + 365; // 平年365天 } } ("输入年份距离1900年1月1日的天数:" + totalDays); /* 计算输入月份之前的天数 */ int beforeDays = 0; for (int i = 1; i <= month; i++) { switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 2: if (isRn) { days = 29; } else { days = 28; } break; default: days = 30; break; } if (i < month) { beforeDays = beforeDays + days; } } totalDays = totalDays + beforeDays; // 距离1900年1月1日的天数 ("输入月份距离1900年1月1日的天数:" + totalDays); ("当前月份的天数:" + days); 阶段4: 需求说明: · 扩展阶段3,已知该月之前的天数,计算输入月份的第一天是星期× 实现思路: 从1900年1月1日(星期一)开始推算:星期× = 1 + 天数差 % 7 周一~周六:1~6 周日:0 代码: /* 计算星期几 */ int firstDayOfWeek; // 存储当月第一天是星期几:星期日为0,星期一~星期六为1~6 int temp = 1 + totalDays % 7; // 从1900年1月1日推算 if (temp == 7) { // 求当月第一天 firstDayOfWeek = 0; } else { firstDayOfWeek = temp; } ("该月第一天是: " + firstDayOfWeek); 阶段5: 需求说明: · 格式化输出× ×年× ×月日历 实现思路: 分析下面语句的输出结果 ("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六"); for(int i = 1 ; i <= 7 ; i++){ (i + "\t"); } 源代码: /* 输出日历 */ ("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六"); for (int nullNo = 0; nullNo < firstDayOfMonth; nullNo++) { ("\t"); // 输出空格 } for (int i = 1; i <= days; i++) { (i + "\t"); if ((totalDays + i - 1) % 7 == 5) { // 如果当天为周六,输出换行 (); } } 实验七 对象和类 一、上机目标: 升级“我行我素”购物管理系统,完成以下功能: • 实现管理员类 • 实现礼品类 • 修改管理员密码 • 礼品馈赠 二、训练技能点: • 会定义一个类 • 会创建一个对象 • 会编写和使用类的toString()方法 三、实验内容: 阶段1: 训练要点: · 定义一个类 · toString()方法 需求说明: · 定义管理员类 管理员类 属性: 用户名 密码 方法: 显示管理员信息 实现思路: · 创建Manager类 · 定义其属性:username和password · 定义其toString()方法 public String toString( ){ return "管理员信息是: " + username + "\t" + password; } 源代码: 阶段2: 需求说明: · 定义礼品类 礼品类(Gift) 属性: 礼品名(name) 礼品价值(price) 方法: 显示礼品信息 代码: 阶段3: 训练要点: · 创建类的对象 · 使用类的属性和toString()方法 需求说明: · 创建管理员对象: 1、根据右表所示创建两个管理员 2、显示管理员信息 用户名 密码 manager 0000 accp 1111 实现思路: · 创建测试类 · 编写入口程序 public static void main(String[ ] args){ //main方法主体 } · 创建管理员对象并显示对象信息 Manager manager = new Manager(); = "manager"; = "0000"; (manager); 源代码: 阶段4: 需求说明: · 更改管理员登录信息: 1、输入旧的用户名和密码,如果正确,方有权限更新 2、从键盘获取新的用户名和密码,进行更新 代码: 阶段5: 需求说明: · 购物中心为酬谢广大客户,推出礼品馈赠活动,如表所示,循环输入会员号和积分,用面向对象思想实现礼品馈赠 积分x 奖品 8000≤x<15000 x≥15000 笔记本电脑 代码: 实验八 类的方法 一、上机目标 升级“我行我素”购物管理系统,完成以下功能: • 创建我行我素购物管理系统项目结构 • 系统入口程序 • 菜单类 • 菜单切换 二、训练技能点 • 会编写类的成员方法 • 会进行方法调用 • 会创建包和导入包 三、实验内容 阶段1: 训练要点: · 创建包,在包中创建类 需求说明: · 创建ShopManagementSystem项目结构: 1、 2、,设置默认的管理员名“accp”,默认密码“0000” 代码: 阶段2: 训练要点: · 创建类的成员方法 需求说明: · 阅读已给出的Menu类 · 添加showMainMenu()方法 菜单类 属性: 无 方法: 显示登录菜单 显示主菜单 显示客户信息管理菜单 显示真情回馈菜单 实现思路: · 编写方法框架 public void showMainMenu(){ //显示主菜单 } · 编写方法主体:拷贝第4章阶段4 源代码: 阶段3: 需求说明: · 实现系统入口程序: 1、加载系统管理员信息 2、显示系统登录菜单 3、实现登录菜单功能,如表所示 选择1 1)验证管理员密码 2)显示主菜单 选择2 输出“谢谢您的使用” 退出程序 实现思路及关键代码: · 创建带main()的类StartSMS · 创建系统管理员对象,加载系统保存的管理员信息 · 创建一个菜单类对象,调用其showLoginMenu()方法显示系统登录菜单 · 提示输入信息 · 根据输入信息进行验证 代码: 阶段4: 需求说明: · 改写Menu类的showMainMenu()方法,实现三个菜单项功能: 1、选择1显示客户信息管理菜单 调用showCustMMenu() 2、选择3显示真情回馈菜单 调用showSendGMenu() 3、选择4注销:回到开始登录菜单 调用showLoginMenu() · 改写Menu类的showCustMMenu()方法,实现输入0返回主菜单 · 改写Menu类的showSendMenu()方法,实现输入0返回主菜单 调用showMainMenu() 代码: 实验九 数组 一、上机目标 升级“我行我素”购物管理系统,完成以下功能: • 实现会员信息、商品信息的定义和初始化 • 显示当前所有会员信息 • 添加新会员 • 实现幸运大放送 二、训练技能点 • 会定义和使用数组 • 会操作数组进行运算 三、实验内容 阶段1: 训练要点: · 定义数组 · 初始化数组 需求说明: · 定义3个数组,分别存储会员号、会员生日和会员积分 数组名 类型 custNo int custBirth String custScore int 会员号 会员生日 会员积分 1623 06/26 5000 1545 04/08 2200 实现思路: · 创建Data类 · 定义Data类的3个数组成员变量存储会员信息 int[ ] custNo = new int[100]; //会员号 String[ ] custBirth = new String[100]; //会员生日 int[ ] custScore = new int[100]; //会员积分 · 定义Data类的成员方法initial(),执行数组初始化操作,相关数组信息一一对应 custNo [0] = 1623; custBirth [0] = "06/26"; custScore [0] = 5000; 源代码: 阶段2: 需求说明: · 扩展Data类: 1、再定义两个数组,分别存储商品名称和商品价格 数组名 类型 goodsName String goodsPrice double 2、初始化商品信息 商品名 商品价格 addidas运动鞋 880 addidasT恤 420.78 Nike运动鞋 900 代码: 阶段3: 训练要点: · 使用数组存储数据 需求说明: · 编写客户管理类CustManagement,实现添加新会员功能:从键盘获取用户输入,保存在数组中第一个空位 实现思路: · 创建客户管理类CustManagement · 完成数据加载 Data data = new Data(); //创建一个数据类对象 public void setData(){ //加载数据 (); } · 编写方法add()实现添加新会员功能 public void add(){ //提示用户输入会员号、生日和积分 //查询已存储的会员信息的下一个位置的下标 //一一对应向3个数组中添加数组元素 } 源代码: 阶段4: 需求说明: · 扩展客户管理类CustManagement,实现显示当前会员信息功能,并编写测试类测试显示和添加信息功能 代码: 阶段5: 需求说明: · 阅读代码,说明礼品管理类sendGoldenCust()方法执行的过程和实现的功能 代码: 实验十字符串 一、上机目标 升级“我行我素” 购物管理系统,完成以下功能: • 系统数据传递 • 自动计算会员折扣 • 完善购物小票 • 信息有效性验证 二、训练技能点 • 会使用String的相关方法 • 会使用带参数的方法 三、实验内容 阶段1: 训练要点: · 带参方法的编写和调用 需求说明: · 实现数据传递: 程序入口 (数据初始化) 菜单类 客户管理类 购物结算类 礼品管理类 数据传递 1、开始时加载系统数据: 会员信息、商品信息和管理员信息 2、系统运行时,数据在不同界面间进行传递,但始终保持对同一个数组进行操作 实现思路: · 在实验七阶段3StartSMS的main()中添加代码加载系统数据 · 在实验七产生的Menu类中编写setData(<参数列表>),用于获得系统数据 Data data = new Data(); (); 1、编写类成员变量 /*商品信息*/ String[ ] goodsName; double[ ] goodsPrice; /*会员信息*/ int[ ] custNo; String[ ] custBirth; int[ ] custScore; 2、编写setData方法 public void setData(String[ ] goodsName1, double[ ] goodsPrice1, int[ ] custNo1, String[ ] custBirth1, int[ ] custScore1){ goodsName = goodsName1; goodsPrice = goodsPrice1; custNo = custNo1; custBirth = custBirth1; custScore = custScore1; } · 在main()中添加代码 Menu menu = new Menu(); (, , , , ); menu. showLoginMenu(); 源代码: 阶段2: 需求说明: · 扩展购物结算,自动计算会员折扣: 1、已知会员号,根据会员号查找目前的积分 2、计算会员所享受的折扣 代码: 阶段3: 训练要点: · StringBuffer 需求说明: · 基于阶段3扩展购物结算程序: 1、使用StringBuffer存储购物信息(商品名、数量和
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服