桂林理工大学java实验

2024-05-05

桂林理工大学java实验(共8篇)

篇1:桂林理工大学java实验

Henan University of Technology Experiment’s Report

班级

计科1201

姓名:

学号

201216010506

成绩

实验4—— Java的输入机制

I 实验目的

(1).Java如何操作文件

(2).了解Java中的输入机制;如何从控制台输入,如何用InputStream和Reader显示文件中的内容。II 实验内容

(1).递归遍历目录,显示其中的文件名。

a.源代码

b.package com.fileTest;c.d.import java.io.File;e.f.public class BianLi { // 遍历目录,显示文件的名字 g.h./** i.* @param args j.*/

k.public static void main(String[] args){ l.m.File f = new File(“D:/360安全浏览器下载”);//创建一个File对象 n.listChids(f);//调用 一个列出目录的方法 o.p.} q.r.s.t.public static void listChids(File f){ u.v.System.out.println(f.getName());w.x.if(!f.isDirectory()){ //如果 不是目录,退出

y.z.return;aa.}else{

Henan University of Technology Experiment’s Report

bb.cc.File[] fs = f.listFiles();dd.for(int i=0;i

(2).用InputStream的子类读入一个英文文本文件,并用System.out显示其中的内容。

a.源代码

b.package com.fileTest;c.d.import java.io.*;e.f.public class Fileinput { g.h./** i.* @param args j.*/

k.public static void main(String[] args)throws IOException l.{ m.o.p.q.r.s.} t.// TODO Auto-generated method stub

String file = “src/abc.java”;// 英文本文件 Fileinput d = new Fileinput();//实列化对象 d.readFile(file);// 调用readFile 方法 n.Henan University of Technology Experiment’s Report

u.public void readFile(String fileName)throws IOException{ v.w.x.y.z.aa.bb.cc.dd.ee.ff.gg.hh.ii.jj.kk.ll.mm.nn.} oo.pp.} InputStream in = new FileInputStream(fileName);// 创建字节流对象

// TODO Auto-generated method stub try{

} int b = 0;while(true){

} if(in!=null)in.close();//关闭流 b = in.read();//得到内容判断是否结束 if(b==-1)

break;System.out.print((char)b);// 得到内容进行处理,转换成字符型 输出

}finally{ qq.运行截图

rr.(3).用Reader的子类读入一个字符文件,并用System.out显示其中的内容。1源代码

package com.fileTest;

import java.io.*;

Henan University of Technology Experiment’s Report

public class FileReaderBy {

} public void readFile(String filename)throws IOException {

} // TODO Auto-generated method stub BufferedReader b = null;try{

String line = null;//得到内容并判断是否到流的末尾 b =new BufferedReader(new FileReader(filename),8*1024);/** * @param args * @throws IOException * */

public static void main(String[] args)throws IOException {

} // TODO Auto-generated method stub

FileReaderBy a = new FileReaderBy();//创建一个对象

a.readFile(“src/fly.txt”);//调用方法读入字符文件

while((line = b.readLine())!=null){ //得到的内容进行处理

System.out.println(line);// 输出结果

} } finally {

} if(b!=null)b.close();//关闭流

运行截图

Henan University of Technology Experiment’s Report

(4).从控制台输入Student类的信息,包括学号、姓名、年龄,如输入错误,提示用户重新输入。创建该类,并在toString方法中输入个人信息。1源

package FileInput;

import com.java.ErrorException;

public class Students { // 学号

private long num;//姓名

private String name;//年龄

private int age;public Students(){ } public void setId(long num){ this.num = num;} public void setName(String name){ } public void setAge(int age)throws ErrorException { if(age<0||age>120)this.age= age;this.name = name;

throw new ErrorException();

Henan University of Technology Experiment’s Report

} }

@ Override public String toString(){ } return num+“ ”+name+“ ”+age;//返回个人信息

代码

public class ByScanner {

/** * @param args */

public static void main(String[] args){ // TODO Auto-generated method stub

Students s = new Students();Scanner sc = new Scanner(System.in);int id =0;String name=null;;int age =0;String len = null;

while(true){

try{ System.out.println(“请输入学号”);len= sc.nextLine();id = Integer.parseInt(len);

s.setId(id);break;} catch(Exception e){ sc.nextLine();System.out.println(“ Input error,please innput again!”);

} } while(true){ try{ System.out.println(“请输入姓名”);name = sc.next();s.setName(name);break;

Henan University of Technology Experiment’s Report

} catch(Exception e){ sc.nextLine();System.out.println(“ Input error,please innput again”);} } while(true){ try{ System.out.println(“请输入年龄”);

age = sc.nextInt();s.setAge(age);break;} catch(Exception e){ sc.nextLine();System.out.println(“ Input error,please innput again”);} } System.out.println(“该学生的信息为:”+ s.toString());

} } 运行截图

(5).增加(1)中的功能,显示文件的大小,目录的话显示其中包括的所有文件的大小。注意显示文件大小的单位(KB或MB)。

a.源代码

b.package filebianli;c.Henan University of Technology Experiment’s Report

d.e.import java.text.DecimalFormat;f.import java.io.*;g.public class Bianli h.{ i.public long getFileSizes(File f)throws Exception{//取得文件大小 j.long s=0;k.if(f.exists()){ l.FileInputStream fis= new FileInputStream(f);m.s= fis.available();n.} else { o.f.createNewFile();p.System.out.println(“文件不存在”);q.} r.return s;s.} t.// 递归

u.public long getFileSize(File f)throws Exception//取得文件夹大小 v.{ w.long size = 0;x.File flist[] = f.listFiles();y.for(int i = 0;i < flist.length;i++)z.{ aa.if(flist[i].isDirectory())bb.{ cc.size = size + getFileSize(flist[i]);dd.} else ee.{ ff.size = size + flist[i].length();gg.} hh.} ii.return size;jj.} kk.public String FormetFileSize(long fileS){//转换文件大小 ll.DecimalFormat df = new DecimalFormat(“#.00”);mm.String fileSizeString = “";nn.if(fileS < 1024){ oo.fileSizeString = df.format((double)fileS)+ ”B“;pp.} else if(fileS < 1048576){ qq.fileSizeString = df.format((double)fileS / 1024)+ ”K“;rr.} else if(fileS < 1073741824){ ss.fileSizeString = df.format((double)fileS / 1048576)+ ”M“;tt.} else { uu.fileSizeString = df.format((double)fileS / 1073741824)+

Henan University of Technology Experiment’s Report

”G“;vv.} ww.return fileSizeString;xx.} yy.zz.public long getlist(File f){//归求取目录文件个数 aaa.bbb.ccc.ddd.eee.fff.ggg.hhh.iii.jjj.kkk.lll.mmm.nnn.ooo.ppp.qqq.rrr.sss.ttt.uuu.vvv.www.xxx.yyy.zzz.aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.System.out.println(f.getName());long size = 0;File flist[] = f.listFiles();size=flist.length;for(int i = 0;i < flist.length;i++){ if(flist[i].isDirectory()){ size = size + getlist(flist[i]);size--;} } return size;}

public static void main(String args[]){ Bianli g = new Bianli();try { long l = 0;

File f = new File(”D:/360安全浏览器下载“);if(f.isDirectory()){ //如果路径是文件夹的时候 System.out.println(”文件个数 “ + System.out.println(”目录“);l = g.getFileSize(f);System.out.println(”目录的大小为:“ + } else { System.out.println(” 文件个数 1“);System.out.println(”文件“);l = g.getFileSizes(f);System.out.println(”文件的大小为:“ + } g.getlist(f));g.FormetFileSize(l));g.FormetFileSize(l));

Henan University of Technology Experiment’s Report

jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp.qqqq.} catch(Exception e){ e.printStackTrace();} } }

rrrr.运行截图

ssss.tttt.III 在本次实验中的问题和解决方法

那个第四题 当输入学号如果是0开头,那输出结果就会被舍弃因为不是一个数,如果非要输入0开头的学号,还没找到解决的办法,解决了那个输学号空格问题,解决年龄超过一定数和负数问题,文件显示大小出现的问题,看了下博客园的写的。IV心得体会

Java 博大进深,不懂的很多的,继续努力学习吧

#include #include #include #include double wtime(void);int main(int arc , char ** arv){

int stepLength = 0;

Henan University of Technology Experiment’s Report

int j = 0;

while(arv[1][j]!= 0){

stepLength = stepLength * 10 +(arv[1][j]timeStart));free(arr);return 0;} double wtime(void){

double now_time;struct timeval etstart;struct timezone tzp;if(gettimeofday(&etstart , &tzp)==-1){ perror(”not successful!n");

} now_time =((double)etstart.tv_sec)+((double)etstart.tv_usec)/1000000;return now_time;}

篇2:桂林理工大学java实验

一、建设目的及内容

本项目的实施,旨在鼓励和支持各有关单位进行人才培养模式方面的综合改革,在教学理念、管理机制等方面进行创新,努力形成有利于多样化创新人才成长的培养体系,满足国家对社会紧缺的复合型拔尖创新人才和应用人才的需要。本项目重点支持高校在教学内容、课程体系、实践环节、教学运行和管理机制、教学组织形式等多方面进行人才培养模式的综合改革,形成一批创新人才培养基地。

二、申报条件

在人才培养模式方面进行综合性配套改革,突破旧有模式,具有较强的创新性;培养目标明确;对本领域复合型拔尖创新人才或应用型人才培养具有较为深刻的认识和理解,有明确的工作思路和解决问题的方法;具备较为完整和独特的人才培养方案,创新点突出;学校重视,拥有较为完善的实施保障体系;人才培养预期效果好,对本领域复合型拔尖创新人才或应用型人才培养模式改革具有示范带动作用;以一定的教学组织形式为建设单位进行建设,并具有两年以上的先期建设基础。

三、申报程序

篇3:桂林理工大学java实验

关键词:Java语言,实验课程,教学方法改革

1 课程概述

由于Java语言具有的平台无关性、安全机制、高可靠性、多线程和内嵌网络支持等特性,许多高校计算机及其相关专业都将Java语言作为程序设计的核心课程。Java程序设计是一门实践性很强的课程,上机实验是学好程序设计的重要环节。Java语言的教学是在C基础之上,学生已经有了一定的程序设计基础。Java语言实验课程相比C语言实验课程,应该引入案例、项目教学,使学生可以开发中小型的项目,为学习后续的Jsp课程、J2EE课程打下开发基础。本文针对实验课程存在的问题提出相应的改革措施,目的在于提高教学质量,培养综合素质高的创造性人才。

2 实验教学环节的现状

Java语言知识要通过大量的实际编程才能很好地理解、掌握。通过上机调试,学生在编程的过程中发现问题,并思考寻求解决方法,动手、动脑,通过自己的努力改出的正确程序一定印象深刻,又富有成就感,提高了学生的信心。可以说实验教学是该门课程教学是否成功的关键所在。

但是,目前实验教学环节还存在很多不尽人意的地方:

(1)学生学习的被动性。部分同学上课不听课,下课不做实验准备,上机操作时,不知从何处下手,完不成预定的实验任务。再者,不愿意动脑筋,等着老师来给调试程序。学生缺乏认真学习的态度和主动学习的精神,使实验教学的成效大打折扣。

(2)课内实验学时有限,常常是下机时间到,程序还没有调试出来,课后又不会再去修改。日积月累,做的都是“半拉子”程序。另一方面,课外延伸没有很好地开展和管理,学生没有得到充分的训练和实践。

(3)由于程序的可复制性,通过复制他人程序来应付教师是一种普遍现象。学生通过机房局域网共享程序,经常,一个班学生交上来的程序都是一个版本。教师很难根据程序和实验报告确定实验教学的效果。

3 实验教学方式改革

3.1按实验类别选择教学方式

每次上实验课,教师必须准备好实验指导书或者采用实验指导教材, 实验指导书在培养学生解决问题的思维方式和软件开发模式方面起着极其重要的作用。纵观多种实验指导教材,在实验的环境、目的、要求与内容方面一般都有较好的阐述,但对实验步骤的描述,有的根本就没有。而这恰恰是学生能否完成好实验的关键。

实验类型可以分为验证性实验、演示性实验、设计性实验和综合性实验。对于不同类型,可以采用不同的教学方式。

(1)对于验证性实验,学生按照实验指导书描述的步骤进行实验,通过实验结果验证实验原理,逐步理解理论知识,逐步提高解决问题的能力。

(2)对于演示性实验,教师可以制作视频进行讲解,演示操作步骤,比如,讲解Eclipse工具的安装、配置、使用,笔者的方法是把安装过程、环境的配置以及使用工具开发一个简单实例的过程完整录制下来,供学生上机时参考。

(3)对于设计性实验,先引导学生分析实验题目,使学生有一个大致的解题思路,比如学习对象的创建时,先给学生分析类和对象的关系,先有类后才有对象,类是模具,对象是由模具生产出来的一个个铸件。那么学生就明确了这个先后顺序,先要创建类,然后再由类创建对象。

(4)对于综合性实验,可以分小组进行,让学生相互探讨。同时,教师可以事先开发一个实例系统,演示给学生看,对重点和难点技术进行讲解。学生随时运行实例系统,参照实例,有条不紊地完成综合系统开发实验。有了系统运行演示,学生实验时目标更明确。看完演示后,学生们跃跃欲试,希望自己也能设计出同样的系统来,极大地激发了同学的好奇心和求知欲,化被动为主动,积极完成实验任务。比如,介绍GUI界面,计算器就是一个典型的案例。该实例可以分为界面的布局和事件触发的处理这两大块。

3.2合理布置上机题目

课内实验上机时间较少,比如54学时的课程,最多18学时实验。平时的上机任务力求短小,着重突出某个知识点,上机题目力求学生能在上机时间内完成,这类实验以小题目为主,为每个学生必做题。如果题目过大过难,那么学生很难在有限的上机课时间内完成,打击学生的学习积极性,使学生失去信心和耐心。

3.3布置加分题

在基本概念知识掌握后,更需要提高应用能力。实验内容按难度分成必做题和选做题两个部分。所有学生都必须完成必做题,对部分能力较强、学有余力的学生,则进一步要求他们完成难度较大的选做题。选做题可以承诺为加分题,做出来的学生该门课程的成绩可以加分。

加分题以任务的形式给出基本需求,需要学生自己理解和分析。主要是为了提高学生的理解和分析的能力,并提供给学生比较大的发挥空间。学生可以凭自己的能力,以不同的形式完成任务。这是对学生的一种全面综合训练,是与课堂听讲、自学和联系相辅相成的一个教学环节。

以笔者在教学中的应用,发现加分题目对学生的吸引力很大,学生们探讨分析题目异常活跃。同时,这也给了学习较好的同学提高、完善知识的机会。

3.4利用辅助教学工具

教师在上机时,可以充分利用多媒体教学环境。笔者所在学校机房安装了控制软件,“教师机”可以远程控制每一台“学生机”。教师在实验开始前,可以用“教师机”分发作业和实验指导书。

另外,教师可以将讲课和实验结合起来,教师边讲解边演示, “教师机”的屏幕图像内容同步广播到局域网的“学生机”上,学生可以实时观看教师的演示。教师演示结束后,学生及时进行操作练习。在实验中,“学生机”有任何问题都可以“举手”询问“教师机”,还可以参加讨论组进行讨论,实时、互动使得实验过程更加高效。

上机结束时,通过文件传输功能,实现学生作业的网上提交,从而督促学生在规定时间内完成上机题目。

参考文献

[1]顾和明.Java程序设计教学改革与实践[J].福建电脑,2009(7).

[2]李桂玲.Java语言课程教学改革的探索与实践[J].科技创新导报,2009(13).

[3]张刚.Java程序设计课程建设的研究与实践[J].计算机教育,2009(13).

篇4:浅谈Java语言实验教学

关键词:Java;实验教学;教学方法

中图分类号:TP312.1-4 文献标识码:A 文章编号:1674-7712 (2014) 18-0000-01

Java语言作为一门面向对象的编程语言,已经成为高校的一门必修课程,在进行Java语言的教学过程中,理论教学面向全体学生,主要采用教师课堂讲解(讲解基本语法,知识内容,编程技巧,学生随堂练习,教师边讲边操作),学生互动的授课方式,让学生掌握基础知识。而实验教学必须辅以实训实习和课程设计来提升教学的深度和广度,让学生将所学理论知识通过实验进行深化,加深理论知识的掌握,同时也锻炼了自己的实践操作能力。在Java语言的整个实验教学过程中,教师要根据学生的实际能力,采用以学生为主体、教师为主导、逐步引导、启发式的教学方法,充分发挥学生自主学习的能力。采用“项目驱动,案例教学,一体化课堂”的教学模式,让学生多进行上机演练,让学生通过动手练习发现问题、提出疑问,首先自己思考解决问题,解决不了再找教师帮助,根据学生提出的问题教师进行综合答疑,最后根据实验过程进行全面总结。这种方法已在本校的实践教学中进行应用,取得了较好的效果。

一、教师需做必要的实验准备

首先,应该充分了解教学大纲的内容,因为教学大纲是教师进行教学的指导棒,它对于理论教学有指导的作用,并且,对于实验教学也有一定的指导意义。也就是说教学大纲无论是理论教学还是实验都是非常重要的。如果要想做好实验前的准备事项,必须充分掌握教学大纲中涉及到的知识点。详细说来,应该设计出实验题目,实验题目要满足两个要求,第一个要求,学生在实验前必须能够掌握必要的基础知识,以便为下一步的学习打下一定的基础。第二个要求,设计的题目要有深度,为开发实用程序提供可能。

其次,作为教师,应该在实验的教学之前备课,备课主要包括实验内容的确定,教学目的的确定。在实验课以前,必须要让学生清楚的知道每次实验课都要做什么、学什么;除此之外,实验内容的设计也是非常重要的,因为实验内容必须围绕大纲,内容必须紧靠大纲,必须使得学生充分了解教学大纲中的重点和难点。另外,作为一个教师,必须在实验课上课前提前把给学生做的题目做一遍以便做到心中有数,在做题过程当中,对于不同的题目难易系数也要做到心中有数,以便学生在做题过程当中遇到问题时能够及时帮助其解决,这样能够节省课堂时间。因为Java的实验性很强,多联系能发现很多问题。在开始上课之前教师还要对实验室机房的机器进行调试,确保机器和软件都能正常运行。

最后,教师应该了解学生状态,做到因材施教。因材施教是教学中非常重要的原则,如果想上好计算机Java语言实验课,这是一个的重要前提条件。不同学生的实际情况不同,有的同学喜欢编程,并且具有一定的编程基础(其他语言),但是,有的同学对编程知识了解的较少,甚至一无所知,这就需要教师在教学过程中采用因材施教的方法,而不能采用填鸭式的一鞭子赶,也就是说,在教学中要避免注入式教学,采用启发性教学。应该启发学生学习Java,让学习的学习动机变成内部动机,使得学生主动学习,主动思考如何解决问题。可以根据学生的情况,将学生分组进行教学,编程基础较好的同学可以去设计一些小项目做一下,基础一般的同学可以联系相对难的题目,基础较差的同学需要巩固基础,多加练习,总结经验,为进一步学习做准备。

二、教师的实验教学方法

对于编程语言的初学者来说,因为Java语言是一门面向对象的课程,所以对于学生而言是相当难理解的。他们缺少编程的思想和模式,编程对学生而言就是新鲜的。所以,在实验课要指导学生在学习过程中逐步建立编程理念和编程模型,要比让学生机械的把程序敲入电脑,查看程序结果修改程序重要的多。因此如何通过实验课提高学生对Java语言的学习兴趣,如何建立编程思想才是教师上实验课应该考虑的重要内容。具体的讲课过程如下:首先简要复习一下理论上所学的知识,加深学生对Java理论知识重点和难点的理解,实验操作需要有扎实的理论知识作基础,只有深入透彻的理解了理论知识才能上好实验课;其次让学生进行预习,针对学生遇到的不好理解,不好掌握的问题,教师要进行重点详细的讲解,然后再针对实验教学计划进行实验课的教学。教师应该布置比较有综合性的题目,将题目用到的重点知识进行讲解,引导学生思考解题思路,留给学生足够的时间自己思考,自己练习,在这其间老师可以进行指导,学生遇到问题,引导学生进行解决,不仅可以加深学生对基本知识的理解,还可以培养学生的编程思路。

三、让学生动手,强化实践环节

当学生掌握了一定的Java编程基础知识以后,学生缺少的是实际的开发经验和全面应用Java技术的能力。该能力可以通过实际项目来锻炼提升,首先对所学知识进行巩固复习,然后通过做项目来获取实际的开发经验,尽快达到实际锻炼的要求。比较典型的实验项目有纸牌游戏,在线购物系统,图书馆系统等,需要学生自己进行课题设计。学生可以几个人一组完成一个课题,每个课题都要有新穎性,在设计性实验中,为了使得学生充分了解自己的进展,把每个作业分成几大块,规定每一个学时中应完成的内容,给出每个块要完成的功能,并给出详细描述,要求学生编写相应代码。学生在实际项目的开发中,不可避免的会遇到各种问题,这就需要教师在教室内巡视,学生一旦遇到问题,教师要给学生进行讲解指导,对于普遍性问题,需要进行归纳总结,统一讲解。这种方法比较符合学生的现状,在实际教学中取得了教的效果,比较值得推广。

四、结束语

Java语言教学重点培养学生面向对象的编程思想和实际的应用开发能力,注重培养学生自主学习能力和独立思考能力,独立解决问题能力,为更深入的学习打基础,教学过程中要采用多媒体,并且引入项目驱动。以上是对Java教学问题的一点简单概述,提出了自己的观点和意见,并实际应用于Java教学,取得了很好的效果。

参考文献:

[1]耿祥义,张跃平.Java 2实用教程(3版)[M].北京:清华大学出版社,2006:95.

篇5:java实验4

流、文件及基于文本的应用

一、实验目的

1)理解数据流的概念。2)理解Java流的层次结构。3)理解并掌握文件的读写操作方法。

二、实验内容

1)编写一个java Application程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。

四、实验原理

1)字节流和字符流

Java的输入/输出流中,根据它们的数据类型,主要可分为两类:字符流(Character Stream)和字节流(Btye Stream)。(1)字符流

字符流的输入/输出数据是字符码,即Unicode字符。字符流有两个基本类:Reader类和Writer类。Reader类用于处理字符输入流,Writer类用于处理字符输出流。(2)字节流

字节流是按字节读/写二进制数据。字节流有两个基本的类:InputStream类和OutputStream类。InputStream类用于处理字节输入流,OutputStream类用于处理字节输出流。2)节点流和处理流

按照流是否直接与特定的地方(如磁盘、内存等)相连,分为节点流与处理流。(1)节点流:可以从或者向一个特定的地方(节点)读写数据。如文件流FileReader。(2)处理流:是对一个已经存在的流的连接和封装,通过所封装的流的功能调用实现数据读、写功能。处理流也称过滤流,如缓冲处理流BufferedReader。

3)文件字节流

(1)文件字节输入流

FileInputStream(文件字节输入流)主要用于文件的输入,通过该类创建的对象可以从文件中读数据。FileInputStream类提供的常用方法有:

FileInputStream(String name)throws FileNotFoundException 创建一个关联到实际文件的文件字节输入流,name指定了要关联到的文件的路径名。如果该文件不存在或是不能被打开,将抛出一个FileNotFoundException异常。FileInputStream(File file)throws FileNotFoundException 创建一个关联到实际文件的文件字节输入流,file是一个文件对象。如果该文件不存在或是不能被打开,将抛出一个FileNotFoundException异常(2)文件字节输出流

FileOutputStream(文件字节输出流)主要用于文件的输出,通过该类创建的对象可以往文件中写数据。FileOutputStream类提供的常用方法有: FileOutputStream(String name)throws FileNotFoundException FileOutputStream(File file)throws FileNotFoundException FileOutputStream(String name, boolean append)throws FileNotFoundException FileOutputStream(File file, boolean append)throws FileNotFoundException 4)字符文件流

FileReader用于文件的输入,该类以字符流的方式从文件中读数据。FileReader类提供的常用方法有:

FileReader(String name)throws FileNotFoundException FileReader(File file)throws FileNotFoundException FileWriter用于文件的输出,该类以字符流的方式往文件中写数据。FileWriter类提供的常用方法有:

FileWriter(String name)throws FileNotFoundException FileWriter(String name, boolean append)throws FileNotFoundException FileWriter(File file, boolean append)throws FileNotFoundException 5)Java Application命令行参数

Java Application是用命令行来启动执行的,命令行参数就成为向java application传入数据的常用方式。在启动java应用程序时可以一次性的向应用程序中传递0到多个参数。格式为: java 类名 参数1 参数2 …

参数间用空格隔开,如果参数本身有空格,则要用一对双引号引起来。命令行参数被系

统以String数组的方式传递给main方法,由参数args接收。

六、思考题

1)从一个文本文件Student.txt中读入30个学生的姓名、专业、班级、java成绩,并实现如下功能

(1)显示所有学生的成绩信息;

(2)统计各个班级的最高分、最低分和平均分,并将结果写入另外一个文件StudentTj.txt;

(3)将所有学生信息写入Access数据库,数据库自己建立。(可选)源程序:

import java.io.*;import java.util.*;public class MaxMinClass {

} static int maxint(int data[],int n){

{

}

return h;static int minint(int data[],int n){

{

if(data[i]

{

}

h=i;int h=0;

for(int i=0;i

if(data[i]>data[h])

{

}

h=i;int h=0;

for(int i=0;i

}

}

return h;public static void main(String args[]){

} String s=“";int i=0;int data[]=new int[10];System.out.println(”请输入10个整数,以空格作为分隔符:“);try {

} catch(IOException e){ } System.out.println(”你已经输入的10个整数为:“+s);StringTokenizer st=new StringTokenizer(s);while(st.hasMoreTokens()){

} System.out.println(”十个数中的最大的数为:“+data[maxint(data,10)]);System.out.println(”十个数中的最大的数为:“+data[minint(data,10)]);data[i]=Integer.parseInt(st.nextToken());i++;BufferedReader in=new BufferedReader(new InputStreamReader(System.in));s=in.readLine();

}

import java.io.*;import java.util.*;class MaxMinClass {

}

}

static float average(float data[],int n){

{

h+=data[i];

} float h=0;

for(int i=0;i

{

}

return h;

if(data[i]

{

}

h=i;int h=0;

for(int i=0;i

int maxint(float data[],int n){

{

}

return h;

if(data[i]>data[h])

{

}

h=i;int h=0;

for(int i=0;i

h=h/n;

} class Student {

} public class TestFile {

static String ToString(float a,float b,float c){

} public static void main(String args[])throws Exception { File f=new File(”F:Student.txt“);String data[]=new String[30];Student s[]=new Student[30];BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream(f)));for(int i=0;i<30;i++)

{ data[i]=in.readLine();// System.out.println(data[i]);return ”最高分为“+a+”

最低分为“+b+”

平均分为“+c+”rn“;String name;String zhuanye;String banji;float

chenji;Student(String name,String zhuanye,String banji,float chenji){

} public String toString(){

} return ”姓名:“+this.name+”

专业:“+this.zhuanye+”

班级:“+this.banji+”

成绩: this.name=name;this.zhuanye=zhuanye;this.banji=banji;this.chenji=chenji;

return h;}

“+this.chenji;

} in.close();for(int i=0;i<30;i++)

{ StringTokenizer st=new StringTokenizer(data[i]);

//

System.out.println(st.countTokens());

s[i]=new

} int m=0,n=0,q=0;float data1[]=new float[20];float data2[]=new float[20];float data3[]=new float[20];for(int i=0;i<30;i++){

} System.out.println(”班级01班的最高分:“+data1[MaxMinClass.maxint(data1,n)]);System.out.println(”班级01班的最低分:“+data1[MaxMinClass.minint(data1,n)]);System.out.println(”班级01班的平均分:“+MaxMinClass.average(data1, n));System.out.println(”班级02班的最高分:“+data2[MaxMinClass.maxint(data2,m)]);System.out.println(”班级02班的最低分:“+data2[MaxMinClass.minint(data2,m)]);System.out.println(”班级02班的平均分:“+MaxMinClass.average(data2, m));System.out.println(”班级03班的最高分:“+data3[MaxMinClass.maxint(data3,q)]);System.out.println(”班级03班的最低分:“+data3[MaxMinClass.minint(data3,q)]);System.out.println(”班级03班的平均分:“+MaxMinClass.average(data3, q));if(s[i].banji.equalsIgnoreCase(”01“)){

} if(s[i].banji.equalsIgnoreCase(”02“)){

} if(s[i].banji.equalsIgnoreCase(”03“)){

} data3[q]=s[i].chenji;q++;data2[m]=s[i].chenji;m++;data1[n]=s[i].chenji;n++;

System.out.println(s[i]);Student(st.nextToken(),st.nextToken(),st.nextToken(),Integer.parseInt(st.nextToken()));

} FileOutputStream fos=new FileOutputStream(”F:StudentTj.txt“);BufferedOutputStream bos=new BufferedOutputStream(fos);bos.write(”班级01班:“.getBytes());String sa=ToString(data1[MaxMinClass.maxint(data1,n)],data1[MaxMinClass.minint bos.write(sa.getBytes());

bos.write(”班级02班:“.getBytes());String sa1=ToString(data2[MaxMinClass.maxint(data2,m)],data2[MaxMinClass.minint bos.write(sa1.getBytes());

篇6:java上机实验

实验目的:学会使用多线程进行并发程序设计

实验内容:编写一个应用程序模拟大炮打飞机。在GUI界面上,飞机水平飞行,用界面上的按钮控制大炮的运行方向(如向左,向右,向上,向下)。当炮弹碰着飞机后,飞机坠落。

2、实验二:数据库编程:书目信息管理

实验目的:掌握数据库编程技术。能正确连接数据库,能对数据库中信息进行查询、插

入、删除、修改。

实验内容:在数据库中创建一张书目信息表,包括书名、作者、出版社、出版日期、书

号、价格字段。设计一个GUI界面进行书目管理。在该界面上有四个选项卡,分别是查询、插入、删除、修改。点击查询选项卡,出现的界面上有书名、作者、出版社、书号四个文本框,一个按钮和一个只读文本区。文本框内容可以为空,输入相应的查询信息后(例如根据书名查询可以仅输入书名),点击界面上的“查询”按钮,可以在界面下方的文本区中显示出符合条件的书目详细信息。点击插入选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。在文本框中输入信息后,点击“插入”按钮,该书目信息插入数据库表中。点击删除选项卡,出现的界面上有书名文本框和一个按钮,输入书名后点击“删除”按钮,该书目信息从数据库表中删除。点击修改选项卡,出现的界面上有书名、作者、出版社、出版日期、书号、价格文本框,一个按钮。输入的书名必须是已存在的,否则会弹出消息框显示出错信息。输入信息后,点击“修改”按钮,数据库表中的相应书目信息被修改为新值。

3、实验三:Applet编程:鸭子的移动

实验目的:掌握Applet程序设计的方法,学会在Applet中绘制图片,能采用双缓冲技术进行图片绘制,会在Applet中采用多线程进行动画显示。能在Applet中实现动画的平滑显示,避免闪烁现象。

实验内容:在Applet窗口中显示一只鸭子图片,要求这只鸭子以每秒100帧的速率水平移动,移到窗口边界再返回移动。在窗口中点击鼠标,鸭子停止移动;再次点击鼠标,鸭子恢复移动。

4、实验四:网络编程:聊天室的实现

实验目的:会编写客户端和服务器程序实现C/S模式下的通信,会使用多线程进行网络编程。

篇7:Java上机实验报告

一、实验目的与要求

1、掌握Java中类和接口的基本知识;

2、继承的基本知识;

3、集合的基本操作

二、实验内容 1.PIMCollection 类

创建一个可以管理PIMEntities实体的集合,该类实现了Collection接口,且必须实现了以下方法:(1).getNotes();返回PIMCollection中所有的PIMNote项,如果不包含PIMNote项,则返回一个空集合

(2).getTodos();返回集合PIMCollection中所有的PIMTodo项,如果不包含PIMTodo项,则返回一个空集合

(3).getAppointment();返回集合PIMCollection中所有的PIMAppointment项,如果不包含PIMAppointment项。则返回一个空集合(4).getContacts();返回结合PIMCollection中所有的PIMContact项,如果不包含PIMContact项,则返回一个空集合

(5).getItemsForDate(Date d);返回集合PIMCollection中所有与d匹配的PIMEntities,如果没有匹配d的项,则返回一个空集合

(只有PIMTodo和PIMAppointment项,因为PIMNote和PIMContact跟日期没有关系)。

2.TestPIMCollection类(自己的测试类)

向PIMCollection集合类中加入了一些PIMEntity实体类,并用PIMCollection类中实现的方法分别筛选出了其中的PIMNote、PIMTodo、PIMAppointment、PIMContact、符合指定日期d的集合并打印输出。

三、实验器材

计算机+windows操作系统+eclipse

四、实验步骤

1.程序源代码(压缩在文件夹里)2.编译执行程序 3.记录执行结果

五、实验结果

1.TestPIMCollection的测试代码:

2.程序的执行结果:

如图所示:程序分别输出了Todo、Note、Appointment、Contact、以及匹配指定日期的结合的结果。

六、实验小结

1、熟悉了Java集合的基本内容和操作,也包括了泛型的一些知识。

2、通过这个实验巩固了java的基础知识:类和接口的有关知识,继承的应用。

3、掌握了在eclipse下编译执行Java程序的知识。

4、通过几次的编程,熟悉了java的编程规则。

篇8:北邮日历java实验报告

信息工程27班项明钧

一、实验要求

写一个建议日历图形用户界面

二、设计思路

此次作业主要用到了窗口布局设计及各个组件的功能显示,事件处理机制。首先需要建立一个frame框架,然后进行布局设计。需要用到p0,p1,p2,p3,p4面板,其中p0,p1,p2,p4为正常静态面板,p3位自己定义的JScrollPane滚动面板,内容从p0获取,可以通过滑动滚动条来达到显示超出界面显示范围的内容。接着定义若干button,label,TextField通过add函数添加到对应的面板中。通过将主日历显示界面设置成GridLayout来达到网格式显示,当有文本输入和按钮按下,事件处理机制将会判断输入的年和月份是否符合正确格式。是的话将通过getMonthDay和getStartDay得到的所查询月份的日历一个个插入网格中,完成日历显示。

在p3面板中我还借用了 new JLabel(new ImageIcon函数插入本地图片,使界面更加美观。界面最下一栏放入了关于日历由来的简介,由于字数较多在界面范围内不能全部显示,我使用了JScrollPane滚动面板,这样就可以左右移动条来翻阅日历简介了。

三、实验结果

四、心得体会

这次实验我选了java日历软件。在学习了图形界面(GUI)设计后,我知道了窗口里面板,标签,文本框的基本设置和代码应用。但是就单单简单地添加几个组件画面难免显得简单,因此我在网上查询代码分别给面板增添了背景色,给我的信息字体设置了字体,大小,还给最下一栏日理由来增加了滚动条。通过这次学习,我发现书上很多知识只有在实际编写代码运用到时才能有更好的理解,而且我未知的函数好还有很多,需要我去主动探索学习。

五、源代码及注释

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calendar extends JFrame implements ActionListener { static int year,month;

//设置静态变量 private String [] ast = {“

星期日”,“

星期一”, “

星期二”, “

星期三”, “

星期四”, “

星期五”, “

星期六”};private JLabel [] ai = new JLabel[49];private JLabel label0,label1,label2,label00,label4,label5;

//定义标签

private JTextField t0,t1;

//定义文本输入框

private JButton btn1;

//定义按钮

private JPanel p0,p1,p2,p4;

//定义静态面板

private JScrollPane p3;

//定义滚动面板

public Calendar(){

super(“简易日历”);//窗口名字

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//窗口关闭函数

this.setBounds(100,100,800,600);//窗口尺寸 和位置

Container c=getContentPane();

p1 = new JPanel();//建立新面板

p0 = new JPanel();

p2 = new JPanel(new GridLayout(7,7,10,1));//设置网格布局

p4 = new JPanel(new GridLayout(7,20,10,1));

final JScrollPane p3 = new JScrollPane(p0);//将面板p0导入滚动面板p3

this.add(p3);

p3.setPreferredSize(new Dimension(100, 50));设置p3大小

label0=new JLabel(“

年份(如:2016)”);//标签赋值

label1=new JLabel(“

月份(如: 3)”);

label2=new JLabel(“");

label00=new JLabel(”

我国始有历法大约在四千多年以前。根据甲骨文中的一 页甲骨历,证明殷代的历法已具有相当的水平,这一页甲骨。历是全人类最古老的历书实物,这页甲骨历也就叫日历。但真正的日历产生,大约在一千一百多年前的唐顺宗永贞元年,皇宫中就已经使用皇历。最初一天一页,记载国家、宫廷大事和皇帝的言行。皇历分为十二册,每册的页数和每月的天数一样,每一页都注明了天数和日期。发展到后来,就把月日、于支、节令等内容事先写在上面,下部空白处留待记事,和现在的“台历”相似。那时,服侍皇帝的太监在日历空白处记下皇帝的言行,到了月终,皇帝审查证明无误后,送交史官存档,这在当时叫日历,这些日.历以后就作为史官编写《国史》的依据。后来,朝廷大臣们纷纷仿效,编制自家使用的日历。至于月历以后又发展成挂历、台历等各种形式,只是近一个世纪的事。随着时代的发展,·尽管日历的品种增多、花样也不断翻新,但仍旧保持着古老日历的格局。“);

label4=new JLabel(”

信息工程27班项明钧“);

JLabel label5 = new JLabel(new ImageIcon(”E:/timg.jpg“));

//从本地文件夹导入图片

label4.setFont(new Font(”宋体“, Font.BOLD, 20));

//设置字体大小

t0=new JTextField(5);//文本框

t1=new JTextField(3);

btn1=new JButton(”search“);//按钮

int i;

//日历面板分块函数

for(i=0;i<7;i++)

p2.add(ai[i]=new JLabel(ast[i]));

//将星期日到星期六赋给第一行

for(i= 7;i < 49;i++)

p2.add(ai[i]=new JLabel(”“));

//定义为空,为填入日期做准备

p1.add(label0);

p1.add(t0);

p1.add(label1);

//将标签导入面板

p1.add(t1);

p1.add(btn1);

p1.add(label2);

p0.add(label00);

p4.add(label5);

p4.add(label4);

c.add(p1,BorderLayout.NORTH);

//设置面板位置

c.add(p2,BorderLayout.CENTER);

c.add(p3,BorderLayout.SOUTH);

c.add(p4,BorderLayout.EAST);

btn1.addActionListener(this);

//注册监视器

t0.addActionListener(this);

t1.addActionListener(this);

p2.setBackground(Color.LIGHT_GRAY);

//设置面板背景颜色

p1.setBackground(Color.red);

p3.setBackground(Color.green);

p4.setBackground(Color.magenta);

this.setVisible(true);

//显示窗口

}

public static void main(String[] args)

//主函数

{

Calendar a=new Calendar();

a.showCalendar(2016,1);

//初始化日期2016年1月

}

//事件处理方法

public void actionPerformed(ActionEvent e){

if(e.getSource()== t0 || e.getSource()== t1 || e.getSource()== btn1)

{

Try

//控制输入的年份正确,异常控制

{

if(t0.getText().length()!= 4)

throw new NumberFormatException();

}

catch(NumberFormatException ex)

{

return;

}

String s1=t0.getText();

//获取输入年份

year=Integer.parseInt(s1);

//将输入年的字符串转换为int类型

String s2=t1.getText();

//将输入月 的字符串转换为int类型

month=Integer.parseInt(s2);

showCalendar(year,month);

//调用网格日历显示函数

} }

public void showCalendar(int year,int month)

//定义网格日历显示函数

{

int monthDay=getMonthDay(year,month);

//获取一个月几天

int startDay=getStartDay(year,month);

//获取一个月开始星期几

//显示当前窗口中显示日历的年月

String rr=”

当前日历“+”(“+Integer.toString(year)+”-“+Integer.toString(month)+”)“;

label2.setText(rr);

//控制各月日历的正确显示

int i;

} for(i= 7;i < startDay+7;i++)ai[i].setText(”“);for(i =startDay+7;i

String bb;//存在意义:便于实现setText函数的带格式输入

if(i-startDay-6<10)

bb=”

“+Integer.toString(i-startDay-6);//将int型转换为String型

else

bb=”

“+Integer.toString(i-startDay-6);

ai[i].setText(bb);} for(i=startDay + monthDay + 7;i<49;i++)ai[i].setText(”");

//leapYear:判断闰年

public static boolean leapYear(int year){

if((year % 400 == 0)||((year % 4 == 0)&&(year % 100!= 0)))

return true;return false;}

//getMonthDay获取每月总天数

public static int getMonthDay(int year, int month)

{

if(month == 1 || month==3 || month == 5 || month == 7 ||

month == 8 || month == 10 || month == 12)

return 31;

if(month == 4 || month == 6 || month == 9 || month == 11)

return 30;

if(month == 2)

if(leapYear(year))

//闰年二月29天

return 29;

else

return 28;

return 0;//if month is incorrect.//如果月份输入错误返回0.} //getStartDay:返回每月第一天是周几 public static int getStartDay(int year,int month){

//从1800年1月1日开始

int startDay1800 = 3;

long totalDays = getTotalDays(year, month);

return(int)((totalDays + startDay1800)% 7);}

//从1800年1月1日到所查月份的总天数

public static long getTotalDays(int year, int month){

long total = 0;

for(int i = 1800;i < year;i++)

if(leapYear(i))

total = total + 366;

else

total = total + 365;

for(int i = 1;i < month;i++)

total = total + getMonthDay(year, i);

上一篇:小学教师专业发展标准下一篇:商务日语就业前景怎么样