学生管理系统java课程设计Word文档格式.docx
《学生管理系统java课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生管理系统java课程设计Word文档格式.docx(55页珍藏版)》请在冰豆网上搜索。
3,此程序给出了“按照学号排序”“按照平均成绩排序”“按照英语成绩排序”“按照数学成绩排序”“按照专业成绩排序”等五个排序方法。
4,此程序在查询的同时又能同时显示出三科成绩的饼图分布,饼图上标出了四个成绩段的人数和百分比。
更加方便直观的体现出了单科的成绩分布。
5,程序有一个增加的功能。
能够将所有同学的信息用三维柱状图的形式全部呈现出来,能够进行纵向、横向两种比较方式。
方便人性化的进行成绩的比较。
三、系统的UML类图
(一)用况图
(二)类之间的图
①student类
②sort类
(三)数据流程图
四、功能调试
1,主界面
2,新建学生信息
3,查询成绩页面
4,修改成绩
5,删除成绩
第二种方法
6,打印文件内容
7,三科的排序
8,平均成绩排序:
9,三科的饼图分布
10,所有同学的成绩三维柱状图分析
五、具体代码
1,主界面代码(Grade.java)
publicclassGrade{
//定义主框架
privateJFrameframe=newJFrame("
学生成绩管理系统"
);
//定义菜单栏
privateJMenuBarBar=newJMenuBar();
//定义菜单
privateJMenuJMedit=newJMenu("
编辑"
privateJMenuJMcount=newJMenu("
统计"
privateJMenuJMhelp=newJMenu("
数据"
//定义菜单项
privateJMenuItemJMIcreate=newJMenuItem("
新建"
privateJMenuItemJMImodify=newJMenuItem("
修改"
privateJMenuItemJMIsearch=newJMenuItem("
寻找"
privateJMenuItemJMIdelete=newJMenuItem("
删除"
privateJMenuItemJMIall=newJMenuItem("
成绩排序"
privateJMenuItemJMIgraphics=newJMenuItem("
图形统计"
privateJMenuItemJMIhelp=newJMenuItem("
文件信息"
//定义文本标签
privateJLabeltext=newJLabel();
privateJLabeltext1=newJLabel();
privateJLabeltext2=newJLabel();
privateJLabeltext3=newJLabel();
privateJLabeltext4=newJLabel();
//定义面板
privateContainercon=frame.getContentPane();
//定义输入框对象
//privateStudentManagerinputinfo=null;
//定义查询框架对象
privateSearchsearch=null;
privateCreatecreate=null;
privateDeletedelete=null;
privateModifymodify=null;
privateDatasortsort=null;
privateBarChartsss=null;
//定义总分统计对象
//privateAllgradeCountall=null;
//定义个人统计对象
//privateSignalCountsignal=null;
//构造函数
publicGrade(){
//把菜单栏加入框架
frame.setJMenuBar(Bar);
//把菜单加入菜单栏
Bar.add(JMedit);
Bar.add(JMcount);
Bar.add(JMhelp);
//把菜单项加入菜单
JMedit.add(JMIcreate);
JMedit.addSeparator();
JMedit.add(JMIsearch);
JMedit.add(JMImodify);
JMedit.add(JMIdelete);
//第一个下拉菜单
JMcount.add(JMIall);
JMcount.addSeparator();
JMcount.add(JMIgraphics);
//第二个下拉
JMhelp.add(JMIhelp);
//第三个//设置文本界面
text.setText("
==============基于TXT文件的Java学生管理系统==========="
text1.setText("
1.增添、删除、修改学生基本信息;
并计算每门课的平均成绩;
"
text2.setText("
2.统计优秀、良好、中等、及格、不及格的百分比,并以图呈现"
text3.setText("
3.按学号查询学生及成绩,并按照不同的成绩分数排序。
text4.setText("
===============制作者,计算机09-3,王继重============="
//设置欢迎界面
con.setLayout(newFlowLayout(FlowLayout.LEFT,0,10));
con.add(text);
con.add(text1);
con.add(text2);
con.add(text3);
con.add(text4);
//设置框架
frame.setLocation(200,200);
frame.setSize(400,300);
frame.setVisible(true);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
//增加监听器
JMIcreate.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){//TODO自动生成方法存根
create=newCreate();
}
});
JMIsearch.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
search=newSearch();
}});
JMImodify.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){modify=newModify();
JMIdelete.addActionListener(newActionListener(){
delete=newDelete();
JMIall.addActionListener(newActionListener(){
sort=newDatasort();
JMIgraphics.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
ss=newBarCharts("
成绩分布柱状图"
JMIhelp.addActionListener(newActionListener(){
//JOptionPane.showMessageDialog(null,"
计算机09-3王继重"
Outfilea=newOutfile();
}
publicstaticvoidmain(String[]args)
{Gradea=newGrade();
}
2,新建用户的代码
publicclassCreateextendsJFrame{
/**
*当前容器
*/
ContainercurrentContainer=this;
*存储的文件名
StringfileName=newString("
data.txt"
*显示标题文本
JLabeltitleLabel=newJLabel("
添加成绩界面"
*标题面板
JPaneltitlePanel=newJPanel();
*显示姓名文本
JLabelnameLabel=newJLabel("
学生姓名"
*显示成绩文本
JLabelscoreLabel=newJLabel("
学生学号"
JLabelscore1Label=newJLabel("
英语成绩"
JLabelscore2Label=newJLabel("
数学成绩"
JLabelscore3Label=newJLabel("
专业成绩"
*姓名文本框
JTextFieldnameTextField=newJTextField(15);
*成绩文本框
JTextFieldscoreTextField=newJTextField(15);
JTextFieldscore1TextField=newJTextField(15);
JTextFieldscore2TextField=newJTextField(15);
JTextFieldscore3TextField=newJTextField(15);
*输入面板
JPanelinputPanel=newJPanel();
*添加按钮
JButtoninsertBtn=newJButton("
*管理面板
JPanelmanagePanel=newJPanel();
*按钮监听器
ButtonActionListenerbtnAction=newButtonActionListener();
*构造器:
初始化窗体
publicCreate(){
this.setSize(280,300);
this.setLocation(300,300);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setTitle("
java学生成绩管理系统"
/*
*将窗体划分为上中下三个块
*/
this.setLayout(newBorderLayout());
this.add(titlePanel,"
North"
this.add(inputPanel,"
Center"
this.add(managePanel,"
South"
*第一块用来放标题面板==
titlePanel.setLayout(newFlowLayout(FlowLayout.CENTER,0,10));
titlePanel.add(titleLabel);
titleLabel.setFont(newFont("
黑体"
Font.PLAIN,16));
*第二块放输入面板
inputPanel.setLayout(newFlowLayout(FlowLayout.CENTER,20,10));
inputPanel.add(nameLabel);
//姓名
inputPanel.add(nameTextField);
inputPanel.add(scoreLabel);
//成绩
inputPanel.add(scoreTextField);
//?
?
inputPanel.add(score1Label);
//成绩1
inputPanel.add(score1TextField);
inputPanel.add(score2Label);
//成绩2
inputPanel.add(score2TextField);
inputPanel.add(score3Label);
//成绩3
inputPanel.add(score3TextField);
*第三块是管理面板
managePanel.setLayout(newFlowLayout(FlowLayout.CENTER,5,10));
managePanel.add(insertBtn);
*为按钮注册按钮监听器
insertBtn.addActionListener(btnAction);
*显示窗体
this.setVisible(true);
*按钮监听类
classButtonActionListenerimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
/*
*检查是否输入了姓名
*/
Stringname=nameTextField.getText().trim();
if(name.length()==0){
JOptionPane.showMessageDialog(currentContainer,"
输入的姓名为空!
"
操作失败"
JOptionPane.ERROR_MESSAGE);
return;
*是否要求查询
intscore=0;
intscore1=0;
intscore2=0;
intscore3=0;
*检查是否输入了成绩,输入不同的成绩
try{
score=Integer.parseInt(scoreTextField.getText().trim());
}catch(Exceptione1){
输入的成绩不是数字!
score1=Integer.parseInt(score1TextField.getText().trim());
score2=Integer.parseInt(score2TextField.getText().trim());
score3=Integer.parseInt(score3TextField.getText().trim());
*是否要求录入
if(e.getSource()==insertBtn){
booleanflag=insert(name,score,score1,score2,score3);
//执行方法,进行录入操作
if(flag){
JOptionPane.showMessageDialog(currentContainer,"
录入成功!
scoreTextField.setText("
//清空成绩框
score1TextField.setText("
score2TextField.setText("
score3TextField.setText("
}else{
JOptionPane.showMessageDialog(currentContainer,
"
录入过程中出现了异常,请联络技术人员!
"
录入失败"
JOptionPane.ERROR_MESSAGE);
}
}}}
*插入新记录
*
*@paramname
*姓名
*@paramscore
*成绩
publicbooleaninsert(Stringname,intscore,intscore1,intscore2,
intscore3){
try{
*写入文件
Writerout=newFileWriter(fileName,true);
out.write(name+"
:
+score+"
+score1+"
+score2+"
+score3+"
\r\n"
out.close();
returntrue;
}catch(IOExceptione){
e.printStackTrace();
returnfalse;
}}
*入口方法
*@paramargs
publicstaticvoidmain(String[]args){
newCreate();
3,修改类
publicclassModifyextendsJFrame{
修改成绩界面"