因为之前写了一个学生信息管理系统,但还是处于命令行界面,不美观,于是打算做一个完整的界面出来。

在网上查阅资料后发现C++本身是不支持图形化界面的(可以使用第三方的Qt来做)

权衡之下还是选择了JAVA,自学之路开始!!!

目前只做了登陆界面和学生成绩录入功能(其实主要还是训练自己的界面设计能力,虽然都是一个样子···)

用户名 Paul     密码 123456

Login.java

 package Menu_UI;

 import Data.StuData;

 import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; public class Login implements ActionListener
{ private String user_name; //用户名
private String user_password;//密码 JTextField jTextField;//用户名文本框
JPasswordField jPasswordField;//密码文本框 JPanel namePanel;//用户名容器
JPanel passwordPanel;//密码容器
JPanel buttonPanel;//按钮容器
JPanel toastPanel;//消息提示容器
JPanel windowPanel;//总容器 JLabel Jname;//用户名提示
JLabel Jpassword;//密码提示
JLabel Jtoast;//判断信息 JButton loginButton;//登陆按钮
JButton cancelButton;//取消按钮 JFrame frame;//窗口 public Login()
{
user_name="Paul";
user_password="123456"; jTextField=new JTextField(20);
jPasswordField=new JPasswordField(20); namePanel=new JPanel();
passwordPanel=new JPanel();
buttonPanel=new JPanel();
toastPanel=new JPanel();
windowPanel=new JPanel(new GridLayout(4,1)); Jname=new JLabel("用户名");
Jpassword=new JLabel("密 码");
Jtoast=new JLabel(""); loginButton=new JButton("登陆");
loginButton.addActionListener(this);
cancelButton=new JButton("重置");
cancelButton.addActionListener(this); frame =new JFrame("登陆窗口"); frame.setSize(500,300); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); namePanel.add(Jname);
namePanel.add(jTextField); passwordPanel.add(Jpassword);
passwordPanel.add(jPasswordField); toastPanel.add(Jtoast); buttonPanel.add(loginButton);
buttonPanel.add(cancelButton); windowPanel.add(namePanel);
windowPanel.add(passwordPanel);
windowPanel.add(toastPanel);
windowPanel.add(buttonPanel);
frame.setContentPane(windowPanel); }
public static void main(String args[])
{
new Login();
} public void actionPerformed(ActionEvent e) {
String cmd=e.getActionCommand();
if(cmd.equals("登陆"))
{
if(jTextField.getText().equals(user_name)&&jPasswordField.getText().equals(user_password))
{
//Jtoast.setText(jTextField.getText()+" 用户欢迎使用!");
JOptionPane.showMessageDialog(null, "登陆成功");
frame.dispose();//关闭当前窗口
new StuData();
}
else
{
Jtoast.setText("用户名或密码错误!");
}
}
else
{
jTextField.setText("");
jPasswordField.setText("");
} } }

StuData.java

 package Data;

 import javax.swing.*;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;
import java.awt.*;
import java.awt.event.ActionEvent;
class addView {
JTextField TcourseName;//课程文本框
JTextField Tgrades;//成绩文本框
JButton addButton;//添加按钮
JButton cancelButton;//取消按钮
JPanel coursePanel;//课程容器
JPanel gradePanel;//成绩容器
JPanel buttonPanel;//按钮容器
JPanel windowPanel;//总容器
JLabel Jcourse;
JLabel Jgrades;
JFrame frame;
String course_name;
Double course_grades;
SimpleListener addListener; public addView(){
addListener=new SimpleListener();
course_grades=0.0;
course_name="";
TcourseName = new JTextField(13);//课程文本框
Tgrades = new JTextField(13);//成绩文本框
addButton = new JButton("添加");//添加按钮
addButton.addActionListener(addListener);
cancelButton = new JButton("取消");//取消按钮
cancelButton.addActionListener(addListener);
coursePanel = new JPanel();//课程容器
gradePanel = new JPanel();//成绩容器
buttonPanel = new JPanel();//按钮容器
windowPanel = new JPanel();//总容器
Jcourse = new JLabel("课程");
Jgrades = new JLabel("成绩");
frame = new JFrame("成绩录入界面");
frame.setSize(800, 100);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); coursePanel.add(Jcourse);
coursePanel.add(TcourseName); gradePanel.add(Jgrades);
gradePanel.add(Tgrades); buttonPanel.add(addButton);
buttonPanel.add(cancelButton); windowPanel.add(coursePanel);
windowPanel.add(gradePanel);
windowPanel.add(buttonPanel);
frame.setContentPane(windowPanel); } class SimpleListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if(cmd.equals("添加")) {
try {
//set_grades(TcourseName.getText().toString(), Double.parseDouble(Tgrades.getText().toString()));
course_name = TcourseName.getText().toString();
course_grades = Double.parseDouble(Tgrades.getText().toString());
JOptionPane.showMessageDialog(null, "学生成绩录入成功");
frame.dispose();
} catch (NumberFormatException error) {
JOptionPane.showMessageDialog(null, "你个大坏蛋,输错了啦");
TcourseName.setText("");
Tgrades.setText("");
}
}
else
{
TcourseName.setText("");
Tgrades.setText("");
}
}
}
} public class StuData {
public String name;//学生姓名
public String number;//学生学号
public String sex;//学生
public Map<String, Double> grades_map;
public double average;
public int total_lesson; private void set_grades(String course_name, Double grades) {
grades_map.put(course_name, grades);
System.out.println("成绩信息添加成功!");
} private void print_grades(){
for (Map.Entry<String, Double> entry : grades_map.entrySet()) {//遍历map
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
} public StuData(){//构造函数
name = "";
number = "";
sex = "";
average = 0.0;
total_lesson = 0;
grades_map = new HashMap<String, Double>();
} public void init(String _name, String _number, String _sex){//初始化学生信息
name = _name;
number = _number;
sex = _sex;
} public void setGrades(){//公有函数,弹出成绩录入窗口并采集信息 new addView();
} public static void main(String args[]){
StuData test=new StuData();
test.setGrades();
}
}

Welcome.java

 package Menu_UI;

 import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Welcome { //待完善,这个界面就是登陆成功后的界面,对学生信息进行查询打印修改等操作 }

【JAVA】简陋的学生信息管理系统的更多相关文章

  1. Java用户名登录学生信息管理系统并对其进行增删改查操作

    package zzzzzzzz; import java.io.*;//作者:凯鲁嘎吉 - 博客园//http://www.cnblogs.com/kailugaji/ public class T ...

  2. python3 简陋的学生信息管理系统

    # 编写一个“学生信息管理系统”# 输入序号:1. 输入学生信息,学生信息包括:id,name,age,gender(用什么数据类型保存?)# 2. 查询:输入学生姓名和id,显示学生个人信息# 3. ...

  3. Java课程设计---学生信息管理系统需求分析及总体设计

    按照软件工程实践的原则,开发大型程序需要经历需求分析.总体设计.详细设计.编码实现.系统测试.系统维护等几个阶段. 1.需求分析 本阶段是整个软件开发过程中最重要的环节.通过了解实际运行的系统或与用户 ...

  4. JAVA课程设计-学生信息管理系统(个人博客)

    1. 团队课程设计博客链接 http://www.cnblogs.com/Min21/p/7064093.html 2.个人负责模块或任务说明 负责person类的编写,建立person对象, 完成M ...

  5. Java课设(学生信息管理系统)

    1.团队课程设计博客链接 http://www.cnblogs.com/Min21/p/7064093.html 2.个人负责模板或任务说明 设计登陆界面和学生信息界面的设计,学生信息的显示.退出等功 ...

  6. Java 实现学生信息管理系统

    编写一个简单的学生管理信息系统. 在oracle中设计一张学生表,以学号作为关键字. 其他学生信息有:姓名.手机号. 在进入系统时,显示如下菜单: ************************** ...

  7. Android(java)学习笔记195:学生信息管理系统案例(SQLite + ListView)

    1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...

  8. java开发学生信息管理系统的实现(简洁易懂),适合计算机专业学生参考,课程设计、毕业论文设计参考等

    编写一个简单的学生管理信息系统. 在oracle中设计一张学生表,以学号作为关键字. 其他学生信息有:姓名.手机号. 在进入系统时,显示如下菜单: ************************** ...

  9. Android(java)学习笔记188:学生信息管理系统案例(SQLite + ListView)

    1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...

随机推荐

  1. swift 2.0 语法 可选类型

    import UIKit /*: 可选类型(可以有值, 也可以没有值) * 在OC中我们可以给一个对象类型变量赋值为nil或者一个对象, 而在Swift中如果想给一个变量赋值为nil那么必须明确指定为 ...

  2. LeetCode 893. Groups of Special-Equivalent Strings (特殊等价字符串组)

    题目标签:String 题目可以让在 偶数位置的 chars 互换, 也可以让 在 奇数位置的 chars 互换. 所以为了 return 正确的 group 数量,需要把 那些重复的 给排除掉. 可 ...

  3. volatile限定符

    volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统.硬件或者其它线程等.由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RA ...

  4. Modular_exponentiation模幂运算

    https://en.wikipedia.org/wiki/Modular_exponentiation 蒙哥马利(Montgomery)幂模运算是快速计算a^b%k的一种算法,是RSA加密算法的核心 ...

  5. P3959 宝藏 状压dp

    之前写了一份此题关于模拟退火的方法,现在来补充一下状压dp的方法. 其实直接在dfs中状压比较好想,而且实现也很简单,但是网上有人说这种方法是错的...并不知道哪错了,但是就不写了,找了一个正解. 正 ...

  6. 【已解决】Makefile执行过程中出错:make: *** No rule to make target ` ‘, needed by xxx. Stop(转载)

    转自: http://www.crifan.com/makefile_error_make_no_rule_to_make_target_needed_by_stop/ [问题] 有个已有的Makef ...

  7. es6 import 与 export

    1.export 命令 export 命令用于规定模块的对外接口. 一个模块就是一个独立的文件.该文件内部所有的变量,外部无法获取.要想外部能够读取模块内部的某个变量,就必须使用 export 关键字 ...

  8. [Swift通天遁地]五、高级扩展-(13)图片资源本地化设置:根据不同的语言环境显示不同语言版本图片

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  9. MAC应用无法打开或文件损坏的处理方法

    在MAC下安装一些软件时提示"来自身份不明开发者",其实这是MAC新系统启用了新的安全机制.默认只信任 Mac App Store 下载的软件和拥有开发者 ID 签名的应用程序.换 ...

  10. mysql在linux下的安装(5.7版本以后)

    1.添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组. ①groupadd mysql ②useradd -r -g mysql mysql 2.将二进制文件解压到指定的 ...