java课程设计---团体
课设题目:学生信息管理系统
一、团队成员介绍
周汉麟(组长):网络1511 201521123030
吴敏烽(组员):网络1512 201521123044
二、项目git地址
【课设】
吴敏烽
http://git.oschina.net/min21/javakeshe/commits/master
周汉麟
http://git.oschina.net/iamfinethinkyou/javakeshe
三、码云提交记录


四、项目功能架构图与主要功能流程图
项目主要功能流程图

五、项目运行截图



六、项目关键代码(不能太多)
//学生信息管理系统登录界面
public boolean equals(){
if("admin".equals(name)&&"admin".equals(password)){
return true;
}else{
return false;
}
}
};
class ActionHandle{
private JFrame frame=new JFrame("学生信息管理系统");
private JTextField name=new JTextField();//设置文本框
private JPasswordField pass=new JPasswordField();
private JLabel but1=new JLabel("用户名:");
private JLabel but2=new JLabel("密 码:");
private JButton but3=new JButton("登陆");
private JButton but4=new JButton("重置");
public ActionHandle(){
but3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource()==but3){
String sname=name.getText();
String spass=new String(pass.getPassword());
LoginCheck log=new LoginCheck(sname,spass);
if(log.equals()){
try {
new Menu();
} catch (Exception e1) {
e1.printStackTrace();
}
frame.setVisible(false);
}else{
JOptionPane.showMessageDialog(null, "登录失败,错误的用户名或密码!");
}
}
}
});
//框架设置:
frame.setLayout(null);
but1.setBounds(80, 40 , 80,30);
name.setBounds(140,40, 120, 30); //
but2.setBounds(80, 80 , 80,30);
pass.setBounds(140,80, 120, 30);
but3.setBounds(100, 150 , 60,30);
but4.setBounds(180, 150 , 60,30);
frame.setSize(400,330);
frame.setLocation(300, 200);
frame.add(but1);
frame.add(name);
frame.add(pass);
frame.add(but2);
frame.add(but3);
frame.add(but4);
frame.setVisible(true);
}
}
public class Enter{
public static void main(String[] args) {
new ActionHandle();
}
}
//添加信息:(修改信息和这个类似)
but1.addActionListener(new ActionListener() { // 增加,内部类
public void actionPerformed(ActionEvent e) {
if (e.getSource() == but1) {
but3.setEnabled(false);//使but3这个按钮变灰不可点击了
String number1 = number.getText();
if (number1.length() == 12) {
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));//读回对象
has = (Hashtable) in.readObject(); in.close();
} catch (Exception e1) {
}
} else {
JOptionPane.showMessageDialog(null, "请输入12位数字的学号");
}
//
if (number1.length() == 12) {
if (has.containsKey(number1)) { JOptionPane.showMessageDialog(null, "该生信息已存在,请到修改页面修改!");
} else {
String name1 = name.getText();
String dor1 = dor.getText();
String address1 = address.getText();
String sex1 = sex.getText();
String date1 = date.getText();
String pol1 = pol.getText();
String phone1 = phone.getText();
Person per = null;
per = new Person(number1, name1, dor1, address1, sex1, date1, pol1, phone1);
has.put(number1, per);// ???
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(has);
out.close();
JOptionPane.showMessageDialog(null, "添加成功!");
} catch (Exception e1) {}
}
}
}
}
});
//文件的保存和显示:
but4.addActionListener(new ActionListener() { // 查看
public void actionPerformed(ActionEvent e) {
if (e.getSource() == but4) {
but3.setEnabled(false);
String number1 = number.getText();
if (number1.length() == 12) {
if (has.containsKey(number1)) {
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
has = (Hashtable) in.readObject();
in.close();
} catch (Exception e1) {
}
Person per = (Person) has.get(number1);
name.setText(per.getName());
dor.setText(per.getDor());
address.setText(per.getAddress());
sex.setText(per.getSex());
date.setText(per.getDate());
pol.setText(per.getPol());
phone.setText(per.getPhone());
but3.setEnabled(true);
} else {
JOptionPane.showMessageDialog(null, "学号不存在");
}
} else {
JOptionPane.showMessageDialog(null, "请输入12位数字的学号");
}
}
}
});
but5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == but5) {
frame1.setVisible(true);
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
has = (Hashtable) in.readObject();
in.close();
} catch (Exception ee) {
}
if (has.isEmpty()) {
show.append("目前还没有学生的信息记录!\n");
// append(s:String)向文本域的文本追加字符串,简单的说就像system.out.println()
} else {
for (Enumeration enu = has.elements(); enu.hasMoreElements();) {
//存入内存的内容如果不经过遍历是显示不出来的
Person per = (Person) enu.nextElement();
String str = " <学号>:" + per.getNum() + "\n" + " <姓名>:" + per.getName() + "\n" + " <宿舍号>:"
+ per.getDor() + "\n" + " <家庭住址>:" + per.getAddress() + "\n" + " <性别>:"
+ per.getSex() + "\n" + "<出生日期>:" + per.getDate() + "\n" + " <政治面貌>:"
+ per.getPol() + "\n" + " <电话>:" + per.getPhone() + "\n" + "\n";
show.append(str);
}
String str2 = "------------------------------结束---------------------------------------------------"
+ "\n";
show.append(str2);
}
}
}
});
but0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == but0) {
frame.setVisible(false);
new ActionHandle();
}
}
});
七、尚待改进或者新的想法
1.功能比较齐全,增删改查都有,虽然GUI设计得比较简陋。
2.需要完善添加统计学生各门科目成绩,班级平均分等。
八、团队成员任务分配,团队成员课程设计博客链接(以表格形式呈现),标明组长。
| 成员 | 负责模块 | 博客地址 |
|---|---|---|
| 周汉麟(组长) | Person类、Menu类的增、删、改、查 | 【博客地址】http://www.cnblogs.com/Min21/p/7063877.html |
| 吴敏烽(组员) | Enter类(学生信息系统的登录)、Menu类的查看、显示 | 【博客地址】http://www.cnblogs.com/lamfinethinkyou/p/7063919.html |
java课程设计---团体的更多相关文章
- Java课程设计——博客作业教学数据分析系统(201521123084 林正晟)
#课程设计--博客作业教学数据分析系统(201521123084 林正晟) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 学生登陆界面的前端实现和与数据库的连接 学生 ...
- java(课程设计之记事本界面部分代码公布)
代码:涉及记事本的一些界面......!! /* *java课程设计之记事本(coder @Gxjun) * 编写一个记事本程序 * 要求: * 用图形用户界面实现. * 能实现编辑.保存.另存为.查 ...
- java课程设计(计算器)
JAVA课程 设 计 报 告 1206401-18 瞿杰 一.设计时间 2013年6月 24日-----6月28日 二.设计地点 湖南城市学院实验楼计算机506机房 三.设计目的 1.巩固学习VB ...
- Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)
Java课程设计--博客作业教学数据分析系统(201521123082 黄华林) 一.团队课程设计博客链接 博客作业教学数据分析系统(From:网络五条狗) 二.个人负责模块或任务说明 1.网络爬虫 ...
- java课程设计--We Talk(201521123061)
java课程设计--We Talk(201521123061) 团队博客链接:http://www.cnblogs.com/slickghost/ 数据库 一.通过Dao模式建立与数据库的连接 1.数 ...
- Java 课程设计 "Give it up"小游戏(团队)
JAVA课程设计 "永不言弃"小游戏(From :Niverse) 通过Swing技术创建游戏的登陆注册界面,使用mySQL数据库技术完成用户的各项信息保存和游戏完成后的成绩保存. ...
- Java课程设计----仿Windows标准型计算器
JAVA课程设计 仿Windows标准型计算器(By Yanboooooooo) 一.团队介绍: 连燕波[组长]:网络1513学生. 张文博[组员]:网络1513学生. 二.项目git地址 码云项目地 ...
- Java课程设计—象棋
1. 团队名称.团队成员介绍 团队名称:WY 团队成员: 吴慧婷[组长] 201521123094 网络1514 姚佳希 201521123042 网络1512 2 项目git地址 Java课程设计 ...
- Java课程设计——猜数游戏(201521123111 陈伟泽)
Java课程设计--猜数游戏(201521123111 陈伟泽) 1.团队课程设计博客链接 博客作业--猜数游戏 2.个人负责模块或任务说明 Answer:一些基础界面的构造,排行榜的构造,用文件录入 ...
随机推荐
- FPS手游如何脱颖而出?看《CF手游》的性能突破之路
WeTest导读 俗话说:用户体验不谈性能就是耍流氓. 在PC游戏上的性能问题并没有那么明显, 加个内存换个CPU或者刷个主频就能轻松搞定:到了手游时代后情况则显得比较严峻,捉襟见肘的内存使得资源加载 ...
- mysql metadata lock
想必玩过mysql的人对Waiting for table metadata lock肯定不会陌生,一般都是进行alter操作时被堵住了,导致了我们在show processlist 时,看到线程的状 ...
- 【转】DHCP协议详解
协议分析 - DHCP协议解码详解 DHCP协议简介 DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 BOOTP,它工作 ...
- 使用ActionBarActivity或者RxAppCompatActivity或者AppCompatActivity闪退的问题
新建一个项目,Activity继承RxAppCompatActivity的时候,在页面跳转的时候会出现闪退的问题,一直都没有解决. 后面将两个父类全部改成activity,问题解决.但是有的时候必须使 ...
- Mac实用操作技巧(六)
Night Shift,保护你夜间的眼睛 之前在Mac上有一款很著名的软件叫f.lux,这款软件会根据Mac的时间和地理位置,来自动切换屏幕亮度,如果进入晚上则调成暖色,白天就切换成普通颜色.现在Ma ...
- Python 接口:从协议到抽象基类
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica } 抽象基类的常见用途:实现接口时作为超类使用.然后,说明抽象基类如何检查 ...
- mysql为什么范围查询(>,<,between,%like,like%)之后的索引无效
因为使用了范围索引,所以会使用满足范围的所有的值,也就是说存储引擎在这个时候会提取出满足之后条件的所有值,并遍历获取满足之后条件的值. http://www.itpub.net/thread-1901 ...
- Java Swing项目专栏之项目业务流程与业务逻辑
Java Swing项目专栏 项目前言 这个超市管理项目是从八月初开始的,原以为像我这样的小菜比是完全掌控不了这样的项目的.原因是因为大一大二还是没怎么好好学自己的专业课,这次项目做完,我给自己建立了 ...
- 9.19.1 反射构造Class对象
构造Class对象的三种方式: 第一种方式: (1)对于系统的类,必须写全名! (2)该方式会将.Cla ...
- b64_md5加密Java、JavaScript实现
问题说明 MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串).经过md5后的字符数组中含有 ...