目录
前言
一、多线程改错题(20分)
二、Java语言的运用综合题(20分)
三、面向对象编程综合题(20分)
四、GUI界面设计综合题(20分)
五、使用GUI界面实现文件的读写(20分)
总结
临近Java期末考试,不少同学反映不知道从何下手与复习,我们班老师对于期末考试题型知识点啥也不透露(真服了),还好其他班级老师比较给力,东打听西打听得到期末主要考的题型知识点,结合个人经验判断,大胆出一套押题卷,仅供参考与复习。(花了一上午总结的,要个一键三连不过分吧?嘿嘿)下面直接进入正题
考点:实现多线程的两种方法、实现线程同步的方法、线程常用方法如睡眠、让步、优先级、获取正在运行的线程名、线程命名等、GUI消息对话框、警示对话框
设错点分析:导包错误、主类名与文件名是否一致、实现的接口是否匹配、是否实现接口里的抽象
方法、多线程的创建构造方法里面的参数是否缺少、线程是否启动、方法是否缺少类型、线程睡眠单位是ms、是否抛出与捕获相应的异常、主方法是否为静态、消息对话框......
考前模拟题如下:
错误代码:
import java.swing.*;
import java.awt.*;
public class MyThread extends JFrame implements Thread
{
JTextField output;
JLabel note;
int i=0;
public MyThread()
{
setTitle("多线程示例");
output=new JTextField(10);
output.setFont(new Font("黑体",Font.PLAIN,20));
note=new JLabel("自增的数字:");
setLayout(new FlowLayout());
add(note);
add(output);
setSize(380,150);
setVisible(true);
Thread runner= new Thread( );
runner.Run();
}
public run()
{
while(true)
{
try
{
Thread.sleep(500); //休眠0.5秒
output.setText( " i= "+(i++));
if(i=10)
JOptionPane.showDialog(null,"线程执行了"+i+"次","时间提醒",JOptionPane.INFORMATION_MESSAGE);
}
catch (IOException e) { }
}
}
public static void main(string arg[])
{
new MyThread();
}
}
正确代码:
import javax.swing.*;//导入包错误
import java.awt.*;
//主类名应该与文件名保持一致
public class Race extends JFrame implements Runnable//应该实现Runnable接口来实现多线程
{
JTextField output;
JLabel note;
int i=0;
public Race ()
{
setTitle("多线程示例");
output=new JTextField(10);
output.setFont(new Font("黑体",Font.PLAIN,20));
note=new JLabel("自增的数字:");
setLayout(new FlowLayout());
add(note);
add(output);
setSize(380,150);
setVisible(true);
Thread runner= new Thread(this);//创建线程时的构造参数里面target为提供线程体的对象或者对象名字
runner.start();//runner.Run(); 执行多线程应该是start()方法
}
public void run()//缺少方法类型
{
while(i<=9)
{
try
{
Thread.sleep(500); //休眠0.5秒
output.setText( " i= "+(i++));
//从0开始执行,到9共执行10
if(i==10){
JOptionPane.showMessageDialog(null,"线程执行了"+i+"次","时间提醒",JOptionPane.INFORMATION_MESSAGE);
}
}
//异常捕获错误,应该捕获异常终止
catch (InterruptedException e) {
e.printStackTrace();//捕获异常语句中未给出具体操作语句
}
}
}
public static void main(String arg[])//主方法里的形参类型应该为String类型
{
new Race();
}
}
考点:Java基础知识的运用,数组,字符串、选择,判断、循环三大结构
这题类似小算法题,给出一个应用场景编程解决,应该不会太难的(送分)
例题1:韩信点兵
一支队伍,若3个一排,则队尾有a人(a<3),若5个一排,则队尾有b个(b<5) ,若7个一排,则队尾有c人(c<7)。现从键盘上输入a,b,c的值,输出满足该 要求的总人数的最小值。或者报告“无解”。已知总人数>=10但<100。
输入:2 1 6
输出:总人数(最小值)=41
又如:
输入:2 1 3
输出:无解
/*
第2题:韩信点兵
题目描述:一支队伍,若3个一排,则队尾有a人(a<3),若5个一排,则队尾有b个(b<5) ,若7个一排,则队尾有c人(c<7)。现从键盘上输入a,b,c的值,输出满足该 要求的总人数的最小值。或者报告“无解”。已知总人数>=10但<100。
输入:2 1 6
输出:总人数(最小值)=41
又如:
输入:2 1 3
输出:无解
考点:Java基础知识的运用,数组,选择,循环,判断结构
*/
import java.util.Scanner;
public class Line{
public static void main(String args[]){
boolean flag=false;
int a=0,b=0,c=0,sum=0;
Scanner sc=new Scanner(System.in);
System.out.println("请分别输入a,b,c的值:");
a=sc.nextInt();
b=sc.nextInt();
c=sc.nextInt();
for(int i=10;i<100;i++){
if(i%3==a&&i%5==b&&i%7==c){
sum=i;
flag=true;
break;
}
}
if(flag){
System.out.println("总人数(最小值):"+sum);
}else{
System.out.println("无解");
}
}
}
例题2:打印指定整数之前所有能被3整除的正整数,并按每5个为一行进行打印输出
要求体现面向对象的编程特性,即封装方法
import java.util.Random;
public class RandomDemo{
public static void main(String args[]){
Random ran=new Random();
int n=ran.nextInt(101);
System.out.println("随机生成的数 n="+n);
System.out.println("\n1~"+n+"之间可以被3整除的数如下:");
new RandomDemo().printNumber(n);
}
public void printNumber(int n){
int []a=new int[100];
int j=0,count=0;
for(int i=1;i<=n;i++){
if(i%3==0){
a[j++]=i;
}
}
for(int k=0;k
考点:封装、继承、多态、接口类、抽象类、异常类
类似于我们的Java实验三,但是针对于考试而言,应该不会涉及到包的管理,即将父类、子类、测试类、异常类、接口类写在一个Java程序里,这样也便于老师批阅(纯属个人猜测,以考试为准)
下面这是我当时做的Java实验二,子类可能有点多,但是考试的话,子类就要求一个即可,代码仅供参考,重点体会面向对象编程的三大特性以及异常处理机制的运用
import java.util.*;
//第1题:定义一个抽象的商品类
abstract class Commodity{
//商品基本属性
protected String comNumber;//商品号
protected String comName;//商品名
protected double comPrice;//商品价格
protected String comProductor;//生产商
protected int comStock;//库存量
//构造方法01:无参构造
Commodity(){};
//构造方法02:有参构造
Commodity(String comNumber,String comName,double comPrice,String comProductor,int comStock){
this.comNumber=comNumber;
this.comName=comName;
this.comPrice=comPrice;
this.comProductor=comProductor;
this.comStock=comStock;
}
//修改商品价格
public void changeComPrice(double price){
comPrice=price;
}
//获取当前商品价格
public double getComPrice(){
return comPrice;
}
//获取商品名称
public String getComName(){
return comName;
}
public int getcomStock(){
return comStock;
}
//重写toString方法
public String toString(){
return "商品信息如下:\n"+"商品号:"+comNumber+"\n商品名:"+comName
+"\n商品价格:"+comPrice+"元"+"\n生产商:"+comPrice;
}
}
//第2题:在抽象类的基础上,定义其两个子类:食品类与玩具类
//子类01:食品类
class Food extends Commodity{
private String foodTime;//生产日期
private String foodPeriod;//保质期
private String foodMainPart;//主要成分
private String foodStorage;//贮存方式
Food(String comNumber,String comName,double comPrice,String comProductor,int comStock,String foodTime,String foodPeriod,String mainPart){
super(comNumber,comName,comPrice,comProductor,comStock);
this.foodTime=foodTime;
this.foodPeriod=foodPeriod;
this.foodMainPart=mainPart;
}
//set方法:设置属性值
public void setFoodTime(String time){
foodTime=time;
}
public void setFoodPeriod(String period){
foodPeriod=period;
}
public void setFoodMainPart(String mainpart){
foodMainPart=mainpart;
}
public void setFoodStorage(String storage){
foodStorage=storage;
}
//get方法:返回属性值
public double getFoodPrice(){
return comPrice;
}
public String getFoodName(){
return comName;
}
//重写父类的toString方法
public String toString(){
return "食品信息如下:\n"+"食品号:"+comNumber+"\n食品名:"+comName
+"\n价格:"+comPrice+"元"+"\n生产商:"+comProductor+"\n生产日期:"+foodTime+
"\n保质期:"+foodPeriod+"\n主要成分:"+foodMainPart+"\n贮存方式:"+foodStorage;
}
}
//子类02:玩具类
class Toy extends Commodity{
private String toyNumber;//型号
private String toyMaterial;//材料
private String toySecurity;//安全级别
private String toyCareful;//注意事项
Toy(String comNumber,String comName,double comPrice,String comProductor,int comStock,String toyNumber,String toyMaterial,String toySecurity){
super(comNumber,comName,comPrice,comProductor,comStock);
this.toyNumber=toyNumber;
this.toyMaterial=toyMaterial;
this.toySecurity=toySecurity;
}
//set方法:设置属性值
public void setToyNumber(String number){
toyNumber=number;
}
public void setToyMaterial(String material){
toyMaterial=material;
}
public void setToySecurity(String security){
toySecurity=security;
}
public void setToyCareful(String careful){
toyCareful=careful;
}
//get方法:返回属性值
public double getToyPrice(){
return comPrice;
}
public String getToyName(){
return comName;
}
//重写父类的toString方法
public String toString(){
return "玩具信息如下:\n"+"生产号:"+comNumber+"\n玩具名:"+comName
+"\n价格:"+comPrice+"元"+"\n生产商:"+comProductor+"\n玩具型号:"+toyNumber+
"\n主要材料:"+toyMaterial+"\n安全级别:"+toySecurity+"\n注意事项:"+toyCareful;
}
}
//第3题:自定义顾客类,实现相关功能
class Customer{
private String name;//姓名
private String gender;//性别
private int age;//年龄
private double discount;//所属折扣
private float balance;//账户余额
Customer(String name,String gender,float balance){
this.name=name;
this.gender=gender;
this.balance=balance;
}
//用生日来计算年龄
public void setage(String birth){
Calendar myCal=Calendar.getInstance();
myCal.setTime(new Date());
age=myCal.get(Calendar.YEAR)-Integer.parseInt(birth.substring(0,4));
}
//按年龄分段打折
public void setdiscount(){
switch(age/10){
case 0:discount=0.5;break;//10岁以下的儿童半价
case 1:discount=0.8;break;//10-20岁的人打八折
case 2:
case 3:
case 4:
case 5:discount=0.9;break;//20-50的人打九折
default:discount=0.5;break;//60岁及以上的老人半价
}
}
//设置折扣
public void setbalance(float sum){
balance-=sum;
}
public double getdiscount(){
return discount;
}
public float getbalance(){
return balance;
}
public float shop(Food food,Toy toy,int num1,int num2){
float sum=(float)((food.getFoodPrice()*num1+toy.getToyPrice()*num2)*discount);
return sum;
}
public String toString(){
return "顾客基本信息如下:\n"+"姓名:"+name+"\n性别:"+gender+"\n年龄:"+age+"岁"+"\n账户余额:"+balance+"元";
}
}
//自定义库存异常类
class StockException extends Exception{
//System.out.println("库存不足!");
public StockException(String str){
super(str);
}
}
//自定义余额异常类
class BalanceException extends Exception{
public BalanceException(){
System.out.println("对不起,您的账户余额为0元!无法完成支付!");
}
}
//测试类
public class TestCommodity02{
public static void main(String args[])throws StockException,BalanceException {
Food food = new Food("SC12432070","会呼吸的蛋奶饼",12.50,"连云港市大学士食品有限公司",10,"2022年2月27日","60天","小麦粉、鸡蛋、饮用水、酵母、白砂糖等");
food.setFoodStorage("请置于阴凉干燥处,避免阳光直射!");//设置食品的贮存方式属性
System.out.println(food);//打印输出食品全部信息
System.out.println("修改价格后:");
food.changeComPrice(20.00);
System.out.println("食品:"+food.getFoodName()+"\n价格调整为:"+food.getFoodPrice()+"元");
System.out.println("---------------------------------------------------------");//分割线
Toy toy = new Toy("SX32409078","遥控仿真电子鞭炮",146.50,"义乌市恒派工艺品有限公司",5,"充电款","核心主板、电池、LED灯、喇叭、塑料保护壳等","一级");
toy.setToyCareful("电子鞭炮在“燃放”前后有触电危险,请勿触碰炸头!");//设置玩具的注意事项属性
System.out.println(toy);
System.out.println("修改价格后:");
toy.changeComPrice(140.50);
System.out.println("玩具:"+toy.getToyName()+"\n价格调整为:"+toy.getToyPrice()+"元");
System.out.println("--------------------------------------------------------");
Scanner input=new Scanner(System.in);
Customer c1=new Customer("Eric","男",500);
System.out.print("顾客您好!\n活动期间本店采取分年龄段打折的活动规则\n请您以XXXXXXXX的格式输入您的生日:");
String birthday=input.next();
c1.setage(birthday);//计算年龄
c1.setdiscount();//计算折扣
System.out.println(c1);//输出顾客基本信息
System.out.println("--------------------------------------------------------");
System.out.println("本店库存:\n食品:"+food.getFoodName()+" 单价:"+food.getFoodPrice()+"元/袋"+" 库存量:"+food.getcomStock()+"袋"
+"\n玩具:"+toy.getToyName()+" 单价:"+toy.getToyPrice()+"元/个"+" 库存量:"+toy.getcomStock()+"个");
System.out.print("请分别输入购买食品与玩具的数量:");
int num1=input.nextInt();int num2=input.nextInt();
System.out.println("--------------------------------------------------------");
//异常处理
if(num1<=food.getcomStock()||num2<=toy.getcomStock()){
float sum=c1.shop(food,toy,num1,num2);
System.out.println("顾客购买信息:\n"+"食品:"+num1+"袋 "+food.getFoodName()+"\n玩具:"+num2+"个 "+toy.getToyName()+"\n享受折扣:"+c1.getdiscount()*10+"折");
c1.setbalance(sum);
System.out.println("总消费额:"+sum+"元");
}
else{
throw new StockException("对不起,库存量不足!");
}
if(c1.getbalance()<0)
throw new BalanceException();
else{
System.out.println("您的账户余额为:"+c1.getbalance()+"元"+"\n欢迎您下次光临本店!");
}
}
}
考点:Awt或者Swing组件的使用,以及事件响应处理,消息对话框的使用,实现交互功能
出题思路:给一个图形界面,然后要求实现组件的事件响应(大概率是按钮)
建议:考试机房有NetBeans IDE8.2和TextPad两大编译器,个人推荐如果对组件很熟悉的话,任选其一使用即可。如果对组件不熟悉,那么NetBeans的可视化图形界面设计就是救星了,只需要拖拽组件即可完成界面的设计,此时应该能拿到一半的分数了。下面就是事件响应部分代码的编写,这个只能纯手写了,只不过NetBeans为我们少了一个判断事件源的代码,直接右键组件添加事件响应即可。
示例:
图形界面如下,请完成该界面的设计,实现点击" 确认提交"按钮将调查内容显示输出在下方文本域中,注意输出的格式
/*
Theme:第四章GUI图形界面设计综合案例
Plan:综合熟练运用各大swing组件以及各种类型的事件监听器
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class VariousGUI extends JFrame implements ActionListener {
JLabel lab1,lab2,lab3,lab4,lab5,lab6;//标签组件
JTextField tex1;//文本框组件
JComboBox jcb1;//下拉列表组件
JButton jbt1;//按钮
JRadioButton jrb1,jrb2,jrb3,jrb4,jrb5,jrb6;//单选按钮组件
ButtonGroup bg;//单选按钮组
JCheckBox cb1,cb2,cb3,cb4;//复选框组件
JTextArea jta1;//文本域组件
//JScrollPane scrollpane;//具有滚动条的面板
JPanel pan1,pan2,pan3,pan4,pan5,pan6;//面板组件
public VariousGUI(String str){
super(str);//调用父类构造方法进行窗体标题的设置
setLayout(new GridLayout(6,1));//设置布局格式为网格布局,6行1列,每行对应与一个面板
//创建面板对象
pan1=new JPanel();
pan2=new JPanel();
pan3=new JPanel();
pan4=new JPanel();
pan5=new JPanel();
pan6=new JPanel();
//scrollpane=new JScrollPane();
//scrollpane.setBounds(0,187,591,98);
lab1=new JLabel("调查报告");
lab1.setFont(new Font("黑体",Font.BOLD,30));//设置字体型号与大小
lab2=new JLabel("姓名:");
tex1=new JTextField(10);
lab3=new JLabel("班级:");
lab3.setForeground(Color.RED);//设置字体为红色
String str1[]={"软嵌202","软嵌201","计算机201","网络201","网络202","数据201","计嵌201"};
jcb1=new JComboBox(str1);//以str1数组内容为初始值创建组合框
lab4=new JLabel("性别:");
jrb1=new JRadioButton("男");//创建一个单选按钮对象,并且选项内容为“男”
jrb2=new JRadioButton("女");
bg=new ButtonGroup();//创建一个按钮组,将两个单选按钮加入到按钮组中去
bg.add(jrb1);
bg.add(jrb2);
//jrb1.setSelected(true);//设置单选按钮1的状态为选中状态
lab5=new JLabel("爱好:");
lab5.setForeground(Color.BLUE);
lab5.setFont(new Font("宋体",Font.BOLD,15));
cb1=new JCheckBox("美食");
cb2=new JCheckBox("运动");
cb3=new JCheckBox("音乐");
cb4=new JCheckBox("Coding");
lab6=new JLabel("年级:");
lab6.setForeground(Color.GREEN);
lab6.setFont(new Font("楷体",Font.BOLD,18));
jrb3=new JRadioButton("大一");
jrb4=new JRadioButton("大二");
jrb5=new JRadioButton("大三");
jrb6=new JRadioButton("大四");
jta1=new JTextArea(20,30);//创建一个三行三十列的文本域
//jta1.setBounds(0,187,591,98);
//scrollpane.setViewportView(jta1);
jbt1=new JButton("确认提交");
jbt1.setFont(new Font("隶书",Font.BOLD,20));
jbt1.addActionListener(this);//将按钮注册监听器
//将各个面板的组件添加到相应面板中
pan1.add(lab1);
pan2.add(lab2);
pan2.add(tex1);
pan2.add(lab3);
pan2.add(jcb1);
pan2.add(lab4);
pan2.add(jrb1);
pan2.add(jrb2);
pan3.add(lab5);
pan3.add(cb1);
pan3.add(cb2);
pan3.add(cb3);
pan3.add(cb4);
pan4.add(lab6);
pan4.add(jrb3);
pan4.add(jrb4);
pan4.add(jrb5);
pan4.add(jrb6);
pan5.add(jta1);
pan6.add(jbt1);
//将各个面板添加到窗体中
add(pan1);
add(pan2);
add(pan3);
add(pan4);
add(pan5);
add(pan6);
//add(scrollpane);
//设置窗体大小
setSize(650,800);
//设置窗体为可见
setVisible(true);
//设置窗体居中显示
setLocationRelativeTo(null);
//设置窗体关闭响应
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
String str="调查结果如下:\n";
if(e.getSource()==jbt1){
str+="姓名:"+tex1.getText()+"\n班级:"+jcb1.getSelectedItem();
if(jrb1.isSelected())str=str+"\n性别:"+jrb1.getText()+"\n爱好:";
if(jrb2.isSelected())str=str+"\n性别:"+jrb2.getText()+"\n爱好:";
if(cb1.isSelected())str=str+cb1.getText()+"、";
if(cb2.isSelected())str=str+cb2.getText()+"、";
if(cb3.isSelected())str=str+cb3.getText()+"、";
if(cb4.isSelected())str=str+cb4.getText();
if(jrb3.isSelected())str=str+"\n年级:"+jrb3.getText();
if(jrb4.isSelected())str=str+"\n年级:"+jrb4.getText();
if(jrb5.isSelected())str=str+"\n年级:"+jrb5.getText();
if(jrb6.isSelected())str=str+"\n年级:"+jrb6.getText();
jta1.setText(str);
}
}
public static void main(String args[]){
new VariousGUI("GUI图形界面综合案例");
}
}
考点:IO流、文件的读写操作、GUI界面
设计一个文本框来输入读取或者写入的文件名称,文本域来录入或者显示内容,按钮“录入”和“读取”分别实现对应的功能
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
/*
题目描述:设计一个文本框来输入读取或者写入的文件名称,文本域来录入或者显示内容,按钮“录入”和“读取”分别实现对应的功能
考点:文件操作与GUI界面设计结合 20分
参考文章:http://t.csdn.cn/yWrXn
押题人:gy
*/
public class FileWriteDemo extends JFrame implements ActionListener{
JLabel jbl1;
JTextArea jta1;
JTextField jtf1;
JButton jbt1,jbt2;
//设计GUI界面
public FileWriteDemo(){
setTitle("文件的读写");
jbl1=new JLabel("写入或者读取的文件名:");
jtf1=new JTextField(16);
jta1=new JTextArea(20,30);
jbt1=new JButton("录入");
jbt2=new JButton("读取");
jbt1.addActionListener(this);
jbt2.addActionListener(this);
//添加组件
add(jbl1);
add(jtf1);
add(jta1);
add(jbt1);
add(jbt2);
setLayout(new FlowLayout());//流式布局
setSize(400,500);
setVisible(true);
setLocationRelativeTo(null);//设置窗体居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认窗体关闭
}
public void actionPerformed(ActionEvent e){
//录入功能
if(e.getSource()==jbt1){
try{
String filename=jtf1.getText();//获取要写入内容的文件名
String text=jta1.getText();//获取要录入的内容
File f=new File(filename);//创建文件对象
FileOutputStream fos=new FileOutputStream(f);//创建字节输出流
OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-8");//创建处理流,将字节输出流转换成字符输出流,并指定录入编码方式为UTF-8
BufferedWriter bw=new BufferedWriter(osw);//创建缓冲流,调用其write()方法进行文件写入操作
bw.write(text);//将字符串写入指定文件
//关闭流
bw.close();
osw.close();
fos.close();
}catch(IOException e1){
e1.printStackTrace();
}
JOptionPane.showMessageDialog(null,"录入成功!");
}
//读取功能
if(e.getSource()==jbt2){
try{
String filename=jtf1.getText();//获取要读取内容的文件名
String line="";//初始化为空字符串
File f=new File(filename);//创建文件对象
FileInputStream fis=new FileInputStream(f);//创建字节输入流
InputStreamReader isw=new InputStreamReader(fis,"UTF-8");//创建处理流,将字节输入流转换成字符输入流,并指定读取编码方式为UTF-8
BufferedReader br=new BufferedReader(isw);//创建缓冲流,调用其readLine()方法进行逐行读取
while((line=br.readLine())!=null){
jta1.append(line);//调用append()方法向文本域中进行追加录入
}
//关闭流
br.close();
isw.close();
fis.close();
}catch(IOException e2){
e2.printStackTrace();
}
JOptionPane.showMessageDialog(null,"读取成功!");
}
}
public static void main(String args[]){
new FileWriteDemo();
}
}
考试时间两个小时,一道改错题,四道编程题,每题20分。
整体思路:做题思路是先整体浏览题目,先挑自己拿手的熟悉的题目做起,建立起自信心,由易到难才是正确的考试思路。
改错题:个人觉得结合多线程的话,会出得稍难一些,10个空的话,应该6,7个是送分的,后面几个实在填不出来也不要过于纠结,直接下一题。如果在改错题浪费太多时间导致后面四道题目来不及做完,得不偿失!
编程题:编程题不会很难,第二题应该是送分的得把握住,从第三题面向对象编程综合题开始有些难度,题目要求一定很多,注意看清楚,比如让你设计父类为抽象类,设计一个接口类、自定义异常类,成员变量与成员方法的访问权限等等。编程题不求每一题完美敲出来,那是针对对Java十分熟练的同学而言,只要敲出80%,你已经整体上成功了,最后剩余半小时去修改那剩下的20%,即Debug过程
关于开卷:其实个人觉得,要减少对书本的依赖,才能提高整体做题速度,在某种程度上开卷能够翻书是一种干扰,因为很多人都不知道知识点在哪,翻半天,再开始思考,一道编程题写30分钟都有可能,显然是很浪费时间的。所以,最好的方法就是充分地复习,减少翻书的次数,提高解题效率。
关于编译器:
考试机房安装了NetBeans IDE8.2和TextPad,老师已经足够好了,GUI界面设计综合题可以直接使用NetBeans做,大大节省了时间,因为可视化界面设计实在太香啦!其它题目再TextPad里面做即可,小巧精悍,为练习考试而生!
关于考试平台:
本次由于考虑到未返校同学,所以平台为超星平台,所以第一步先打开浏览器连接校园网,再登录超星平台,打开到对应的考试界面,一定要有提前量,否则开考了你还没登录,直接会影响你的考试心情,甚至影响你的心态,这个细节点一定一定不能忘记!
总而言之,胆大心细,注意时间,相信自己!