20144303 《Java程序设计》第一次实验实验报告

北京电子科技学院(besti)实验报告

课程:java程序设计

班级:1453

指导教师:娄嘉鹏

实验日期:2016.04.08

实验名称:java开发环境的熟悉(linux + eclipse)

实验内容:

1.使用JDK编译、运行简单的Java程序;

2.使用Eclipse 编辑、编译、运行、调试Java程序。

实验目的与要求:

1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;

2.完成实验、撰写实验报告,实验报告模板见QQ群,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等);

3.使用JDK和IDE编译、运行简单的Java程序: 练习题目: 实现学生成绩管理功能,并进行测试

代码及详解:

package qwe;

import java.util.*;
public class Test {//主程序
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println("------请定义学生的人数:------");
Student[] stuArr = new Student[in.nextInt()];
Admin adminStu = new Admin();
while(true){
System.out.println("-----请选择你要执行的功能-----");
System.out.println("01:添加一个学生");
System.out.println("02:查找一个学生");
System.out.println("03:根据学生编号更新学生基本信息");
System.out.println("04:根据编号输入学生各门成绩");
System.out.println("05:根据某门成绩进行排序");
System.out.println("06:根据总分进行排序");
System.out.println("07:退出系统"); String number = in.next();
if(number.equals("01")){
System.out.println("请输入学生的编号:");
int num = in.nextInt();
System.out.println("请输入学生的姓名:");
String name = in.next();
System.out.println("请输入学生的年龄:");
int age = in.nextInt();
adminStu.Create(num,name,age,stuArr);//添加学生
}else if(number.equals("02")){
System.out.println("请输入学生的编号进行查找:");
int num = in.nextInt();
adminStu.find(num,stuArr);//查找学生
}else if(number.equals("03")){
System.out.println("请输入学生的编号:");
int num = in.nextInt();
System.out.println("请输入学生的姓名:");
String name = in.next();
System.out.println("请输入学生的年龄:");
int age = in.nextInt();
adminStu.update(num,name,age,stuArr);//更新学生基本信息
}else if(number.equals("04")){
System.out.println("执行输入成绩操作");
System.out.println("请输入学生编号:");
int num = in.nextInt();
adminStu.input(num, stuArr);//输入成绩
}else if(number.equals("05")){
System.out.println("执行根据某科目成绩排序操作");
System.out.println("请选择需要排序的科目名(1.java 2.math):");
int num = in.nextInt();
adminStu.courseSort(num,stuArr);//按科目排序
}else if(number.equals("06")){
System.out.println("执行根据总分排序操作");
adminStu.sumSort(stuArr);//按总分排序
}else if(number.equals("07")){
System.out.println("程序已退出");
//break;
System.exit(0);
}
}
}
} package qwe; public class Student {
private int num;
private String name;
private int age;
private int java;
private int math;
private int sum;
private int avg; public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getJava() {
return java;
}
public void setJava(int java) {
this.java = java;
}
public int getmath() {
return math;
}
public void setmath(int math) {
this.math = math;
}
public int getSum() {
return sum;
}
public void setSum() {
this.sum = this.java+this.math;
}
public int getAvg() {
return avg;
}
public void setAvg() {
this.avg = this.sum/2;
}
public String toString(){
String str = "\t"+ this.num+"\t"+ this.name+"\t"+ this.age+"\t"
+ this.java+"\t"+ this.math +"\t"+ this.sum+"\t"+ this.avg;
return str;
}
} package qwe; import java.util.*;
public class Admin {//用来管理学生的一个类
String msg = "\t编号\t姓名\t年龄\tjava\tmath\t总分\t平均分";
public void print(Student[] arr){//刷新数据的方法
System.out.println(msg);
for(int i=0;i<arr.length;i++){
if(arr[i]!=null){
arr[i].setSum();
arr[i].setAvg();
System.out.println(arr[i]);
}
}
}
public boolean exist(int num,Student stu){//判断学生是否存在的方法
if(stu!=null){
if(stu.getNum()==num){
return true;
}else{
return false;
}
}
return false;
}
public void Create(int num,String name,int age,Student[] arr){//添加学生的方法
Student stu = new Student();
stu.setNum(num);
stu.setName(name);
stu.setAge(age);
int i = this.setIndex(arr);
if(i==99999){
System.out.println("学生人数已添满,不能再添加了");
}else{
arr[i]=stu;
}
this.print(arr);
}
public int setIndex(Student[] arr){//返回数组为空的下标
for(int i=0;i<arr.length;i++){
if(arr[i]==null){
return i;
}
}
return 99999;
}
public void find(int num,Student[] arr){//查询学生的方法
for(int i=0;i<arr.length;i++){//判断学生是否存在
if(this.exist(num,arr[i])==true){
System.out.println(msg);
System.out.println(arr[i]);
return;
}
}
System.out.println("没有这个学生的存在");
}
public void update(int num,String name,int age,Student[] arr){//更新学生基本信息的方法
for(int i=0;i<arr.length;i++){
if(this.exist(num, arr[i])==true){
arr[i].setName(name);
arr[i].setAge(age);
System.out.println("更新学生信息成功!");
this.print(arr);
return;
}
}
System.out.println("没找到这个学生更新信息失败");
}
public void input(int num,Student[] arr){//输入学生成绩的方法
for(int i=0;i<arr.length;i++){
if(this.exist(num, arr[i])){
Scanner in = new Scanner(System.in);
System.out.println("请输入"+arr[i].getName()+"java的成绩:");
if(in.hasNextInt()){//输入非整形数则不执行
arr[i].setJava(in.nextInt());
}else{
return;
}
System.out.println("请输入"+arr[i].getName()+"math的成绩:");
if(in.hasNextInt()){
arr[i].setmath(in.nextInt());
}else{
return;
}
this.print(arr);
return;
}
}
}
public void courseSort(int num,Student[] arr){//根据指定科目排序的方法
if(num==1){
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]!=null&&arr[j]!=null){
if(arr[i].getJava()<arr[j].getJava()){
Student t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
}
}else if(num==2){
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]!=null&&arr[j]!=null){
if(arr[i].getmath()<arr[j].getmath()){
Student t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
}
}
this.print(arr);
}
public void sumSort(Student[] arr){//根据总分排序的方法
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]!=null&&arr[j]!=null){
if(arr[i].getSum()<arr[j].getSum()){
Student t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
}
}
this.print(arr);
}
}

运行结果截图:





心得体会:

刚开始把全部代码放在同一个class里面,程序不能运行。之后,把他们分为三个程序,放在不同的class里面就可以了。如图:

这次的学生成绩管理系统代码看起来十分的复杂,但是代码之间存在着规律和相似的地方,仔细看完之后还是可以理解。

20144303 《Java程序设计》第一次实验实验报告的更多相关文章

  1. 《Java程序设计》课程实验要求

    目录 <Java程序设计>课程实验要求 注册实验楼账号 实验一 Java开发环境的熟悉 实验二<Java面向对象程序设计> 实验三 <敏捷开发与XP实践> 实验四 ...

  2. #《JAVA程序设计》 20155214 实验五 网络编程与安全

    <JAVA程序设计> 20155214 实验五 网络编程与安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 要求一 结对实现中缀表达式转后缀 ...

  3. 《JAVA程序设计》 20155208 实验四 Android程序设计

    <JAVA程序设计> 20155208 实验四 Android程序设计 实验一: 实验要求: Android Stuidio的安装测试: 参考<Java和Android开发学习指南( ...

  4. 《JAVA程序设计》20155214 实验一 Java开发环境的熟悉(Linux + IDEA)

    <JAVA程序设计> 实验一 Java开发环境的熟悉(Linux + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...

  5. java程序设计第二次实验报告

    北京电子科技学院(BESTI) 实验报告 课程:数据结构    班级:1352    姓名:何伟钦     学号:20135223 成绩:            指导教师:娄嘉鹏      实验日期: ...

  6. Java程序设计第一次作业

    虽说这学期Java比上学期的C语言要简单些许,但是初次面对java程序,还是有点难度的.

  7. java 程序设计第一次作业

    public class Join{ public static void main(String args[]){ String s1=new String("hello"); ...

  8. 20155218 2016-2017-2《Java程序设计》课程总结

    20155218 2016-2017-2<Java程序设计>课程总结 目录 每周作业链接汇总 实验报告链接汇总 博客中的经验与收获 代码托管 课堂项目实践 课程收获与不足 给开学初的你和学 ...

  9. 20145330《Java程序设计》第一次实验报告

    20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...

随机推荐

  1. angular4 form 表单中 input输入框的disabled属性

    直接加[disabled]="isDisabled"属性的话,出现报错 根据提示,做如下修改 private isEdit: boolean = true; private isD ...

  2. chrome/FF 解析遇到 { 行为一致,返回不一致

    测试的时候,发现一个问题,FF下: chrome 下: 你会发现,FF 在解析一直到返回的时候,都是把 {x:1} 当做一个语句块去解析的,而 chrome 在返回的时候返回了对象,把 {x:1} 当 ...

  3. Struts文件下载(静态)

    前言:在实际的开发中,我们可能需要动态下载和静态下载, 动态下载:例如我上传了一个文件,你想下载,那就必须动态生成下载链接,因为我服务器一开始是不知道我上传的东西是什么,放在那里, 静态下载:比如一些 ...

  4. ORACLE内存结构:PGA And UGA,ORACLE用户进程、服务器进程

    执行一个SQL语句 执行查询语句的过程: 用户进程执行一个查询语句如select * from emp where empno=7839 用户进程和服务器进程建立连接,把改用户进程的信息存储到PGA的 ...

  5. 1.引入jQuery

    http://libs.baidu.com/jquery/2.1.4/jquery.js

  6. [报错]编译报错:clang: error: linker command failed with exit code 1及duplicate symbol xxxx in错误解决方法之一

    今天添加了一个新类(包括m,h,xib文件),还没有调用,—编译遇到如下错误,根据错误提示, duplicate symbol param1 in: /Users/xxxx/Library/Devel ...

  7. python(五)常用模块学习

    版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明. https://blog.csdn.net/fgf00/article/details/52357 ...

  8. leadcode 541. Reverse String II

    package leadcode; /** * 541. Reverse String II * Easy * 199 * 575 * * * Given a string and an intege ...

  9. Clairewd’s message--hdu4300(Next数组的运用)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4300 题意就是给你26的字母的加密方式,然后又给了一个串s1是包含加密后的和没有加密的但是没有加密的可 ...

  10. js小数四舍五入,保留两位小数

    直接用用number.toFixed(2)即可 <template> <section class="p-10"> <h1> {{ number ...