Java语言程序设计报告
- 格式:doc
- 大小:424.66 KB
- 文档页数:17
java语言程序设计实验报告
《Java语言程序设计实验报告》
实验目的:通过本次实验,学生将学会使用Java语言进行程序设计,掌握Java
语言的基本语法和编程技巧,并能够编写简单的Java程序。
实验内容:本次实验主要包括以下内容:1. Java语言的基本语法和数据类型;2. Java程序的输入输出;3. Java程序的流程控制;4. Java程序的函数和类的定义;
5. Java程序的异常处理等。
实验步骤:1. 阅读相关的Java语言教材和资料,了解Java语言的基本概念和
语法规则;2. 编写简单的Java程序,包括输入输出、流程控制、函数和类的定
义等;3. 调试和运行编写的Java程序,查看程序的运行结果;4. 对程序进行优
化和改进,提高程序的效率和性能。
实验结果:通过本次实验,学生将能够熟练掌握Java语言的基本语法和编程技巧,能够编写简单的Java程序,并能够运用Java语言解决实际的问题。
实验总结:通过本次实验,学生将对Java语言有了更深入的了解,掌握了Java
语言的基本概念和编程技巧,能够独立编写简单的Java程序。
同时,学生也将
培养了良好的编程习惯和解决问题的能力,为今后的学习和工作打下了良好的
基础。
结语:通过本次实验,学生将能够熟练掌握Java语言的基本语法和编程技巧,
为今后的学习和工作打下了良好的基础。
同时,也希望学生能够在今后的学习
和工作中不断提高自己的编程能力,为科技创新和社会发展做出更大的贡献。
本科实验报告课程名称:Java语言程序设计实验地点:致远楼专业班级:软工1507班学号:2015005682 学生姓名:李俊慧指导教师:李君婵实验结果1.2.3.System.out.println("Please input and ending with '.' :");BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));A= buf.readLine();// System.out.println(A);B=A.toCharArray();for(i=0;B[i]!='.';i++) {if(B[i]==' ') sum++;}sum+=1;System.out.println("the number of words:"+(sum));}}实验结果1.2.3.public void check() {int t2;for(t2=0;t2<100;t2++) {if(Merchandise[t2]!=null) {System.out.print("Name:"+Merchandise[t2]);System.out.print(" Inventory:"+Inventory);System.out.println();}}}public void query() {ShowMe();// System.out.print(" Inventory:"+Inventory);}}实验结果1.2.3.4.public static void main(String args[]) {Javashiyan5_3 tp1 = new Javashiyan5_3(4000,"Fast");tp1.start();Javashiyan5_3 tp2 = new Javashiyan5_3(5000,"Middle");tp2.start();Javashiyan5_3 tp3 = new Javashiyan5_3(6000,"Slow");tp3.start();}}实验结果1.actionevent myevent = new actionevent(btn);btn.addActionListener(myevent);frm.setVisible(true);}}class actionevent implements ActionListener { JButton btn;public actionevent(JButton btn) {this.btn = btn;}public void actionPerformed(ActionEvent e) {String s1="Click Me";String s2="Click Me Again";String s=((JButton)(e.getSource())).getText();// ((JButton)e.getSource()).setText(s);if(s==s1) btn.setText(s2);if(s==s2) btn.setText(s1);}}实验结果1.2.if(mark==1) {A[n]=i;n++;}}for(j=0;j<200&A[j]!=0;j++){fw.write(A[j]);}fw.close();fr = new FileReader("/home/liberty/myJavachengxu/myJavashiyan/Javashiyan7 /Javashiyan7_5/Javashiyan7_5_sushu.txt");int value;while((value=fr.read())!=-1) {System.out.print(value+"\t");q++;if(q%5==0)System.out.println();}fr.close();System.out.println();System.out.println("However,the 'txt' file cannot be viewed by VIM!!!");}}实验结果1.2.3.4. 5.。
java语言程序设计实验报告篇一:Java实验八报告《Java语言程序设计》实验报告学生姓名:郭倩班级:信息112学号:201152275208实验地点:经管实验中心证券实验室指导教师:赵利平实验日期:实验环境:Windows 2000+JDK1.61. 实验目的(1)理解子类派生的概念(2)学习创建子类对象(3)掌握方法覆盖的使用2.实验内容(1)设计三个类:完成实验教材P52页程序清单4-2;(2)通过编制一个程序来加深对嵌套类、内部类和局部类的理解:完成实验教材P56页程序清单4-3;2. 实验过程报告撰写具体要求:上述实验内容要求写出源代码及运行结果。
实验内容(1)://Polymorphism.abstract class Student{final static int CourseNo=3;String name;String type;int[] courses;String courseGrade;public Student(String name){=name;courses=new int[CourseNo];courseGrade=null;}public abstract void calculateGrade();public String getName(){return name;}public String getType(){return type;}public String getCourseGrade(){return courseGrade;}public int getCourseScore(int courseNumber){return courses[courseNumber];}public void setName(String name){=name;}public void setType(String type){this.type=type;}public void setCourseScore(int courseNumber,int courseScore){this.courses[courseNumber]=courseScore;}}class Undergraduate extends Student{public Undergraduate(String name){super(name);type="本科生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=80&&average<100) coursegrade="优秀" else="" average="">=70&&average<80) coursegrade="良好" else="" average="">=60&&average<70) coursegrade="一般" else="" average="">=50&&average<60) courseGrade="及格";else courseGrade="不及格";}}class Postgraduate extends Student{public Postgraduate(String name){super(name);type="研究生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=90&&average<100) coursegrade="优秀" else="" average="">=80&&average<90) coursegrade="良好"else="" average="">=70&&average<80) coursegrade="一般" else="" average="">=60&&average<70) courseGrade="及格";else courseGrade="不及格";}}public class Polymorphism{public static void main(String[] args){Student[] students=new Student[5];students[0]=new Undergraduate("陈建平");students[1]=new Undergraduate("鲁向东");students[2]=new Postgraduate("匡晓华");students[3]=new Undergraduate("周丽娜");students[4]=new Postgraduate("梁欣欣");for(int i=0;i<5;i++){students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for(int i=0;i<5;i++){students[i].calculateGrade();}System.out.println("姓名"+" 类型"+" 成绩");}}System.out.println("-------------------------"); for(int i=0;i<5;i++){ System.out.println(students[i].getName()+" "+students[i].getType()+" "+students[i].getCourseGrade()); }(1) 都有(2) Student[] students=new Student[5];(3) Student是抽象的,不能用new操作符创建抽象类的实例。
java课程设计报告随着Java言的不断发展,越来越多的编程人员开始使用 Java开发应用程序,这就催生出了一种新的课程 Java程设计。
本文旨在通过总结 Java程设计的过程及其相关知识,以便于编程人员以及研究者对 Java程设计有一个更深入的了解。
首先,要完成 Java程设计,需要了解 Java语言特性和编程工具。
这里不仅要掌握 Java言本身的知识,还要熟悉 Java架和测试框架,这样才能开发出能够完成各种任务的应用程序。
此外,学习Java程设计的人还需要具备一定的网络知识,这样可以更好地了解Java程设计的用途,以及 Java发的环境,否则,将很难完成 Java程设计。
其次,要开始 Java程设计,设计人员要先明确设计内容,比如要设计的应用程序的功能、界面要求等,还要考虑安全性、可维护性等方面,以确保设计出来的程序在实际应用中能够如预期般完成任务。
之后,设计人员就可以根据设计内容,编写 Java序,实现功能。
此时,设计人员要根据需求分析,合理安排代码结构,并确定需要用到的类库和技术;同时,实现功能时也要注意代码质量,要遵守 Java 程的规范,要避免出现内存泄漏等问题。
最后,在完成 Java程设计之后,设计人员要进行测试,确保程序能够完成预期任务。
这里可以使用基于 Junit(Java元测试框架)的测试框架,测试各个类的接口和输出内容,以确保程序功能正常,做到稳定可靠。
总的来说,要完成 Java程设计,不仅要有良好的 Java言和编程工具的基础知识,还要了解 Java发的环境,还要具备一定的网络知识,最后要仔细的进行测试,确保设计出来的程序稳定可靠,才能完成 Java程设计。
总之,很明显,Java程设计并不容易,但所能学到的知识也丰富多样,对于以后的研究和工作也有很大的帮助,因此,建议编程人员考虑学习 Java程设计,来拓展自己的知识面和应用能力。
实验报告□实践报告□课程名称:Java语言程序设计实验、实践名称:Java语言基础、数组和字符串编程、Java面向对象程序设计、Java异常处理多线程编程、图形用户界面编程实验、实践地点:致向楼301专业班级:软件1531 学号:2015006446学生姓名:关玉芬指导教师:相洁2017 年1月8日else System.out.print("输出结果为"+i*4);x.close();}}6. package shiyan;public class a6 {public static void main(String[] args) {int i,j=0;for(i=1900;i<=2100;i++){if((i%4==0)&&(i%100!=0)||(i%400==0)){ j++;if(j%5==0)System.out.println(i);else{System.out.print(i);System.out.print(" ");}}}}} 五、实验结果1.2.3.4.5.6.六、讨论、心得初步掌握了Eclipse集成开发环境。
掌握Java 基本数据类型、运算符与表达式、数组的使用方法,语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
、对JA V A程序设计有初步的了解System.out.println("字符串的单词数为"+num);sr.close();}}五、实验结果1..2.3.六、实验心得通过本次实验掌握数组的声明、分配空间及初始化;理解多维数组(重点掌握二维);掌握String 类的特点及常用方法的使用;掌握StringBuffer 类的特点及常用方法的使用;掌握String 类和StringBuffer 类的区别;掌握equal 方法与==的区别;但是本次练习中,我也出现了一些错误,是由于知识上的失误和不小心犯下的低级错误,但是我努力改正。
Java程序设计实验报告班级:网络 151姓名:徐毅民学号: 153299实验一 Java语言基础一.实验目的掌握 Java语言的基本语法、基本数据类型的使用方法,掌握从键盘输入基本类型的数据,熟练运用分支、循环等语句控制程序流程。
二.实验内容1、编写一个Java应用程序,用户从键盘输入十名学生的信息,至少包括姓名、年龄、出生年月日、java课程实验成绩,成绩使用浮点数,年龄使用整型,程序将输出年龄、java课程实验成绩的平均值。
提示:Scanner对象调用nextDouble()或nextFloat()可以获取用户从键盘输入的浮点数。
2、使用Arrays类实现数组排序:使用java.util包中的Arrays 类的类方法public static void sort(double a[])可以把参数a指定的double类型数组按升序排序;public static void sort(double a[], int start , int end)可以把参数a指定的double类型数组中从位置start到end位置的值按升序排序。
给定数组int a[]={12,34,9,-23,45,6,90,123,19,45,34}; 从键盘读入一个整数,使用折半查找判断该整数是否在这个数组中,并将结果输出。
3、输出100~200之间的所有素数。
4、采用for循环求1至1000之内的所有“完全数”。
所谓“完全数”是指一个数,恰好等于它的因子之和。
例如,6是一个完全数,因为6的因子为1、2、3,而6=1+2+3。
5、已知XYZ+YZZ=532,其中X、Y和Z为数字,编程求出X,Y和Z 的值。
三.实验步骤实验1以最终学生信息管理系统为准实验2代码如下:import java.util.Arrays;import java.util.Scanner;public class test2 {public static void printDoubleArray(double a[]) { for(int i = 0; i < a.length; i++) {System.out.print(a[i]+" ");}System.out.println();}public static void printfIntegerArray(int a[]) { for(int i = 0; i < a.length; i++) {System.out.print(a[i]+" ");}System.out.println();}public static void main(String[] args) {double a[] = {2.6, 4.6, 2, 8, 888, 569.5, 454.5, 100, -84.5, 45};System.out.println("原double数组a:");printDoubleArray(a);Arrays.sort(a, 0, a.length/2);System.out.println("排序double数组a前一半:");printDoubleArray(a);Arrays.sort(a);System.out.println("排序整个double数组a:");printDoubleArray(a);int b[] = {12, 34, 9, -23, 45, 6, 90, 123, 19, 45, 34};Arrays.sort(b);System.out.println("排序整个double数组b:");printfIntegerArray(b);Scanner in = new Scanner(System.in);System.out.print("输入要查询的数字:");int key = in.nextInt();int i = Arrays.binarySearch(b, key);if(i < 0 || i >= b.length) {System.out.println(i+"输入数字不在数组中!");} else {System.out.println(b[i]+"在数组b第"+(i+1)+"位!");}}}实验3代码如下:public class test3 {public static boolean isPrime(int x) {if(x == 1) return false;int s = (int)Math.sqrt(x);for(int i = 2; i <= s; i++) {if(x%i == 0) return false;}return true;}public static void main(String[] args) {int cnt = 0;for(int i = 100; i < 200; i++) {if(isPrime(i)) {System.out.printf("%4d", i);}if(isPrime(i) && cnt%10 == 0)System.out.println();}}}实验4代码如下:public class test4 {public static boolean isCompleteNumber(int x) { int sum = 0;for(int i = 1; i < x; i++) {if(x%i == 0) sum += x;}return x == sum;}public static void main(String[] args) {int cnt = 0;for(int i = 1; i <= 1000; i++) {if(isCompleteNumber(i)) {System.out.printf("%4d", i);}if(isCompleteNumber(i) && cnt%10 == 0)System.out.println();}}}实验5代码如下:public class test5 {public static void main(String[] args) {for(int x = 0; x < 10; x++) {for(int y = 0; y < 10; y++) {for(int z = 0; z < 10; z++) {if(100*x+110*y+12*z == 532) {System.out.println("X="+x+" Y="+y+" Z="+z);return;}}}}}}四.详细的调试和运行结果实验2运行结果:原double数组a:2.6 4.6 2.0 8.0 888.0 569.5 454.5 100.0 -84.5 45.0排序double数组a前一半:2.0 2.6 4.6 8.0 888.0 569.5 454.5 100.0 -84.5 45.0排序整个double数组a:-84.5 2.0 2.6 4.6 8.0 45.0 100.0 454.5 569.5 888.0排序整个double数组b:-23 6 9 12 19 34 34 45 45 90 123输入要查询的数字:-23-23在数组b第一位!实验3运行结果:101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199实验4运行结果:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863877 881 883 887 907 911 919 929 937 941947 953 967 971 977 983 991 997实验5运行结果:X=3 Y=2 Z=1五.实验感想通过本次从实验对java语言的基本语法有了基本了解,学会了使用控制台命令行的方式运行java程序。
实验一、安装JDK并熟悉java的运行环境实验二、基本语法练习实验三、面向对象编程实验(4)实验四、异常处理实验实验五、小应用程序实验实验六、图形图像实验实验七、GUI(图形用户接口)实验(4)实验八、多线程实验实验九、输入输出流实验(4)实验十、数据库应用实验(4)实验一、安装JDK并熟悉java的运行环境一、实验目的熟悉JA V A的运行环境及学习简单的编程。
二、预习内容安装工具软件的基本方法。
三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容安装Eclipse及JA V A的核心编译程序J2SDK。
1、打开Eclipse的安装盘安装Eclipse。
2、在相同目录下安装J2SDK。
3、打开Eclipse软件对J2SDK文件进行配置。
4、编写一应用程序,在屏幕上显示“HELLO WORLD”和爱心标志。
Pulic class Hello{public static void main(String args[]){//在屏幕上显示“HELLO WORLD”和爱心标志}}5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”和爱心标志。
实验结果五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明本次实验建议学时数2学时七、实验总结与体会实验二、基本语法练习一、实验目的⒈熟悉Java的基本语法⒉编写应用程序接收命令行参数⒊编写应用程序接收用户从键盘的输入⒋掌握字符串与数组的基本方法二、预习内容java编程的基本结构三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。
应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。
(1)编辑A verage.java。
class A verage{public static void main(String args[ ]){double n,sun=0;for (int l=0;l<args.legth;l++){sum=sum+Double.valueOf(arg[l].doubleV alue();)}n=sum/args.length;System.out.println(“average=”+n);}}命令行参数:12.34 34.45 21212121注意:1)参数的个数可以利用args.length来取得。
实验报告□实践报告□课程名称:Java语言程序设计实验、实践名称:Java语言基础、数组和字符串编程、Java面向对象程序设计、Java异常处理多线程编程、图形用户界面编程实验、实践地点:致向楼301专业班级:软件1531 学号:2015006446学生姓名:关玉芬指导教师:相洁2017 年1月8日实验一Java语言基础一、实验目的和要求(1) 通过实验,掌握Java语言程序设计的基本方法。
(2) 学会Java语言中标示符的命名、运算符和表达式的应用。
(3) 熟练地掌握Java程序流程控制语句的应用。
二、实验内容1.编写应用程序,计算100(含100)以内所有偶数的和。
2.“水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数。
编写程序,求所有的水仙花数。
3.编写一个程序,求1-100间的素数。
4. 有一函数:x (x<1)Y= 3x-2 (1≤x<10)4x (x≥10)写一程序,给定x值,输出y值。
5. 使用for循环语句,编写程序输出以下图案。
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆6.编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。
判断年是否为闰年的条件是:①若年号可以被4整除,而不能被100整除,则是闰年;②若年号可以被400整除,也是闰年。
三、主要仪器设备使用的计算机惠普:硬件配置Win7、软件环境eclipse四、实验代码1. public class a1 {public static void main(String[] args) {int i,sum=0;for(i=0;i<=100;i++){if(i%2==0)sum+=i;}System.out.println(sum);}}2. public class a2 {public static void main(String[] args) {int i,a,b,c;for(i=100;i<=999;i++){a=i%10;b=(i-a)%100/10;c=(i-b*10-a)/100;if(i==a*a*a+b*b*b+c*c*c){System.out.println(i);}}}}3. public class a3 {public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=2;i<=100;i++) {boolean t = false;for(int j=2;j<i;j++){if(i%j==0){t=false;break;}else {t=true;}}if(t) System.out.print(i+" ");}}}4. public class a4 {public static void main(String[] args) {int i,j;for(i=1;i<=4;i++){for(j=1;j<=((-1)*i+4);j++)System.out.print(" ");for(j=1;j<=(2*i-1);j++)System.out.print("☆");System.out.println();}for(i=3;i>=1;i--){for(j=1;j<=((-1)*i+4);j++)System.out.print(" ");for(j=1;j<=(2*i-1);j++)System.out.print("☆");System.out.println();}}}5. import java.util.*;public class a5 {public static void main(String[] args) {Scanner x=new Scanner(System.in);System.out.println("请输入一个大于1的整数");int i=x.nextInt();System.out.println("你刚才输入的数为"+i);if(i<1) System.out.print("输出结果为"+i);else if (i>=1&&i<10) System.out.print("输出结果为"+(i*3-2));else System.out.print("输出结果为"+i*4);x.close();}}6. package shiyan;public class a6 {public static void main(String[] args) {int i,j=0;for(i=1900;i<=2100;i++){if((i%4==0)&&(i%100!=0)||(i%400==0)){ j++;if(j%5==0)System.out.println(i);else{System.out.print(i);System.out.print(" ");}}}}} 五、实验结果1.2.3.4.5.6.六、讨论、心得初步掌握了Eclipse集成开发环境。
java程序设计实验报告
实验一:实现个人信息管理系统
实验目的:学习如何使用Java语言来完成一个简单的面向对象程序设计。
实验内容:
本次实验的任务是开发一个个人信息管理系统,可以完成一些基本的信息管理功能,如增加、删除、查询和修改个人信息等。
实验步骤:
1. 定义Person类并实现其属性和方法。
2. 在主类中实现简单的用户交互界面。
3. 实现文件持久化,将程序中的信息储存在文件中。
4. 实现增加、删除、查询和修改个人信息的功能。
实验结论:
通过本次实验,我学会了如何使用Java语言来实现一个简单的面向对象程序设计。
在开发过程中,我学会了如何定义类、实现属性和方法,如何进行用户交互界面的设计,以及如何将程序中的信息储存在文件中。
《Java程序设计》课程设计报告题目:贪吃蛇游戏的设计与实现指导老师:泽刚专业:计算机科学与技术班级: 10-3 姓名:梁潇一、课程设计目的贪吃蛇游戏一款非常经典的手机游戏,因为它比较简单有趣,无论老少都比较适合。
目的是更好地了解和掌握java语言,并熟练的运用java语言来实现项目。
培养自主学习的能力。
本软件在设计方面本着方便、实用及娱乐性高的宗旨,在外界进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。
二、课程设计要求贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模块、游戏控制模块。
三、课程设计报告容(一) 系统设计1、程序概述本程序是一个利用Java应用软件制作的贪吃蛇小游戏。
在游戏过程中,用户通过点击小键盘区的方向键来控制蛇的运行方向;当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结束。
本程序的另一个功能是在程序运行窗口的左上角显示,用户在游戏过程中所得的分数,不过缺点就是在退处程序后,下次打开程序时无法保存。
2、游戏的主界面设计游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、游戏的速度选择更新界面、游戏分数的显示更新界面、游戏开始按钮、暂停游戏按钮、退出游戏按钮以及游戏排行榜按钮。
3、游戏控制模块设计这个模块是游戏的中心环节,主要完成控制游戏的开始、暂停、退出等功能。
为了能够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。
(二)主界面设计游戏界面主框架主要包括游戏图形区域界面、游戏的开始按钮、暂停按钮、游戏的退出按钮、困难程度、积分排行、关于作者。
(三)代码设计import java.awt.Color;import java.awt.Container;import java.awt.Graphics;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.*;public class TanChiShe extends JFrame implements ActionListener, KeyListener,Runnable{private JMenuBar menuBar;private JMenu youXiMenu,nanDuMenu,fenShuMenu,guanYuMenu;private JMenuItem kaiShiYouXi,exitItem,zuoZheItem,fenShuItem;private JCheckBoxMenuItem cJianDan,cPuTong,cKunNan;private int length = 6;private Toolkit toolkit;private int i,x,y,z,objectX,objectY,object=0,growth=0,time;private int difficult=2;private int m[]=new int[50];private int n[]=new int[50];private Thread she = null;private int life=0;private int foods = 0;private int fenshu=0;public void run() //运行{time=500;for(i=0;i<=length-1;i++){m[i]=90-i*10;n[i]=60;}x=m[0];y=n[0];z=4;while(she!=null){check();try{she.sleep(time);}catch(Exception ee){System.out.println(z+""); }}}public TanChiShe(){//***************创建新对象**************setVisible(true);menuBar = new JMenuBar();Container con=getContentPane();toolkit=getToolkit();//**************游戏菜单对象*****************youXiMenu = new JMenu("游戏");kaiShiYouXi = new JMenuItem("开始游戏");exitItem = new JMenuItem("退出游戏");//***************困难程度对象****************nanDuMenu = new JMenu("困难程度");cJianDan = new JCheckBoxMenuItem("简单");cPuTong = new JCheckBoxMenuItem("普通");cKunNan = new JCheckBoxMenuItem("困难");//*****************分数菜单对象**************** fenShuMenu = new JMenu("积分排行");fenShuItem = new JMenuItem("最高记录");//****************关于对象********************* guanYuMenu = new JMenu("关于");zuoZheItem = new JMenuItem("关于作者");//***************设置关于菜单******************* guanYuMenu.add(zuoZheItem);//****************设置困难程度菜单**************nanDuMenu.add(cJianDan);nanDuMenu.add(cPuTong);nanDuMenu.add(cKunNan);//******************设置分数菜单***************fenShuMenu.add(fenShuItem);//*****************设置游戏菜单****************youXiMenu.add(kaiShiYouXi);youXiMenu.add(exitItem);//******************设置主菜单******************** menuBar.add(youXiMenu);menuBar.add(nanDuMenu);menuBar.add(fenShuMenu);menuBar.add(guanYuMenu);//*********************监听注册*****************zuoZheItem.addActionListener(this);kaiShiYouXi.addActionListener(this);exitItem.addActionListener(this);addKeyListener(this);fenShuItem.addActionListener(this);//*********************加快捷键********************KeyStroke keyOpen = KeyStroke.getKeyStroke('O',InputEvent.CTRL_DOWN_MASK);kaiShiYouXi.setAccelerator(keyOpen);KeyStroke keyExit = KeyStroke.getKeyStroke('X',InputEvent.CTRL_DOWN_MASK);exitItem.setAccelerator(keyExit);//*****************设置框架**********************setJMenuBar(menuBar);setTitle("贪吃蛇");setResizable(false);setBounds(300,200,400,400);validate();setDefaultCloseOperation(EXIT_ON_CLOSE);}public static void main(String args[]){new TanChiShe();}//******************菜单监听******************************public void actionPerformed(ActionEvent e){if(e.getSource()==kaiShiYouXi) {length = 6;life = 0;foods = 0;if(she==null){she=new Thread(this);she.start();}else if(she!=null){she=null;she= new Thread(this);she.start();}}if(e.getSource()==exitItem){System.exit(0);}if(e.getSource()==zuoZheItem){JOptionPane.showMessageDialog(this, "梁潇"+"\n\n");}if(e.getSource()==fenShuItem){JOptionPane.showMessageDialog(this,"最高记录为"+fenshu+""); }}//**************检查一下*******************************public void check(){isDead();if(she!=null){if(growth==0){reform();}else{upgrowth();}if(x==objectX&&y==objectY){object=0;growth=1;toolkit.beep();}//****************产生食物坐标********************** if(object==0){object=1;objectX=(int)Math.floor(Math.random()*39)*10;objectY=(int)Math.floor(Math.random()*29)*10+50;}this.repaint();}}void isDead(){if(z==4){x=x+10;else if(z==3){x=x-10;}else if(z==2){y=y+10;}else if(z==1){y=y-10;}if(x<0||x>390||y<50||y>390) {she=null;}for(i=1;i<length;i++){if(m[i]==x&&n[i]==y){she=null;}}public void upgrowth() {if(length<50){length++;}growth--;time=time-10;reform();life+=100;if(fenshu<life){fenshu = life;}foods++;}public void reform() {for(i=length-1;i>0;i--) {m[i]=m[i-1];n[i]=n[i-1];}if(z==4){m[0]=m[0]+10;}if(z==3){m[0]=m[0]-10;}if(z==2){n[0]=n[0]+10;}if(z==1){n[0]=n[0]-10;}}public void keyPressed(KeyEvent e){if(she!=null){if(e.getKeyCode()==KeyEvent.VK_UP){if(z!=2){z=1;check();}}else if(e.getKeyCode()==KeyEvent.VK_DOWN) {if(z!=1){z=2;check();}}else if(e.getKeyCode()==KeyEvent.VK_LEFT) {if(z!=4){z=3;check();}}else if(e.getKeyCode()==KeyEvent.VK_RIGHT) {if(z!=3){z=4;check();}}}}public void keyReleased(KeyEvent e){// TODO自动生成方法存根}public void keyTyped(KeyEvent e){// TODO自动生成方法存根}public void paint(Graphics g){//*******************画图********************** g.setColor(Color.DARK_GRAY);g.fillRect(0,50,400,400);g.setColor(Color.pink);for(i=0;i<=length-1;i++){g.fillRect(m[i],n[i],10,10);}g.setColor(Color.green);g.fillRect(objectX,objectY,10,10);g.setColor(Color.white);g.drawString("当前分数"+this.life,6,60);g.drawString("当前已吃食物数"+this.foods,6,72); }}(四)测试(五)使用说明在游戏过程中,用户通过点击小键盘区的方向键来控制蛇的运行方向;当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结束。
西安郵電學院Java语言程序设计报告题目:超市管理系统院系名称:计算机学院专业名称:软件工程班级:1103班学生姓名:黄璐学号(8位):04113099指导教师:张荣一. 设计目的目前市场上的超市管理系统,大部分为基于分布式数据库的网络管理系统,对于规模较小的超市没有必要花巨资来购买这样功能全面的管理系统,此外,对于那样功能齐全的管理系统也需要花大精力来维护。
基于这种情况,我们用所学的java知识,可以开发一种既能节约资金,又能完成小超市日常的管理任务。
二.设计内容本系统所包括的功能主要有:限于不同身份的人登录的登录界面;权限管理功能;商品销售功能;商品管理功能;销售管理功能。
在系统的安全性方面,规定了不同权限的登录用户,管理员(主要负责用户管理)可以登录到任何一个管理模块,以及后台的数据库,能够改变任一个登录者的用户名和密码。
用户只能进入到销售界面。
老板超级主要查看商品的销售情况和商品管理,他可以进入到商品销售管理查看商品的销售情况。
通过这样的权限限制就可以方便的控制系统的安全性。
三.概要设计1.功能模块图;2.各个模块详细的功能描述。
2.1登录的界面如图2-1所示:图2-1登录的界面2.2 商品销售功能介绍销售界面是本系统直接供销售的店员应用的专管销售功能的界面,首先要查询欲购买的商品,在左侧的查询框内输入商品代号,然后点击搜索按钮,相应的商品信息将显示在“商品信息”一栏中,确认是此商品后点击购买,购买的商品将出现在下面的购物信息一栏中,商品销售功能的主界面如图2-2所示:图2-2销售窗口的主界面2.3 用户管理功能介绍用户管理功能是管理人员使用的界面。
管理人员可以使用此功能管理所有登录用户的信息。
用户管理的主界面如图2-3所示:2.4 销售管理功能介绍销售管理功能主要是老板查看超市商品销售情况。
“按编号查询”输入商品的编号,在下面的商品信息处显示该商品的信息;“按账单号查询”输入商品的账单号,在下面的商品信息处显示该商品的信息。
销售管理功能的主界面如图2-4所示:图2-4商品销售功能主界面2.5 商品管理功能介绍商品管理的功能是店员在进货、商品信息维护时所需要的界面,此界面功能是管理所有商品的信息,在这里可以添加、修改、删除任意商品信息,做到对商品信息的及时维护。
应用时,对应按钮的功能,进行应用,维护方便。
商品管理功能的主界面如图2-5所示图2-5商品管理系统的主界面四.详细设计1.功能函数的调用关系图3.重点设计及编码小超市登录界面如3-1所示。
图3-1 小超市管理系统登录界面模块核心代码:public void actionPerformed(ActionEvent e){ Connection con;Statement sql;ResultSet rs;if (e.getSource()==enterB){ idin=idtf.getText();keyin=keytf.getText();try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch (ClassNotFoundException f){System.out.println(""+f);}try{con=DriverManager.getConnection("jdbc:odbc:q","","");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM password where ID='"+idin+"'");while(rs.next()){passwordD=rs.getString(2);persontyD=rs.getString(3);}con.close();}catch (SQLException g){System.out.println(g);}if (keyin.equals(passwordD)){View2 frame=new View2();this.setVisible(false); }else {JOptionPane.showMessageDialog(this," 帐户或密码错误\n 请重新输入","提示",JOptionPane.W ARNING_MESSAGE); } } }3.2销售界面模块3.2.1搜索并购买商品如购买004、005、006、008、010和011号商品时,购买信息如图3-2下:图3-2 购买信息当购买人不想购买这些商品时,可以点击窗口左下角的清除按钮,来清除刚才购买的商品,数据库中也不会有此记录。
3.2.2核心代码(1)购买商品功能的代码if(p.getSource()==buyGoods) //购买按键{try {if (num!=null){con=DriverManager.getConnection("jdbc:odbc:q","","");sql=con.createStatement();sql.executeUpdate("insert into information(listnum,goodsnum)values('"+n2+"','"+num+"')");rs=sql.executeQuery("SELECT * FROM information where listnum="+n2);n3++;//记录购买商品个数con.close();goodsShow.append(" "+num+" "+name+" "+price+" "+time+" "+add+"\n"); }else{JOptionPane.showMessageDialog(this,"请选择商品","提示",JOptionPane.W ARNING_MESSAGE);}ap=ap+price;//总价allPrice.setText("商品总价:\n"+ap);}catch (SQLException g){System.out.println(g);}}if(p.getSource()==ok){try{ if (n3!=0){con=DriverManager.getConnection("jdbc:odbc:q","","");sql=con.createStatement();sql.executeUpdate("insert into information(listnum,allprice) values('"+n2+"','"+ap+"')");rs=sql.executeQuery("SELECT * FROM information where listnum="+n2);con.close();ap=0;num=null;name=null;price=0;time=null;add=null;n3=0;goodsShow.setText(null);n2++;//帐单号}else{JOptionPane.showMessageDialog(this,"请购买商品","提示",JOptionPane.W ARNING_MESSAGE);}}catch (SQLException g){System.out.println(g);}}if(p.getSource()==print){ try{if (n3!=0){con=DriverManager.getConnection("jdbc:odbc:q","","");sql=con.createStatement();sql.executeUpdate("insert into information(listnum,allprice) values('"+n2+"','"+ap+"')");rs=sql.executeQuery("SELECT * FROM information where listnum="+n2);con.close();ap=0; num=null;name=null;price=0;time=null;add=null;n3=0;goodsShow.setText(null);n2++;//帐单号}else{JOptionPane.showMessageDialog(this,"请购买商品","提示",JOptionPane.W ARNING_MESSAGE);}}catch (SQLException g){System.out.println(g);} }if(p.getSource()==clean){ try{ if (n3!=0){ int a1=0;con=DriverManager.getConnection("jdbc:odbc:q","","");sql=con.createStatement();rs=sql.executeQuery("SELECT MAX(编号) from information");while(rs.next()) {a1=rs.getInt(1);}for (int i=0;i<n3 ;i++ ){ sql.executeUpdate("delete from information where 编号="+(a1-i)); }con.close();ap=0;num=null;name=null;price=0;time=null;add=null;n3=0;goodsShow.setText(null);} }catch (SQLException g){System.out.println(g);} }(2)搜索商品的代码实现if (p.getSource()==searchGoods){ n um=numSearch.getText();try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch (ClassNotFoundException f){System.out.println(""+f);}try {con=DriverManager.getConnection("jdbc:odbc:q","","");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM goods where num='"+num+"'");while(rs.next()){name=rs.getString(2);price=rs.getInt(3);time=rs.getString(4);add=rs.getString(5);n1=1;}con.close();}catch (SQLException g){System.out.println(g); }if (n1==1) {showGoods.setText(" "+num+" "+name+" "+price+" "+time+" "+add);n1=0; }else{ showGoods.setText(" ");num=null;name=null;price=0;time=null;add=null;JOptionPane.showMessageDialog(this," 输入错误\n 请重新输入","提示",JOptionPane.W ARNING_MESSAGE);}}(3)提交商品的代码if(p.getSource()==ok){ try{if (n3!=0){ con=DriverManager.getConnection("jdbc:odbc:q","","");sql=con.createStatement();sql.executeUpdate("insert into information(listnum,allprice) values('"+n2+"','"+ap+"')");rs=sql.executeQuery("SELECT * FROM information where listnum="+n2);con.close(); ap=0; num=null;name=null;price=0;time=null;add=null;n3=0;goodsShow.setText(null);n2++;//帐单号}else{JOptionPane.showMessag eDialog(this,"请购买商品","提示",JOptionPane.W ARNING_MESSAGE);}}catch (SQLException g){System.out.println(g);}3.3 用户管理功能介绍3.3.1 添加用户功能介绍3-3添加用户3.3.2 修改用户功能介绍图3.4 修改用户3.3.3核心代码//提交修改用户操作if (e.getSource() == cB[1]){if ((id2.getText().trim()).equals("") ||(password2.getText().trim()).equals("") (per2.getSelectedIndex()==0)){JOptionPane.showMessageDialog(null, "请输入完整信息!");} else {String userid = id2.getText();String username =password2.getText();String userpwd =per2.getSelectedItem().toString();System.out.println(userpwd+"111111111111111111111111111111");String strSQL ="update Password set PERSONTY='" + userpwd + "',PASSWORD='" + username +"'where ID='" + userid +"'";try {conDB();int a=st.executeUpdate(strSQL);closeDB();if (a==0){JOptionPane.showMessageDialog(this, "无此id信息,修改失败!");return;}} catch (Exception exx) {System.out.println(exx);JOptionPane.showMessageDialog(this, "数据库原因,修改失败!");return;}JOptionPane.showMessageDialog(this, "修改成功!");id2.setText("");password2.setText("");per2.setSelectedIndex(0);}} //提交删除用户操作if (e.getSource() == cB[2]){if ((id3.getText().trim()).equals("") ){JOptionPane.showMessageDialog(null, "请输入完整信息!");} else {String userid = id3.getText();String strSQL ="delete from Password where ID='" + userid +"'";try {conDB();int a=st.executeUpdate(strSQL);closeDB();if (a==0){JOptionPane.showMessageDialog(this, "没有此用户删除失败!");return;} } catch (Exception exx) {System.out.println(exx);JOptionPane.showMessageDialog(this, "没有此用户删除失败!");return;}JOptionPane.showMessageDialog(this, "删除成功!");id3.setText("");}}System.out.println("aaaa");if(e.getSource()==pS[0]){System.out.println("vbnv");View2 ve=new View2(); dispose();}if(e.getSource()==pS[1]){ System.out.println("vbnv");if(Login.str2[0].equals("管理员")||Login.str2[0].equals("超级用户")){sale2 frame1=new sale2();dispose();}elseJOptionPane.showMessageDialog(null, "对不起,您没有进入权限!"); }if(e.getSource()==pS[2]){System.out.println("vbnv");if(Login.str2[0].equals("管理员")||Login.str2[0].equals("超级用户")){Frm_main frame=new Frm_main();dispose();}elseJOptionPane.showMessageDialog(null, "对不起,您没有进入权限!"); }}}3.4销售管理功能介绍3.4.1 编号查询功能如图3-5所示。