【JAVA】简陋的学生信息管理系统
因为之前写了一个学生信息管理系统,但还是处于命令行界面,不美观,于是打算做一个完整的界面出来。
在网上查阅资料后发现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】简陋的学生信息管理系统的更多相关文章
- Java用户名登录学生信息管理系统并对其进行增删改查操作
package zzzzzzzz; import java.io.*;//作者:凯鲁嘎吉 - 博客园//http://www.cnblogs.com/kailugaji/ public class T ...
- python3 简陋的学生信息管理系统
# 编写一个“学生信息管理系统”# 输入序号:1. 输入学生信息,学生信息包括:id,name,age,gender(用什么数据类型保存?)# 2. 查询:输入学生姓名和id,显示学生个人信息# 3. ...
- Java课程设计---学生信息管理系统需求分析及总体设计
按照软件工程实践的原则,开发大型程序需要经历需求分析.总体设计.详细设计.编码实现.系统测试.系统维护等几个阶段. 1.需求分析 本阶段是整个软件开发过程中最重要的环节.通过了解实际运行的系统或与用户 ...
- JAVA课程设计-学生信息管理系统(个人博客)
1. 团队课程设计博客链接 http://www.cnblogs.com/Min21/p/7064093.html 2.个人负责模块或任务说明 负责person类的编写,建立person对象, 完成M ...
- Java课设(学生信息管理系统)
1.团队课程设计博客链接 http://www.cnblogs.com/Min21/p/7064093.html 2.个人负责模板或任务说明 设计登陆界面和学生信息界面的设计,学生信息的显示.退出等功 ...
- Java 实现学生信息管理系统
编写一个简单的学生管理信息系统. 在oracle中设计一张学生表,以学号作为关键字. 其他学生信息有:姓名.手机号. 在进入系统时,显示如下菜单: ************************** ...
- Android(java)学习笔记195:学生信息管理系统案例(SQLite + ListView)
1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...
- java开发学生信息管理系统的实现(简洁易懂),适合计算机专业学生参考,课程设计、毕业论文设计参考等
编写一个简单的学生管理信息系统. 在oracle中设计一张学生表,以学号作为关键字. 其他学生信息有:姓名.手机号. 在进入系统时,显示如下菜单: ************************** ...
- Android(java)学习笔记188:学生信息管理系统案例(SQLite + ListView)
1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...
随机推荐
- jquery动态创建form表单
function exportExcel() { var merchantName = $('#merchantName').val(); var merchantNo = $('#merchantN ...
- 【转】Android进阶2之 阴影制作(Shadow)
阴影制作:包括各种形状(矩形,圆形等等),以及文字等等都能设置阴影. 阴影制作是什么原理呢? 其实很简单,你需要设置阴影的东西被看作一个主层.然后在主层下面画一个阴影层. 阴影制作涉及到一个重要函数: ...
- Netlink通信机制【转】
本文转载自:http://www.cnblogs.com/wenqiang/p/6306727.html 一.什么是Netlink通信机制 Netlink套接字是用以实现用户进程与内核进程通信的一种 ...
- Linux 文件和目录操作 - cd - 切换目录
命令详解 重要星级: ★★★★★ 功能说明: cd 命令是 "change directory" 中每个单词的首字母缩写,其功能是从当前工作目录切换到指定工作目录. 语法格式: c ...
- E20170705-hm
bubble n. 泡,水泡; 冒泡,起泡; 泡影,妄想; (欲表达的) 一点感情;
- activiti安装-------安装插件
对上面的放大
- [jzoj NOIP2018模拟10.23]
丢分主要是下面几个方面: 1.T2代码交错了,有个特判没写丢了10分 2.T1线段树加等差数列写错了(其实二维差分就可以,但我当时不会) 3.T3思考再三还是为了10分写上了主席树,还是写错了 总体评 ...
- JavaScript--编程题
某班的成绩出来了,现在老师要把班级的成绩打印出来. 效果图: XXXX年XX月X日 星期X--班级总分为:81 格式要求: 1.显示打印的日期. 格式为类似“XXXX年XX月XX日 星期X” 的当前的 ...
- Ambari是啥?主要是干啥的?
简单来说,Ambari是一个拥有集群自动化安装.中心化管理.集群监控.报警功能的一个工具(软件),使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率. ...
- 12.Nodes
Nodes(节点) Animation(动画) KeyframeAnimation 逐帧动画,该节点中包含了所有绑定属性的动画逻辑 Animation Group 逐帧动画分组 S ...