当前位置:网站首页>课程设计总结

课程设计总结

2022-06-11 04:51:00 megaData

index:

package megadata.zfx.test01;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;

public class index {
    private JLabel label3;//购物标题
    private JFrame frame;//窗口
    private JLabel label1;//账号标签
    private JTextField field1;//输入账号
    private JLabel label2;//密码标签
    private JPasswordField field2;//密码文本
    private JButton b1;//登录按钮
    private JButton b2;//注册按钮


    public static void main(String[] args){
        new index();
    }
    public index(){
        setFrame();
        listen();
    }
    public void setFrame(){
        //界面
        frame = new JFrame("购物系统登陆");
        frame.setLayout(new GridLayout(5,1));
        frame.setBounds(100,100,400,400);
        frame.setLocationRelativeTo(null);//设置屏幕为正中央

        ImageIcon bg = new ImageIcon("src/resource/pict.jpeg");	//创建一个背景图片
        JLabel label=new JLabel(bg);//把背景图片添加到标签里
        label.setBounds(100, 100,240, 36);


        //账号密码,登陆注册
        label3 = new JLabel("购物系统登陆");
        label3.setFont(new Font("宋体",Font.PLAIN,20));
        label1 = new JLabel("账号");
        field1 = new JTextField("",30);
        label2 = new JLabel("密码");
        field2 = new JPasswordField("",30);
        b1 = new JButton("登录");
        b2 = new JButton("注册");

        JPanel d=new JPanel();
        frame.add(label);
        d.add(label3);
        frame.add(d);
        JPanel a=new JPanel();
        a.add(label1);
        a.add(field1);
        JPanel b=new JPanel();
        b.add(label2);
        b.add(field2);
        frame.add(a);
        frame.add(b);
        JPanel c=new JPanel();
        c.add(b1);
        c.add(b2);
        frame.add(c);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
    public void listen(){
        b1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(false);
                new Sign(field1.getText(), String.valueOf(field2.getPassword()), frame);
                new shop1().loadFrame();
            }
        });
        b2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(false);
                new register();
            }
        });
    }
}

Print:

package megadata.zfx.test01;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


public class Print extends Frame {
    //属性
    TextArea text1 = new TextArea();



//    public static void main(String[] args) {
//        Print print = new Print();
//        print.loadFrame();
//    }

    public void loadFrame(){
        Label label1 = new Label("          * 西科小超市 *          ");
        Label label2 = new Label("购物小票");

        //小票文本内容预设
        label1.setFont(new Font("黑体",Font.BOLD,19));
        label2.setFont(new Font("黑体",Font.PLAIN,15));
        text1.setEditable(false);//文本框不可编辑

        setBounds(550,250,300,400);
        setLayout(new FlowLayout(FlowLayout.CENTER));
        add(label1);
        add(label2);
        add(text1);

        //小票文本输出
        for (int i = 0; i < shop1.v.size() / 4; i++) {
            String name = shop1.v.get(i * 4).toString();
            double price = Double.parseDouble(shop1.v.get(( i + 1) * 4 - 1).toString());
            text1.append("                         "+"记录" + (i + 1) + ":" + name + "," + price + "元" + "\r\n");
            text1.append("---------------------------------------" + "\r\n");
        }
        double sum1 = 0;
        for (int i = 1; i <= shop1.v.size() / 4; i++) {
            sum1 = sum1 + Double.parseDouble(shop1.v.get( 4 * i - 1).toString());
        }
        text1.append("                         "+"合计" + sum1 + "元" + "\r\n");


        setVisible(true);
        setResizable(false);

        //窗口关闭的实现
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                setVisible(false);
                text1.setText("");
            }
        });
    }
}

register:

package megadata.zfx.test01;
//package login;

import com.megadata.test1.index;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class register {
    JFrame frame;
    private JPanel contentPanel = new JPanel();
    private JButton ok = new JButton("确定注册");
    private JButton back =new JButton("返回登录界面");
    private JLabel jLabel1 = new JLabel("用户名");
    private JLabel jLabel2 = new JLabel("密码");
    private JTextField atf = new JTextField("账号名不要超过6个字",20);
    private JTextField apw =new JTextField("不超过6位数的密码",20);
    private JTextField idea =new JTextField("",30);
    private static File file = new File("账号密码.txt");
    public static void main(String[] args){
        new register();
    }
    public register(){
        setFrame();
        addListener();
    }
    public void setFrame(){
        frame = new JFrame("用户注册");
        frame.setBounds(600,300,600,300);
        frame.setLayout(new GridLayout(4,1));
        frame.setLocationRelativeTo(null);//设置窗口在屏幕位置最中间
        //账号
        JPanel panel1=new JPanel();
        panel1.add(jLabel1);
        panel1.add(atf);
        //密码
        JPanel panel2=new JPanel();
        panel2.add(jLabel2);
        panel2.add(apw);
        //注册与返回
        JPanel panel3=new JPanel();
        panel3.add(back);
        panel3.add(ok);
        //提示
        JPanel panel4=new JPanel();
        panel4.add(idea);
        frame.add(panel1);
        frame.add(panel2);
        frame.add(panel3);
        frame.add(panel4);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    private void addListener(){
        ok.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if(atf.getText().length()>6||apw.getText().length()>6||atf.getText().isEmpty()||apw.getText().isEmpty()){
                    idea.setText("输入错误");
                }else{
                    setRegister(atf.getText(),apw.getText());
                    idea.setText("注册成功,可以继续注册或返回登录界面");

                }
            }
        });
        back.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(false);
                new index();
            }
        });
    }
    public void setRegister(String atf,String apw){
        try{
            BufferedWriter fileWriter=new BufferedWriter(new FileWriter(file,true));
            fileWriter.write(atf+"="+apw);
            fileWriter.newLine();
            fileWriter.flush();
            fileWriter.close();
        }catch(IOException e){
            System.out.println("输入错误");
            e.printStackTrace();
        }
    }
}

shop1:

package megadata.zfx.test01;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Vector;

//主页面类

public class shop1 extends Frame {
    //属性
    TextField num1,num2,num3,num4;
    static Vector<Object> v = new Vector<>();
    TextArea text = new TextArea();
    double sum = 0.0;
    int f = 0;


    //方法
    public static int getVSize(){
        return v.size()/4;
    }
    //    public double getSum(int a){
//        return v.
//    }
    public void loadFrame(){

        num1 = new TextField(10);
        num2 = new TextField(10);
        num4 = new TextField(10);
        num3 = new TextField(5);



        Label label1 = new Label("品名");
        Label label2 = new Label("数量");
        Label label3 = new Label("单价");
        Label label4 = new Label("定位");

        Button button = new Button("添加");
        Button button1 = new Button("删除单条");
        Button button2 = new Button("付款");
        Button button3 = new Button("清单");
        Button button4 = new Button("清屏");
        text.setEditable(false);                                            //设置文本区域不可编辑
        //加入监听器
        button.addActionListener(new MyAddListener());
        button1.addActionListener(new MyDeleteListener());
        button2.addActionListener(new MyPayListener());
        button3.addActionListener(new MyPrintListener());
        button4.addActionListener(new MyClearListener());

        //布局
        setLayout(new FlowLayout());
        setBounds(200,200,500,350);
        setLocationRelativeTo(null);//设置屏幕为正中央
        add(label1);
        add(num1);
        add(label2);
        add(num2);
        add(label3);
        add(num4);
        add(button);
        add(label4);
        add(num3);
        add(button1);
        add(button2);
        add(button3);
        add(button4);
        add(text);


        setVisible(true);
        setResizable(false);          //窗口大小固定
        //窗口关闭的实现
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }

    //监听器
    private class MyAddListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            String n1 = num1.getText();
            int n2 = Integer.parseInt(num2.getText());
            double n3 = Double.parseDouble(num4.getText());
            double n4 = n2 * n3;

            //添加数据进入vector
            v.add(n1);
            v.add(n2);
            v.add(n3);
            v.add(n4);
            //在TestArea区域打印添加的信息
            text.append("添加" + (v.size()/4) +"记录:" + n1 + n2 + "斤,单价" + n3 + "元" + "\r\n");
            //将文本框中输入的内容清除等待下一次的输入
            num1.setText("");
            num2.setText("");
            num4.setText("");
        }
    }
    //删除单条监听器
    private class MyDeleteListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            int n5 = Integer.parseInt(num3.getText());
            text.append("删除" + n5 +"记录:" + v.get((n5 - 1) * 4) + v.get((n5 - 1) * 4 + 1) + "斤,单价" + v.get((n5 - 1) * 4 + 2) + "元" + "\r\n");
            for (int i = 0; i < 4; i++) {
                v.remove((n5 - 1) * 4);
            }
            num3.setText("");
        }
    }
    //付款监听器
    private class MyPayListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            for (int i = 1; i <= v.size() / 4; i++) {
                sum = sum + Double.parseDouble(v.get( 4 * i - 1).toString());
            }
            text.append("你购买了" + v.size()/4 +"种物品总金额为:" + sum + "元,请付款,谢谢。" + "\r\n");
            f = 1;                                                      //打印小票标识符
            sum = 0;
        }
    }
    //清空监视器
    private class MyClearListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            v.clear();                                      //清空容器
            text.setText("");                               //清空文本框
            f = 0;
        }
    }
    //打印小票监视器
    private class MyPrintListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            if(f==0){
                text.append("请确认付款后再查看小票" + "\r\n");
            }else{
                new Print().loadFrame();
            }
        }
    }
}





Sign:

package megadata.zfx.test01;
import javax.swing.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Sign {
    public static void main(String[] args){

    }
    public Sign(String atf, String apw, JFrame frame){
        if(login(atf,apw)){
            frame.setVisible(false);
        }else{
            JDialog mistaskeCase=new JDialog(frame,"提示");
            mistaskeCase.setBounds(600,300,600,300);
            mistaskeCase.setLocationRelativeTo(null);
            JTextField fileOfError=new JTextField("账号或密码输入错误",25);
            mistaskeCase.add(fileOfError);
            mistaskeCase.setVisible(true);
            mistaskeCase.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    }
    public boolean login(String username,String password){
        boolean flag = false;
        BufferedReader lbd=null;
        try{
            lbd=new BufferedReader(new FileReader("账号密码.txt"));
            String line=null;
            while((line=lbd.readLine())!=null){
                String[] datas = line.split("=");
                if(datas[0].equals(username)&& datas[1].equals(password)){
                    flag=true;
                    break;
                }
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            assert lbd !=null;
            try{
                lbd.close();
            }catch(IOException e){
                e.printStackTrace();
            }
        }
        return flag;
    }
}

原网站

版权声明
本文为[megaData]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_62552630/article/details/125214428