学籍管理系统总体设计.docx
- 文档编号:29731242
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:32
- 大小:595.26KB
学籍管理系统总体设计.docx
《学籍管理系统总体设计.docx》由会员分享,可在线阅读,更多相关《学籍管理系统总体设计.docx(32页珍藏版)》请在冰豆网上搜索。
学籍管理系统总体设计
面向对象程序设计(双语)设计报告
一、学籍管理系统总体设计
1、系统概述
当今社会中,计算机的使用已经深入到日常工作和生活的方方面面。
Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。
对于学生的学籍管理是一个教育单位不可缺少的部分,它的内容对学校的管理者来说至关重要,所以学生学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
而使用计算机对学生学籍信息进行管理,具有手工管理所无法比拟的优点,例如:
检索迅速、查找方便、存储量大、保密性好等。
这些优点能够极大地提高学生管理的效率,也是学校科学化、正规化管理的重要途径。
2、实现功能
1)学生基本信息的增加、删除、修改和查询,包括:
姓名、学号、性别、系别、专业、年级等等。
2)课程表信息的增加、删除、修改和查询,包括:
课程名、学分、授课教师姓名和上课时间。
3)学生选课信息的增加、删除、修改和查询,包括:
学号、所选课程的课程号和成绩。
3、功能模块图
二、数据库设计
1、数据库表设计
2、数据库连接程序
代码:
packagedb;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.SQLException;
importjavax.swing.JOptionPane;
publicclassMySqlConnnection{
//私有空构造方法,保证本类不能够被实例化。
privateMySqlConnnection(){
}
//获得数据库连接
publicstaticConnectiongetConnection(){
Connectionconn=null;
try{
//加载MySQLJDBC驱动程序名称
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//数据库连接参数。
StringserverName="localhost:
1433";//数据库主机名称
Stringmydatabase="学生信息管理";//数据库名称
Stringurl="jdbc:
sqlserver:
//"+serverName+";DatabaseName="+mydatabase;
Stringusername="sa";//MySql用户名
Stringpassword="123456";//MySql密码
Conn=DriverManager.getConnection(url,username,password);//建立连接
}catch(ClassNotFoundExceptione){
e.printStackTrace();//[找]不到MySql驱动程序类时,打印异常
}catch(SQLExceptione){
e.printStackTrace();//获得数据库连接发生异常
}
returnconn;
}
//关闭数据库连接
publicstaticvoidcloseConnection(Connectionconn){
if(conn!
=null){//连接是否有效
try{
if(!
conn.isClosed()){//连接是否已关闭
conn.close();//关闭连接
}
}catch(SQLExceptionex1){
ex1.printStackTrace();
}
}
}
//测试连接类
publicstaticvoidmain(String[]args)throwsException{
Connectionconn=MySqlConnnection.getConnection();
Stringresult="";
if(conn==null){
result="获得数据库连接错误.";
}else{
result="正常获得数据库连接."+conn;
}
JOptionPane.showMessageDialog(null,result);
}
}
3、数据库表的添删改查(包括程序)
--创建管理员表
/*createtableAdmin
(adminIdintidentity(1,1),--自增1单位
adminNamechar(20)notnull,
adminPasswordchar(20)notnull,
primarykey(adminId)
)*/
/*--插入数据
INSERTINTOAdmin(adminName,adminPassword)VALUES('赵一','1')
INSERTINTOAdmin(adminName,adminPassword)VALUES('钱二','2')
INSERTINTOAdmin(adminName,adminPassword)VALUES('孙四','3')
select*fromAdmin*/
--删除数据
/*DELETEFROMAdminWHEREadminId=2;
SELECT*FROMAdmin*/
--修改数据
/*UPDATEAdminSETadminName='孙三'WHEREadminPassWord='3'
SELECT*FROMAdmin*/
三、图形界面设计与实现
登陆界面
表的操作界面
1)course表
Course表添加
添加一个课程记录:
数据库实训——1007——4——魏威——17周
Course修改
把操作系统课程的学分修改为6学分
Course表删除
删除操作系统的课程记录
Course表查询
查询课程编号为1001的课程信息
2).student表
Student表添加
添加一条学生记录:
2013020332000——大军——男——语言文化——英语——2013——师范汉语——北京市
Student表修改
把学号为2013020332002学生的学生姓名修改为张天爱
Student表删除
删除学生编号为2013020332003学生的学生信息
Student表查询
查询学生编号为2013020332007学生的学生信息
3)student表
Student表添加
添加一天记录:
2013020332047——1001——73
Student表删除
删除2013020332046——1005——66这条记录
Student表修改
把学生编号为2013020332044课程编号为1002的成绩修改为60
Student表查询
查询2013020332032学生1003课程的成绩
整个程序框架
四、程序测试
1.dbstudent
packagedb;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importmybean.student;
publicclassdbstudent{
privatedbstudent(){
}
publicstaticvoidaddstudent(studenta){
Connectionconn=null;
try{
conn=MySqlConnnection.getConnection();//获得数据连接
PreparedStatementps=DBUtil
.getPreStatment(conn,
"INSERTINTOstudent(学号,姓名,性别,系别,专业,年级,班级号,家庭住址)VALUES(?
?
?
?
?
?
?
?
)");
ps.setString(1,a.getXuehao());//入库前进行编码转换
ps.setString(2,a.getXingming());//设置第2个占位符的内容
ps.setString(3,a.getXingbie());
ps.setString(4,a.getXibie());
ps.setString(5,a.getZhuanye());
ps.setString(6,a.getNianji());
ps.setString(7,a.getBanjihao());
ps.setString(8,a.getJiatingzhuzhi());
ps.executeUpdate();//执行更新操作
ps.close();
}catch(Exceptionex){
ex.printStackTrace();
}finally{
MySqlConnnection.closeConnection(conn);
}
}
//删除管理员
publicstaticvoiddeletestudent(Stringxuehao){
Connectionconn=null;
try{
conn=MySqlConnnection.getConnection();//获得数据连接
PreparedStatementps=DBUtil.getPreStatment(conn,
"DELETEFROMstudentWHERE学号=?
");
ps.setString(1,xuehao);//设置第1个占位符的内容
ps.executeUpdate();//执行更新操作
ps.close();
}catch(Exceptionex){
ex.printStackTrace();
}finally{
MySqlConnnection.closeConnection(conn);
}
}
//修改管理员
publicstaticvoidupdatestudent(studenta){
Connectionconn=null;
try{
conn=MySqlConnnection.getConnection();
StringSql="UPDATEstudentSET姓名=?
性别=?
系别=?
专业=?
年级=?
班级号=?
家庭住址=?
WHERE学号=?
";
PreparedStatementps=conn.prepareStatement(Sql);
ps.setString(1,a.getXingming());//入库前进行编码转换
ps.setString(2,a.getXingbie());
ps.setString(3,a.getXibie());//设置第3个占位符的内容
ps.setString(4,a.getZhuanye());
ps.setString(5,a.getNianji());
ps.setString(6,a.getBanjihao());
ps.setString(7,a.getJiatingzhuzhi());
ps.setString(8,a.getXuehao());
ps.executeUpdate();//执行更新操作
ps.close();
}catch(Exceptionex){
ex.printStackTrace();
}finally{
MySqlConnnection.closeConnection(conn);
}
}
/*
*publicstaticvoidmain(String[]args){students=newstudent();
*s.setZhuanye("jisuanji");s.setJiatingzhuzhi("bb");
*s.setXuehao("2013020332001");dbstudent.updatestudent(s);
*
*}
*
*}
*/
//根据管理员id号查询
publicstaticstudentgetstudent(Stringxuehao){
studenta=null;
Connectionconn=null;
try{
conn=MySqlConnnection.getConnection();//获得数据连接
//建立PreparedStatement用于执行SQL操作
PreparedStatementps=DBUtil.getPreStatment(conn,
"SELECT*FROMstudentWHERE学号=?
");
ps.setString(1,xuehao);//设置第一个占位符的内容
ResultSetrs=ps.executeQuery();//执行查询,返回结果集
if(rs.next()){//因为管理员id是惟一的,所以只返回一个结果既可
a=newstudent(rs.getString
(1),rs.getString
(2),
rs.getString(3),rs.getString(4),rs.getString(5),
rs.getString(6),rs.getString(7),rs.getString(8));
}
ps.close();
}catch(Exceptionex){
ex.printStackTrace();
}finally{
MySqlConnnection.closeConnection(conn);
}
returna;
}
publicstaticvoidmain(String[]args){
studenta=getstudent("2013020332001");
System.out.println(a.getXingming());
}
}
}
}
2.student
packagemybean;
publicclassstudent{
privateStringxuehao;
privateStringXingming;
privateStringXingbie;
privateStringXibie;
privateStringZhuanye;
privateStringNianji;
privateStringBanjihao;
privateStringJiatingzhuzhi;
publicstudent(Stringxuehao,Stringxingming,Stringxingbie,
Stringxibie,Stringzhuanye,Stringnianji,Stringbanjihao,
Stringjiatingzhuzhi){
super();
this.xuehao=xuehao;
Xingming=xingming;
Xingbie=xingbie;
Xibie=xibie;
Zhuanye=zhuanye;
Nianji=nianji;
Banjihao=banjihao;
Jiatingzhuzhi=jiatingzhuzhi;
}
publicstudent(){
super();
}
publicStringgetXuehao(){
returnxuehao;
}
publicvoidsetXuehao(Stringxuehao){
this.xuehao=xuehao;
}
publicStringgetXingming(){
returnXingming;
}
publicvoidsetXingming(Stringxingming){
Xingming=xingming;
}
publicStringgetXingbie(){
returnXingbie;
}
publicvoidsetXingbie(Stringxingbie){
Xingbie=xingbie;
}
publicStringgetXibie(){
returnXibie;
}
publicvoidsetXibie(Stringxibie){
Xibie=xibie;
}
publicStringgetZhuanye(){
returnZhuanye;
}
publicvoidsetZhuanye(Stringzhuanye){
Zhuanye=zhuanye;
}
publicStringgetNianji(){
returnNianji;
}
publicvoidsetNianji(Stringnianji){
Nianji=nianji;
}
publicStringgetBanjihao(){
returnBanjihao;
}
publicvoidsetBanjihao(Stringbanjihao){
Banjihao=banjihao;
}
publicStringgetJiatingzhuzhi(){
returnJiatingzhuzhi;
}
publicvoidsetJiatingzhuzhi(Stringjiatingzhuzhi){
Jiatingzhuzhi=jiatingzhuzhi;
}
}
3.Panelstudent
packagegui;
importjavax.swing.JFrame;
importjavax.swing.JOptionPane;
importdb.dbstudent;
importmybean.student;
@SuppressWarnings("serial")
publicclassPanelstudentextendsMyPanel{
publicPanelstudent(Stringdatabase,StringtableName){
super(database,tableName);
}
@Override
protectedvoiddealAddbtn(){
studenta1=newstudent();//改成你自己的bean
a1.setXuehao(fields[0].getText().trim());
a1.setXingming(fields[1].getText().trim());
a1.setXingbie(fields[2].getText().trim());
a1.setXibie(fields[3].getText().trim());
a1.setZhuanye(fields[4].getText().trim());
a1.setNianji(fields[5].getText().trim());
a1.setBanjihao(fields[6].getText().trim());
a1.setJiatingzhuzhi(fields[7].getText().trim());
dbstudent.addstudent(a1);
System.out.println(a1.getXuehao());
tableModel.setQuery("student");//查询数据库表Admin中的记录,显示在表格中,参数填入表名
super.dealAddbtn();
}
protectedvoiddealDelbtn(){
Stringxuehao=fields[0].getText().trim();
studenta1=dbstudent.getstudent(xuehao);
if(a1!
=null){
intk=JOptionPane.showConfirmDialog(null,"确认删除?
");
if(k==JOptionPane.YES_OPTION){
dbstudent.deletestudent(xuehao);//删除数据库表Admin中记录
JOptionPane.showMessageDialog(null,"删除成功!
");
}
else
JOptionPane.showMessageDialog(null,"没有删除!
");
}
else{
JOptionPane.showMessageDialog(null,"没有该记录");
}
tableModel.setQuery("student");//查询数据库表Admin中的记录,显示在表格中
}
//修改记录
protectedvoid
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学籍 管理 系统 总体 设计