人人范文网 范文大全

软件工程课程设计之——学生成绩管理系统

发布时间:2020-03-04 10:50:39 来源:范文大全 收藏本文 下载本文 手机版

1.设计背景

随着科学技术的不断提高,计算机科学技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 现在我国的教育机构对学生成绩管理还普遍停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代,这种传统的管理方法必然被计算机为基础的信息管理所取代。

通过调查,要求系统具有权限设置功能的登录模块,学生可以实现成绩信息查询功能。教务管理人员能够实现注册新用户,学生成绩信息的查询、录入、删除、修改、浏览、统计等。 同时学院在教学这一部分主要是由教务处对课程、对学生、对学生成绩进行合理地安排以及统筹计划,以及让教务处在最短的时间段把学生的成绩核算出来,提高教务处的办事效率。同时,能够随时对学生、学生成绩进行各种查询和统计,以及很好地对系统进行维护。此种学生成绩管理系统提供了强大的学生成绩管理管理功能,方便了系统管理员对学生成绩等信息的添加、修改,打印等操作,同时一样方面的学生可以对自己各科成绩查询,学习的交流,满足了时代的需要。

2.设计方案

2.1总体设计

本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标: 1.系统应具有实用性、可靠性和适用性,同时注意到先进性。 2.对各个数据库进行动态管理,防止混乱。

3.能够按照用户选择的不同的条件进行简单查询和复合查询。 4.能够对查询结果进行分类汇总,实现报表打印。 5.注意数据的安全性,具有数据备份和恢复的功能。 6.方便用户的操作,尽量减少用户的操作。

2.2模块设计

1

本系统主要实现以下功能:①添加学生成绩; ②删除学生成绩; ③查询学生成绩;④班级创建或删除; ⑤科目调整和删除 具体要求为:

a.添加学生成绩:输入要添加的学生的学号、姓名、课程成绩等信息,且学号字段不能为空,确定则录入取消则放弃该操作。

b .删除功能:输入要删除的学生的学号,且必须输入密码验证,确定则执行该操作修改该学生信息,取消则放弃该操作。

c.查询功能: 查询功能是本系统的一个重要功能,按照科目成绩的相关信息可进行查找,应尽量使操作简化,节省使用者的时间。

d.班级创建:选择要创建的班级名称,或要删除班级的名称,单击确定创建成功,选择删除将删除该班级信息。

e.科目调整:选择要调整的科目名称、班级名称,或要删除科目和班级的名称,单击增加调整成功,选择删除将删除该班级的该项科目信息。

3.方案实施

3.1成绩管理各模块功能介绍

添加学生成绩,输入要添加的学生的学号、姓名、课程成绩等信息,且学号字段不能为空,确定则录入取消则放弃该操作。删除学生成绩,输入要删除的学生的学号,且必须输入密码验证,确定则执行该操作修改该学生信息,取消则放弃该操作。查询学生成绩,查询功能是本系统的一个重要功能,按照科目成绩的相关信息可进行查找,应尽量使操作简化,节省使用者的时间。班级创建或删除,选择要创建的班级名称,或要删除班级的名称,单击确定创建成功,选择删除将删除该班级信息。 科目调整和删除,选择要调整的科目名称、班级名称,或要删除科目和班级的名称,单击增加调整成功,选择删除将删除该班级的该项科目信息。

3.2成绩管理模块功能具体实现

具体实现功能如下:添加学生成绩、删除学生成绩、查询学生成绩、班级创建或删除、科目调整和删除等。科目管理中科目添加和科目删除的部分代码如下:

科目管理

2

科目添加

ReturnBook() import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.awt.Container; import java.util.*; import java.sql.*; import javax.swing.text.JTextComponent;

//extends JFrame cla ReturnBook

implements ActionListener {

JFrame f3; Container cp; JPanel jp1,jp2,jp3,jp4,jp,jpanelWest; JButton jbt1,jbt2;//按钮:确定、取消、

JLabel label;

//标签

JTextField tf1,tf2;

//定义文本框

JLabel label1,label2,label3,label4; String stuName;

ReturnBook()

{

f3=new JFrame(); cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框

jp1=new JPanel();

jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel(); jpanelWest=new JPanel(); jp=new JPanel(); //----------------- jbt1=new JButton(\"确定\");

jbt2=new JButton(\"取消\");

//----------------- label=new JLabel(\"

size=\'4\'>\",SwingConstants.CENTER); label.setForeground(Color.blue);

学生科目添加

//----------------- tf1=new JTextField(20); tf2=new JTextField(20);

// tf6=new JTextField(20); //----------------- //布局,添加控件

jp1.add(jbt1); jp1.add(jbt2);

stuName=tf2.getText();

jp1.add(new JLabel(\"您好\"+stuName+\"欢迎登陆学生信息系统\"));

JPanel jpanel=new JPanel(); jpanel.add(label);

JPanel pp4=new JPanel();

JPanel jpane4=new JPanel();

cp.add(pp4,\"West\"); cp.add(pp2,\"Center\");

cp.add(pp3,\"South\");

cp.add(jpanel,\"North\"); JPanel pp2=new JPanel(new GridLayout(5,1)); JPanel pp3=new JPanel(); pp4.setLayout(new GridLayout(5,1)); pp4.add(new JLabel(\"学号\",SwingConstants.CENTER)); pp2.add(tf1); pp4.add(new JLabel(\"科目\",SwingConstants.CENTER)); pp2.add(tf2);

pp3.add(jbt1); pp3.add(jbt2); cp.add(jpane4,\"East\");

4

//-----------------

Toolkit kit=Toolkit.getDefaultToolkit();

Dimension screen=kit.getScreenSize(); int x=screen.width;

/*取得显示器窗口的宽度*/ int y=screen.height; f3.setSize(350,330); int xcenter=(x-350)/2; int ycenter=(y-330)/2; f3.setLocation(xcenter,ycenter);/*显示在窗口中央*/

/*取得显示器窗口的高度*/

f3.setVisible(true);

//------------------

jbt1.addActionListener(this);//注册监听器

jbt2.addActionListener(this);

/*f3.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

} System.exit(0); } } );*/ //-----------------

public void insertRecord() {

if(tf1.getText().equals(\"\")||tf2.getText().equals(\"\") )

{ JOptionPane.showMeageDialog(f3,\"请填写学生信息\"); return; }

try{

Cla.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");

}catch(ClaNotFoundException e){System.out.println(\"加载驱动程序失败!\");}

try{ String url = \"jdbc:odbc:driver={Microsoft Acce Driver (*.mdb)};DBQ=Book.mdb\";//直接

Connection con=DriverManager.getConnection(url); Statement sql;

String s=\"insert into course values(\'\"+tf1.getText()+\"\',\'\"+tf2.getText()+\"\');\";

//查询输入的学号是否在数据库中存在

5 使用当前类目录下的数据库文件

String query=\"select * from course where 学号=\'\"+tf1.getText()+\"\'\";

sql=con.createStatement();

ResultSet rs=sql.executeQuery(query);//返回查询结果集 boolean moreRecords=rs.next();//判断结果集是否有数据

if(moreRecords)

{

JOptionPane.showMeageDialog(f3,\"学号已经被使用,请重新输入\");

con.close(); tf1.setText(\"\"); return;

}

int insert=sql.executeUpdate(s); if(insert==1)

{ JOptionPane.showMeageDialog(null,\"学生信息录入成功!\");

tf1.setText(\"\"); tf2.setText(\"\");

}

}catch(SQLException g)

{

System.out.println(\"E Code\"+g.getErrorCode()); System.out.println(\"E M\"+g.getMeage());

}

}

public void actionPerformed(ActionEvent e) {

String cmd=e.getActionCommand();

if(cmd.equals(\"确定\"))

{

insertRecord();

}

else if(cmd.equals(\"取消\"))

6

}

f3.hide();

public static void main(String []arg){

}

} 科目删除

BorrowBook()

import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.awt.Container; import java.util.*; import java.sql.*;

cla BorrowBook implements ActionListener {

JFrame f;

Container cp; JPanel jpS,jpanelWest; JButton jbt1,jbt2,jbt3,jbt4;//按钮,查询、取消、修改 JLabel label,L;

//标签:请输入姓名学号 JTextField tf;

//定义文人框

StudentIn a=new StudentIn(); JTable table;//用来接收数据库中返回的信息

Object columnName[]={\"学号\",\"科目\"};

Object ar[][] =new Object[80][6]; String sno; String count=\"0\";

BorrowBook()

{

f=new JFrame(); cp=f.getContentPane(); // 初始化面板、按钮、标签、文人框 jpS=new JPanel();

jpanelWest=new JPanel();

//----------------- jbt1=new JButton(\"查询\");

jbt2=new JButton(\"删除\");

7

jbt3=new JButton(\"录入\");

jbt4=new JButton(\"关闭\");

//----------------- label=new JLabel(\"

size=\'4\'>

:\",SwingConstants.CENTER); label.setForeground(Color.blue); L=new JLabel(\"该学生共有\"+count+\"人\"); //-----------------

table=new JTable(ar,columnName);//ar存放表中的数据,columnname表示列名

JScrollPane scrollpane = new JScrollPane(table);

//----------------- tf=new JTextField(18);

//-----------------

//

//----------------- //布局,添加控件

jpS.add(jbt1); jpS.add(jbt2); jpS.add(jbt3); jpS.add(jbt4);

JPanel jpanel=new JPanel(); jpanel.add(label); jpanel.add(tf);

JPanel pp4=new JPanel();

JPanel jpE=new JPanel();

8

cp.add(jpanel,\"North\"); JPanel jp=new JPanel(); //jp.add(scrollpane); JPanel p=new JPanel();//用来放两个表 p.setLayout(new BorderLayout());

p.add(L,\"North\"); p.add(scrollpane);

cp.add(pp4,\"West\"); cp.add(p,\"Center\");

cp.add(jpS,\"South\");

cp.add(jpE,\"East\");

//----------------- Dimension screen=kit.getScreenSize(); int x=screen.width;

/*取得显示器窗口的宽度*/ int y=screen.height; f.setSize(400,330);

/*取得显示器窗口的高度*/

Toolkit kit=Toolkit.getDefaultToolkit(); int xcenter=(x-350)/2; int ycenter=(y-330)/2; f.setLocation(xcenter,ycenter);/*显示在窗口中央*/

f.setVisible(true);

//------------------

jbt1.addActionListener(this);//注册监听器

jbt2.addActionListener(this);

jbt3.addActionListener(this);

jbt4.addActionListener(this);

/*f.addWindowListener(new WindowAdapter(){

} );*/ public void windowClosing(WindowEvent e){ System.exit(0); } } //----------------- int i=0;

public void showRecord(String ql)

9 {

while(i>=0)

{

ar[i][0]=\"\"; ar[i][1]=\"\";

i--; } i=0;

try{

Cla.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");

}catch(ClaNotFoundException e){System.out.println(\"加载驱动程序失败!\");}

try{

String url = \"jdbc:odbc:driver={Microsoft Acce Driver (*.mdb)};DBQ=Book.mdb\";//直

Connection con=DriverManager.getConnection(url); Statement sql;

String s=\"select * from course where 科目 =\'\"+ql +\"\'\";

ResultSet rs=sql.executeQuery(s);

接使用当前类目录下的数据库文件

sql=con.createStatement();

while(rs.next())

{

String bname=rs.getString(1);

String bno=rs.getString(2);

ar[i][0]=bname; ar[i][1]=bno; i++;

}

count=\"\"+i+\"\";

L.setText(\"\"+count+\"人\");

f.repaint();

con.close();System.out.println(ar[0][1]);

}catch(SQLException g)

{ System.out.println(\"E Code\"+g.getErrorCode());

System.out.println(\"E M\"+g.getMeage());

} }

public void deleteRecord(int index)

{

10

try{

Cla.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");

}catch(ClaNotFoundException e){System.out.println(\"加载驱动程序失败!\");}

try{

String url = \"jdbc:odbc:driver={Microsoft Acce Driver (*.mdb)};DBQ=Book.mdb\";//直接使用当前类目录下的数据库文件

Connection con=DriverManager.getConnection(url); Statement sql;

String ql=(String)(ar[index][0]);

String s=\"delete * from grade where 学号 =\'\"+ql +\"\'\";

sql=con.createStatement();

int del=sql.executeUpdate(s);

if(del==0)

{JOptionPane.showMeageDialog(null,\"删除成功!\",

\"信息\", JOptionPane.YES_NO_OPTION); }

con.close();

f.repaint();

}catch(SQLException g)

{

System.out.println(\"E Code\"+g.getErrorCode()); System.out.println(\"E M\"+g.getMeage());

}

}

public void actionPerformed(ActionEvent e)

{

String remember=\"\"; String ql=\"\";

String cmd=e.getActionCommand();

if(cmd.equals(\"查询\"))

{

ql=tf.getText().trim(); remember=ql;

showRecord(ql);

}

// if(cmd.equals(\"删除\"))

// {

// new BorrowIn();

//}

//**************

if(cmd.equals(\"删除\"))

{

int index=table.getSelectedRow();

if( index==-1)

JOptionPane.showMeageDialog(null,\"请选定要删除的姓名\",

\"输入错误\", JOptionPane.YES_NO_OPTION);

else{

BorrowIn k=new BorrowIn();

k.setData(ar[index][0].toString(),ar[index][1].toString());

}

}

//**************

//if(cmd.equals(\"还书\"))

//new ReturnBook();

if(cmd.equals(\"关闭\"))

//

f.setVisible(false);

f.dispose();

} public static void main(String []arg){

}

}

BorrowBook a=new BorrowBook();

12

4.结果与结论

结果:本设计完成了一个具有添加学生成绩、删除学生成绩、查询学生成绩、班级创建或删除、科目调整和删除等功能的学生成绩管理系统。

结论:本系统为学生成绩管理系统,主要提供方便高效的管理功能以及网上的信息查阅平台,学生可以查阅相关的成绩和基本信息,管理员可以管理所有信息。包括浏览所有用户信息以及相关的成绩信息,实现添加,查询,或删除学生成绩和信息,并且能够实现班级创建或删除和科目调整和删除等功能。

论文首先介绍了本系统开发的背景研究意义和开发环境,在进行了可行性需求分析后对本系统进行了概要设计,最后利用JAVA开发环境实现了系统设计时所确定的几种功能,并进行了调试和运行,基本符合了学生成绩管理系统的要求。

但是,由于一些技术和设备所限,本系统存在一些不足之处,有待进一步改进和完善,在开发过程中遇到了以下问题:

(1)对后台数据库中数据的日常维护,包括自动清理过时数据;

(2)程序中错误处理和输入控制不够全面,可能导致输入无效引发错误;

(3)对补考学生的处理。

总之此次设计使我受益匪浅,虽然过程中有许多不尽人意的地方,但通过大家的努力最终还是把问题给攻克了。在此次设计中学到的知识对我终生受用。

5.收获与致谢

软件工程设计是软件工程实践教学的重要组成部分,合理的组织,精心的准备,加上有序的实施,使我们的实践能力得到很大的提高,同时培养了我们的团队合作精神,增强了我们学习的自信心,并为我们毕业后从事相关工作打下良好基础。

在此次的设计中我不仅利用了自己的所学,而且还学到了许多新的知识,不知不觉中我们的设计已经接近了尾声,在这里非常感谢我们的指导老师王瑞平老师,感谢她给我们的设计所提出的很多很多好的建议和意见,让我从中获益匪浅,同时也帮助我们圆满的完成了课程设计。

13

最后我要感谢我们组的全体人员,没有大家的帮助和鼓励,我也不可能完成这么多的设计,也不可能学到这麽多有用的知识。

谢谢同学们对我的帮助,同时也谢谢老师对我们的辅导。没有大家的共同努力就没有我们今天课程设计的圆满完成。向我挚爱的王瑞平老师以及可爱的同学们送上我最崇高的敬意!谢谢你们!

6.参考文献

[1]王 晟.《Visual Basic.NET 数据库开发经典案例解析》.清华大学出版社.2005 [2]马朝晖等.Java教程.(第4版)[M].北京:人民邮电出版社.2006 [3] 张白一,崔尚森.面向对象程序设计——Java[M].西安:电子科技大学出版社.2004 [4] 袁世鹰.微机教务管理系统的设计与实现[P].北京:开明出版社.2001

语言课程设计学生成绩管理系统

课程设计成绩管理系统

软件工程 课程设计 销售管理系统

C++课程设计学生成绩管理分析系统

C#学生成绩管理系统课程设计剖析

VB学生成绩管理系统课程设计报告

VB学生成绩管理系统课程设计报告

数据结构课程设计——成绩管理系统

软件工程课程设计 (个人账本管理系统)

软件工程课程设计——物业管理系统

软件工程课程设计之——学生成绩管理系统
《软件工程课程设计之——学生成绩管理系统.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档