【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 ...
随机推荐
- poj1852ant
题意是这种,有一堆蚂蚁在一根棍子上乱爬.速度都是一样的,假设它们撞到了一起就会朝反方向爬去. 把棍子长度告诉你.还有蚂蚁的数量以及它们某时的距离棍子左端的距离.要求全部蚂蚁都掉到棍子以下去 的最小可能 ...
- 1064. Complete Binary Search Tree (30)【二叉树】——PAT (Advanced Level) Practise
题目信息 1064. Complete Binary Search Tree (30) 时间限制100 ms 内存限制65536 kB 代码长度限制16000 B A Binary Search Tr ...
- shell学习三十七天----引用
引用 案例,假设我想输出一个星号(*),使用echo怎样做? echo * 这是肯定不行的,须要将*转移,即:echo \* 这样就引出了引用的概念.所为引用,是用来防止shell将某些你想要的东西解 ...
- codeforce 1073E. Segment Sum
看到这个就是数位DP了,然而细节极多,对于i=1状态直接判了,还有最后一位直接算了 设f[i][zt][0/1]表示枚举到第i位,用了那些数字,是否有前导0(前导0不计入数字,否则就不知道后面有没有0 ...
- bzoj 3301 Cow Line
题目大意: n的排列,K个询问 为P时,读入一个数x,输出第x个全排列 为Q时,读入N个数,求这是第几个全排列 思路: 不知道康拓展开是什么,手推了一个乱七八糟的东西 首先可以知道 把排列看成是一个每 ...
- bzoj4403 序列统计——组合数学
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4403 一开始想了个 O(n) 的做法,不行啊... O(n)想法是这样的:先考虑递推,设 f ...
- atcoder 076
日本人的比赛 C:如果两个数差了大于1无解,否则分类讨论 #include<bits/stdc++.h> using namespace std; typedef long long ll ...
- 转载:C语言的字节对齐及#pragma pack的使用
C语言的字节对齐及#pragma pack的使用 C编译器的缺省字节对齐方式(自然对界) 在缺省情况下,C编译器为每一个变量或是数据单元按其自然对界条件分配空间. 在结构中,编译器为结构的每个成员 ...
- Coursera Algorithms week4 基础标签表 练习测验:Check if a binary tree is a BST
题目原文: Given a binary tree where each
- CSS样式适配杂记
1.问:input框的对齐,制作类似百度搜索框的时候,发现IE下前面输入框和后面按钮总是不能对齐. 解答:给input框增加vertical-align:bottom; 2.问:IE下display: ...