求毕业设计及论文“基于Java的学生信息管理系统的设计与实现”

Python014

求毕业设计及论文“基于Java的学生信息管理系统的设计与实现”,第1张

仅仅给你个参考

//Java Group Project_StudentManagement源码

//NetBeans IDE 6.5 环境

package studentmanager

import java.awt.*

import java.awt.event.*

import javax.swing.*

import java.io.*

import java.util.*

class Student implements java.io.Serializable{

String number,name,specialty,grade,borth,sex

public Student(){}

public void setNumber(String number){ this.number=number}

public String getNumber(){ return number}

public void setName(String name){ this.name=name}

public String getName(){ return name}

public void setSex(String sex){ this.sex=sex}

public String getSex(){ return sex}

public void setSpecialty(String specialty){ this.specialty=specialty}

public String getSpecialty(){ return specialty}

public void setGrade(String grade){ this.grade=grade}

public String getGrade(){ return grade}

public void setBorth(String borth){ this.borth=borth}

public String getBorth(){ return borth}

}

public class StudentManager extends JFrame{

JLabel lb=new JLabel("录入请先输入记录,查询、删除请先输入学号,修改是对查询" +

"内容改后的保存!")

JTextField 学号,姓名,专业,年级,出生

JRadioButton 男,女

ButtonGroup group=null

JButton 录入,查询,删除,修改,显示

JPanel p1,p2,p3,p4,p5,p6,pv,ph

Student 学生=null

Hashtable 学生散列表=null

File file=null

FileInputStream inOne=null

ObjectInputStream inTwo=null

FileOutputStream outOne=null

ObjectOutputStream outTwo=null

public StudentManager(){

super("学生基本信息管理系统")

学号=new JTextField(10)

姓名=new JTextField(10)

专业=new JTextField(10)

年级=new JTextField(10)

出生=new JTextField(10)

group=new ButtonGroup()

男=new JRadioButton("男",true)

女=new JRadioButton("女",false)

group.add(男)

group.add(女)

录入=new JButton("录入")

查询=new JButton("查询")

删除=new JButton("删除")

修改=new JButton("修改")

显示=new JButton("显示")

录入.addActionListener(new InputAct())

查询.addActionListener(new InquestAct())

修改.addActionListener(new ModifyAct())

删除.addActionListener(new DeleteAct())

显示.addActionListener(new ShowAct())

修改.setEnabled(false)

p1=new JPanel()

p1.add(new JLabel("学号:",JLabel.CENTER))

p1.add(学号)

p2=new JPanel()

p2.add(new JLabel("姓名:",JLabel.CENTER))

p2.add(姓名)

p3=new JPanel()

p3.add(new JLabel("性别:",JLabel.CENTER))

p3.add(男)

p3.add(女)

p4=new JPanel()

p4.add(new JLabel("专业:",JLabel.CENTER))

p4.add(专业)

p5=new JPanel()

p5.add(new JLabel("年级:",JLabel.CENTER))

p5.add(年级)

p6=new JPanel()

p6.add(new JLabel("出生:",JLabel.CENTER))

p6.add(出生)

pv=new JPanel()

pv.setLayout(new GridLayout(6,1))

pv.add(p1)

pv.add(p2)

pv.add(p3)

pv.add(p4)

pv.add(p5)

pv.add(p6)

ph=new JPanel()

ph.add(录入)

ph.add(查询)

ph.add(修改)

ph.add(删除)

ph.add(显示)

file=new File("学生信息.txt")

学生散列表=new Hashtable()

if(!file.exists()){

try{

FileOutputStream out=new FileOutputStream(file)

ObjectOutputStream objectOut=new ObjectOutputStream(out)

objectOut.writeObject(学生散列表)

objectOut.close()

out.close()

}

catch(IOException e){}

}

Container con=getContentPane()

con.setLayout(new BorderLayout())

con.add(lb, BorderLayout.NORTH)

con.add(pv, BorderLayout.CENTER)

con.add(ph, BorderLayout.SOUTH)

setDefaultCloseOperation(EXIT_ON_CLOSE)

setBounds(100,100,600,300)

setVisible(true)

}

public static void main(String[] args) {new StudentManager()}

class InputAct implements ActionListener{

public void actionPerformed(ActionEvent e){

修改.setEnabled(false)

String number=""

number=学号.getText()

if(number.length()>0){

try{

inOne=new FileInputStream(file)

inTwo=new ObjectInputStream(inOne)

学生散列表=(Hashtable)inTwo.readObject()

inOne.close()

inTwo.close()

}

catch(Exception ee){System.out.println("创建散列表出现问题!")}

if(学生散列表.containsKey(number)){

String warning="该生信息已存在,请到修改页面修改!"

JOptionPane.showMessageDialog(null,warning,"警告",

JOptionPane.WARNING_MESSAGE)

}//end if1

else{

String m="该生信息将被录入!"

int ok=JOptionPane.showConfirmDialog(null,m,"确认",

JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE)

if(ok==JOptionPane.YES_OPTION){

String name=姓名.getText()

String specialty=专业.getText()

String grade=年级.getText()

String borth=出生.getText()

String sex=null

if(男.isSelected()){sex=男.getText()}

else{sex=女.getText()}

学生=new Student()

学生.setNumber(number)

学生.setName(name)

学生.setSpecialty(specialty)

学生.setGrade(grade)

学生.setBorth(borth)

学生.setSex(sex)

try{

outOne=new FileOutputStream(file)

outTwo=new ObjectOutputStream(outOne)

学生散列表.put(number,学生)

outTwo.writeObject(学生散列表)

outTwo.close()

outOne.close()

}

catch(Exception ee){System.out.println("输出散列表出现问题!")}

学号.setText(null)

姓名.setText(null)

专业.setText(null)

年级.setText(null)

出生.setText(null)

}

}//end else1

}//end if0

else{

String warning="必须输入学号!"

JOptionPane.showMessageDialog(null,warning,

"警告",JOptionPane.WARNING_MESSAGE)

}//end else0

}//end actionPerformed

}//end class

class InquestAct implements ActionListener{

public void actionPerformed(ActionEvent e){

String number=""

number=学号.getText()

if(number.length()>0){

try{

inOne=new FileInputStream(file)

inTwo=new ObjectInputStream(inOne)

学生散列表=(Hashtable)inTwo.readObject()

inOne.close()

inTwo.close()

}

catch(Exception ee){System.out.println("散列表有问题!")}

if(学生散列表.containsKey(number)){

修改.setEnabled(true)

Student stu=(Student)学生散列表.get(number)

姓名.setText(stu.getName())

专业.setText(stu.getSpecialty())

年级.setText(stu.getGrade())

出生.setText(stu.getBorth())

if(stu.getSex().equals("男")){男.setSelected(true)}

else{女.setSelected(true)}

}

else{

修改.setEnabled(false)

String warning="该学号不存在!"

JOptionPane.showMessageDialog(null,warning,

"警告",JOptionPane.WARNING_MESSAGE)

}

}

else{

修改.setEnabled(false)

String warning="必须输入学号!"

JOptionPane.showMessageDialog(null,warning,

"警告",JOptionPane.WARNING_MESSAGE)

}

}

}

class ModifyAct implements ActionListener{

public void actionPerformed(ActionEvent e){

String number=学号.getText()

String name=姓名.getText()

String specialty=专业.getText()

String grade=年级.getText()

String borth=出生.getText()

String sex=null

if(男.isSelected()){sex=男.getText()}

else{sex=女.getText()}

Student 学生=new Student()

学生.setNumber(number)

学生.setName(name)

学生.setSpecialty(specialty)

学生.setGrade(grade)

学生.setBorth(borth)

学生.setSex(sex)

try{

outOne=new FileOutputStream(file)

outTwo=new ObjectOutputStream(outOne)

学生散列表.put(number, 学生)

outTwo.writeObject(学生散列表)

outTwo.close()

outOne.close()

学号.setText(null)

姓名.setText(null)

专业.setText(null)

年级.setText(null)

出生.setText(null)

}

catch(Exception ee){

System.out.println("录入修改出现异常!")

修改.setEnabled(false)

}

}

}

class DeleteAct implements ActionListener{

public void actionPerformed(ActionEvent e){

修改.setEnabled(false)

String number=学号.getText()

if(number.length()>0){

try{

inOne=new FileInputStream(file)

inTwo=new ObjectInputStream(inOne)

学生散列表=(Hashtable)inTwo.readObject()

inOne.close()

inTwo.close()

}

catch(Exception ee){}

if(学生散列表.containsKey(number)){

Student stu=(Student)学生散列表.get(number)

姓名.setText(stu.getName())

专业.setText(stu.getSpecialty())

年级.setText(stu.getGrade())

出生.setText(stu.getBorth())

if(stu.getSex().equals("男")){男.setSelected(true)}

else{女.setSelected(true)}

}

String m="确定要删除该学生的记录吗?"

int ok=JOptionPane.showConfirmDialog(null,m,"确认",

JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)

if(ok==JOptionPane.YES_OPTION){

学生散列表.remove(number)

try{

outOne=new FileOutputStream(file)

outTwo=new ObjectOutputStream(outOne)

outTwo.writeObject(学生散列表)

outTwo.close()

outOne.close()

学号.setText(null)

姓名.setText(null)

专业.setText(null)

年级.setText(null)

出生.setText(null)

}

catch(Exception ee){System.out.println(ee)}

}

else if(ok==JOptionPane.NO_OPTION){

学号.setText(null)

姓名.setText(null)

专业.setText(null)

年级.setText(null)

出生.setText(null)

}

else{

String warning="该学号不存在!"

JOptionPane.showMessageDialog(null,warning,

"警告",JOptionPane.WARNING_MESSAGE)

}

}

else{

String warning="必须输入学号!"

JOptionPane.showMessageDialog(null,warning,

"警告",JOptionPane.WARNING_MESSAGE)

}

}

}

class ShowAct implements ActionListener{

public void actionPerformed(ActionEvent e){

new StudentShow(file)

}

}

class StudentShow extends JDialog{

Hashtable 学生散列表= null

JTextArea 显示=null

FileInputStream inOne=null

ObjectInputStream inTwo=null

File file=null

public StudentShow(File file){

super(new JFrame(),"显示对话框")

this.file=file

显示=new JTextArea(16,30)

try{

inOne=new FileInputStream(file)

inTwo=new ObjectInputStream(inOne)

学生散列表=(Hashtable)inTwo.readObject()

inOne.close()

inTwo.close()

}

catch(Exception ee){}

if(学生散列表.isEmpty())显示.append("目前还没有学生的信息记录!\n")

else{

显示.setText("学号 姓名 性别 专业 年级 出生\n")

for(Enumeration enm=学生散列表.elements()enm.hasMoreElements()){

Student stu=(Student)enm.nextElement()

String sex=""

if(stu.getSex().equals("男"))sex="男"

else sex="女"

String str=stu.getNumber()+","+stu.getName()+","+sex+","

+stu.getSpecialty()+","+stu.getGrade()+","+stu.getBorth()+"\n"

显示.append(str)

}

}

JScrollPane scroll=new JScrollPane(显示)

Container con=getContentPane()

con.add("Center",scroll)

con.validate()

setVisible(true)

setBounds(200,200,400,300)

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){setVisible(false)}

}

)

}

}

}

粘的有点乱,凑合看吧。

毕业论文(设计)开题报告 论文题目 学生管理系统设计与实现

学生姓名 学 号 专 业 指导教师 职 称 学 历 开题报告文献综述)内容: 一、开发背景 学校学生信息管理是学校教务管理中的一个极为重要的环节,它是整个学校管理的核心和基础。现在我国的大中小学校档案的管理水平还停留在纸介质的基础上,这样的机智已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被以计算机为基础的信息管理所取代。信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。计算机已经成为我们学习和工作的得力助手:今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。为了适应现代社会人们高度强烈的时间观念,学籍管理系统软件将会为教学办公室带来极大的方便。随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。 二、选题的意义 通过学生管理系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。 三.系统研究内容 此学生信息管理系统需要完成的功能主要有: ● 有关学籍信息的输入,包括学生基本信息、所在班级、所学课程和成绩等. ● 学生信息的查询,包括学生基本信息、所在班级、已学课程和成绩等. ● 学生信息的修改. ● 班级管理信息的输入,包括班级设置、年级信息等. ● 班级管理信息的查询. ● 班级管理信息的修改 ● 学校基本课程信息的输入. ● 学校课程信息的修改.

● 学校课程的设置和修改. ● 学生成绩的输入. ● 学生成绩信息的修改 ● 学生信息的查询. ● 学生信息的统计. 四、毕业设计思路框架(一)设计方法 1.查询相关资料,了解本系统的研究意义。可以上网搜索或者是去图书馆查阅相关资料。 2.通过查询资料了解该系统要如何做,及要做哪些东西。 3.设计出大体上的功能模块,画出模块图。 4.通过进一步的了解,对每个功能模块进行细化,将每一步都想清楚。制定出每一步的做法和注意的地方。 5.对设计好的程序进行调试,通过调试发现存在的问题并解决,从而达到完善系统的目的。 6.最后,整理各阶段的设计记录文档,写成论文稿。 开发工具开发工具开发工具开发工具 选用设计语言 目前的可用的设计技术在设计此类系统上的数据库技术已经非常成熟,可提供的开发工具也很多,例如:Visual C++ ,Visual Basic,PowerBuilder,Dephi, visual foxpro等,它们都是很好的数据库开发工具,都是可视化开发工具,功能强大,开发容易,开发周期短,对于本任务都能够胜任。 Visual Basic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。

总的来说,Visual Basic具有以下特点: 可视化编程: 用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。 面向对象的程序设计 4.0版以后的Visual Basic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而Visual Basic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual Basic自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。 结构化程序设计语言 Visual Basic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual Basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。 Visual Basic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计Visual Basic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离Visual Basic环境,直接在Windows环境下运行。 5.2选用ACCESS作为后台数据库 ACCESS2000 就是关系数据库管理工具,数据库能汇集各种信息以供查询、存储和检索。ACCESS 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel的电子表格,可以使数据库一目了然。另外,ACCESS允许创建自定义

报表用于打印或输出数据库中的信息。ACCESS也提供了数据存储库,可以使用桌面数据库文件把数据文件置于网络文件服务器,与其他网络用户共享数据库。ACCESS 是一种关系数据库管理工具,关系数据库是已开发的最通用的数据库之一。如上所述,ACCESS 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。 (三)设计要求  数据库相关理论。汽车租赁管理是一个典型的数据库管理信息系统,系统的开发用到许多数据库相关的理论,因此要求作者具有这方面的基础知识,能够正确运用数据库理论进行系统的分析、逻辑设计、实体属性以及ER图等的转换,明白范式的相关内容,从而能够根据系统实际要求,设计出满足要求的合理的数据库。  面向对象理论。当前流行的编程思想是面向对象思想,而且许多工具,如Visual Basic,体现的也正是这种思想。面向对象思想与传统的面向过程编程思想相比,具有明显的优势,而且汽车租赁系统的设计也要求用面向对象编程工具来实现。这就要求作者在进行毕业设计时,应该明白面向对象的思想,并能够运用其思想到实际的工作中。  软件工程思想。大型系统的开发要用到软件工程相关的理论。虽然汽车租赁系统比较小,但是最好也能按照系统设计的生命周期模型来进行。严格按照软件工程思想和管理信息系统的开发步骤,设计并实现一个汽车租赁管理信息系统。以系统开发过程为主线,从需求分析,逻辑设计,总体设计,详细设计以及系统测试、实施各阶段的主要内容和成果,包括系统结构图、业务流程图、数据流程图、E-R模型、数据字典、物理表实现及其关系、功能模块算法流程、界面设计等等。  一定的实际动手能力和实际编程经验。系统最后要落实到windows下的编程,因此要求作者对windows下的数据库编程具有一定的基础,能够较为熟练的进行数据库相关程序的开发。以Microsoft公司的Visual Basic 6.0为开发工具,以ACCESS为后台数据库,对上述逻辑设计的成果进行转换,实现一个完整的可运行的汽车租赁管理系统。 (四)设计环境 硬件环境 随着计算机硬件的高速发展,现在普通的机子已经可以做为一个服务器端使用。 CPU:CⅣ 2.0或更高 硬盘:40G或更多 内存:128M或更高(建议使用256M)

软件环境软件环境软件环境软件环境 操作系统 Windows 2000 Server /Windows XP 网络协议 TCP/IP 数据库 ACCESS 开发语言 VB 其它辅助软件:Microsoft Word等 四、参考文献 [1] 丁宝康:《数据库实用教程》, 清华大学出版社,2004年。 [2] 赛奎春等:《VB数据库开发关键技术与实例应用》,人民邮电出版社,2003年。 [3] 汪诗林等:《数据结构算法与应用》,机械工业出版社,2005年。 [4] 罗征等:《VB 6.0从入门到精通》,电子工业出版社,2004年。 [5] 冯博琴等:《面向对象分析与设计》,机械工业出版社,2003年。 [6] Awad.E.M, Gotterer M.H: Visual Basic 6.0, 1992. [7] Robert.H.Dependahl:《Database Principles and Applications》.Williams Brown,2003. 报告人签名: 年月

指导教师对开题报告指导教师对开题报告指导教师对开题报告((((文献综述文献综述文献综述文献综述))))的评语的评语的评语的评语:::: 指导教师签名:年 月