实验二
题目一: 实现任意进制的某数转换为另一进制的功能
内容: 内容简单了 就是数制运算嘛。
思路:思路就是 先把任意进制转换成十进制,然后再从十进制转换成任意进制呗。。
Soga!
注意的问题就是 java有许多封装好的东西 不知道的话 写起来麻烦死了 知道的话 写起来易如反掌啊 哇塞 我就是 写了半天 纠结在了 类型转换上 后来发现 如此简单啊的啦!
源代码:
package a;
import java.util.Scanner;
public class my3 {
public static String numtochar="0123456789ABCDEFGHIJK";//我擦 刚开始像c++一样 写了连个函数
//写到最后才发现 string。index 和 string。charat两个神奇的东西 我勒个擦a
/*将任意进制整数转化为十进制整数,返回转化后的十进制整数,num为任意进制整数,binary为该整数的进制*/
static int anyBinaryToDecimal(String num,int binary)
{
int len=num.length();
int decimal_num=0;
int temp=0;
for(int i=0;i<len;i++)
{
temp*=binary;
temp+=numtochar.indexOf(num.charAt(i));
}
decimal_num=temp;
return decimal_num;
}
static String decimalToAnyBinary(int decimal,int binary)
{
String result="",r = "";//保存x进制数
int temp;
while(decimal>0)
{
temp=decimal % binary;
result+=numtochar.charAt(temp);
//System.out.println(result);
decimal=decimal/binary;
}
for(int i=0;i<result.length();i++)
r+=result.charAt(result.length()-i-1);
return r;
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
System.out.println("请输入原数及其进制以及您想转换的进制(eg: 100 10 2)");
Scanner scanner = new Scanner(System.in); // 读取输入
String s=null;
s=scanner.nextLine();
String[] str=s.split(" ");
int tax_a=Integer.parseInt(str[1]);
int tax_b=Integer.parseInt(str[2]);
int value;String r;
value=anyBinaryToDecimal(str[0],tax_a);
r=decimalToAnyBinary(value,tax_b);
System.out.println("输出数据位:"+r);
}//注释不在多 看懂就行
}
题目2:在键盘输入学生各门课成绩,统计每个学生课程数及平均成绩
内容:就是统计一下 学生的成绩数量 算个数就行啦
思路: 就是用 动态数组 实现 不过也有很多方法的 我这里偷个懒 就这样吧 教授不要在意哦 但是一样可以实现当初的功能
源代码:
package a;
import java.util.Scanner;
public class my4 {
//第二题:在键盘输入学生各门课成绩,统计每个学生课程数及平均成绩
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in); // 读取输入
System.out.println("请输入一个学生的各科成绩,用空格分开(34 56 78<回车>)");
String s=null;
s=scanner.nextLine();
String[] str=s.split(" ");
//for(String i:str)
//System.out.println(Integer.parseInt(i));
int[] grade =new int[str.length];
int sum=0,len=grade.length;
for(int t=0;t<grade.length;t++){
grade[t]=Integer.parseInt(str[t]);
sum+=grade[t];
}
double average=1.0*sum/len;
System.out.println("学生的课程数为"+len+"平均成绩为"+average);
}
}