南昌大学JAVA课程设计班级管理系统.docx
- 文档编号:3783547
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:41
- 大小:509.89KB
南昌大学JAVA课程设计班级管理系统.docx
《南昌大学JAVA课程设计班级管理系统.docx》由会员分享,可在线阅读,更多相关《南昌大学JAVA课程设计班级管理系统.docx(41页珍藏版)》请在冰豆网上搜索。
南昌大学JAVA课程设计班级管理系统
JAVA期末大作业
实验课程:
《Java语言程序设计》
学生姓名:
学号:
6100409225
专业班级:
网络工程091班
2012年5月24日
主要内容:
◆设计要求
◆总体设计
◆详细设计
◆代码调试
◆软件效果图
一、设计要求
通过菜单项可以完成以下主要功能:
(1)录入班级基本信息功能的界面。
通过该界面可以录入班级的班号/名称、班主任、所属
(2)学院、所属专业、人数、照片等信息;
(3)修改班级基本信息功能界面。
通过该界面可以修改已经录入的班级的信息;
(4)查询班级基本信息功能界面。
通过该界面可以对已经录入的班级信息进行查询;
(5)删除班级基本信息功能界面。
通过该界面可以对已经录入的班级信息进行删除。
二、总体设计
在设计班级管理系统时,需要编写7个Java源文件:
ManagerWindow.java、InputStudent.java、Inquest.java、ModifySituation.java、Delete.java、Class.java、TeacherPicture.java。
除此之外还需要Java系统提供的一些重要的类,如JMenuItem,HashMap和File等类。
班级管理系统所用的一些重要的类之间的UML图如下图所示:
三、详细设计
(一)编写专业名称文件
为了便于录入专业信息,本学籍管理系统使用了一个名字为“专业.txt”的文件,文件的每一行为一个专业的名称。
例子如下:
(二)ManagerWindow类
a)效果图:
b)UML图
c)代码
packageclassManager;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
@SuppressWarnings("serial")
publicclassManagerWindowextendsJFrameimplementsActionListener{
InputClassbaseinput;
ModifySituationbasemodify;
Deletebaseremove;
Inquestbasesearchprint;
JMenuBarbar;
JMenufileMenu;
JMenuIteminput,modify,searchprint,remove,welcome;
Filefile=null;
FlowLayoutflow=null;
JLabellabel=null;
JPanelpCenter;
publicManagerWindow(){
super("班级管理系统");
file=newFile("K:
\\BaseInformation.txt");//改盘符路径
input=newJMenuItem("录入班级基本信息");
modify=newJMenuItem("修改班级基本信息");
searchprint=newJMenuItem("查询班级基本信息");
remove=newJMenuItem("删除班级基本信息");
welcome=newJMenuItem("欢迎界面");
bar=newJMenuBar();
fileMenu=newJMenu("菜单选项");
fileMenu.add(input);
fileMenu.add(modify);
fileMenu.add(searchprint);
fileMenu.add(remove);
fileMenu.add(welcome);
bar.add(fileMenu);
setJMenuBar(bar);
label=newJLabel("班级管理系统",JLabel.CENTER);
label.setIcon(newImageIcon("welcome1.jpg"));
label.setFont(newFont("隶书",Font.BOLD,40));
label.setHorizontalTextPosition(SwingConstants.CENTER);
label.setForeground(Color.red);
input.addActionListener(this);
modify.addActionListener(this);
searchprint.addActionListener(this);
remove.addActionListener(this);
welcome.addActionListener(this);
flow=newFlowLayout();
pCenter=newJPanel();
pCenter.setLayout(flow);
if(!
file.exists()){
try{
FileOutputStreamout=newFileOutputStream(file);
PrintStreamp=newPrintStream(out);
p.println("BaseInformation");
p.close();
out.close();
}catch(IOExceptione){
}
}
pCenter.add(label);
add(pCenter,BorderLayout.CENTER);
validate();
setVisible(true);
setBounds(100,50,460,280);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
intn=JOptionPane.showConfirmDialog(null,"确认退出么?
","确认对话框",
JOptionPane.YES_NO_OPTION);
if(n==JOptionPane.YES_NO_OPTION)
System.exit(0);
}
});
validate();
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==input){
baseinput=newInputClass(file);
baseinput.setLocation(getBounds().x+getBounds().width,
getBounds().y);
baseinput.setVisible(true);
}elseif(e.getSource()==modify){
basemodify=newModifySituation(file);
basemodify.setLocation(getBounds().x+getBounds().width,
getBounds().y);
}
if(e.getSource()==searchprint){
basesearchprint=newInquest(file);
basesearchprint.setLocation(getBounds().x+getBounds().width,
getBounds().y);
basesearchprint.setVisible(true);
}elseif(e.getSource()==remove){
baseremove=newDelete(file);
baseremove.setLocation(getBounds().x+getBounds().width,
getBounds().y);
}
elseif(e.getSource()==welcome){
newManagerWindow();
}
}
publicstaticvoidmain(Stringargs[]){
newManagerWindow();
}
}
(三)Class类
a)UML图
Class类所创建的对象是InputStudent类成员之一,负责封装班主任的基本信息
b)代码
packageclassManager;
importjava.io.*;
@SuppressWarnings("serial")
publicclassClassimplementsSerializable{
Stringclassnumber,headteacher,college,discipling,population,imagePicPath;
publicClass(Stringclassnumber,Stringheadteacher,Stringcollege,
Stringdiscipling,Stringpopulation,StringimagePicPath){
super();
this.classnumber=classnumber;
this.headteacher=headteacher;
this.college=college;
this.discipling=discipling;
this.population=population;
this.imagePicPath=imagePicPath;
}
publicClass(){
//TODOAuto-generatedconstructorstub
}
publicStringgetHeadteacher(){
returnheadteacher;
}
publicvoidsetHeadteacher(Stringheadteacher){
this.headteacher=headteacher;
}
publicvoidsetNumber(Stringnumber){
this.classnumber=number;
}
publicStringgetNumber(){
returnclassnumber;
}
publicvoidsetName(Stringname){
this.headteacher=name;
}
publicStringgetName(){
returnheadteacher;
}
publicvoidsetCollege(Stringcollege){
this.college=college;
}
publicStringgetCollege(){
returncollege;
}
publicvoidsetDiscipling(Stringdiscipling){
this.discipling=discipling;
}
publicStringgetDiscipling(){
returndiscipling;
}
publicvoidsetPopulation(Stringpopulation){
this.population=population;
}
publicStringgetPopulation(){
returnpopulation;
}
publicvoidsetImagePic(StringimagePicPath){
this.imagePicPath=imagePicPath;
}
publicStringgetImagePic(){
returnimagePicPath;
}
}
(四)TeacherPicture类
a)效果图
b)UML图
该类创建的对象负责绘制学生的照片,效果如图所示。
c)代码
packageclassManager;
importjavax.swing.*;
importjava.io.*;
importjava.awt.*;
@SuppressWarnings("serial")
publicclassTeacherPictureextendsJPanel{
FileimageFile;
Toolkittool;
publicTeacherPicture(){
tool=getToolkit();
}
publicvoidsetImage(FileimageFile){
this.imageFile=imageFile;
repaint();
}
publicvoidpaintComponent(Graphicsg){
super.paintComponent(g);
intw=getBounds().width;
inth=getBounds().height;
if(imageFile!
=null){
Imageimage=tool.getImage(imageFile.getAbsolutePath());
g.drawImage(image,0,0,w,h,this);
}
else
g.drawString("没有选择图片",10,30);
}
}
(五)InputClass类
a)效果图
b)UML图
该类所穿件的对象是ManagerWindow类的重要成员之一,负责提供录入班级基本信息的界面。
c)代码
packageclassManager;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.HashMap;
importjavax.swing.filechooser.*;
@SuppressWarnings("serial")
publicclassInputClassextendsJFrameimplementsActionListener{
Classtec=null;
JPanelpanel;
TeacherPicturepic;
HashMap
JTextFieldclassnumber,headteacher,population;
JButtonselectpic;
JComboBoxcollege,discipling;
Stringcollege1[]={"信工学院","人文学院","建筑学院"};
JButtoninput,reset;
RandomAccessFilein=null;
RandomAccessFileout=null;
FilesystemFile,imagePic;
Stringpath=null;
Containerc;
Stringnumber="";
Stringname=null;//存放班主任名
publicInputClass(Filefile){
super("录入班级基本信息对话框");
systemFile=file;
c=getContentPane();
panel=newJPanel(newBorderLayout());
tec=newClass();//
pic=newTeacherPicture();
classnumber=newJTextField(5);
headteacher=newJTextField(5);
discipling=newJComboBox();
try{
FileReaderinOne=newFileReader("专业.txt");
BufferedReaderinTwo=newBufferedReader(inOne);
Strings=null;
while((s=inTwo.readLine())!
=null)
discipling.addItem(s);
inOne.close();
inTwo.close();
}
catch(IOExceptionexp){
discipling.addItem("网络工程");
discipling.addItem("计算机科学与技术");
discipling.addItem("数字媒体技术");
discipling.addItem("卓越工程师");
}
college=newJComboBox(college1);
population=newJTextField(5);
selectpic=newJButton("选择");
input=newJButton("录入");
reset=newJButton("重置");
input.addActionListener(this);
selectpic.addActionListener(this);
reset.addActionListener(this);
Boxbox1=Box.createHorizontalBox();
box1.add(newJLabel("班号",JLabel.CENTER));
box1.add(classnumber);
Boxbox2=Box.createHorizontalBox();
box2.add(newJLabel("班主任",JLabel.CENTER));
box2.add(headteacher);
Boxbox3=Box.createHorizontalBox();
box3.add(newJLabel("学院",JLabel.CENTER));
box3.add(college);
Boxbox4=Box.createHorizontalBox();
box4.add(newJLabel("专业",JLabel.CENTER));
box4.add(discipling);
Boxbox5=Box.createHorizontalBox();
box5.add(newJLabel("人数",JLabel.CENTER));
box5.add(population);
BoxboxH=Box.createVerticalBox();
boxH.add(box1);
boxH.add(box2);
boxH.add(box3);
boxH.add(box4);
boxH.add(box5);
boxH.add(Box.createVerticalGlue());
JPanelpicPanel=newJPanel();
picPanel.setBackground(Color.green);
picPanel.add(newJLabel("选择照片"),JLabel.CENTER);
picPanel.add(selectpic);
JPanelputButton=newJPanel();
putButton.add(input);
putButton.add(reset);
JPanelmessPanel=newJPanel();
messPanel.add(boxH);
messPanel.setBackground(Color.green);
putButton.setBackground(Color.yellow);
setLayout(newBorderLayout());
JSplitPanesplitV=newJSplitPane(JSplitPane.VERTICAL_SPLIT,picPanel,pic);
JSplitPanesplitH=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,messPanel,splitV);
panel.add(splitH,BorderLayout.CENTER);
panel.add(putButton,BorderLayout.SOUTH);
c.add(panel);
validate();
setSize(360,300);
setVisible(true);
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
setVisible(false);
}
});
}
publicvoidactionPerformed(ActionEvente){
name=headteacher.getText();
number=classnumber.getText();
if(e.getSource()==input){
System.out.println(number);
if(number.length()>0)
{
Classtemp;
Stringinf=null;
String[]s2=newString[6];
try{
RandomAccessFilein=newRandomAccessFile(systemFile,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学 JAVA 课程设计 班级 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)