一 Java博客作业

一、前言 1.知识点总结
第一次大作业
题型总结:BMI测算、单位转换、奇数求和、房产税费计算、角色选择、学号识别、提取二进制数值、三角判断
涉及知识点:类的使用、if else语句的使用及嵌套、for循环的使用及嵌套、强制类型转换、条件判断、字符串的提取、字符串和整型的转化、Math类的使用、一维数组的使用、变量声明、类的封装、输出语句的使用
第二次大作业
题型总结:字母与数字的转换、串口字符解析、的格式判断与内容提取
涉及知识点:类的使用、if else语句的使用及嵌套、字符串的提取、字符串和整型的转化、Math类的使用、一维数组的使用、类的封装、获取字符串长度、类的概念与调用、输出语句的使用
第三次大作业
题型总结:两点距离计算、线相关计算、三角形相关计算
涉及知识点:类的使用、if else语句的使用及嵌套、条件判断、正则表达式的学习和使用、字符串的比较、字符串的提取、字符串和整型的转化、Math类的使用、一维数组的使用、类的封装、获取字符串长度、输出语句的使用、强制数据类型转换、类的声明与使用、三角类型判断算法、方法的调用与数据返回
2.题量
第一次大作业:较多
第二次大作业:适中
第三次大作业:适中
3.难度评估
第一次大作业:简单
第二次大作业:7-1简单、7-2偏难、7-3适中
第三次大作业:困难
二、设计与分析 1.算法设计以及思路 第二次作业第二题
7-2串口字符解析(40分)
RS232是串口常用的通信协议,在异步通信模式下,串口可以一次发送5~8位数据,收发双方之间没有数据发送时线路维持高电平,相当于接收方持续收到数据“1”(称为空闲位),发送方有数据发送时,会在有效数据(5~8位,具体位数由通信双方提前设置)前加上1位起始位“0”,在有效数据之后加上1位可选的奇偶校验位和1位结束位“1” 。请编写程序,模拟串口接收处理程序,注:假定有效数据是8位,奇偶校验位采用奇校验 。
输入格式:
由0、1组成的二进制数据流 。例如:111
输出格式:
过滤掉空闲、起始、结束以及奇偶校验位之后的数据,数据之前加上序号和英文冒号 。
如有多个数据,每个数据单独一行显示 。
若数据不足11位或者输入数据全1没有起始位,则输出"null data",
若某个数据的结束符不为1,则输出“ error” 。
若某个数据奇偶校验错误,则输出“ check error” 。
若数据结束符和奇偶校验均不合格,输出“ error” 。
如:11011或 。
例如:
1:
2:
3: error
类图:
大概思路:
把串口每次发送的数据看作一个对象,对其进行合法判断、数据提取、最后进行类型判断
若数据不足11位或者输入数据全1没有起始位,则输出"null data",
若数据的结束符不为1,则输出“ error” 。
若数据奇偶校验错误,则输出“ check error” 。
若数据结束符和奇偶校验均不合格,输出“ error” 。
源码(具体代码分析写在注释里):
import java.util.Scanner;public class Main {public static void main(String []args) {Fn code=new Fn();// 每个串口都看作一个对象,但本题只判断一个,所以这里只new一次code.judge_type();}}class Fn{Scanner s =newScanner(System.in);String com = s.next();//获取串口int length = com.length();//计算字符串长度String a = new String();int tem = length;void judge_type() {if(length<11||all1())//如果小于11,不满足一个串口的基本位数,或者全是1,找不到起始位0,都输出空串口System.out.print("null data");else{int odd = 0;int id=0;int j=0;boolean judge =true;for(int i=0;i