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

在网上查阅资料后发现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. 【Android自己定义View实战】之自己定义超简单SearchView搜索框

    [Android自己定义View实战]之自己定义超简单SearchView搜索框 这篇文章是对之前文章的翻新,至于为什么我要又一次改动这篇文章?原因例如以下 1.有人举报我抄袭,原文链接:http:/ ...

  2. LeetCode 125. Valid Palindorme (验证回文字符串)

    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...

  3. restrict关键字

    值得注意的是,一旦你决定使用restrict来修饰指针,你必须得保证它们之间不会互相重叠,编译器不会替你检查. 关键字restrict有两个读者.一个是编译器,它告诉编译器可以自由地做一些有关优化的假 ...

  4. IDEA Spark Streaming Flume数据源 --解决无法转化为实际输入数据,及中文乱码(Scala)

    需要三步: 1.shell:往 1234 端口写数据 nc localhost 1234 2.shell: 启动flume服务 cd /usr/local2/flume/bin ./flume-ng ...

  5. PCB SQL SERVER 正则应用实例

    我们用过SQL SERVER的都知道,SQL SERVER它本身是不自带正则表达式的,因为没有,所以基本都没用过啊, 但我们在C#中对文本匹配用正则的方式处理非常好用,省得你写一堆代码实现匹配,多简洁 ...

  6. [Apple开发者帐户帮助]六、配置应用服务(5.1)推送通知(APN):使用身份验证令牌与APN通信

    您可以使用一个APN签名密钥为多个应用程序验证令牌.签名密钥适用于开发和生产环境.签名密钥不会过期,但可以撤消. 首先在Xcode项目中启用推送通知.接下来创建并下载启用了APN 的私钥. 然后获取密 ...

  7. Vue.js中学习使用Vuex详解

    在SPA单页面组件的开发中 Vue的vuex和React的Redux 都统称为同一状态管理,个人的理解是全局状态管理更合适:简单的理解就是你在state中定义了一个数据之后,你可以在所在项目中的任何一 ...

  8. 【Codeforces576E_CF576E】Painting Edges(可撤销并查集+线段树分治)

    题目 CF576E 分析: 从前天早上肝到明天早上qwq其实颓了一上午MC ,自己瞎yy然后1A,写篇博客庆祝一下. 首先做这题之前推荐一道很相似的题:[BZOJ4025]二分图(可撤销并查集+线段树 ...

  9. Android从Camera中获取图片的两种方法

    方法一: 此方法会由Camera直接产生照片回传给应用程序,但是返回的是压缩图片,显示不清晰 ? 1 2 3 4 5 6 try {      Intent cameraIntent = new In ...

  10. 接口测试(一)--soapui实践

    一.接口的概念 接口是指系统模块与模块或系统与系统之间进行交互,一般用的多的是HTTP协议的接口.webService协议的接口,还有RPC的接口. RPC:Remote Procedure Call ...