发布时间:2023-04-15 15:00
接到一个需求,说让使用JavaSwing+Mysql完成一个学生成绩管理系统,时间紧任务重。
用户需求
系统功能: 提供学生成绩的査询功能,输入学生的学号,能査找出该生各学期的成绩,并能够对成绩数据进行添加、删除、修改等基本操作和统计计算。
功能需求
1、功能1 提供学生成绩的査询功能,输入学生的学号,能査找出该生各学期的成绩
2、功能2 能对成绩数据进行添加、删除、修改等基本操作,并能进行一般的统计计算
3、功能3 建立学生成绩数据库,要求: 自定义数据库文件格式
在别人眼中:要写java代码 还要写连接数据库代码 以及创建表、写注释 编写文档等等
在我的眼中:创建一个javaswing的项目并套用之前写好的学生成绩管理的各种属性,代码生成器勾选增删改查等条件,然后自动生成即可。
config:包含一些系统的配置文件,比如这个系统的启动端口,连接的数据库
target:程序的主体(jar文件)
bat :两个bat文件都可以用来启动这个项目用的
其中start-service
就是服务方式启动,缺点是双击后没有反应,优点是后台会一直启动。
start-terminal(推荐)
是控制台启动,双击后弹出一个控制台黑框框,关掉控制台后系统就关掉了
双击start-terminal.bat
启动系统了,启动完成后,浏览器访问localhost
下面介绍一些系统相关配置的注意事项
还有系统的一些便捷功能
避免生成的系统出现报错问题。
除了代码生成器这个模块,其他的功能没必要去管他
(这些就是历史原因了哈哈,本来想做一个网站的上线的…)
在新增或者修改项目后,要记得保存,保存后下次可以复用
为了更好的发掘生成器的功能,我们可以灵活的运用配置项的功能。
C/C++属性配置示例:
C# / Javas程序配置示例:
# ¥ % & ^ ) - = + : " ' } ]【】~!? . , < > / 、
等char
的时候,请在属性名后面加上长度,java和c#则不需要添加后缀[n]
,n表示字符数组长度"汉族"
,要加双引号,类似于string family = “汉族”;填的是 = 后面的内容
。new Date()
,而C#的为 DateTime.Now.ToString()
,这时为了统一配置,我用通配符来代替他们。例如我要设默认时间为当前时间,则填{time.now}
(这是我自己制定的规则),生成的时候,他们会判断这是java、C#项目来自动设置默认值。学生成绩管理系统
来说:学生:Student
对象和课程:Course
对象,现在添加这个成绩对象学生成绩管理系统
必须先添加学生和课程,才能添加成绩,没有学生和课程,哪来的成绩对吧?public class MainView extends JFrame {
JPanel northPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JButton addBtn = new JButton("增加");
JButton updateBtn = new JButton("修改");
JButton delBtn = new JButton("删除");
JTextField searchTxt = new JTextField(15);
JButton searchBtn = new JButton("查询");
JPanel southPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JButton preBtn = new JButton("上一页");
JButton nextBtn = new JButton("下一页");
MainViewTable mainViewTable = new MainViewTable();
private int pageNo = 1;
private int pageSize = 10;
MainViewHandler mainViewHandler;
public MainView() {
super("主界面-Java学生成绩管理");
Container contentPane = getContentPane();
Rectangle bounds = DimensionUtil.getBounds();
pageSize = Math.floorDiv(bounds.height, 35);
mainViewHandler = new MainViewHandler(this);
// 放置北边的组件
layoutNorth(contentPane);
// 设置中间的jtable
layoutCenter(contentPane);
// 放置南边的组件
layoutSouth(contentPane);
// 自定义图标
URL imgUrl = MainView.class.getClassLoader().getResource("learnIcon.jpg");
setIconImage(new ImageIcon(imgUrl).getImage());
// 根据屏幕大小设置主界面大小
setBounds(bounds);
// 设置窗体完全充满整个屏幕的可见大小
setExtendedState(JFrame.MAXIMIZED_BOTH);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(true);
setVisible(true);
}
private void layoutCenter(Container contentPane) {
TableDTO dto = getTableDTO();
MainViewTableModel mainViewTableModel = MainViewTableModel.assembleModel(dto.getData());
// 把jtable和model关联
mainViewTable.setModel(mainViewTableModel);
mainViewTable.renderRule();
JScrollPane jScrollPane = new JScrollPane(mainViewTable);
contentPane.add(jScrollPane, BorderLayout.CENTER);
showPreNext(dto.getTotalCount());
}
private TableDTO getTableDTO() {
StudentService studentService = new StudentServiceImpl();
StudentRequest request = new StudentRequest();
request.setPageNo(pageNo);
request.setPageSize(pageSize);
request.setSearchKey(searchTxt.getText().trim());
TableDTO tableDTO = studentService.retrieveStudents(request);
return tableDTO;
}
private void layoutSouth(Container contentPane) {
preBtn.addActionListener(mainViewHandler);
nextBtn.addActionListener(mainViewHandler);
southPanel.add(preBtn);
southPanel.add(nextBtn);
contentPane.add(southPanel, BorderLayout.SOUTH);
}
/*
设置上一页下一页是否可见
*/
private void showPreNext(int totalCount) {
if (pageNo == 1) {
preBtn.setVisible(false);
} else {
preBtn.setVisible(true);
}
int pageCount = 0;
if (totalCount % pageSize == 0) {
pageCount = totalCount / pageSize;
} else {
pageCount = totalCount / pageSize + 1;
}
if (pageNo > pageCount) {
pageNo = pageCount;
} else if (pageNo < 1) {
pageNo = 1;
}
if (pageNo == pageCount) {
nextBtn.setVisible(false);
} else {
nextBtn.setVisible(true);
}
}
private void layoutNorth(Container contentPane) {
// 增加事件监听
addBtn.addActionListener(mainViewHandler);
updateBtn.addActionListener(mainViewHandler);
delBtn.addActionListener(mainViewHandler);
searchBtn.addActionListener(mainViewHandler);
northPanel.add(addBtn);
northPanel.add(updateBtn);
northPanel.add(delBtn);
northPanel.add(searchTxt);
northPanel.add(searchBtn);
contentPane.add(northPanel, BorderLayout.NORTH);
}
public static void main(String[] args) {
new MainView();
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageNo() {
return pageNo;
}
public void reloadTable() {
TableDTO dto = getTableDTO();
MainViewTableModel.updateModel(dto.getData());
mainViewTable.renderRule();
showPreNext(dto.getTotalCount());
}
public long[] getSelectedStudentIds() {
int[] selectedRows = mainViewTable.getSelectedRows();
long[] ids = new long[selectedRows.length];
for (int i = 0; i < selectedRows.length; i++) {
int rowIndex = selectedRows[i];
Object idObj = mainViewTable.getValueAt(rowIndex, 0);
ids[i] = Long.parseLong(idObj.toString());
}
return ids;
}
public MainViewTable getMainViewTable() {
return mainViewTable;
}
}
接私活之课程设计学生成绩管理系统
https://www.bilibili.com/video/BV1mR4y1t7Ck?p=1&vd_source=97b717a7cd1b9ea962b07d744ed4fa26
以上就是用代码生成器生成Java课设学生成绩管理系统的分享,半小时轻松赚到200元,还是那句话接私活不能让你大富大贵,平时赚点零花钱还是很轻松的,想要接私活或者对代码生成器有想法的小伙伴可以点击下方的卡片与我联系。添加链接描述