Java编程:打印图案、月份天数与数组统计

需积分: 10 4 下载量 124 浏览量 更新于2024-09-11 1 收藏 108KB DOC 举报
"Java初学者入门作业,包括打印特殊图案、根据月份计算天数和处理整数数组的求和、平均值、最大值和最小值。" 在这次Java的初次作业中,学生需要掌握和应用一些基本的编程概念和语言特性。以下是详细的知识点解析: 1. **Java程序结构**: - 学习Java程序的基本结构,包括类(class)的定义、主方法(main method)的编写以及如何执行程序。 - 理解`public class`声明一个公共类,`public static void main(String[] args)`是Java程序的入口点。 2. **循环语句**: - `for`循环:在打印图案和处理数组时会用到,例如`for(int i=1; i<=9; ++i)`,用于控制循环次数。 - `while`或`do-while`循环:虽然在这个作业中未明确使用,但它们也是Java中的基本循环结构。 3. **条件语句**: - `if-else`语句:在处理月份天数时,可能需要使用`if-else`来判断是否是闰年,以确定2月的天数。 - `switch-case`语句:根据用户输入的月份,用`switch`来输出对应月份的天数。 4. **ASCII码转换**: - 将整数转换为ASCII字符:例如`(char)65`将返回对应的ASCII字符"A",在打印图案部分会用到此技巧。 5. **数组操作**: - 定义数组:`int[] ary = new int[10];`创建一个包含10个整数的数组。 - 数组元素的访问:通过索引`ary[i]`读取或修改数组元素。 - 遍历数组:使用`for`循环遍历数组,计算最大值、最小值、平均值和总和。 6. **计算最大值、最小值、平均值和总和**: - 初始化变量,如`int max = Integer.MIN_VALUE`, `int min = Integer.MAX_VALUE`用于记录最大和最小值。 - 在遍历数组的过程中,比较当前元素与已知的最大值和最小值,更新这些变量。 - 计算总和:累加所有数组元素。 - 平均值:总和除以数组长度。 7. **命令行输入**: - 在DOS命令窗口接收用户输入:`int month = Integer.parseInt(args[0]);`从命令行参数中获取第一个整数(代表月份)。 - 对于数组,使用`Integer.parseInt(args[i])`将命令行参数转为整数并存入数组。 8. **输出控制**: - 使用`System.out.print()`和`System.out.println()`进行输出,注意空格的处理,例如`System.out.printf("")`用来打印空格。 - 使用`printf`格式化输出,例如`System.out.printf("%d", number);`可以控制输出的对齐方式。 这个作业旨在帮助初学者熟悉Java的基础语法,掌握条件控制、循环结构和数组操作,同时提升问题解决能力。通过完成这些任务,学生将对Java编程有更深入的理解。
2017-03-02 上传
实验1 类的定义、对象数组的使用 1. 定义一个学生类(Student), 属性有 1)非静态属性String studentNumber 2)非静态属性String studentName 3)非静态属性int markForMaths 4)非静态属性int markForEnglish 5)非静态属性int markForScience 方法有: 1)构造方法Student(String number, String name) 2)构造方法Student() 3)String getNumber() 4)String getName() 5)void enterMarks(int markForMaths, int markForEnglish, int markForScience) 6)int getMathsMark() 7)int getEnglishMark() 8)int getScienceMark() 9)double calculateAverage() 10)String toString() 返回学生信息,包括学号、姓名、数学成绩、英语成绩、科学成绩、平均成绩。 注意:为了保证calculateAverage返回double类型,需要把三个分数的和除以3.0,而不是3. 另外,分数的初始值是什么?如果每个分数初始值为0,会造成混淆,分数为0表示还没有输入分数,还是分数确实为0?有更好的初始值吗? 编写Student类,并且编写一个StudentTest类,对Student类进行测试。 StudentTest类运行效果如下: 请输入学生学号:2011211301 请输入学生姓名:王晓 请输入学生三门课成绩(数学,英语,科学):88,79,90 学生信息如下: 学号:2011211301 姓名:王晓 数学成绩:88 英语成绩:79 科学成绩:90 平均成绩:85.66666666666667 2.定义一个StudentList类用来存储Student对象 属性有 1)Student[] list; //list存储学生对象 2)int total; //学生总人数 方法有: 1)StudentList(int length) //length是数组长度 2)boolean add(Student stu) //增加stu到数组中,成功,返回true,否则false 3)boolean remove(int no) //删除第no个数组元素,删除成功,返回true,否则false 4)boolean remove(Student number) //删除学号为number的学生,删除成功,返回true,否则false 5)boolean isEmpty() //判断数组是否为空,若是,返回true,否则false 6)Student getItem(int no) //返回第no个学生 7)Student getItem(Student number) //返回学号为number的学生,若该生不存在,返回null。 8) int getTotal() 返回学生总人数 编写StudentList类,并且编写一个StudentListTest类,对StudentList类进行测试。 StudentListTest类运行效果: 菜单如下,请输入 1~8代表您要执行的操作: 1. 增加1个学生 2. 根据学号删除学生 3. 根据位置删除学生 4. 判断是否为空 5.根据位置返回学生 6.根据学号返回学生 7. 输出全部学生信息 8.退出程序 请输入您的操作:1 请输入学生信息: 学号:2011211301 姓名:王晓 数学成绩:88 英语成绩:79 科学成绩:90 ---目前有1个学生,信息为---: 学号:2011211301 姓名:王晓 数学成绩:88 英语成绩:79 科学成绩:90 平均成绩:85.66666666666667 请输入您的操作:1 学号:2011211311 姓名:李辉 数学成绩:80 英语成绩:79 科学成绩:93 ---目前有2个学生,信息为---: 学号:2011211301 姓名:王晓 数学成绩:88 英语成绩:79 科学成绩:90 平均成绩:85.66666666666667 姓名:李辉 数学成绩:80 英语成绩:79 科学成绩:93 平均成绩:84.0 请输入您的操作:5 请输入学生位置:10 对不起,没有对应的学生 请输入您的操作:5 请输入学生位置:2 学生信息如下: 姓名:李辉 数学成绩:80 英语成绩:79 科学成绩:93 平均成绩:84.0 请输入您的操作:3 请输入要删除第几个学生:2 删除成功 ---目前有1个学生,信息为: