期末设计.docx
- 文档编号:9212506
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:18
- 大小:1.62MB
期末设计.docx
《期末设计.docx》由会员分享,可在线阅读,更多相关《期末设计.docx(18页珍藏版)》请在冰豆网上搜索。
期末设计
面向对象程序设计(Java)
设计说明书
姓名:
Sao_的不行
学号:
20111111111
班级:
11软件
指导教师:
XX百科
完成日期:
2012.6.20
目录
目录2
第一章系统分析1
第二章系统设计2
2.1系统功能分析2
2.2系统流程图3
第三章详细设计4
3.1主窗体的创建4
3.2系统管理界面的创建5
3.2.1系统管理界面的主要实现6
3.2.2用户登陆窗体的创建6
3.2.3管理员权限界面9
3.2.4读者权限界面10
3.2.5其他界面10
第四章文件管理和多线程的实现13
4.1文件管理13
4.2多线程13
总结1
参考文献1
图书馆管理系统设计说明书
第一章系统分析
伴随社会的高速发展,全国各高校不断建设高档次,图书量更大的图书馆,在这种形势下,图书馆需要一个有效的方法来管理图书信息。
通过调查,要求系统需要有以下功能:
⑴由于该系统一次性输入的数据量可能很大,所以要求支持从Excel导入数据;
⑵由于该系统的使用对象多,要求有较好的权限管理;
⑶原始数据修改简单方便,支持多条件修改;
⑷方便的数据查询,支持多条件查询;
⑸在相应的权限下,删除数据方便简单,数据稳定性好;
由于本系统管理的对象有两个,一个是用户,一个是图书,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。
因此,比较适合于采用文件管理。
在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。
本系统的设计是在WindowsXP操作系统环境下,使用MyEclipse英文版开发成功的。
MyEclipse研发工具特点:
1.支持JAVA开发
2.继承了许多插件,类和库,操作非常方便
2.有自动纠错功能
4.系统稳定
第二章系统设计
2.1系统功能分析
系统开发的总体任务是实现用户和图书信息关系的系统化,规范化和自动化。
在本系统中有两种权限:
一种是管理权限,即系统管理员、图书管理员。
另一种是用户权限,即读者。
图书馆管理系统需要完成的功能主要有:
系统管理员可以完成的功能:
●系统管理:
用户登录、退出
●用户管理:
添加用户、删除用户、修改用户
●信息一览:
图书列表、图书借还情况、用户列表
●图书管理:
添加图书、删除图书、修改图书
●借书管理:
图书出借、图书出借情况修改
●还书管理:
图书还入、图书还入情况修改
图书管理员可以完成的功能:
●系统管理:
用户登录、退出
●信息一览:
图书列表、图书借还情况、用户列表
●图书管理:
添加图书、删除图书、修改图书
●借书管理:
图书出借、图书出借情况修改
●还书管理:
图书还入、图书还入情况修改
读者可以完成的功能:
系统管理:
用户登录、退出
●信息一览:
图书列表、图书借还情况、用户列表
对上述各功能进行集中、分块、按照结构化程序设计的要求。
图2-1系统功能模块图
2.2系统流程图
图2-2系统流程图
第三章详细设计
3.1主窗体的创建
主页面是系统的主要界面,其中包括系统管理、用户管理、图书管理、借书管理、还书管理、和信息一览六个部分。
主要界面如图3.1
图3.1图书馆管理系统主界面
主要代码如下:
publicMainWindow(){
super("图书馆管理系统");
MenuB=newJMenuBar();
SystemMenu=newJMenu("系统管理");
UserLoginMenuItem=newJMenuItem("用户登录");
SystemMenu.setFont(newFont("黑体",10,20));
ExitMenuItem=newJMenuItem("退出");
SystemMenu.add(UserLoginMenuItem);
SystemMenu.add(ExitMenuItem);
MenuB.add(SystemMenu);
UserLoginMenuItem.addActionListener(this);
ExitMenuItem.addActionListener(this);
UserMGRMenu=newJMenu("用户管理");
UserMGRMenu.setFont(newFont("黑体",10,20));
UserAddMenuItem=newJMenuItem("添加用户");
UserModifyMenuItem=newJMenuItem("修改用户");
UserDeleteMenuItem=newJMenuItem("删除用户");
InfoBrowseMenu.add(BookListMenuItem);
InfoBrowseMenu.add(LendBookListMenuItem);
InfoBrowseMenu.add(UserListMenuItem);
MenuB.add(InfoBrowseMenu);
BookListMenuItem.addActionListener(this);
LendBookListMenuItem.addActionListener(this);
UserListMenuItem.addActionListener(this);
titleLabel=newJLabel(newImageIcon(".\\book.jpg"));
panel1=newJPanel();
panel1.setLayout(newBorderLayout());
panel1.add(titleLabel,BorderLayout.CENTER);
UserMGRMenu.setEnabled(true);
BookMGRMenu.setEnabled(false);
LendBookMenu.setEnabled(false);
ReturnBookMenu.setEnabled(false);
InfoBrowseMenu.setEnabled(true);
setJMenuBar(MenuB);
getContentPane().add(panel1);
setBounds(100,50,600,400);
setVisible(true);
3.2系统管理界面的创建
3.2.1系统管理界面的主要实现
如图3.2.1
1.输入用户名
2.输入登陆密码
图3.2.1
3.2.2用户登陆窗体的创建
用户登陆窗口放置了两个文本框(TextBox),用来输入用户名和用户密码。
两个按钮(Button)用来确定或者取消登陆。
2个标签(Label)用来标示窗体的信息。
系统启动后,点击系统管理将会出现如下所示的用户登录窗口,用户首先输入用户名,然后输入密码,如图3.2。
对登录的用户名进行判断,从而可以进入不同的用户身份对该系统进行操作。
3.2用户登陆界面
主要代码如下:
publicclassUserLoginextendsJFrameimplementsActionListener{
MainWindowmainFrame;
JPanelpanel1,panel2;
JLabelUserLabel,PasswordLabel;
JTextFieldUserTextField;
JPasswordFieldPasswordTextField;
JButtonYesBtn,CancelBtn;
Containerc;
ResultSetrs;
publicUserLogin(MainWindowmainFrame){
super("用户登录");
this.mainFrame=mainFrame;
UserLabel=newJLabel("用户名",JLabel.CENTER);
PasswordLabel=newJLabel("密码",JLabel.CENTER);
UserLabel.setFont(newFont("黑体",10,20));
PasswordLabel.setFont(newFont("黑体",10,20));
UserTextField=newJTextField(10);
PasswordTextField=newJPasswordField(10);
YesBtn=newJButton("确定");
CancelBtn=newJButton("取消");
YesBtn.addActionListener(this);
CancelBtn.addActionListener(this);
panel1=newJPanel();
panel1.setLayout(newGridLayout(2,2));
panel2=newJPanel();
c=getContentPane();
c.setLayout(newBorderLayout());
panel1.add(UserLabel);
panel1.add(UserTextField);
panel1.add(PasswordLabel);
panel1.add(PasswordTextField);
c.add(panel1,BorderLayout.CENTER);
panel2.add(YesBtn);
panel2.add(CancelBtn);
c.add(panel2,BorderLayout.SOUTH);
setSize(400,400);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==CancelBtn){
mainFrame.setEnable("else");
this.dispose();
}else{
char[]password=PasswordTextField.getPassword();
StringpasswordSTR=newString(password);
if(UserTextField.getText().trim().equals("")){
JOptionPane.showMessageDialog(null,"用户名不可为空!
");
return;
}
if(passwordSTR.equals("")){
JOptionPane.showMessageDialog(null,"密码不可为空!
");
return;
}
Stringname2;
Stringps2;
Stringuname=UserTextField.getText();
Stringupwd=newString(PasswordTextField.getPassword());
try{FileInputStreamfis=newFileInputStream("yonghu.txt");
DataInputStreamindata=newDataInputStream(fis);
name2=indata.readUTF();
System.out.println("name:
"+name2);
ps2=indata.readUTF();
System.out.println("pass:
"+ps2);
if(uname.equals(name2)&&upwd.equals(ps2))
{
mainFrame.setEnable("1--系统管理员");
this.dispose();
}
}catch(IOExceptione2){
e2.printStackTrace();
}
3.2.3管理员权限界面
管理员包括(包括系统管理员和图书管理员),管理员可以通过刚开始的系统界面中的用户管理添加。
如图所示3.3所示:
图3.3管理员登陆后的界面
3.2.4读者权限界面
读者权限与管理员权限不同,读者只能进行图书信息的了解和浏览,而不能进行其他信息的修改。
读者登录界面如图3.2.4
3.2.4读者登录成功界面
3.2.5其他界面
其他界面包括:
图书管理界面(添加图书信息)、借书管理界面(图书出借)、还书管理界面(图书还入)。
如图3.2.51、3.2.52、3.2.53
图3.2.51添加图书信息界面
主要代码如下:
BookMGRMenu=newJMenu("图书管理");
BookMGRMenu.setFont(newFont("黑体",10,20));
BookAddMenuItem=newJMenuItem("添加图书");
BookModifyMenuItem=newJMenuItem("修改图书");
BookDeleteMenuItem=newJMenuItem("删除图书");
BookMGRMenu.add(BookAddMenuItem);
BookMGRMenu.add(BookModifyMenuItem);
BookMGRMenu.add(BookDeleteMenuItem);
MenuB.add(BookMGRMenu);
BookAddMenuItem.addActionListener(this);
BookModifyMenuItem.addActionListener(this);
BookDeleteMenuItem.addActionListener(this);
如图3.2.52图书借出界面
LendBookMenu=newJMenu("借书管理");
LendBookMenu.setFont(newFont("黑体",10,20));
LendBookMenuItem=newJMenuItem("图书出借");
LendInfoMenuItem=newJMenuItem("图书出借信息修改");
LendBookMenu.add(LendBookMenuItem);
LendBookMenu.add(LendInfoMenuItem);
MenuB.add(LendBookMenu);
LendBookMenuItem.addActionListener(this);
LendInfoMenuItem.addActionListener(this);
如图3.2.53图书还回界面
ReturnBookMenu=newJMenu("还书管理");
ReturnBookMenu.setFont(newFont("黑体",10,20));
ReturnBookMenuItem=newJMenuItem("图书还入");
ReturnInfoMenuItem=newJMenuItem("图书还入信息修改");
ReturnBookMenu.add(ReturnBookMenuItem);
ReturnBookMenu.add(ReturnInfoMenuItem);
MenuB.add(ReturnBookMenu);
ReturnBookMenuItem.addActionListener(this);
ReturnInfoMenuItem.addActionListener(this);
第四章文件管理和多线程的实现
4.1文件管理
在添加用户和添加图书两个界面,输入相应的信息,可以将用户信息和图书信息输入添加到文件中,以后登录用户和查找图书时,会从文件中寻找到相应的信息。
4.1添加用户成功
4.2多线程
多线程的实现主要是在图书出借的过程中实现的
主要代码如下:
publicsynchronizedvoidrun(){
newMainWindow();
总结
回想自己在设计软件过程中的遇到的困难关键在于对各个部分的衔接不熟练,不明白应该如何实现各个界面的功能,而且重点难点在于文件管理,如果说软件的各个部件是软件的肉体的话,那么文件管理则是软件的灵魂,没有文件管理,软件就没有了实际意义,没有内容只有一个躯壳。
做文件管理又比较难,想去实现我查阅了非常多的资料,通过阅读资料,了解了平时老师讲过的重要知识点和一些老师没有讲过的东西,不断提升自己对文件管理的理解,提升自己的编程能力。
期末设计是一个复杂繁琐的过程,通过这个过程,我们可以将自己在原来不懂得知识通过自己的努力自学完成,进而完成一个完整的系统制作,不仅在知识上,而且在精神上都是一个非常大的鼓舞。
参考文献
[1]《Java程序设计》主编刘发久大连理工大学出版社
[2]《Java编程思想》主编BnuceEckel机械工业出版社
[3]《Java面向对象编程》主编孙卫琴清华大学出版社
信息工程学院
《面向对象程序设计(java)》实践环节考核报告单
2011-2012学年度第二学期期末
排课编号:
(2011-2012-2)-0503351-00762-1批阅日期:
2012年6月30日
姓名
班级
11软件
学号
评分标准及
得分
评价项目
优秀
9-10
良好
8-9
中等
7-8
及格
6-7
不及格
6-0
课程设计所交材料齐全,格式正确,文笔流畅
系统功能完成情况,至少实现二个完整流畅功能
代码规范程度,注释使用情况
事件处理代码的完善程度
异常代码是否进行异常处理
是否考虑到线程同步问题
图形用户界面美观程度
程序是否应用到I/0流和文件管理
不得出现抄袭现象
作业的创新方面
合计
考核成绩
任课教师签名
审核人签名
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期末 设计