1、java学生成绩管理系统一、设计目的 2二、功能介绍 2三、程序流程 23.1 总流程 23.2流程图 3四、 设计步骤 34.1 数据库设计 34.1.1 学生信息表 34.1.2 教师表 44.1.3课程表 44.1.4成绩表 44.2 功能描述 54.2.1登录 54.2.2 教师端 84.2.3学生端 11五、设计总结 11六、程序清单 12七、参考文献 25一、设计目的(1)具有新用户注册功能。(2)具有注册用户登录功能。(3)具有学生成绩的录入功能,要求只录入各科成绩,自动计算每个学生的总绩。(4)具有数据查询功能,可以实现查询全部信息和按条件执行查询。(5)具有按条件删除数据功能
2、。二、功能介绍学生信息管理系统分为两个模块,教师端和学生端,(1)教师端包括的子模块有:教师注册,教师添加学生成绩,教师修改学生成绩,教师删除学生成绩,教师修改登录密码等主要功能。(2)学生端:本模块的功能较少,只有学生查询本人成绩,和修改学生登录密码的功能三、程序流程 3.1 总流程3.2流程图四、设计步骤 4.1 数据库设计本次设计数据库使用SQL Sever2005,一共四张表,分别为学生信息表,教师信息表,还有学生成绩表,教师所教的课程表4.1.1 学生信息表 学生信息表包括学生姓名,学号,登录密码,性别,年龄,还有一个没有关系的主键,如图图4-14.1.2 教师表 教师信息表包括教师
3、姓名,教师编号,教师登录密码和所教授的课程,和一个没有关系的主键,用来自动增长。如图4-2。图4-24.1.3课程表 课程表为教师所教的课程,其中包括课程编号,课程名,课程学分等。如图4-3图4-34.1.4成绩表 成绩表是教师上成绩之后,所有成绩储存在成绩表中,其中包括课程,学分,学生编号,学期等。如图4-4图4-44.2 功能描述 4.2.1登录 当程序运行的时候,会出现如图4-5的登录,然后根据提示进行选择操作,输入账号和密码,选择登录的类型,登录界面还有注册新用户和修还密码等功能图4-5 登录代码如下:if (!name.equals() if (!pwd.equals() if (!
4、type.equals(选择类型) if (type.equals(学生) sql = Select * from student where num =+name+ and pwd = + pwd + ; if (type.equals(教师) sql = Select * from teacher where num = + name + and pwd = + pwd; try rs = db.Query(sql); while (rs.next() name1 = rs.getString(name); num = rs.getString(num); if (type.equals(
5、教师) classes = rs.getString(classes); catch (SQLException e1) e1.printStackTrace(); if (!name1.equals() if (type.equals(学生) Login.this.close(); try Display display = Display.getDefault(); student shell = new student(display); shell.open(); shell.layout(); while (!shell.isDisposed() if (!display.readA
6、ndDispatch() display.sleep(); catch (Exception e1) e1.printStackTrace(); if (type.equals(教师) Login.this.close(); try Display display = Display.getDefault(); AddCheng shell = new AddCheng(display); shell.open(); shell.layout(); while (!shell.isDisposed() if (!display.readAndDispatch() display.sleep()
7、; catch (Exception e1) e1.printStackTrace(); else MessageDialog.openError(getShell(), 提示, 用户名密码错误); else MessageDialog.openWarning(getShell(), 提示, 你还没选择登录类型); else MessageDialog.openWarning(getShell(), 提示, 密码不能为空); else MessageDialog.openWarning(getShell(), 提示, 用户名为空); 修改密码功能 修改在此登录的用户,修改密码的用户必须输入原密
8、码,和新密码才能进行密码的修改。如图4-6 修改密码4-6 修改密码代码如下:String sql = update teacher set pwd = +text_1.getText()+ where num = +Login.num+; boolean b = MessageDialog.openQuestion(getShell(), 提示,是否修改密码); if(b) db.Update(sql); MessageDialog.openWarning(getShell(), 提示,修改密码成功); 注册用户功能 点击进入注册用户的功能后,进行相应的提示进行操作,填入对应的教师的信息后点
9、击添加就可以成功的注册一个新的用户了,在进行相关的操作,如图4-7注册图4-7 注册新用户代码如下:if(!text.getText().equals() if(!text_1.getText().equals() if(!text_2.getText().equals() if(!text_3.getText().equals() String sql = insert into teacher values (+text.getText()+,+text_2.getText()+,+text_1.getText()+,+text_3.getText()+); boolean b = Mes
10、sageDialog.openQuestion(getShell(), 提示,是否注册); if(b) db.Update(sql); MessageDialog.openWarning(getShell(), 提示,注册成功); 4.2.2 教师端 登录类型选择教师,进入教师端,此处含有增加,删除,修改和教师修还密码等功能,每一步都有相应的校验。 选择功能进行操作。增加学生成绩功能 进入之后会有提示,输入学号,成绩,学年等信息,点击确定完成添加学生成绩的操作。如图4-8 教师端图4-8 教师端代码如下:if(!num.equals() if(!fenshu.equals() if(!xueq
11、i.equals() String sql = insert into 分数 values(+kemu+,+fenshu+,+num+,+xueqi+); db.Update(sql); num = ; fenshu = ; fenye(); MessageDialog.openWarning(getShell(), 提示, 添加成功); else MessageDialog.openError(getShell(), 提示, 学期不能为空); else MessageDialog.openError(getShell(), 提示, 分数不能为空); else MessageDialog.op
12、enError(getShell(), 提示, 学号不能为空); 选择某个人后点击鼠标右键,会出现修改和删除功能。如图4-9鼠标右键功能 图4-9 鼠标右键功能 修改学生成绩 选择某个人之后,右键选择修改功能,就会出现如图4-10的界面,修改学号和成绩后点击确定,即可修改学生成绩图4-10 修改学生成绩代码如下:String sql = update teacher set pwd = +text_1.getText()+ where num = +Login.num+; boolean b = MessageDialog.openQuestion(getShell(), 提示,是否修改密码)
13、; if(b) db.Update(sql); MessageDialog.openWarning(getShell(), 提示,修改密码成功); 删除学生成绩 右键选择删除学生成绩功能,会出现如图4-11的询问框,选择确认,删除此学生的成绩,点击否即为取消删除图4-11 删除学生信息代码如下:String sql = delete from 成绩where num = +text_1.getText()boolean tag = MessageDialog.openQuestion(getShell(), 提示, 是否删); if(tag) db.Update(sql); MessageDi
14、alog.openWarning(getShell(), 提示,删除成功); 4.2.3学生端学生端查询学生信息的功能,该功能含有按学年查询,按科目和查询全部等功能,选择功能进行操作,如图4-12 图4-12 学生查询代码如下:String sql = Select * from student where num =+name+ and pwd = + pwd + ; rs = db.Query(sql); try while (rs.next() TableItem tableItem = new TableItem(table, SWT.NONE); tableItem.setText(
15、0, + rs.getString(1); tableItem.setText(1, + rs.getString(2); tableItem.setText(2, + rs.getString(3); tableItem.setText(3, + rs.getString(4); tableItem.setText(4, + rs.getString(5);tableItem.setText(4, + rs.getString(6); catch (SQLException e) e.printStackTrace(); 五、设计总结通过几天的课程设计使我懂得了理论与实际相结合是很重要的,只
16、有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次真真的做程序设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。六、程序清单 package Student;import java.sql.ResultSet;public class AddCheng extends Shell private
17、Text text_1; private Text text_2; private Table table; private Text text; public int start = 0; public int page = 1; public int row_number = 0; public int maxPage = 0; public int pageSize = 5; String xueqi; String kemu; Combo combo; DBHelper db = new DBHelper(); ResultSet rs; String num; Label label
18、_4; /* * Launch the application. * param args */ public static void main(String args) try Display display = Display.getDefault(); AddCheng shell = new AddCheng(display); shell.open(); shell.layout(); while (!shell.isDisposed() if (!display.readAndDispatch() display.sleep(); catch (Exception e) e.pri
19、ntStackTrace(); /* * Create the shell. * param display */ public AddCheng(Display display) super(display, SWT.SHELL_TRIM); Label label_8 = new Label(this, SWT.BORDER); label_8.setBounds(223, 5, 94, 17); label_8.setText(Login.name1); Label label_10 = new Label(this, SWT.NONE); label_10.setBounds(352,
20、 294, 61, 17); label_10.setText(u9875); label_4 = new Label(this, SWT.NONE); label_4.setBounds(325, 294, 21, 17); Label label = new Label(this, SWT.NONE); label.setBounds(21, 39, 35, 17); label.setText(u79D1u76EE); Label label_1 = new Label(this, SWT.NONE); label_1.setBounds(146, 39, 30, 17); label_
21、1.setText(u5B66u53F7); text = new Text(this, SWT.BORDER | SWT.READ_ONLY); text.setBounds(60, 39, 80, 23); text.setText(Login.classes); text_1 = new Text(this, SWT.BORDER); text_1.setBounds(182, 39, 94, 23); Label label_2 = new Label(this, SWT.NONE); label_2.setBounds(282, 39, 35, 17); label_2.setTex
22、t(u6210u7EE9); text_2 = new Text(this, SWT.BORDER); text_2.setBounds(325, 39, 94, 23); combo = new Combo(this, SWT.NONE); combo.setItems(new String 2011-2012-1, 2011-2012-2, 2012-2013-1, 2012-2013-2); combo.setBounds(466, 39, 100, 25); combo.select(1); kemu = text.getText(); xueqi = combo.getText();
23、 Button button = new Button(this, SWT.NONE); button.addSelectionListener(new SelectionAdapter() Override public void widgetSelected(SelectionEvent e) String num = text_1.getText(); String fenshu = text_2.getText(); if(!num.equals() if(!fenshu.equals() if(!xueqi.equals() String sql = insert into 分数 v
24、alues(+kemu+,+fenshu+,+num+,+xueqi+); db.Update(sql); num = ; fenshu = ; fenye(); MessageDialog.openWarning(getShell(), 提示, 添加成功); else MessageDialog.openError(getShell(), 提示, 学期不能为空); else MessageDialog.openError(getShell(), 提示, 分数不能为空); else MessageDialog.openError(getShell(), 提示, 学号不能为空); ); butt
25、on.setBounds(572, 39, 80, 27); button.setText(u6DFBu52A0); table = new Table(this, SWT.BORDER | SWT.FULL_SELECTION); table.addSelectionListener(new SelectionAdapter() Override public void widgetSelected(SelectionEvent e) TableItem it = table.getSelection(); TableItem i = it0; num = i.getText(0); ); table.setBounds(61, 82, 571, 193); table.setHeaderVisible(true); table.setLinesVisible(true); TableColumn tblclmnNewColumn_1 = new TableColumn(table, SWT.NONE); tblclmnNewColumn_1.setWidth(109); tblclmnNewColumn_1.setText(u7F16u53
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1