朋友们啊,请仔细看博客哦。
文章目录
0 说明
1、关于项目运行
这个项目我完成的时候,确实是可以跑起来的,所有功能和效果基本都写在博客里了,代码资源也给上了,是免费的!!!免费的!!!免费的!!!(遇到好几个朋友私信问代码,我也是无奈了)。
如果运行不起来,出现各种问题可能是因为版本,电脑环境等原因,这些可以在评论区讨论(我盲猜我爱莫能助),或者根据报错自行搜索。这个项目对于我来说有点久远了,当时做好后就写了这个博客,很多细节可能不太记得了,另外,我要转前端了哈哈哈(*^▽^*)
(现在主要是做react前端开发),所以搞Java的同学自己加油吧~
遇到问题没什么,多百度,多看教程,你可以的!
2、关于项目代码下载
这个项目的代码是免费开源的!可以直接使用~
你能从这里面学到东西,做得更好,那就是你的收获~我当初也是看了很多人的博客才写出这的,虽然还是做得不是很好。。。。。
(1)项目代码资源下载地址:Student_Manage.zip
(2)
因为CSDN的积分是自动调整的,且很多同学都没有积分,补充上了码云的代码仓库地址(这个是免费的,不需要积分):https://gitee.com/huan2515/student-manage.git
附上“如何在码云Gitee中部署个人静态网站?git提交网站”地址:https://www.bilibili.com/read/cv6506359?share_medium=android&share_source=qq&bbid=XYA0AA2A7669743DD029D12A5C0A0B24B7524&ts=1608258917421
有精力的同学可以使用git、gitee或者github 自己搭建自己的仓库啥的,更方便~
3、关于项目结构和优化
我写的时候是用的eclipse,JDK8。
这个项目只是当初我的一个很简陋的课程设计,还有很多可以提升的空间,很多的重复性源码也可以整理成为工具类,方便调用。参考借鉴的同学可以参考我这个项目,以节省时间和精力,多优化。
最终项目结构:
我这简陋的成果只是给有需要的同学参考,希望同学们可以自己多动手,练练实践能力,编码能力是要自己去踩坑才能有提升的呀。
另外,大部分项目是需要操作数据库的,但我当时做项目的时候,老师要求的是操作文件,需要操作数据库的朋友,自行研究一下吧,附上我的数据库学习博客:Java操作数据库-JDBC、数据库
4、关于私信和评论区回复
现在可能很少看CSDN的私信和评论区了,所以回复可能不是那么及时。如果是私信问的话,也麻烦说清楚是哪个博客哪个项目,具体是什么问题,我知道的话,就尽量解答~
主要也是这个项目是很久之前做的课程设计,历史太久远了,加上我现在主要做的是react前端开发,所以可能很多问题就爱莫能助了,评论区讨论的朋友如果知道怎么解决可以回一下哈~
1. 课程设计要求,需求说明
该系统可实现学生信息的增加,删除,修改,查询,筛选的功能。并将学生信息存储在文件txt 中,不会覆盖原数据。
该系统没有利用数据库,是使用文件来存储学生数据,有基本的 UI 界面,操作友好,项目运行没有问题。
学生的数据用数组存放,ArrayList。
2. 主函数
package Student_Manage;
public class Main {
public static void main(String[] args) {
new Login();
}
}
学生类
package Student_Manage;
public class student_information {
private String stuID; /* 学生学号 */
private String name; /* 学生姓名 */
private String sex; /* 学生性别 */
private String age; /* 学生年龄 */
private String callnumber; /* 学生电话号码 */
private String home_place; /* 学生家庭住址,籍贯 */
private String identityID; /* 学生身份证号码 */
/*无参构造函数*/
public student_information() {
}
/*有参构造函数 */
public student_information(String stuID,String name,String sex,String age,String callnumber,String home_place,String identityID) {
super();
this.stuID=stuID;
this.name=name;
this.sex=sex;
this.age=age;
this.callnumber=callnumber;
this.home_place=home_place;
this.identityID=identityID;
}
public String getStuID() {
return this.stuID;
}
public void setStuID(String stuID) {
this.stuID=stuID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name=name;
}
public String getSex() {
return this.sex;
}
public void setSex(String sex) {
this.sex=sex;
}
public String getAge() {
return this.age;
}
public void setAge(String age) {
this.age=age;
}
public String getCallnumber() {
return this.callnumber;
}
public void setCallnummber(String callnumber) {
this.callnumber=callnumber;
}
public String getHome_place() {
return this.home_place;
}
public void setHome_place(String home_place) {
this.home_place=home_place;
}
public String getIdentityID() {
return this.identityID;
}
public void setIdentityID(String identityID) {
this.identityID=identityID;
}
//从文件中录入的数据格式 "学号 姓名 性别 年龄 电话号码 家庭住址 身份证号码"
public String fileString()
{
return stuID+" "+name+" "+sex+" "+age+" "+callnumber+" "+home_place+" "+identityID;
}
}
3. 静态登录界面实现
登录界面还有完善的空间,可增加密码验证,通过管理员和学生账号的不同验证其身份,还可增加注册功能
package Student_Manage;
/**
* 功能:学生成绩管理系统
* 步骤1、登录界面的静态实现
* author:ywq
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Login extends JFrame implements ActionListener{
//定义组件
JFrame frame=new JFrame();
JPanel jp1,jp2,jp3;//面板
JLabel jlb1,jlb2;//标签
JButton jb1,jb2;//按钮
//构造函数
public Login(){
//创建面板
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
//创建标签
jlb1=new JLabel("请按照你的身份选择登陆");
//创建按钮
jb1=new JButton("信息管理人员");
jb2=new JButton("学生");
//设置布局管理
frame.setLayout(new GridLayout(3, 1));//网格式布局
//加入各个组件
jp1.add(jlb1);
jp3.add(jb1);
jp3.add(jb2);
//加入到JFrame
frame.add(jp2);
frame.add(jp1);
//this.add(jp2);
frame.add(jp3);
//设置窗体
frame.setTitle("用户登录界面");//窗体标签
frame.setSize(400, 300);//窗体大小
frame.setLocationRelativeTo(null);//在屏幕中间显示(居中显示)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出关闭JFrame
frame.setVisible(true);//显示窗体
//锁定窗体
//this.setResizable(false);
jb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
new ManagerLogin();
}
});
jb2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.setVisible(false);
new StudentLogin();
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
效果图
4. 信息管理员登录界面
该界面的标签,文本框等的位置还可以调整,使其更美观。
package Student_Manage;
//信息管理人员登陆后的界面
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;/*ArrayList;
import java.util.Hashtable;
*/
public class ManagerLogin extends JFrame implements ActionListener{
Function fun=new Function();
//定义组件
JLabel lb1=new JLabel("当前是信息管理人员登录界面" );//JLabel 对象可以显示文本、图像
JLabel lb2=new JLabel("提示:录入前请先输入学号,修改、删除根据学号修改信息");
JTextField 学号,姓名,年龄,电话号码,家庭住址,身份证号码;//输入学生基本信息得文本
JRadioButton 男,女;//声明单选项对象,性别选择
ButtonGroup group=null;//声明按钮组
JButton 录入,查询,删除,修改,显示,返回;//声明相应的操作的按钮
JPanel p1,p2,p3,p4,p5,p6,p7,pv,ph,pb;//调节布局的通道
public ManagerLogin(){ //负责管理员登录的主窗口
super("学生信息管理系统");
学号=new JTextField(10);//创建文本信息的的对象
姓名=new JTextField(10);
电话号码=new JTextField(15);
年龄=new JTextField(5);
家庭住址=new JTextField(15);
身份证号码=new JTextField(18);
group=new ButtonGroup();
男=new JRadioButton("男");//初始化单选框,
女=new JRadioButton("女");
group.add(男);//把按钮添加到按钮组
group.add(女);
录入=new JButton("增加学生信息");//创建按钮对象
查询=new JButton("查询符合条件的学生信息");
删除=new JButton("删除学生信息");
修改=new JButton("修改学生信息");
显示=new JButton("显示全部学生信息");
返回=new JButton("返回登录界面");
pb=new JPanel();
pb.add(lb1,JLabel.CENTER);