java基础实验题和课程设计补充题
- 格式:doc
- 大小:147.50 KB
- 文档页数:6
好的,以下是一个关于Java实验题目的回答,约1500字:实验题目:设计一个简单的计算器应用程序一、实验目的:1. 掌握Java语言的基本语法和面向对象编程思想。
2. 掌握控制流语句(如if-else、for、while等)的使用。
3. 理解面向对象编程的基本概念,如类、对象、方法、继承等。
二、实验环境:1. 操作系统:Windows 10。
2. Java开发环境:JDK 1.8。
3. 开发工具:Eclipse IDE。
三、实验步骤:1. 创建一个新的Java项目,命名为Calculator。
2. 在项目中创建一个名为Calculator的类,作为主类,包含main()方法作为程序的入口点。
3. 在Calculator类中添加一个构造函数,用于初始化变量和设置初始状态。
4. 添加两个私有变量:运算符(operator)和数字(num)。
运算符用于存储运算符符号(+, -, *, /等),数字用于存储要计算的数值。
5. 添加一个公共方法add(),用于实现加法运算。
在该方法中,使用控制流语句(如if-else)根据运算符进行加法运算,并返回结果。
6. 添加一个公共方法subtract(),实现减法运算的逻辑与add()方法类似。
7. 添加一个公共方法multiply(),实现乘法运算的逻辑与add()方法类似。
8. 添加一个公共方法divide(),实现除法运算的逻辑与add()方法类似。
注意,在除法运算中需要处理除数为零的情况。
9. 在main()方法中编写测试代码,调用add()、subtract()、multiply()和divide()方法进行运算,并输出结果。
10. 运行程序,观察结果是否符合预期。
四、实验代码示例:```javapublic class Calculator {private char operator; // 运算符private int num; // 数字public Calculator(char operator, int num) { // 构造函数this.operator = operator;this.num = num;}public int add(Calculator num) { // 加法运算方法int result = this.num + num.num;return result;}public int subtract(Calculator num) { // 减法运算方法int result = this.num - num.num;return result;}public int multiply(Calculator num) { // 乘法运算方法int result = this.num * num.num;return result;}public int divide(Calculator num, int divisor) { // 除法运算方法(处理除数为零的情况)if (divisor == 0) { // 除数为零时抛出异常或返回特殊值throw new IllegalArgumentException("除数不能为零");} else {int result = this.num / divisor;return result;}}}```五、实验总结:通过本次实验,我们掌握了Java语言的基本语法和面向对象编程思想,了解了控制流语句的使用,并实现了简单的计算器应用程序。
java课程设计题目一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、概念和编程技巧,培养学生具备基本的编程能力和解决问题的能力。
具体的教学目标如下:1.理解Java编程语言的基本语法和结构。
2.掌握Java中的基本数据类型、运算符和表达式。
3.熟悉Java中的控制结构、循环结构和数组操作。
4.了解Java中的面向对象编程概念,如类、对象、继承和多态。
5.能够使用Java编程语言编写简单的程序,解决实际问题。
6.能够运用面向对象编程思想,设计和实现具有一定复杂度的程序。
7.能够运用Java编程语言进行调试和优化程序,提高程序的性能和可读性。
情感态度价值观目标:1.培养学生对编程语言的兴趣和热情,激发学生对计算机科学的探索精神。
2.培养学生的问题解决能力和创新思维,鼓励学生勇于面对挑战和解决问题。
3.培养学生的团队合作意识和沟通能力,鼓励学生与他人合作共同完成项目。
二、教学内容根据课程目标,本课程的教学内容主要包括Java编程语言的基本语法、概念和编程技巧。
具体的教学大纲如下:第1-2周:Java编程基础1.Java语言概述和环境配置2.Java基本语法和数据类型3.运算符和表达式4.控制结构(条件语句、循环语句)第3-4周:面向对象编程1.类和对象的概念2.构造方法和成员变量3.继承和多态的概念和应用4.抽象类和接口第5-6周:Java高级特性1.异常处理和输入输出流2.集合框架和泛型编程3.线程和多线程编程4.Java网络编程基础三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。
具体的教学方法如下:1.讲授法:通过教师的讲解和演示,向学生传授Java编程的基本概念和语法。
2.案例分析法:通过分析实际案例,让学生理解和掌握Java编程的技巧和方法。
3.实验法:通过上机实验,让学生亲手编写代码,培养学生的编程能力和实践能力。
《Java 程序设计》实验内容实验一Java编程基础(2学时)目的:熟悉Java上机环境及Java两种程序的结构内容:1、编写一个Application程序,输出自己的学号、姓名和电话号码。
2、编写一个Applet程序和相应的Html文件,显示本学期所选修的课程。
实验二键盘输入与分支结构(2学时)目的:运用Scanner类的方法从键盘输入信息;使用流程控制语句实现简单逻辑运算内容:1、编写程序:要求用户输入两个数以及两数之和,若用户给出的结果正确,则显示祝贺信息;否则显示慰问信息以及正确答案。
2、后显示每年可以获得的利息。
要求使用switch语句实现。
实验三循环结构(4学时)目的:熟悉for、while、do..while语句,为具体操作选择适合的循环内容:1、编写程序输出200以内的所有奇数,要求每行输出10个数。
2、设计显示如下菜单:[1] Add[2] Sub[3] Mult[4] Div[5] Exit允许用户连续的从这些选项中进行选择。
当选中1-4选项时,显示适当的信息确认选项。
例如当用户选择3时,可以显示如下信息:Y ou choice Mult.当用户选择5时,程序终止。
如果输入1-5以外的选项,显示出错信息。
3、输出下三角形状的乘法九九表。
实验四数组与方法(4学时)目的:学习创建简单类型的数组,并能用循环语句处理数组;掌握方法的声明、定义和调用,理解实参和形参的含义。
内容:1、编写程序,定义一个一维数组并赋有初值,分别按以下要求输出:(1)逆序输出(2)输出下标为奇数的元素(3)输出元素值为偶数的数组元素2、编写一个方法,用来在有n个元素的一维数组中找出最大值作为方法的返回值。
在主方法中定义一个一维数组并赋有初值,调用上述方法找到并输出其中的最大值。
3、编写程序用6个号码初始化一个整型数组。
允许用户在另一个数组中输入6个中奖号码,程序通过比较两组数,告知用户是否中奖。
若中奖,用户必须输入与给定数组一样的号码,但号码的顺序不一定相同。
“Java程序设计基础”课程习题一、填空1.Java程序分两类___Applet___和application,Java Application 类型的程序,程序从___main方法___开始执行。
2.定义一个Java类时,通过关键字__extends____指明该类的父类。
一个类可以有___1___个父类。
3.用public修饰的类称为_公有类或公用类__。
用public修饰的类成员称为公有成员。
被说明为public的内容可以被__所有其他类___ 使用。
如果public类文件与使用它的类文件不在同一目录中,需要通过__import____语句引入。
4.用___private___ 修饰的类成员称为私有成员。
私有成员只能在__本类__ 中使用。
5.如果子类定义的成员变量与父类的成员变量同名,称为___方法覆盖___ ,要表明使用子类的成员变量,可以在成员变量前加上关键字__super___ 。
6.____Object__ 类是Java类库中所有类的父类。
7.Java字符使用__16位的字符集,该字符集成为__Unicode____ 。
8.当子类中定义的方法与父类方法同名时,称子类方法___覆盖___ 父类方法,子类默认使用自己的方法。
使用父类的同名方法,必须用关键字__super__ 说明。
9.Java源程序文件名的后缀是___.java___,Java字节码文件名的后缀是_.class_____。
10.Java类名的第一个字母通常要求___大写___。
11.Java程序由____类__组成,每个程序有一个主类,Java程序文件名应与____主__类的名称相同。
12.Java__Application_类型的程序需要main()方法,程序从__main____开始执行。
13.布尔型数据类型的关键字是_boolean__ ,占用位数是___1位___ ,有__true__ 和_false_两种值。
Java实验二实验二类与对象实验目的1、掌握面向对象程序设计的方法和Java作为面向对象程序设计语言的特点;2、掌握修饰符和构造方法的使用规则;3、掌握接口的特点、结构、调用和继承;4、掌握如何创建包,通过包如何管理类;5、掌握Java的继承机制和实现多态的方法实验内容(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。
SetRecord赋值学号、姓名和成绩,GetRecord通过学号得到考生的成绩。
通过实例验证编程无误。
(2)定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea(),然后设计Circle和Rectan两个类实现这个接口的方法calculateArea(),分别计算圆和矩形的面积。
通过实例验证编程无误。
(3)假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。
根据上述要求,请完成以下Java类的设计:(i)设计一个基类Student描述学生的共同特征。
(ii)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。
(iii)设计一个描述研究生的类Graduate,该类继承并扩展Student类。
(iv)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息附实验一名称是Java语言基础实验报告分为以下几个部分一实验名称二实验目的三实验仪器四实验步骤(把你的操作一步一步写清楚,java 程序代码要写)五实验结果(程序运行后的结果就是DOS环境下运行出来的结果写在实验报告上)六实验讨论(实验过程中的错误及如何改正,你的心得体会等)答案:(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。
第二章Java语法基础【实验目的】(1) 常量、变量与数据类型a. 掌握Java的常量、变量声明及使用方法b. 掌握Java各种数据类型的使用c. 掌握基本的输入输出函数(2) 运算符与表达式a. 掌握算术运算、关系运算、逻辑运算,及优先关系b. 掌握表达式的使用(3) 常用系统类a. 基本输入输出类的使用b. 掌握Math类的使用(4) 类及其方法的使用a. 掌握类的定义和方法调用【实验范例】1、数据类型范例publicclass DataTypeDemo {publicstaticvoid main(String args[]) {byte b = 0x55;short s = 0x55ff;int i = 1000000;long l = 0xffffL;char c = 'a';float f = 0.23F; //此行0.23后的F可否去掉,为什么?double d = 0.7E-3; //可否将0.7E-3变换为另一种等值方式来表示boolean B = true;String S = "这是字符串类数据类型";System.out.println("字节型变量 b = " + b);System.out.println("短整型变量 s = " + s);System.out.println("整型变量 i = " + i);System.out.println("长整型变量 l = " + l);System.out.println("字符型变量 c = " + c);System.out.println("单精度变量 f = " + f);System.out.println("双精度变量 d = " + d);System.out.println("布尔型变量 B = " + B);System.out.println("字符串类对象 S = " + S);}}2、运算符与表达式(1)数值运算范例publicclass NumCalcDemo {publicstaticvoid main(String args[]) {int a = 8, b = 5;//除法运算System.out.println( a+"/"+ b +" = " + a/b);System.out.println( a+"/"+(-b)+" = " + a/-b);System.out.println(-a+"/"+ b +" = " + -a/b);System.out.println(-a+"/"+(-b)+" = " + -a/-b);//取模运算System.out.println(a +"%"+ b +" = " + a%b);System.out.println(a +"%"+(-b)+" = " + a%-b);System.out.println(-a+"%"+ b +" = " + -a%b);System.out.println(-a+"%"+(-b)+" = " + -a%-b);//自加运算System.out.println(++a + "+" + b + "=" ++ +a + b); //此行会出现什么错误提示,请修正System.out.println(++a + "+" + b + "=" +(++a) + b);System.out.println(a++ + "+(" + (-b) + ")=" + +(++a) + b); //为使得输出的表达式正确,此处应该怎么改System.out.println(- ++a + "+" + b + "=" + - ++a + b);System.out.println(- a++ + "+" + (-b) + "=" + -a++ + -b);}}(2)关系运算与逻辑运算范例publicclass OperationDemo {publicstaticvoid main(String args[]) {int a = 25, b = 3;boolean d = a<b;System.out.println(a+"<"+b+" = "+d);int e = 3;d = (e!=0 && a/e>5);System.out.println(e+"!=0&&"+a+"/"+e+">5 = "+d);int f = 0;d = (f!=0 && a/f>5);System.out.println("d=" + d);d = (a/f>5 && f!=0); //有错,如何修正?System.out.println("d=" + d);}}【预备知识】1、控制台输出Java从控制台输出可使用以下方法:System.out.print()System.out.println()2、控制台输入Java从控制台输入的3种方式:(1) 用System.in.read()获取"单个"字符import java.io.*; //导入Input/Output数据包publicclass CharInputDemo {publicstaticvoid main(String [] args) throws IOException//抛出IO异常{System.out.print("Enter a Char:");char i = (char) System.in.read();System.out.println("your char is :"+i);}}(2) 用BufferedReader类和InputStreamReader类获取"字符串"import java.io.*;publicclass StreamReaderDemo {publicstaticvoid main(String [] args) throws IOException{ BufferedReader br = new BufferedReader(newInputStreamReader(System.in));String str = null;System.out.println("Enter your value:");str = br.readLine();System.out.println("your value is :"+str);}}(3) 使用Scanner类读入"字符串"import java.util.*; //导入java.util工具包publicclass ScannerDemo {publicstaticvoid main(String [] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入你的姓名:");String name = sc.nextLine();System.out.println("请输入你的年龄:");int age = sc.nextInt();System.out.println("请输入你的工资:");float salary = sc.nextFloat();System.out.println("你的信息如下:");System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);sc.close(); //关闭输入流}}注:(1) (2)需要抛出异常:throws IOException(3) 比较灵活,建议使用3、常用系统类:ng包:String类、Math类(使用方法请参考教材Java常用系统类),String类使用实例在下一章介绍。
Java实验报告中的所有实验题实验一略实验二Java 基本语法练习【完成实验项目】1.输入一个整数,输出该数的二进制表示形式的字符串2.编写Java应用程序,把100~1000的自然数中能够被3整除的数输出到屏幕上。
3.打印小于1000的斐波纳契数4. 输入一个梯形的上底、下底和高,求其面积实验三面向对象基础编程【完成实验项目】1.写一个名为Rectangle的类表示矩形。
其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。
要求该类提供计算面积的方法getArea()方法,以及修改width和height的值及获得width和height当前值的方法。
要求:(1)使用构造函数完成各属性的初始赋值(2)使用getter和setter的形式完成属性的访问及修改2..请定义一个名为Card的扑克牌类,该类有两个private访问权限的字符串变量face和suit:face描述一张牌的牌面值(如:"Ace", "Deuce", "Three","Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King");suit描述一张牌的花色(如:"Hearts", "Diamonds", "Clubs", "Spades")。
定义Card类中的public访问权限的构造方法,为类中的变量赋值;定义protected访问权限的方法getFace(),得到扑克牌的牌面值; 定义protected访问权限的方法getSuit(),得到扑克牌的花色; 定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如“Ace of Hearts”、“Ten of Clubs”等)。
Java实验综合实验及练习第一部分:编程题1、编写程序实现输入整数n,输出如下所示由数字组成的菱形。
(图中n=5)11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 3 2 11 2 3 2 11 2 112.给出年、月、日,计算该日是该年的第几天?3、利用求素数的方法,就6~2000000之间的所有偶数验证歌德巴赫猜想:任何一个大于6的偶数可以分解为两个素数之和。
4、现有15位选手参加比赛,有6个评委每个评委都要给每位选手打分,分数为60~100分,现需要定义二维数组存储选手成绩,每行存储一位选手打分情况,要求输出选手得分以及选手最后得分,以及选手名次。
评分规则:分数为60~100分。
选手最后得分为:去掉一个最高分和一个最低分后其余4个分数的平均值。
5、设计一个描述二维平面上点的类Position,该类需要描述点的横坐标和纵坐标,并提供属性的set/get访问器方法和计算两点间距离的方法。
写一个程序测试这个类6、设计一个表示二维平面上点的类Point,包含有表示坐标位置的protected类型的成员变量x和y,获取和设置x 和y值的public方法。
设计一个表示二维平面上圆的类Circle,它继承自类Point,还包含有表示圆半径的protected类型的成员变量r、获取和设置r值的public方法、计算圆面积的public方法。
7、编写一个完整的Java Application 程序。
包含接口Shape,MyRectangle类,MyTriangle 类及Test类,具体要求如下:⑴、接口Shape:double area():求一个形状的面积double perimeter ():求一个形状的周长⑵、类 MyRectangle :实现Shape 接口,并有以下属性和方法:① 属性width : double 类型,表示矩形的长height : double 类型,表示矩形的高② 方法MyRectangle(double w, double h):构造函数ToString()方法 :输出矩形的描述信息,如“width=1.0,height=2.0, perimeter=6.0,area=2.0”⑶、类MyTriangle :实现Shape 接口,并有以下属性和方法:① 属性x,y,z: double 型,表示三角形的三条边s: 周长的1/2(注:求三角形面积公式为))()((z s y s x s s ---,s=(x+y+z)/2 ,开方可用Math.sqrt(double)方法)② 方法MyTriangle(double x, double y, double z):构造函数,给三条边和s 赋初值。
《Java程序设计》上机实验指导手册实验一 Java环境演练【目的】①安装并配置Java运行开发环境;②掌握开发Java应用程序的3个步骤:编写源文件、编译源文件和运行应用程序;③掌握开发Java Applet程序的3个步骤:编写源文件、编译源文件和运行Java Applet 程序;④学习同时编译多个Java源文件。
【内容】1.一个简单的应用程序✧实验要求:编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。
✧程序运行效果示例:程序运行效果如下图所示:✧程序模板:Hello.javapublic class Hello{public static void main (String args[ ]){【代码1】//命令行窗口输出"你好,很高兴学习Java"A a=new A();a.fA();}}class A{void fA(){【代码2】//命令行窗口输出"We are students"}}✧实验后的练习:1.编译器怎样提示丢失大括号的错误?2.编译器怎样提示语句丢失分号的错误?3.编译器怎样提示将System写成system这一错误?4.编译器怎样提示将String写成string这一错误?2.一个简单的Java Applet程序✧实验要求:编写一个简单的Java Applet程序,并在Java Applet中写两行文字:“这是一个Java Applet程序”和“我改变了字体”。
✧程序运行效果示例:程序运行效果如下图所示:✧程序模板:FirstApplet.javaimport java.applet.*;import java.awt.*;public class FirstApplet extends Applet{public void paint(Graphics g){g.setColor(Color.blue);【代码1】//在Java Applet中绘制一行文字:“这是一个Java Applet 程序”g.setColor(Color.red);g.setFont(new Font("宋体",Font.BOLD,36));【代码2】//在Java Applet中绘制一行文字:“我改变了字体”}}✧实验后的练习:5.程序中的主类如果不用public修饰,编译能通过吗?6.程序中的主类如果不用public修饰,程序能正确运行吗?7.程序将paint方法误写成Paint,编译能通过么?8.程序将paint方法误写成Paint,运行时能看到有关的输出信息吗?3.联合编译✧实验要求:编写4个源文件:Hello.java、A.java、B.java和C.java,每个源文件只有一个类,Hello.java是一个应用程序(含有main方法),使用了A、B和C类。
《JAVA基础》课程测试考试时间(180分钟)笔试:60分钟机试:120分钟总分(200分)笔试:100分机试:100分第一部分:笔试(60分钟)笔试答卷提交方式:请各位学员将答案写在A4纸上,写上姓名,切记在每个答案前带上题目的序号。
一、简答题(20题,每题5分,共100分)1、请列出5个常见的异常类?2、Java 中的Math. round(-3. 5) 等于多少?3、请说出5个常见的类?说出5个常见的包?4、final 在Java 中有什么作用?5、final、finally、finalize 有什么区别?6、short s = 1 ;s = s + 1 ;有错吗?为什么?short s = 1 ;s += 1 ;有错吗?为什么?7、== 和equals 的区别是什么?8、使用冒泡法将整形数组的进行排序9、String s1=”Hello”; String s2=”hello”; String s3=s1.toLowerCase(); String s4=s2.toLowerCase();下面选项结果为true的是:A.s1==s3B.s2==s3C.s2==s4D.s3==s410、下面的代码输入什么?final String str8 = "b";String str9 = "a" + str8;String str89 = "ab";System.out.println("str9 = str89 : "+ (str9 == str89));11、接口和抽象类有什么区别?12、下面的代码输入什么?Integer i1 = 1 ;Integer i2 = 1 ;Integer i3 = 128 ;Integer i4 = 128 ;System.out.println(i1 == i2);System.out.println(i3 == i4);13、ArrayList跟Vector的区别?14、说下javac 跟java命令的作用?15、说下HashTable HashMap的区别?16、说下数组跟链表的区别?17、代码中有且仅有如下代码String s1 = new String("Hello"); ,这行代码会创建几个字符串对象?18、下面的代码输入什么?String s1 = "abc";String s2 = new String("abc");s2.intern();System.out.println(s1 ==s2);19、java中有几种访问修饰符以及它们区别?20、重写跟重载的区别?第二部分:机试要求:编写一个控制台版本的员工管理系统,使用分层,员工信息有ID、姓名、年龄、性别,并使用集合跟面向对象等知识点实现如下功能,请保持较好的代码规范跟项目结构。
《Java基础》课程实验题专业:计算机科学与技术、软件工程、网络工程(2013级起)教材:《Java程序设计实用教程(第4版)》第6章图形用户界面实验目的、要求和题意详见教材实验6。
选题分配如下。
6-1 裁判评分。
6-2 算术表达式计算。
6-3 计算器。
6-4 货币转换,使用表格组件显示汇率表。
6-5 复数表达式计算。
6-6 整数多种进制转换。
6-7 十进制整数的算术运算及二进制显示。
6-8 整数位运算及二进制显示。
6-9 制作日期组件和月历组件,日期运算。
见实验6-38和6-39。
6-10 显示字符串中每个字符的Unicode值。
6-11 例6.4 Person对象信息管理增加功能,见思考题6-3。
6-12 Friends对象信息管理,图形用户界面类似例6.4,Friends类声明见教材实验3。
6-13 Student对象信息管理,见思考题6-3⑤。
6-14 例6.4 Person对象信息管理增加功能,见思考题6-3,使用表格。
6-15 Friends对象信息管理,题同6-12,使用表格。
6-16 Student对象信息管理,见思考题6-3⑤,使用表格。
6-17 例6.5 文本编辑器增加功能,见思考题6-4。
6-18 例6.6 银行贷款计算增加功能,见思考题6-5,并提供等额本息还款法等多种还款方式计算银行贷款每月还本付息金额。
6-19 缴税计算。
6-20 课程成绩多级统计。
6-21 幻方阵的图形用户界面,幻方阵题见教材第44页例2.6。
6-22 杨辉三角的图形用户界面,杨辉三角题见教材第50页例2.8。
6-23 下标和相等方阵的图形用户界面,题意详见教材实验2。
6-24 约瑟夫环的图形用户界面,题意详见教材实验2。
6-25 哥德巴赫猜想的图形用户界面,题意详见教材实验2。
6-26 Smith数的图形用户界面,题意详见教材实验2。
6-27 亲密数对的图形用户界面,题意详见教材实验2。
6-28 求n个数的最大公约数和最小公倍数,图形用户界面,题意详见教材实验2。
6-29 识别字符串中包含的所有标识符,图形用户界面,题意详见教材实验2。
6-30 绘制平面图形并计算周长和面积。
6-31 等腰三角形、正五边形与五角星等图形设计,指定图形大小、位置和颜色,最小化后恢复全部图形。
6-32 星形线图形设计,指定图形大小、位置和颜色。
6-33 心形线图形设计,指定图形大小、位置和颜色。
6-34 阿基米德螺线图形设计,指定图形大小、位置和颜色。
6-35 对数螺线图形设计,指定图形大小、位置和颜色。
6-36 双曲螺线图形设计,指定图形大小、位置和颜色。
6-37 伯努利双纽线图形设计,指定图形大小、位置和颜色。
6-38 制作画图程序。
以下选题,题意详见习题解答实验6。
6-39 循环移位方阵的图形用户界面,题意详见习题解答实验2。
6-40 螺旋方阵的图形用户界面,题意详见习题解答实验2。
6-41 二维数组找鞍点的图形用户界面,题意详见习题解答实验2。
6-42 求n个数的无重复全排列,题意详见习题解答实验2。
6-43 求平均值。
6-44 整数的数据类型及多种进制相互转换。
6-45 计算月平均工资。
6-46 计算当月应缴的个人所得税,并显示税后工资。
6-47 创建随机数序列并排序。
6-48 二十四点牌戏问题。
6-49 设计典型多边形组件,画图程序中使用。
第12章综合应用设计12.5 课程设计选题补充选题说明如下。
1. 图形用户界面和文件(1)题意说明详见教材12.5节12-1 例6.6 银行贷款计算增加保存文件功能,提供等额本息还款法(见实验6)。
12-2 例8.2 随机数序列的计算、排序及保存整数文件,要求见思考题8-3。
12-3 例8.8文本编辑器和文件管理器增加功能,要求见思考题8-8。
12-4 例12.5 增加查询和统计功能,题见思考题12-4①。
12-5 例12.5 增加功能,题见思考题12-4②。
12-6 多种货币的汇率转换,题见12-3。
12-7 计算工资及所得税,12-4题。
计算某人指定年份各月给定收入值的个人所得税及其和。
注意,2011年9月起,实施新版税率。
如图12.16所示。
要求:①将个人所得税税率表保存在文件中,从文件中读取税率并显示在表格组件中。
②采用表格组件显示每月收入值、应缴税额及税后工资等数据,计算总数和平均值。
③某年各月收入写入文件。
图12.1 计算工资及所得税12-8 统计选举得票,题见12-5。
12-9 统计获奖名单,题见12-6。
12-10 选择题自动阅卷,题见12-7。
设一份试卷有若干选择题,给定一组选择题答案。
每次读取一份若干答题文件,批改其中选择题,给出得分。
统计多份答卷的平均分、各题的得分率等,将结果存入文件。
12-11 MP3播放器,题见12-8。
12-12 电话簿管理,题见12-9,使用列表框组件显示关系分类。
12-13 电话簿管理升级,题见12-9,使用树组件显示关系分类。
12-14 手机信息管理,题见12-10,采用多文档界面。
12-15 Java源程序编辑器,题见12-11,采用多文档界面。
12-16 单窗口的连珠五子棋,题见12-18。
12-17 24点牌戏问题,题见12-20。
(2)题意说明详见习题解答实验612-18 哥德巴赫猜想,题见12-2。
(3)补充12-19 课程成绩多级统计。
Student类增加一门课程成绩,输入若干学生的课程成绩值,或从文件获得,约定优、良、中、及格、不及格等各段分值范围,分别统计人数并显示,将结果存入文件。
12-20 制作画图程序。
①工具栏增加选择画笔颜色和填充色、选择图形形状(直线、椭圆、矩形、圆角矩形或鼠标拖动的随意线等)、选择填充方式(实、虚线、斜虚线等),增加橡皮和取色等功能。
②设计典型多边形组件,如正五边形、五角星等,绘制多边形图形,计算面积,以多种填充模式填充多边形;拖动边框以改变大小。
③将所绘图形及其属性保存到文件,再读取重画。
2. 线程(1)题意说明详见教材12.5节12-21 杨辉三角,题见教材例12.8,使用表格,动态演示生成过程。
12-22 九宫排序,题见12-15,从指定文件中获得九宫排序的一个初始排列。
12-23 走迷宫,题见12-16。
12-24 骑士游历,题见12-17。
12-25 基于线程同步的连珠五子棋,题见12-18。
12-26 骑士对攻问题,题见12-19。
12-27 基于线程通信的24点牌戏问题,题见12-20。
12-28 基于线程同步的多窗口绘制图形,题见12-21。
12-29 基于线程同步的荷塘夜降彩色雨,题见12-22。
12-30 交通信号灯,题见12-23。
12-31 饥饿小鱼类似游戏,题见12-24。
12-32 随机运动的彩色弹弹球,题见12-25。
12-33 斯诺克台球比赛模拟,题见12-26。
(2)题意说明详见习题解答实验612-34 循环移位方阵,使用表格,动态演示移动过程。
12-35 螺旋方阵,使用表格,动态演示生成过程。
12-36 找出一个二维数组的鞍点,使用表格,动态演示寻找过程。
12-37 下标和相等的方阵,使用表格,动态演示生成过程。
(3)补充12-38 MP3播放器,题见12-8。
歌词滚动播放。
12-39 骑士控制问题。
给定n×n国际象棋棋盘,计算棋盘上最少需要放置多少个骑士,使得每个骑士至少受到k个骑士的攻击。
12-40 基于线程同步的多窗口弹弹球。
①已知多个弹弹球运行在A窗口。
②创建B窗口,其中没有球;移动B窗口,当B窗口的一边与A窗口接触时,若干球从A窗口运行到B窗口;当A、B窗口相邻时,球在A和B窗口范围内运行;当B窗口离开A窗口时,若干球分别在A或B窗口中运行。
③再创建C、D等窗口,具有上述功能。
12-41 基于线程同步的画图程序。
运行多个画图窗口,每个窗口包含显示区域和绘图区域,各窗口所绘图形同步传输至其他窗口显示。
将所绘图形及其属性保存到文件,再读取重画,添加图形。
3. 网络通信(1)题意说明详见教材12.5节12-42 例9.1查看指定URL的Web页编辑器及HTML文档,增加功能见思考题9-1。
12-43 例9.2聊天室程增加功能,要求见思考题9-2。
12-44 基于Socket通信的连珠五子棋,题见12-18。
12-45 基于Socket通信的交通信号灯,题见12-29。
12-46 基于Socket通信的24点牌戏问题,题见12-20。
12-47 基于Socket通信的扑克牌游戏程序,题见12-30。
12-48 基于Socket通信的围棋,题见12-31。
12-49 基于Socket通信的四国大战,题见12-32。
12-50 斯诺克台球比赛模拟,题见12-26,演示基于Socket通信的两人比赛过程。
(2)题意说明详见教材实验612-51 十进制整数算术运算的竖式及二进制显示。
12-52 整数位运算的竖式及二进制显示。
12-53 算术表达式计算。
12-54 复数表达式计算。
(3)补充12-55 基于Socket通信的裁判评分。
裁判长和n个裁判员的图形用户界面如图12.1所示,要求说明如下。
①裁判长输入参赛选手名,并向各裁判员发送。
②裁判员接收参赛选手名,在规定时间内,输入得分并发回。
③裁判长接收各参赛选手名的得分,根据指定规则计算出最后得分并显示,得分规则由指定接口约定。
④比赛结束,裁判长窗口将各选手得分排序,给出名次。
将比赛结果存入指定日期的文件。
⑤裁判员可打开裁判长窗口,查看指定日期的比赛结果,但没有操作权限。
图12.2 基于Socket通信的裁判评分12-56 基于Socket通信的货币汇率转换及统计。
①人民银行总行窗口,使用表格组件显示人民币、美元、欧元、英镑等多种货币的汇率表,每日修改,存于指定文件。
②各地储蓄所获得每日货币汇率文件,使用表格组件显示,不能修改。
③储蓄所根据汇率表进行各种货币兑换,记录兑换明细,统计各种货币每日兑换金额。
将每日兑换货币明细和金额上传到其所属分理处。
④各分理处汇总,将结果上传到支行;支行汇总,再上传到总行。
12-57 基于Socket通信的幻方阵。
幻方阵见例2.11,要求:①将指定阶数的幻方阵写入文件;②从文件中读取,判断幻方阵是否正确;③基于Socket通信,两人对弈方式,增加悔棋和复盘功能。
12-58 选举统计。
设一次选举有若干候选人,设计一种选票格式及计票程序,采用基于Socket通信方式投票。
统计所有选票数量、每个候选人的得票数和得票率,将候选人及其得票数和得票率按得票数降序排序显示,并输出到指定文件中。
可增加候选人。
12-59 网络阅卷。
设一份试卷有若干选择题、填空题、问答题等题型,阅卷方式不同,说明如下。
①选择题由组长机自动批改。