java学生成绩管理程序报告Word文件下载.docx
- 文档编号:18816251
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:15
- 大小:124.83KB
java学生成绩管理程序报告Word文件下载.docx
《java学生成绩管理程序报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《java学生成绩管理程序报告Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
二、课程设计内容及要求
课程设计名称:
学生成绩管理程序
设计内容:
设计一个程序来使用数据库存储学生成绩,进行学生成绩管理程序。
二、任务和要求
这是一个简单的使用数据库存储学生成绩的学生成绩管理程序。
数据库中的每条记录包括学号、姓名、分数等信息。
要求能够:
²
(1)有较好的图形界面
(2)按照学号查找学生及成绩、能显示全部记录。
(3)能增加、删除、修改记录。
(4)计算平均成绩。
统计出优秀(100-90)、良好(89-75)一般(74-60)和不及格(59-0)的人数百分比。
按成绩分数排序。
三、设计
1.设计思想
利用Java、JDBC结合SQLServer2000数据库来开发一套c/s架构的小型课程管理系统,该程序的设计主要是界面的规划与设计和各个类的实现与连接。
当然在数据的录入与查询方面还有与数据库的连接以及相关功能的实现。
类的连接方面主要是对按钮组件添加监视器,经过对相关事件源以及触发事件的实现,从而对类实现调用及连接。
数据库方面本软件使用的是SQLServer,数据库的连接参考网上相关方面的程序。
在数据库的相关功能方面本软件实现的主要是:
(1)老师对课程信息的查看、修改、删除、增加;
(2)老师对学生信息的添加、修改、删除、浏览等;
(3)学生对课程的查询、选择等。
本软件设计的重要之处在于对软件模型的分析与设计。
这次的设计我采用的是分层的设计,即本软件我共设计为三层,第一层为登陆界面,是用户打开软件的第一个界面;
第二层为系统界面,用户可以在此选择自己的希望处理的信息种类;
第三层则为功能实现层,用户选择对信息进行何种处理。
2.功能设计
3、数据库设计
在学生成绩系统数据库中建立用户管理表、学生成绩表。
用户管理表是用来判断用户登陆时是否正确以及用户的权限;
学生成绩表是用来存储学生成绩信息的,当学生成绩信息发生修改、删除、添加等操作时都会保存在这个表里面。
详细内容如下:
createtable用户管理表(
用户名varchar(25),
密码varchar(15),
权限组varchar(15))
createtable学生成绩表(
学号varchar(25),
姓名varchar(15),
课程名varchar(25),
状态varchar(15),
成绩int))
再通过insert语句为每个表插入初始化数据。
4.详细设计
用户登陆界面需要填写用户名和密码,当点击“确定”按钮后,程序判断用户名和密码是否填写,若未填写用户名或密码,则提醒用户填写相应信息,若用户名和密码均填写后,则与数据库中注册用户的用户信息比较,若填写的信息无法与数据库中用户管理表中的用户信息匹配,则提示不存在该用户,否则登陆成功,进入相应权限的用户操作界面,并关闭用户登陆界面。
用户登陆界面存在时,无论什么时候点击“取消”按钮,都应关闭用户登陆界面,结束程序的运行。
如果用户是学生的话则进入学生操作界面,可以进行查看成绩的操作。
用户进行不同的操作会产生不同的效果。
用户点击“操作”菜单中的“查询成绩”子项后,会弹出查询界面,用户按照界面内容填写相应信息,输入课程名,填写后,点击“查询”按钮,当填写信息无误且学生成绩表中有该用户的这门课程信息时,则查询成功,否则弹出错误信息。
当用户不输入课程名后,单击“查询”按钮后,则显示相应学生的各门课程的成绩。
如果用户是管理员的话则进入管理员操作界面,管理员的权限有增加、删除、修改、修改和统计。
增加选项主要是向学生成绩表中新增学生的相关课程的成绩,在文本框中输入信息后,单击相应的按钮,则实现相应的功能,对数据库中相关联的表中的数据进行必要的修改,完成后提示成功,断开与数据库的连接,否则提示错误信息。
其余的类似,在这里就不一一赘述。
四、调试及测试
数据库连接问题:
界面设计和数据库完成后,需要讲界面上获取的数据传入数据库或者将数据库中数据导出和界面获取的数据比较,这就需要实现数据库和程序的连接,参照资料,本实验库采用JDBC进行对数据库的访问。
同一界面更新显示问题:
程序在实现添加、查询、删除、显示、排序等功能时需要在同一个界面以表格的形式更新显示联系人信息,故在设计时用到表模型DefaultTableModel。
对各个模块的实现,包括添加、修改、删除、浏览、查询的功能,先根据需要设计界面,然后使用数据库语言与java中的类库中的函数实现各个功能模块。
测试数据集:
图1登陆界面
图2学生登陆界面
图3学生操作界面
图4管理员登陆界面
图5增加界面
图6删除界面
图7修改界面
图8查询界面
图8统计界面
五、经验和体会
本系统运用软件工程的设计思想,通过本系统的开发,使我了解Java应用程序的开发流程及JavaSwing的窗体设计、事件监听等技术。
另外,还运用了Java应用程序的系统打包等技术,对我们日后的程序开发也有所启发。
本次课程设计中使我对一个系统的整体架构有了更深的了解,对以后程序的开发积累了一些经验,这为我以后的人生之路是否会走好打下了坚定的基础,以致于在以后的求职过程中少走些弯路,也不致于因一些小挫折而迷失了自己的方向。
课程设计教会我很多的东西,平时不注意的细节,在课程设计中都有所注意,平时不是很清楚的东西,基本上都能看懂了。
同学们之间的友谊也更进了一步。
特别是在做课程设计时,同学们表现出来的那股热情,那种勤奋,是从来没有过的,课程设计后,我们发现我们对这门课程探索欲愈来愈深,因为它使我们产生了许多的疑惑,毕竟教材上讲的比较浅显,只能作为入门用,如果要想有更深的理解就要靠自己去钻研,兴趣是你最好的老师。
总之,这次课程设计让我受益匪浅,我也会在以后的学习更多java高级的部分,进一步提高自己的Java编程能力。
附录:
主要源程序
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.*;
importjava.util.*;
importjavax.swing.*;
importjavax.swing.table.*;
classuserextendsJFrameimplementsActionListener{
JTextFieldt1,t2;
TextAreat;
JButtonbut1;
JLabelL1,L2;
JPanelp1;
JTabletable1=null;
DefaultTableModeldemod1=null;
Stringn[]={"
姓名"
"
课程名"
状态"
成绩"
};
String[][]data=newString[0][0];
publicuser(){
super("
查询"
);
setBounds(350,30,470,610);
setLayout(newGridLayout(1,1,10,10));
p1=newJPanel();
L1=newJLabel("
学号"
L2=newJLabel("
but1=newJButton("
but1.addActionListener(this);
t1=newJTextField(10);
t2=newJTextField(10);
p1.add(L1);
p1.add(t1);
p1.add(L2);
p1.add(t2);
p1.add(but1);
demod1=newDefaultTableModel(data,n);
table1=newJTable(demod1);
JScrollPanes1=newJScrollPane(table1);
p1.add(s1);
add(p1);
setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
inti=0;
Stringsql1;
Stringurl="
jdbc:
mysql:
//localhost:
3306/学生成绩系统"
;
Connectioncon;
Statementstmt;
try{
Class.forName("
org.gjt.mm.mysql.Driver"
}catch(java.lang.ClassNotFoundExceptione1){
System.err.println("
ClassNotFoundException:
"
+e1.getMessage());
if(e.getSource()==but1){
Stringnum1=t1.getText();
Stringnum2=t2.getText();
if(num1.equals("
)){
JOptionPane.showMessageDialog(this,"
学号不能为空"
请输入学号!
JOptionPane.WARNING_MESSAGE);
else{
sql1="
select*from学生成绩表where学号='
+num1+"
'
if(!
num2.equals("
select*from学生成绩表where课程名='
+num2+"
and学号='
}
con=DriverManager.getConnection(url,"
root"
123"
stmt=con.createStatement();
ResultSetrs=stmt.executeQuery(sql1);
removeAllRecord();
while(rs.next()){
Vectordata=newVector();
data.addElement(rs.getString
(2));
data.addElement(rs.getString(3));
data.addElement(rs.getString(4));
data.addElement(rs.getString(5));
demod1.addRow(data);
i=1;
}
if(i==0){
没有此条记录!
请重新输入"
table1.revalidate();
t1.setText("
stmt.close();
con.close();
}catch(SQLExceptionex){
SQLException:
+ex.getMessage());
publicvoidremoveAllRecord(){//将界面上的所有记录清空
introwcount;
while(true){//删除所有存在的行
rowcount=demod1.getRowCount()-1;
if(rowcount>
=0){
demod1.removeRow(rowcount);
demod1.setRowCount(rowcount);
else
break;
classinquiryextendsJFrameimplementsActionListener{
JTextFieldt1;
JTabletable;
JLabellab1;
StringNo;
inquiry(Stringno){
No=no;
setBounds(350,100,470,400);
lab1=newJLabel("
查询成绩"
p1.add(lab1);
Stringnum=t1.getText();
sql1="
+No+"
if(!
num.equals("
+num+"
没有此课程!
catch(SQLExceptionex){
}}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 学生 成绩 管理程序 报告