20202324 实验二 《数据结构与面向对象程序设计》实验报告
(一)实验内容
(1) 编写简单的计算器,完成加减乘除模运算。
(2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。
(3) 编写测试代码,测试验证。(https://www.cnblogs.com/rocedu/p/4472842.html)
(二)实验要求
(1) 掌握数据的定义和表达式求解的基础知识
(2) 掌握循环和判定语句的使用
(三)助教验收
(1) 简单计算机器的验收
(2) 测试验收
(3) 上传到码云
(四)实验报告
# 20202324 2021-2022-1 《数据结构与面向对象程序设计》实验二报告
课程:《程序设计与数据结构》
班级: 2023
姓名: 肖郅宇
学号:20202324
实验教师:王志强
实验日期:2021年9月30日
必修/选修: 必修
## 1.实验内容
(1) 编写简单的计算器,完成加减乘除模运算。
(2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。
(3) 编写测试代码,测试验证。(https://www.cnblogs.com/rocedu/p/4472842.html)
## 2. 实验过程及结果
(一)明确实验目标
要用java实现一个简单的计算器功能,并能够在一组计算之后进入下一组运算,我选择了switch语句进行编程。
(二)代码编写
import java.util.Scanner;
public class calculator {
public static void main(String[] args) {
float a,b;
int x;
x = 1;
while (x==1)
{
Scanner scan = new Scanner(System.in);
System.out.println("pls give me the first num.");
a = scan.nextFloat();
System.out.println("pls give me the second num.");
b = scan.nextFloat();
System.out.println("pls give me the opration.");
Scanner sc = new Scanner(System.in);
String s =sc.next();
char opration = s.charAt(0);
switch(opration)
{
case '+':System.out.println(a+"+"+b+"="+(a+b));break;
case '-':System.out.println(a+"-"+b+"="+(a-b));break;
case '*':System.out.println(a+"*"+b+"="+(a*b));break;
case '/':System.out.println(a+"/"+b+"="+(a/b));break;
}
System.out.println("继续嘛(Y/N)?");
String ss =sc.next();
char c = ss.charAt(0);
if(c=='Y')
{
continue;
}
else{
break;
}
}
}
}
(三)编译运行情况及debug。
一开始用的idea,发现按vim的语法敲完编译一直出问题,怒而回去用vim,在修改完几个大小写错误之后,我的calculator不负众望的在vim上跑了起来。
## 3. 实验过程中遇到的问题和解决过程
- 问题1:对在idea上编程java程序的语法不熟练。
- 问题1解决方案:等下一个实验好好学一学。
- 问题2:在编程过程中出现较多的大小写、变量名称书写错误,导致编译失败。
- 问题2解决方案:在编程时小心一点。
## 其他(感悟、思考等)
不知道是vim用惯了还是怎么样,虽然现在可以用集成开发环境了,我还是会习惯性的打开vim进行一个代码的敲。不得不说vim还是很好用的,希望自己能在反复练习中早日体会到idea的强大,脱离vim。
在编写计算器时,因为王老师在上课给我们打了个样(基本可以说是把题目全做了一次),所以在编程过程中没遇到思路之类的大问题,也就是语法上卡了一会,对switch语句的挑选也是看到要求循环运行的题目要求就确定下来了,还是很感谢王老师的细致教学的,希望下次实验也能详细讲讲。
## 参考资料
- [《Java程序设计与数据结构教程(第二版)》](https://book.douban.com/subject/26851579/)
- [《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.html)