JAVA课设学生成绩管理系统.docx
《JAVA课设学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《JAVA课设学生成绩管理系统.docx(60页珍藏版)》请在冰豆网上搜索。
JAVA课设学生成绩管理系统
*******************
实践教学
*******************
软件学院
2013年春季学期
Java课程设计说明书
题目:
学生成绩管理系统
专业班级:
软件3班
*********
学号:
********
************
成绩:
摘要
学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。
随着在校大学生人数的不断增加,教务系统的数量也不断的上涨,。
学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。
并且这种传统的方式存在着很多的弊端,如:
保密性差、查询不便、效率低,很难维护和更新等。
然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理。
关键词学生成绩管理数据表JAVA
序言
随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。
我们使用电脑的高效率才处理数据信息成为可能。
学生学籍管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。
友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。
通过这个系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。
学生成绩管理系统是学校日常信息管理的一个重要内容。
随着学校考试次数越来越多,学生成绩管理的工作量也变得越来越大。
如果能对学生成绩做系统的管理,就能更好更方便地快速查询或者修改学生的考试成绩,省去了文件管理的繁琐与麻烦,无疑将给学校的管理部门带来很大的方便。
学生成绩管理系统就是把学生的考试成绩实行统一、集中、规范的收集管理,建立现代化、专业化的管理系统。
系统分析与设计
学生成绩管理系统的对象是在校学生,成绩管理系统为学生提供了成绩查询等服务;为学校及老师提供了添加、修改、删除学生成绩等服务。
本系统基本上可以满足当今学校学生成绩信息管理的需求。
学生个人信息录入项目齐全、完整、系统。
作为管理员对学生成绩管理系统的需求有:
1.对学生个人基本信息的浏览
2.对学生个人信息的修改
3.对学生个人信息的删除
4.添加新学生的基本信息
5.对学生成绩的查询
6.对学生成绩的修改
7.对学生成绩的删除
8.为某个学生添加学生成绩
还有用户登录模块,实现管理员的登陆,如果没有管理权限,则无法使用该软件,也无法实现对学生成绩的各项操作。
系统的初步调查是系统分析阶段的第一项活动,也是系统开发的第一项活动,初步调查的主要目标是从系统分析人中和管理人员的角度看新系统开发有无必要和可能。
可行性研究的目的就是用最小的代价在最短的时间内确定该软件项目是否能够开发,是否值得去开发。
实质上就是进行一次简化、压缩了的需求分析、设计过程。
可从以下三个方面分析研究每种解决问题的可行性:
a.技术可行性:
对项目的功能、性能、限制条件进行分析,确定在现有的资源条件下项目是否能实现。
(开发的风险、资源的有效性、技术)
b.社会可行性:
要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
c.经济可行性:
进行开发成本的估算以及了解得到效益的评估,确定要开发项目是否值得投资开发。
对银行业来说,是靠存款贷款之间的差额来生存的,所以要尽可能的拉拢更多的客户使用本行,ATM取款机是为了能让为客户更便捷的服务,从而更具有吸引力。
银行角度出发还是非常还是愿意把一部分资金投入到这方面的。
系统详细调查是在可行性研究的基础上进一步对现行系统进行全面、深入的调查和分析,弄清现行系统运行状况,发现其薄弱环节,确保新系统比原系统更有效。
详细调查的重点在于对系统的内部情况更详细和具体的了解,从而可以提供在新系统建设时改进或更换的内容。
图
(1)功能模块图
明确用户的信息需求,明确新系统的逻辑功能。
主要工作是对用户需求进行进一步调查分析,创建新系统的逻辑模型。
通过仔细调查得以下功能模块图:
在该系统中包含三个类publicclassStudentManager、classDataTable、classStudent.
在main方法里建立主类publicclassStudentManager的实体实现各种方法的调用。
classDataTable、classStudent里是一系列的方法,实现系统里的各种功能。
在该系统的设计开发中用运了后台集成开发工具MyEclipse6.5.
数据管理方面主要应用了文件中的输入输出流,以及流的封装。
下图是三个类之间的调用关系图
图
(2)各类之间的调用关系
详细设计
1、源文件中主要应用的包和类:
importjavax.swing.*;
importjavax.swing.table.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjava.util.*;
2、程序中所创建的对象
容器的定义:
privateContainercurrentContainer
标题及其字体的定义:
privateStringtitle
privateFontheadFont=newFont("黑体",Font.PLAIN,18);
数据文件的创建:
privateFiledata=newFile("data.txt");数据模型的定义:
privateDataTabledataModel=newDataTable();数据表格的创建:
privateJTabledataTable=newJTable(dataModel);
欢迎面板的创建:
privateJPanelwelcomePanel=createWelcomePanel();
添加信息面板的创建:
privateJPanelinsertPanel=createInsertPanel();
显示信息面板的创建:
privateJPaneldisplayPanel=createDisplayPanel();
修改信息面板的创建:
privateJPanelmodifyPanel=createModifyPanel()
3、类中定义变量及方法
①主类中方法的定义
/*设置窗体基本信息的方法*/
publicStudentManager(){}
/*建立菜单并添加到菜单栏中*/
privatevoidcreateMenu(){}
/*如果是要切换到显示信息面板,则同时加载信息*/
privatevoidresetPanel(JPanelpanel){}
/*创建欢迎面板*/
privateJPanelcreateWelcomePanel(){}
/*创建添加信息面板*/
privateJPanelcreateInsertPanel(){}
/*创建显示信息面板*/
privateJPanelcreateDisplayPanel(){}
/*只显示查询的学号的学生信息*/
privatevoidloadStudentInfo(Stringno){
/*创建修改信息面板*/
privateJPanelcreateModifyPanel(){}
/*插入数据*/
privatebooleaninsertData(Studentstudent){}
/*修改数据*/
privatebooleanmodifyData(Studentstudent){
/*检查输入的文本信息是否为空*/
privatebooleancheckString(Stringtext){}
/*检查输入的数字信息是否是整数*/
privatebooleancheckInteger(Stringtext){}
/*清空表单信息*/
privatevoidclearForm(JTextField[]textField){}
/*获取指定学号的学生信息*/
privateStudentselectStudent(Stringno){}
/*获取所有学生数据*/
privateArrayListdisplayDataList(){}
/*入口方法*/
publicstaticvoidmain(String[]args){}
②classStudent类中成员变量及成员方法的定义
privateStringno;
privateStringname;
privateintasmScore,javaScore,netScore,osScore;
/*学生信息管理的各个方法*/
publicStringgetNo(){}
publicvoidsetNo(Stringno){}
publicStringgetName(){}
publicvoidsetName(Stringname){}
publicintgetAsmScore(){}
publicvoidsetAsmScore(intasmScore){}
publicintgetJavaScore(){}
publicvoidsetJavaScore(intjavaScore){}
publicintgetNetScore(){}
publicvoidsetNetScore(intnetScore){}
publicintgetOsScore(){}
publicvoidsetOsScore(intosScore){}
③classDataTable中成员变量及成员方法的定义
String[]label={"学号","姓名","汇编","Java","网络","系统"};
ArrayListdataList=newArrayList();
/*更新学生信息对象数组*/
publicvoidupdate(ArrayListdataList){}
/*更新学生信息对象*/
publicvoidupdate(Studentstudent){}
publicintgetColumnCount(){}
publicintgetRowCount(){}
publicObjectgetValueAt(introw,intcol){}
publicStringgetColumnName(intcolumn){}
4﹑下图是程序中方法调用关系
1classDataTable中的各个函数关系图
②classStudent中的各个函数关系图
系统测试
1.下图是学生成绩管理的初始登陆界面实现用户的登陆
图(5)初始界面
2.学生成绩的录入界面
图(6)输入要录入的信息
图(7)提示是否确定录入
图(8)提示用户已录入成功
3.学生成绩列表的显示
图(9)显示所有学生的信息
4.学生成绩的查询
图(10)显示查询的结果
5.学生成绩的删除
图(11)提示是否要删除信息
图(12)提示删除成功
图(13)显示删除后的信息列表
软件使用说明书
下图是一个初始的系统登录界面,用户可以通过帮助管理、和帮助按钮实现下拉菜单里的功能使用。
1、管理按钮
用户可以通过单击鼠标来应用此按钮的功能,当单击之后出现的是以下拉菜单显示,其中包含了录入、修改、删除、导出、退出。
1录入
此功能可以实现管理员对学生成绩的添加,实现学号、姓名、汇编语言、Java语言、计算机网络、操作系统的添加。
主要针对于新生信息的添加,还有在校学生信息的完善。
2修改
此功能可以实现对学生信息的修改。
3删除
此功能可以实现对学生信息的删除,用来适应毕业的、离校的学生信息的删除。
4导出
此功能主要实现的是将以有的学生信息输出到特定文件便于打印。
5退出
此功能实现的是提示用户退出该系统。
2、帮助按钮
当用户单击帮助按钮之后出现的是说明和版权。
1说明
说明主要实现该系统的一个说明。
2版权
主要是系统的版权声明。
为了保护系统开发者的针对于该系统的拥有权,保护自己的合法权益,知识产权。
设计总结
这次课程设计我实现了对学生基本信息,学生成绩以及课程信息的查询,方便用户使用,当然系统也存在一些不足,由于时间上的关系和设计时开发环境工具的选择使用问题,有一部分功能可以更详细化的,而有些功能还为实现,因能力有限,将会在以后的过程中对其扩充改善。
此系统的开发使我获得了一些珍贵的实践经验,也使理论水平得到了应用和强化,提高了我的实际开发能力,使理论和实践相得益彰,相互促进。
在完成的过程中也遇到了很多问题,有的是不明白的,通过问老师,问同学,查资料,基本得到解决。
从中学到的知识我也是终生受用的。
参考文献
(1)丁振凡.《Java语言实用教程》北京邮电大学出版社
(2)耿祥义.《Java2实用教程》清华大学出版社
(3)赵付青.《Java面向对象程序设计》国防工业出版社.
(4)耿祥义.《Java课程设计》清华大学出版社
致谢
首先,我们要感谢学校给我们提供了此次课程设计的机会,能让我们在一起学习与研究,让我们有机会对所学的理论知识进行实践。
其次,我们还要特别感谢我们的辅导老师庞淑侠,在她的精心辅导和帮助下,我们的设计才得以顺利完成。
对她为我们的设计所提出的宝贵意见表示忠心的感谢!
最后,在程序的编写过程中,也得到了许多同学的宝贵建议,真正体验到团队的力量是多么的强大,在此一并致以诚挚的谢意。
附录
源程序:
packageprogressbardemo;
importjavax.swing.*;
importjavax.swing.table.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjava.util.*;
/**
*学生成绩管理系统
*/
publicclassStudentManagerextendsJFrame{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
/**
*当前窗体
*/
privateContainercurrentContainer=this;
/**
*窗体标题
*/
privateStringtitle="学生成绩管理系统";
/**
*标题字体
*/
privateFontheadFont=newFont("黑体",Font.PLAIN,18);
/**
*数据文件
*/
privateFiledata=newFile("data.txt");
/**
*数据模型
*/
privateDataTabledataModel=newDataTable();
/**
*数据表格
*/
privateJTabledataTable=newJTable(dataModel);
/**
*备注
*/
privateJLabelextraLabel=newJLabel();
/**
*欢迎面板
*/
privateJPanelwelcomePanel=createWelcomePanel();
/**
*添加信息面板
*/
privateJPanelinsertPanel=createInsertPanel();
/**
*显示信息面板
*/
privateJPaneldisplayPanel=createDisplayPanel();
/**
*修改信息面板
*/
privateJPanelmodifyPanel=createModifyPanel();
/**
*构造器:
初始化窗体
*/
publicStudentManager(){
/*设置窗体基本信息*/
this.setLocation(300,300);
this.setSize(475,450);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.setTitle(title);
this.createMenu();
this.add(welcomePanel);
/*如果数据文件不存在则默认创建一个*/
if(!
data.exists()){
try{
newFileWriter(data);
}catch(IOExceptione){
}
}
/*显示窗体*/
this.setVisible(true);
}
/**
*创建菜单栏
*/
privatevoidcreateMenu(){
JMenuBarmenubar=newJMenuBar();
/*建立菜单并添加到菜单栏中*/
JMenumanageMenu=newJMenu("管理");
menubar.add(manageMenu);
JMenuhelpMenu=newJMenu("帮助");
menubar.add(helpMenu);
/*建立菜单项并添加到菜单中*/
JMenuItemm_add=newJMenuItem("添加");
JMenuItemm_manage=newJMenuItem("查看");
JMenuItemm_modify=newJMenuItem("修改");
JMenuItemm_export=newJMenuItem("导出");
JMenuItemm_exit=newJMenuItem("退出");
manageMenu.add(m_add);
manageMenu.add(m_modify);
manageMenu.add(m_manage);
manageMenu.addSeparator();
manageMenu.add(m_export);
manageMenu.addSeparator();
manageMenu.add(m_exit);
JMenuItemm_help=newJMenuItem("说明");
JMenuItemm_copy=newJMenuItem("版权");
helpMenu.add(m_help);
helpMenu.addSeparator();
helpMenu.add(m_copy);
/*为添加菜单项注册监听器,使点击该菜单项时添加学生成绩数据*/
m_add.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
resetPanel(insertPanel);
}
});
/*为修改菜单项注册监听器,使点击该菜单项时修改学生成绩数据*/
m_modify.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
resetPanel(modifyPanel);
}
});
/*为管理菜单项注册监听器,使点击该菜单项时显示学生成绩列表*/
m_manage.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
resetPanel(displayPanel);
}
});
/*为导出菜单项注册监听器,使点击该菜单项时复制现有数据到指定文件*/
m_export.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
/*弹出保存文件对话框供选取要保存的文件及位置*/
JFileChooserchooser=newJFileChooser();
intchoose=chooser.showSaveDialog(currentContainer);
if(choose==JFileChooser.APPROVE_OPTION){
/*调用导出数据到文件方法*/
booleanflag=exportData(chooser.getSelectedFile());
if(flag){
JOptionPane.showMessageDialog(currentContainer,"数据已经成功导出到指定文件!
","导出成功",JOptionPane.PLAIN_MESSAGE);
}else{
JOptionPane.showMessageDialog(currentContainer,"无法导出到指定文件!
","导出失败",JOptionPane.ERROR_MESSAGE);
}
}
}
});
/*为退出菜单项注册监听器,使点击该菜单项时退出程序*/
m_exit.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
System.exit(0);
}
});
/*为说明菜单项注册监听