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

在网上查阅资料后发现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. unity3d-23种设计模式全解析

    http://www.jianshu.com/nb/4161593 2016.08.03 09:26 字数 1203 阅读 584评论 0喜欢 14 希望大家能共同学习,交流 谢谢支持zero(QQ: ...

  2. UVA - 10691 Subway

    题目大意:给定n个点.要求建造尽量少得铁路(从原点发射出的射线).使得全部点到铁路的最短距离小于d. 解题思路:题目能够转化成区间选点问题,即以极角来表示铁轨.然后计算出每一个区间可行的极角范围,进行 ...

  3. 怎样设置mysql远程訪问

     Mysql默认是不能够通过远程机器訪问的,通过以下的配置能够开启远程訪问 在MySQL Server端: 运行mysql 命令进入mysql 命令模式, mysql> use mysql; ...

  4. BNU 13064 Dice (I) 前缀和优化DP

    Dice (I)   You have N dices; each of them has K faces numbered from 1 to K. Now you have arranged th ...

  5. Android App调用MediaRecorder实现录音功能的实例【转】

    本文转载自:http://www.jb51.net/article/82281.htm 这篇文章主要介绍了Android App调用MediaRecorder实现录音功能的实例,MediaRecord ...

  6. raid5什么意思?如何做raid5?raid5 几块硬盘?

    raid5什么意思?如何做raid5?raid5 几块硬盘? 分类: 项目管理2012-09-28 00:38 5326人阅读 评论(0) 收藏 举报 一.raid什么意思?RAID是“Redunda ...

  7. POJ3070Fibonacci

    矩阵乘法裸题 求快速幂 #include<iostream> #include<cstdio> #define ll long long #define Mod 10000 u ...

  8. Akka源码分析-ask模式

    在我之前的博文中,已经介绍过要慎用Actor的ask.这里我们要分析一下ask的源码,看看它究竟是怎么实现的. 开发时,如果要使用ask方法,必须要引入akka.pattern._,这样才能使用ask ...

  9. mac 安装 swoole 可能会出现的错误

    请先看完之后再操作 一.用pecl安装swoole(没有安装起来) 2018年4月,由于homebrew的变动,导致无法使用brew install的方式安装php的扩展,现在改为用pecl安装,pe ...

  10. 【学习笔记】OI玄学道—代码坑点

    [学习笔记]\(OI\) 玄学道-代码坑点 [目录] [逻辑运算符的短路运算] [\(cmath\)里的贝塞尔函数] 一:[逻辑运算符的短路运算] [运算规则] && 和 || 属于逻 ...