




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与技术学院课程设计成绩单课程名称:数据库系统原理 指导教师: 姓名性别男学号班级综合成绩成绩等级程序运行情况(占总成绩20%)能正确运行 基本能正确运行 能运行但结果不完善(20分) (15分) (10分)程序功能的完善程度(占总成绩10%)完善 基本完善 不完善(10分) (8分) (5分)程序结构的合理性(占总成绩10%)合理 基本合理 不太合理(10分) (8分) (5分)对问题的答辩情况(占总成绩40%)概念正确有创新 能正确回答所有问题 基本能正确回答(40分) (35分) (30分)部分问题回答概念不清晰(20分)学生的工作态度与独立工作能力(占总成绩10%)工作态度认真能独立完成任务 工作态度认真但独立性较差(10分) (8分)工作态度基本认真但缺乏独立性(5分)设计报告的规范性(占总成绩10%)符合规范 基本符合规范 规范性较差(10分) (8分) (5分)优秀:90分100分 良好:80分89分 中等:7079分 及格:6069分 不及格0分59分 武汉科技大学计算机科学与技术学院制表计算机科学与技术学院 课 程 设 计 报 告课程名称: 数据库系统原理 专 业 班 级: 学 号:姓 名: 指导老师: 需求分析1、 系统简介本系统是一个工程项目管理系统,主要应用于建筑类的工程项目管理。由于对系统的分析可能不够全面,只能是模拟一下工程管理系统。项目一般有供应的零件、供应商、供应的项目组成的,构成一个供应关系。每一种零件、供应商,工程项目都有各自的唯一的编号,另外,本系统还设立了唯一的一个管理员,他有的权限最高,可以对此系统所有供应商、零件、工程项目及供应情况进行增删改查四种操作。目前,对需求进行分析,能想到的基本功能就这些了,这些功能基本能够实现工程项目管理,对于系统的不足,我们将不断对其进行改进。开发语言:java开发工具:MyEclipse+Oracle2、 数据流图管理员界面供应情况管理用户管理工程项目零件供应商添加供应商修改供应商添加零件删除供应商修改工程删除工程修改用户删除用户添加用户添加工程删除零件修改零件3、数据字典1 表格J的列清单名称数据类型长度注释JNOVARCHAR2(5)5主键,外键JNAMEVARCHAR2(10)10CITYVARCHAR2(5)52 表格P的列清单名称数据类型长度注释PNOVARCHAR2(5)5主键,外键PNAMEVARCHAR2(10)10COLORVARCHAR2(5)5WEIGHTFLOAT3 表格S的列清单名称数据类型长度注释SNOVARCHAR2(5)5主键,外键SNAMEVARCHAR2(10)10STATUSVARCHAR2(5)5CITYVARCHAR2(5)54 表格SPJ的列清单名称数据类型长度注释SNOVARCHAR2(5)5主键JNOVARCHAR2(5)5主键PNOVARCHAR2(5)5主键QTYINTEGER5 表格operator的列清单名称数据类型长度注释idVARCHAR2(5)10登录帐号,主键NameVARCHAR2(5)15PasswordVARCHAR2(5)15登录密码,主键gradeINTEGER1为管理员,0为普通用户数据库概念结构设计PASSWORDNAMEIDGRADE系统用户供应情况表零件表供应商表工程项目表从powerdesinger导出的E-R图数据库逻辑结构设计a)数据的设计(其中划横线的为主关键字)1.供应商(SNO,SNAME,STATUS,CITY)2.零件(PNO,PNAME,COLOR,WEIGHT)3.工程项目(JNO,JNAME,CITY)4.供应情况(SNO,PNO,JNO,QTY) 5.用户(id,name,grade,passwordb)功能结构图点击修改选择要修改的列YYN 点击添加输入相关属性值点击确定主键是否冲突?添加成功结束修改其属性确定修改Y主键是否冲突?N修改成功结束 图1 添加功能结构图点击删除 图2 修改功能结构图点击查看选择要删除的列 不允许删除确定修改 显示全部的信息是否存在外键? 结束删除成功 图4 查询功能结构图结束 图3 删除功能结构图 保存判断密码是否正确点击确定输入原/新密码点击修改密码NY结束 图4-5 修改密码功能结构图五、系统的实施运行结果1、登陆界面系统运行后即可看到此界面,默认为管理员。输入用户名和密码,验证正确后就可进入其相应界面了。2、主界面主界面2主界面3主界面53、添加界面添加供应商信息界面添加零件信息界面添加工程信息界面添加供应情况信息界面3、修改及删除(包括查询)供应商信息修改与删除界面零件信息修改与删除界面工程项目信息修改与删除供应情况信息修改与删除界面用户信息修改与删除界面更改当前登录用户密码界面总结在三周的课程设计中,通过建立一个项目及完成它,我收获颇丰。在此过程中我学到了好多书本上学不到的东西,在这之前我甚至不知道数据库的具体概念,但现在,我已经熟练掌握了数据库的建立、数据源的配置以及增删改查的SQL语句的使用,当然还有用JAVA进行数据库编程的各种技巧等等。当然这努力的过程总不是那么顺利,我碰到了好多问题,最典型的一个就是进行记录插入和修改时的SQL语句的格式问题,想了好久都没能解决,这个花了好多精力,当然最终还是解决了!虽然系统还存在很多缺陷,功能不够完善,但我还是会找时间逐渐完善它的!参考文献:1 数据库系统概论王珊高等教育出版社;2 从零开始学Eclipse麦廷琮编著 中国铁道出版社;3 java程序设计与开发 电子工业出版社;附录 系统部分源代码/* * 主窗体 * */public class SupplySituation extends JFrame private static final JDesktopPane DESKTOP_PANE = new JDesktopPane();public static void main(String args) try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();new loginIFrame();/登录窗口 catch (Exception ex) ex.printStackTrace();public static void addIFame(JInternalFrame iframe) / 添加子窗体的方法DESKTOP_PANE.add(iframe);public SupplySituation() super();setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);setLocationByPlatform(true);setSize(800, 600);setTitle(SPJ管理系统);JMenuBar menuBar = createMenu(); / 调用创建菜单栏的方法setJMenuBar(menuBar);final JLabel label = new JLabel();label.setBounds(0, 0, 0, 0);/label.setIcon(null); / 窗体背景DESKTOP_PANE.addComponentListener(new ComponentAdapter() public void componentResized(final ComponentEvent e) Dimension size = e.getComponent().getSize();label.setSize(e.getComponent().getSize();/*label.setText();*/);DESKTOP_PANE.add(label,new Integer(Integer.MIN_VALUE);getContentPane().add(DESKTOP_PANE);/* * 创建菜单栏 */private JMenuBar createMenu() / 创建菜单栏的方法JMenuBar menuBar = new JMenuBar();JMenu SupplierManageMenu = new JMenu(); / 借阅管理SupplierManageMenu.setText(供应商管理菜单);SupplierManageMenu.add(MenuActions.Supplier_ADD); / 增加供应商SupplierManageMenu.add(MenuActions.Supplier_MODIFY); / 更改供应商JMenu PartManageMenu = new JMenu(); / 借阅管理PartManageMenu.setText(零件管理菜单);PartManageMenu.add(MenuActions.Part_ADD); / 增加零件PartManageMenu.add(MenuActions.Part_MODIFY); / 更改零件JMenu ProjectManageMenu = new JMenu(); / 借阅管理ProjectManageMenu.setText(工程项目管理菜单);ProjectManageMenu.add(MenuActions.Project_ADD); / 增加工程项目ProjectManageMenu.add(MenuActions.Project_MODIFY); / 更改工程项目JMenu SupplyManageMenu = new JMenu(); / 借阅管理SupplyManageMenu.setText(供应情况管理菜单);SupplyManageMenu.add(MenuActions.Supply_ADD); / 增加供应情况SupplyManageMenu.add(MenuActions.Supply_MODIFY); / 更改供应情况JMenu sysManageMenu = new JMenu(); / 系统维护sysManageMenu.setText(系统维护);JMenu userManageMItem = new JMenu(用户管理); / 用户管理userManageMItem.add(MenuActions.USER_ADD);userManageMItem.add(MenuActions.USER_MODIFY);sysManageMenu.add(MenuActions.MODIFY_PASSWORD);sysManageMenu.add(userManageMItem);menuBar.add(SupplierManageMenu); / 添加供应商管理菜单到菜单栏menuBar.add(PartManageMenu); / 添加零件管理菜单到菜单栏menuBar.add(ProjectManageMenu); / 添加工程项目管理菜单到菜单栏menuBar.add(SupplyManageMenu); / 添加供应情况管理菜单到菜单栏 menuBar.add(sysManageMenu);return menuBar;添加功能经典代码public SupplierAddIFrame() super();final BorderLayout borderLayout = new BorderLayout();getContentPane().setLayout(borderLayout);setIconifiable(true);/ 设置窗体可最小化必须setClosable(true);/ 设置窗体可关闭必须setTitle(供应商信息添加);/ 设置窗体标题必须setBounds(100, 100, 396, 260);/ 设置窗体位置和大小必须final JPanel panel = new JPanel();panel.setBorder(new EmptyBorder(5, 10, 5, 10);final GridLayout gridLayout = new GridLayout(0, 4);gridLayout.setVgap(5);gridLayout.setHgap(5);panel.setLayout(gridLayout);getContentPane().add(panel);final JLabel label_2 = new JLabel();label_2.setText(供应商编号:);panel.add(label_2);SNO = new JTextField(请输入供应商编号,5);SNO.setDocument(new MyDocument(5); /设置文本框最大输入值为5SNO.setColumns(5);SNO.addKeyListener(new SNOkeyListener();SNO.addFocusListener(new SNOFocusListener();panel.add(SNO);final JLabel label_1 = new JLabel();label_1.setText(供应商姓名: );panel.add(label_1);SNAME = new JTextField(请输入供应商姓名,10);SNAME.setDocument(new MyDocument(5); /设置书号文本框最大输入值为5SNAME.setColumns(10);panel.add(SNAME);final JLabel label_3 = new JLabel();label_3.setHorizontalAlignment(SwingConstants.CENTER);label_3.setText(重要性:);panel.add(label_3);STATUS = new JTextField(请输入重要性:,5);STATUS.setDocument(new MyDocument(5); /设置书号文本框最大输入值为5STATUS.setColumns(5);panel.add(STATUS);final JLabel label_2_1 = new JLabel();label_2_1.setText(城市:);panel.add(label_2_1);CITY = new JTextField(请输入城市,5);CITY.setDocument(new MyDocument(5); /设置书号文本框最大输入值为5CITY.setColumns(5);panel.add(CITY);final JPanel panel_1 = new JPanel();panel_1.setBorder(new LineBorder(SystemColor.activeCaptionBorder, 1, false);getContentPane().add(panel_1, BorderLayout.SOUTH);final FlowLayout flowLayout = new FlowLayout();flowLayout.setVgap(2);flowLayout.setHgap(30);flowLayout.setAlignment(FlowLayout.RIGHT);panel_1.setLayout(flowLayout);buttonadd= new JButton();buttonadd.addActionListener(new addBookActionListener();buttonadd.setText(添加);panel_1.add(buttonadd);buttonclose = new JButton();buttonclose.addActionListener(new CloseActionListener();buttonclose.setText(关闭);panel_1.add(buttonclose);setVisible(true);/ 显示窗体可闭必须在添加所有控件之后执行该语句class SNOFocusListener extends FocusAdapter public void focusLost(FocusEvent e)if(!Dao.selectSNOInfo(SNO.getText().trim().isEmpty()JOptionPane.showMessageDialog(null, 供应商编号重复!);SNO.setText();return;class SNOkeyListener extends KeyAdapter public void keyPressed(final KeyEvent e) if (e.getKeyCode() = 5)buttonadd.doClick();class CloseActionListener implements ActionListener / 添加关闭按钮的事件监听器public void actionPerformed(final ActionEvent e) doDefaultCloseAction();class addBookActionListener implements ActionListener / 添加按钮的单击事件监听器public void actionPerformed(final ActionEvent e) if( SNO.getText().length()=0)JOptionPane.showMessageDialog(null, 供应商编号不可以为空);return;String SNOs=SNO.getText().trim();/返回字符串的副本,忽略前导空白和尾部空白。String SNAMEs=SNAME.getText().trim();String STATUSs=STATUS.getText().trim();String CITYs=CITY.getText().trim();int i=Dao.InsertSNO(SNOs,SNAMEs, STATUSs, CITYs);if(i=1)JOptionPane.showMessageDialog(null, 添加成功);doDefaultCloseAction();修改和删除功能经典代码public class SupplierModiAndDelIFrame extends JInternalFrame private JTextField SNO;private JTextField SNAME;private JTextField STATUS;private JTextField CITY;private String columnNames= 供应商编号,姓名,状态,城市;private JTable table;private JTextField keepmoney;/* * Create the frame */private Object getFileStates(List list)Objectresults=new Objectlist.size()columnNames.length;for(int i=0;ilist.size();i+)Supplier supplier=(Supplier)list.get(i);/resultsi0=reader.getId();resultsi0=supplier.getSNO();resultsi1=supplier.getSNAME();resultsi2=supplier.getSTATUS();resultsi3=supplier.getCITY();return results; public SupplierModiAndDelIFrame() super();setIconifiable(true);setClosable(true);setTitle(供应商信息修改与删除);setBounds(100, 100, 600, 420);final JPanel panel_1 = new JPanel();panel_1.setLayout(new BorderLayout();getContentPane().add(panel_1);final JScrollPane scrollPane = new JScrollPane();scrollPane.setPreferredSize(new Dimension(0, 100);panel_1.add(scrollPane, BorderLayout.NORTH);final DefaultTableModel model=new DefaultTableModel();Object results=getFileStates(Dao.selectSNOInfo();model.setDataVector(results,columnNames);table = new JTable();table.setModel(model);scrollPane.setViewportView(table);table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);table.addMouseListener(new TableListener();final JPanel panel_2 = new JPanel();final GridLayout gridLayout = new GridLayout(0, 4);gridLayout.setVgap(9);panel_2.setLayout(gridLayout);panel_2.setPreferredSize(new Dimension(0, 200);panel_1.add(panel_2, BorderLayout.SOUTH);final JLabel label_1 = new JLabel();label_1.setText( 供应商编号:);panel_2.add(label_1);SNO= new JTextField();SNO.setDocument(new MyDocument(5);panel_2.add(SNO);final JLabel label_2 = new JLabel();label_2.setText( 姓名:);panel_2.add(label_2);SNAME= new JTextField();SNAME.setDocument(new MyDocument(10);panel_2.add(SNAME);final JLabel label_5 = new JLabel();label_5.setText( 状态:);panel_2.add(label_5);STATUS = new JTextField();STATUS.setDocument(new MyDocument(5);panel_2.add(STATUS);final JLabel label_6 = new JLabel();label_6.setText( 城市:);panel_2.add(label_6);CITY = new JTextField();CITY.setDocument(new MyDocument(5);panel_2.add(CITY);final JPanel panel_4 = new JPanel();panel_4.setMaximumSize(new Dimension(0, 0);final FlowLayout flowLayout = new FlowLayout();flowLayout.setVgap(0);flowLayout.setHgap(4);panel_4.setLayout(flowLayout);panel_2.add(panel_4);final JButton button = new JButton();button.setHorizontalTextPosition(SwingConstants.CENTER);panel_4.add(button);button.setText(修改);button.addActionListener(new ModiButtonListener(model);final JButton buttonDel = new JButton();panel_4.add(buttonDel);buttonDel.setText(删除);buttonDel.addActionListener(new DelButtonListener(model);setVisible(true);/class TableListener extends MouseAdapter public void mouseClicked(final MouseEvent e) int selRow = table.getSelectedRow();SNO.setText(table.getValueAt(selRow, 0).toString().trim();SNAME.setText(table.getValueAt(selRow, 1).toString().trim();STATUS.setText(table.getValueAt(selRow, 2).toString().trim();CITY.setText(table.getValueAt(selRow, 3).toString().trim();final class NumberListener extends KeyAdapter public void keyTyped(KeyEvent e) String numStr=0123456789+(char)8;if(numStr.indexOf(e.getKeyChar()0)e.consume();private final class DelButtonListener implements ActionListener private final DefaultTableModel model;private DelButtonListener(DefaultTableModel model) this.model = model;public void actionPerformed(final ActionEvent e) if(!Dao.selectSPJInfo_1(SNO.getText().trim().isEmpty()JOptionPane.showMessageDialog(null, 在SPJ表存在外键,不能删除!);Object results=getFileStates(Dao.selectSNOInfo();model.setDataVector(results,columnNames);table.setModel(model);int i=Dao.DelSupplier(SNO.getText().trim();if(i=1)JOptionPane.showMessageDialog(null, 删除成功);Object results=getFileStates(Dao.selectSNOInfo();model.setDataVector(results,columnNames);table.setModel(model);cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 因协议书变更
- 中国广电桂林市2025秋招笔试行测题库及答案市场与服务类
- Unit4 My favorite subject Section A 2a-2f 说课稿人教版英语七年级上册
- 中国广电西双版纳2025秋招笔试行测题库及答案行业解决方案经理岗
- 矩形教学设计,说课稿
- 26《少年闰土》第一课时 教学设计-语文六年级上册统编版
- 浙教版科学七下3.7《压强-液体的压强》说课稿方案
- 低碳钢的气焊说课稿中职专业课-焊接方法与工艺-智能设备运行与维护-装备制造大类
- 安全督导手册培训内容课件
- 1.1 我们身边的地理 教学设计-七年级地理上学期湘教版
- 山体滑坡事故应急处理模版课件
- 体检中心投诉处理流程
- 银行解冻申请书
- 基于学科核心素养下的教学设计
- 人教版英语七年级(全册)单词表
- 全心衰竭的治疗与护理
- 扩张型心肌病治疗及护理
- 2002版干部履历表(贵州省)
- DL∕T 1396-2014 水电建设项目文件收集与档案整 理规范
- 行路难课件8省公开课一等奖新名师比赛一等奖课件
- 防欺凌隐患排查和矛盾化解记录表
评论
0/150
提交评论