Java 英语做题小程序(纯代码)//进程管理的基本概念

综合小练习

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.StringTokenizer;

public class myWindow extends JFrame implements ActionListener {
    JTextField jTextField;  //文本框,用于显示题目
    JTextField showScore;   //用于显示分数
    int score ; //分数
    ButtonGroup group;  //按钮组
    JRadioButton jRadioButtons[];   //按钮数组
    JButton jButtonNext, jButtonSubmit, jButtonResume;  //下一题,提交,重新开始
    Container container;    //容器组件
    Container container1;
    Next next;  //用于下一题的类的变量
    RandomAccessFile randomAccessFile;  //随机流
    StringTokenizer stringTokenizer;    //分词器
    File file = new File("C:\\Users\\Administrator\\Desktop", "English.txt");  //文件类
    String str[];   //字符串数组
    Check check;    //用于监视按钮
    boolean IsRight = false;    //判断对错

    myWindow() {
        setTitle("小软件");
        setBounds(400, 400, 500, 500);
        setLayout(new FlowLayout());    //设置流体布局
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        Container con = this.getContentPane();  //修改背景颜色
        con.setBackground(new Color(0xBE879B));
        init();
        validate();
    }

    void init() {
        next = new Next();
        next.setMyWindow(this);
        check = new Check();
        check.setMyWindow(this);
        jTextField = new JTextField(20);
        jTextField.setEditable(false);  //设置成不可编辑
        add(new JLabel("题目:"));
        add(jTextField);
        showScore = new JTextField(4);
        showScore.setEditable(false);
        add(new JLabel("分数"));
        add(showScore);
        container = new Container();
        container.setLayout(new FlowLayout());  //容器设置流体布局
        group = new ButtonGroup();
        jRadioButtons = new JRadioButton[4];    //数组长度为4
        JLabel jLabel[] ={new JLabel("A:"),new JLabel("B:"),new JLabel("C:"),new JLabel("D:")};
        for (int i = 0; i < jRadioButtons.length; i++) {    //创建4个按钮
            jRadioButtons[i] = new JRadioButton();
            jRadioButtons[i].addItemListener(check);    //注册按钮监视器
            group.add(jRadioButtons[i]);    //添加到同一组里
            container.add(jLabel[i]);
            container.add(jRadioButtons[i]);
        }
        add(container);
        container1 = new Container();
        container1.setLayout(new FlowLayout());
        jButtonNext = new JButton("下一题");
        jButtonNext.addActionListener(next);
        container1.add(jButtonNext);
        jButtonSubmit = new JButton("提交");
        jButtonSubmit.addActionListener(e->{    //lambda表达式
            showScore.setText(""+ score);   //并运算
        });
        container1.add(jButtonSubmit);
        jButtonResume = new JButton("重新开始");
        jButtonResume.addActionListener(this);
        container1.add(jButtonResume);
        add(container1);
        try {
            file = new File("C:\\Users\\Administrator\\Desktop", "English.txt");
            randomAccessFile = new RandomAccessFile(file, "rw");    //随机流指向一个文件
            String s = randomAccessFile.readLine();
            byte b[] = s.getBytes("ISO-8859-1");
            String content = new String(b);
            stringTokenizer = new StringTokenizer(content, "#");  //以#号作分隔符
            str = new String[stringTokenizer.countTokens()];
            while (stringTokenizer.hasMoreTokens()) {
                for (int i = 0; i < str.length; i++) {
                    str[i] = stringTokenizer.nextToken();
                }
                jTextField.setText(str[0]);  //将分隔的第一个选项作为题目
                for (int i = 0; i < jRadioButtons.length; i++) {
                    jRadioButtons[i].setText(str[i + 1]);   //将往后的设为选项
                }
            }
        } catch (Exception e) {
            e.getMessage();
        }

    }
    @Override
    public void actionPerformed(ActionEvent actionEvent) {  //用于重新开始的监视器
        try {
            file = new File("C:\\Users\\Administrator\\Desktop", "English.txt");
            randomAccessFile = new RandomAccessFile(file, "rw");
            String s = randomAccessFile.readLine();
            byte b[] = s.getBytes("ISO-8859-1");
            String content = new String(b);
            stringTokenizer = new StringTokenizer(content, "#");
            str = new String[stringTokenizer.countTokens()];
            while (stringTokenizer.hasMoreTokens()) {
                for (int i = 0; i < str.length; i++) {
                    str[i] = stringTokenizer.nextToken();
                }
                jTextField.setText(str[0]);
                for (int i = 0; i < jRadioButtons.length; i++) {
                    jRadioButtons[i].setText(str[i + 1]);
                }
            }
            group.clearSelection();
            score = 0;
            showScore.setText(null);
        } catch (Exception e) {

        }
    }
}

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.StringTokenizer;

public class Next implements ActionListener {   //用于监视下一题的类
    myWindow myWindow;
    public void setMyWindow(Chapter_12.EnglishTraining.myWindow myWindow) {
        this.myWindow = myWindow;
    }
    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        String s = null;
        try {
            s = myWindow.randomAccessFile.readLine();
            byte b[] = s.getBytes("ISO-8859-1");
            String content = new String(b);
            StringTokenizer stringTokenizer = new StringTokenizer(content, "#");
            myWindow.str = new String[stringTokenizer.countTokens()];
            while (stringTokenizer.hasMoreTokens()) {
                    for (int i = 0; i < myWindow.str.length; i++) {
                        myWindow.str[i] = stringTokenizer.nextToken();
                    }
                    myWindow.jTextField.setText(myWindow.str[0]);
                    for (int i = 0; i < myWindow.jRadioButtons.length; i++) {
                        myWindow.jRadioButtons[i].setText(myWindow.str[i + 1]);
                        myWindow.group.clearSelection();
                    }
                }
        } catch (Exception e) {
            e.getMessage();
        }
    }
}

import javax.swing.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class Check implements ItemListener {
    myWindow myWindow;

    public void setMyWindow(Chapter_12.EnglishTraining.myWindow myWindow) {
        this.myWindow = myWindow;
    }
    @Override
    public void itemStateChanged(ItemEvent itemEvent) {
        JRadioButton jRadioButton = (JRadioButton) itemEvent.getSource();
        if (jRadioButton.getText().equals(myWindow.str[5]) && jRadioButton.isSelected()) {
            myWindow.score += 5;
        }
    }
}

public class Example12_19 {
    public static void main(String[] args) {
        myWindow myWindow = new myWindow();
    }
}

运行效果图
在这里插入图片描述

进程管理的基本概念

进程管理称为处理机管理,其核心是如何合理地分配处理及的时间,提高系统的效率

基本概念

  • 程序执行时的特征
    1.顺序性//严格按照规定的顺序执行
    2.封闭性//指运行时系统内的资源只受该程序控制而改变
    3.可再现性//只要初始条件相同,运行结果就相同

  • 进程及其组成 //进程是一个程序关于某个数据集的一次运行
    现代操作系统引入了线程,线程比进程更小,能独立运行的基本单位,是进程中的一个实体

  • 进程的状态及其状态间的切换
    1.运行 //当一个进程在处理机上运行时
    2.就绪 //一个获得了除处理机外的所有资源,一旦获得处理机就可以运行
    3.阻塞 //一个进程正在等待某一事件的发生,及时把处理机分配给它也无法运行

在这里插入图片描述

CET4P179

  • vinegar
  • penalty
  • section
  • rarely
  • distinction
  • holy
  • outward
  • violate
  • golf
  • philosophy
  • approach
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信答题小程序源码产品功能: 1、 小程序主页: 答题小程序主页面展示:用户身份信息、等级信息、积分信息。答题模式包括:每日签到、每日答题、个人排位赛、好友对战、排行榜、团队赛、系统公告、道具背包、系统设置等。 2、用户身份信息 用户身份信息展示:身份等级、积分情况、答题专业领域、胜率、胜场次数等。 3、 每日签到 每日签到:七天一个周期,每天可签到得积分,如果连续2天以上签到除了可得到本日应得积分外,还可以额外获得连续签到奖励积分。 4、 每日答题 每日答题模式每个用户每天有5次答题机会,进入答题后每答对一题得100积分,连续答对可获得额外奖励积分,答错不得分。答题过程中每题有20秒的思考时间,必须在思考时间内选择答案。答题过程中可使用道具卡,道具卡包括:难题跳跃卡和积分翻倍卡。 5、 排位赛 排位赛答题模式:该模式是根据用户身份等级进行随机匹配,只能匹配同等身份等级的用户进行答题匹配,进入答题后双方在规定时间内完成答题,胜者得积分,当积分达到系统规定段位标准后身份自动升级,如:倔强青铜、不屈白银、荣耀黄金等。 6、 好友PK赛 好友pk赛可针对好友进行PK,使用流程为:用户将pk邀请发送给好友,好友可选择应战与否,同意应战后双方会进入一个房间,在规定时间内完成答题答题总分数高者胜出。 7、团队赛 团队赛即可以进行多人对多人的组队比赛,例如2对2 3对3 或 5对5 当人数达到后系统随机分队进行答题比赛,(升级版已改为队友邀请制)答对题得分高的对胜出 8、排行榜 系统会针对每个答题模式的得分情况进行排行,以显示在各个答题模式或是总榜中的排名状态。 用户特点 无论你是个人还是企业或是教育机构,该答题小程序都能满足您在寓教于乐的需求,让用户在玩中学习,不知不觉学习到了相关知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值