Java课程设计报告-设备管理系统
- 格式:doc
- 大小:62.00 KB
- 文档页数:11
酒店管理系统 java实验报告实验报告:酒店管理系统(Java实现)一、实验目的本次实验旨在通过Java编程语言实现一个简单的酒店管理系统,以提升对面向对象编程的理解和实践能力。
具体目标包括:1. 掌握Java基础语法和面向对象编程概念;2. 学会设计并实现一个基本的酒店管理系统;3. 理解数据库在系统中的应用;4. 培养问题解决和团队协作能力。
二、实验内容1. 系统需求分析:对酒店管理系统的功能需求进行详细分析,明确系统需要实现的功能模块。
2. 系统设计:根据需求分析,设计系统的整体架构和数据库结构,包括数据表的设计。
3. 系统实现:使用Java编程语言,实现酒店管理系统的各个功能模块,包括客户管理、房间管理、预定管理、入住管理、结账管理等。
4. 系统测试:对系统进行详细的测试,确保各功能模块正常运行,数据操作准确无误。
5. 实验总结:对实验过程进行总结,分析实验中的收获与不足,提出改进建议。
三、实验步骤及结果1. 系统需求分析:通过与酒店管理人员交流,明确酒店管理系统需要实现的功能模块,如客户管理、房间管理、预定管理、入住管理、结账管理等。
2. 系统设计:根据需求分析,设计系统的整体架构和数据库结构。
采用Java的JDBC技术连接数据库,使用MySQL作为数据库管理系统。
设计了客户表、房间表、预定表、入住表、结账表等数据表,并定义了各表之间的关系。
3. 系统实现:使用Java编程语言,实现酒店管理系统的各个功能模块。
具体实现过程如下:a. 客户管理模块:实现添加、删除、修改和查询客户信息的功能。
通过JDBC连接数据库,执行相应的SQL语句完成客户数据的增删改查操作。
b. 房间管理模块:实现添加、删除、修改和查询房间信息的功能。
同样使用JDBC连接数据库,执行相应的SQL语句完成房间数据的增删改查操作。
c. 预定管理模块:实现客户预定房间的功能。
当客户预定房间时,系统会检查房间是否可用,并将预定信息保存到预定表中。
java课程设计实验报告一一实验目的加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。
在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。
在对Java程序的调试过程中,提高学生分析程序中出现的错误与排除这些错误的能力。
通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。
二、实验要求(1)问题描述准确、规范;(2)程序结构合理,调试数据准确、有代表性;(3)界面布局整齐,人机交互方便;(4)输出结果正确;(5)正确撰写实验报告。
三、设计内容11、计算器计算器要有GUI界面,用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算与混合运算,可以求一个数值的平方及倒数,可以进行阶乘运算,要能运算小数,并且不会产生精度损失,在必要情况下,可以进行四舍五入的运算。
允许正负数间的运算。
要求使用Applet实现该计算器,当用浏览器运行程序时,点击网页中的按钮,则计算器弹出,浮在网页上,再次点击按钮时,计算器消失。
22、文本编辑器可以设置文本的字体、大小、颜色等基本参数,可以读取计算机中TXT文件,可以生成一个新的TXT文件。
其她功能参照windows的文本编辑器。
四四.实验步骤(1)上机实验之前,为课程设计的内容作好充分准备。
对每次上机需要完成的任务进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。
(2)按照实验目的与实验内容进行上机操作。
录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。
(3)根据实验结果,写出实验报告。
五、、源代码及运行结果1.计算器源代码importjava、awt、*;importjava、awt、event、*;importjava、lang、*;importjavax、swing、*;publicclassjisuanqiextendsWindowAdapter{//创建三个面板Panelp1=newPanel();Panelp2=newPanel();Panelp3=newPanel();TextFieldtxt;privateButton[]b=newButton[21];privateStringss[]={"7","8","9","/","清空","4","5","6","*","1/x","1","2","3","-","平方","0","、","=","+","n!","关闭"};staticdoublea,sum=1;staticStrings,str;//定义变量创建对像//创建文本框publicstaticvoidmain(Stringargs[]){(newjisuanqi())、frame();}publicvoidframe(){//设置文本框的名称Framefm=newFrame("简单计算器");for(inti=0;i<=20;i++){b[i]=newButton(ss[i]);}for(inti=0;i<=19;i++){p2、add(b[i]);//创建按钮并添加到P2}//按钮20背景色黄色b[20]、setBackground(Color、yellow);txt=newTextField("");txt、setEditable(false);//不能编辑文本框里面的内容txt、setBackground(Color、white);for(inti=0;i<=20;i++){b[i]、addActionListener(newbuttonlistener());//添加监听器}//设置关闭按钮b[20]、addActionListener(newclose());fm、addWindowListener(this);p1、setLayout(newBorderLayout());//设置布局管理器p1、add(txt,"North");//p1面板放到区域南部p2、setLayout(newGridLayout(4,5,2,2));//布局:四行五列,间隔为二p2、setBackground(Color、red);p3、setLayout(newBorderLayout());p3、add(b[20]);将三个面板分别放到不同位置fm、add(p1,"North");fm、add(p2,"Center");fm、add(p3,"South");fm、pack();fm、setVisible(true);//都就是些窗中设置添加相关组件与监听器}publicvoidwindowClosing(WindowEvente){System、exit(0);//退出系统}classbuttonlistenerimplementsActionListener{//编写监听器事件通过按键得出给果publicvoidactionPerformed(ActionEvente){Buttonbtn=(Button)e、getSource();if(btn、getLabel()=="="){jisuan();str=String、valueOf(a);txt、setText(str);//显示当前数字s="";//清零}elseif(btn、getLabel()=="+"){//设置一个方法jisuan();txt、setText("");s="+";}elseif(btn、getLabel()=="-"){jisuan();txt、setText("");s="-";}elseif(btn、getLabel()=="/"){jisuan();txt、setText("");s="/";}elseif(btn、getLabel()=="*"){jisuan();txt、setText("");s="*";}elseif(btn、getLabel()=="平方"){a=Double、parseDouble(txt、getText()); a*=a;txt、setText(""+String、valueOf(a)); }elseif(btn、getLabel()=="n!"){a=Double、parseDouble(txt、getText());sum=1;for(inti=1;i<=a;i++)sum=sum*i;txt、setText(""+String、valueOf(sum));}elseifbtn、getLabel()=="1/x"){a=Double、parseDouble(txt、getText());txt、setText(""+String、valueOf(1/a));}else{txt、setText(txt、getText()+btn、getLabel()); if(btn、getLabel()=="清空")txt、setText("");}}publicvoidjisuan(){//编写具体计算方法if(s=="+")a+=Double、parseDouble(txt、getText()); elseif(s=="-")a-=Double、parseDouble(txt、getText()); elseif(s=="*")a*=Double、parseDouble(txt、getText()); elseif(s=="/")a/=Double、parseDouble(txt、getText()); elsea=Double、parseDouble(txt、getText()); }}}classcloseimplementsActionListener {//退出publicvoidactionPerformed(ActionEvente) {System、exit(0);}}、2、计算器运行界面(11)计算器主界面(22)面板的实现11、创建三个面板分别就是显示数字的面板、按钮的面板与“关闭”的面板Panelp1=newPanel();Panelp2=newPanel();Panelp3=newPanel();22、创建一个文本框参数TextFieldtxt;33、创建一群按钮参数并给按钮赋值privateButton[]b=newButton[21];privateStringss[]={"7","8","9","/","清空","4","5","6","*","1/x","1","2","3","-","平方","0","、","=","+","n!","关闭"};44、创建文本框publicstaticvoidmain(Stringargs[]){(newjisuanqi())、frame();}55、设置文本框方法publicvoidframe(){//设置文本框的名称Framefm=newFrame("简单计算器");66、设置按钮for(inti=0;i<=20;i++){b[i]=newButton(ss[i]);}77、设将按钮添加到面板for(inti=0;i<=19;i++){p2、add(b[i]);//创建按钮并添加到P2}88、设置按钮020背景色黄色b[20]、setBackground(Color、yellow);99、创建文本框,,并规定不能编辑内容与背景为白色txt=newTextField("");txt、setEditable(false);txt、setBackground(Color、white);10、为按钮添加监听器for(inti=0;i<=20;i++){b[i]、addActionListener(newbuttonlistener());//添加监听器}11、设置“关闭”按钮可以关闭界面并设置监听器b[20]、addActionListener(newclose());fm、addWindowListener(this);12、设置布局p1、setLayout(newBorderLayout());//设置布局管理器p1、add(txt,"North");//p1面板放到区域南部p2、setLayout(newGridLayout(4,5,2,2));//布局:四行五列,间隔为二p2、setBackground(Color、red);p3、setLayout(newBorderLayout());p3、add(b[20]);13、将三个面板分别放到不同位置fm、add(p1,"North");fm、add(p2,"Center");fm、add(p3,"South");fm、pack();fm、setVisible(true);//都就是些窗中设置添加相关组件与监听器}14、退出系统publicvoidwindowClosing(WindowEvente){System、exit(0);}(33)将按钮添加到计算这个事件中11、编写监听器事件通过按键得出给果publicvoidactionPerformed(ActionEvente){//将按钮赋予这个事件中Buttonbtn=(Button)e、getSource();22、如果点击“==”这个按钮,,将出现当前数字if(btn、getLabel()=="="){jisuan();str=String、valueOf(a);txt、setText(str);//显示当前数字s="";//清零}33、如果点击“++”“--”“**”“//”分别完成一个方法并将结果显示到文本框elseif(btn、getLabel()=="+"){//设置一个方法jisuan();txt、setText("");s="+";}elseif(btn、getLabel()=="-") {jisuan();txt、setText("");s="-";}elseif(btn、getLabel()=="/") {jisuan();txt、setText("");s="/";}elseif(btn、getLabel()=="*"){jisuan();txt、setText("");s="*";}44、如果点击“平方”则当前数字与原数字形成即完成相关方法结果显示最终的数字elseif(btn、getLabel()=="平方"){a=Double、parseDouble(txt、getText());a*=a;txt、setText(""+String、valueOf(a));//显示a}55、当输入“nn!”,,就用rfor循环完成阶乘,,此方法属于cc语言基础方法,,不做相关解释elseif(btn、getLabel()=="n!"){a=Double、parseDouble(txt、getText());sum=1;//归一for(inti=1;i<=a;i++)sum=sum*i;txt、setText(""+String、valueOf(sum));//文本框中显示“sum”的数值}66、当输入“1/x”时,,显示1/a。
课程信息管理系统java课程设计一、课程目标知识目标:1. 学生能够掌握Java语言基础,包括数据类型、控制结构、类与对象等;2. 学生能够理解课程信息管理系统的功能需求,掌握系统设计的基本原理;3. 学生能够运用所学知识,实现课程信息管理系统的基本功能模块。
技能目标:1. 学生能够运用Java语言编写程序,实现课程信息管理系统的功能;2. 学生能够运用面向对象编程思想,进行系统设计和模块划分;3. 学生能够运用调试工具,调试并优化自己的程序。
情感态度价值观目标:1. 学生通过课程学习,培养对编程的兴趣和热情;2. 学生在团队协作中,学会沟通、分享和承担责任;3. 学生能够认识到编程在生活中的应用,提高对信息技术的认识。
课程性质:本课程为实践性较强的学科,要求学生结合所学理论知识,动手实践,培养编程能力和实际应用能力。
学生特点:学生处于高年级阶段,具有一定的Java编程基础,对面向对象编程有一定的了解,具备一定的自主学习能力。
教学要求:结合课程性质、学生特点,注重理论与实践相结合,培养学生的编程能力和实际应用能力。
通过课程学习,使学生能够独立完成课程信息管理系统的设计与实现。
同时,关注学生的情感态度价值观培养,提高学生的团队协作能力和信息技术素养。
将课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. Java语言基础回顾:数据类型、控制结构、数组、类与对象等基本概念;2. 面向对象编程:封装、继承、多态等核心概念,以及设计模式初步了解;3. 课程信息管理系统需求分析:梳理系统功能,明确模块划分;4. 数据库基础:SQL语句编写,数据库连接与操作;5. Java图形用户界面(GUI)设计:Swing组件的使用,界面布局与美化;6. 课程信息管理系统的设计与实现:- 系统架构设计:分层设计,模块划分;- 功能模块开发:课程信息添加、修改、删除、查询等;- 系统测试与优化:测试用例设计,性能优化;7. 项目实践与团队协作:分组进行项目实践,培养学生的团队协作能力。
import java.io.*;import java.util.*;class Room {String ID;String tpye;int RN;Room(){this.RN = 6;}void show(){System.out.println("房间的编号:"+this.ID);System.out.println("房间的类型:"+this.tpye);System.out.println("房间的还能够容纳的学生数量:"+this.RN);}}class Student {String name;String ID;String gender;String RoomID;void show()//显示学生信息的方法System.out.println("学生的学号:" + this.ID);System.out.println("学生的姓名:" + );System.out.println("学生的性别:" + this.gender);System.out.println("学生的房间号:" + this.RoomID);}static void showallstudent(ArrayList allarraylist)//创立一个显示所有学生的信息的方法{for(int i = 0; i<allarraylist.size();i++){System.out.println();System.out.println("第" + (i + 1) + "名学生:");Student allstudent = (Student)allarraylist.get(i);System.out.println("学生的学号:" + allstudent.ID);System.out.println("学生的姓名:" + );System.out.println("学生的性别:" + allstudent.gender);System.out.println("学生的房间号:" + allstudent.RoomID);System.out.println();}}}public class Sushe {public static void main(String[] args)int i = 888;//定义全局变量,并且赋值ArrayList addarray = new ArrayList();//创立一个动态的存储数组addarray Room[] room = new Room[5];//创立5个房间for(int j=0;j<room.length;j++)//初始化每个房间数{room[j] = new Room();room[j].ID = ("R"+(j+1));if(j<2)room[j].tpye = "female";else room[j].tpye = "male";}function();do//第一个死循环控制总的功能{int k;Scanner sc = new Scanner(System.in);i = sc.nextInt();switch (i){case 1:Student localStudent1 = new Student();System.out.print("请输入学号:");Scanner localScanner1 = new Scanner(System.in);localStudent1.ID = localScanner1.next().toString();System.out.print("请输入姓名:");localScanner1 = new Scanner(System.in); = localScanner1.next().toString();System.out.print("请输入性别:");localScanner1 = new Scanner(System.in);localStudent1.gender = localScanner1.next().toString();for (k = 0; k < room.length; k++){if ((room[k].RN > 0) && (room[k].tpye.equals(localStudent1.gender))) {room[k].RN -= 1;localStudent1.RoomID = room[k].ID;System.out.println("新添加的学生被分配到房间:" + room[k].ID);break;}}addarray.add(localStudent1);function();break;case 2:System.out.println("所有房间信息如下:");for (k = 0; k < room.length; k++){System.out.println("房间号:" + room[k].ID);System.out.println("房间类型:" + room[k].tpye);System.out.println("房间还能容纳的学生数:" + room[k].RN);System.out.println();}function();break;case 3:System.out.print("请输入待查询房间的房间号:");Scanner localScanner2 = new Scanner(System.in);String str1 = localScanner2.next().toString();for (int m = 0; m < room.length; m++){if (room[m].ID.equals(str1)){room[m].show();break;}}function();break;case 4:Student.showallstudent(addarray);function();break;case 5:System.out.print("请输入待查询学生的学号:"); Scanner localScanner3 = new Scanner(System.in);String str2 = localScanner3.next().toString();for (int n = 0; n < addarray.size(); n++){Student localStudent2 = (Student)addarray.get(n);if (localStudent2.ID.equals(str2)){localStudent2.show();break;}}function();break;case 6:System.out.print("请输入待修改学生的学号:");Scanner localScanner5 = new Scanner(System.in);String str5 = localScanner5.next().toString();for (int i2 = 0; i2 < addarray.size(); i2++){Student localStudent3 = (Student)addarray.get(i2);String m = localStudent3.gender;String m1 = localStudent3.RoomID ;if (localStudent3.ID.equals(str5)){System.out.print("请输入修改后的学生的学号:");Scanner localScanner11 = new Scanner(System.in);localStudent3.ID = localScanner11.next().toString();System.out.print("请输入请输入修改后的学生的姓名:"); localScanner11 = new Scanner(System.in); = localScanner11.next().toString();System.out.print("请输入请输入修改后的学生的性别:"); localScanner11 = new Scanner(System.in);localStudent3.gender = localScanner11.next().toString();if (!(m.equals(localStudent3.gender))){for(k = 0; k< room.length ;k++){if(room[k].ID.equals(m1)){room[k].RN++;break;}}addarray.remove(i2);for (k = 0; k < room.length; k++){if ((room[k].RN > 0) && (room[k].tpye.equals(localStudent3.gender))) {room[k].RN -= 1;localStudent3.RoomID = room[k].ID;System.out.println("修改的学生被分配到房间:" + room[k].ID);addarray.add(localStudent3);break;}}}System.out.println("恭喜你!修改成功!");function();}}break;case 7:System.out.print("请输入待删除学生的学号:");Scanner localScanner4 = new Scanner(System.in);String str3 = localScanner4.next().toString();for (int i1 = 0; i1 < addarray.size(); i1++){Student localStudent3 = (Student)addarray.get(i1);if (localStudent3.ID.equals(str3)){System.out.print("学号为" + localStudent3.ID + "的学生已被删除!");addarray.remove(i1);break;}}function();break;case 8:showfunction();break;case 0:System.out.println("\t\t谢谢使用!\n\t\t(*^__^*)\n\t\t再见!");break;default:System.out.println("你按的神马东西,没看说明吗?\t\t-_-#");function();}}while(i!=0);}static void function(){System.out.println("***************************************");System.out.println("*\t\t宿舍管理系统");System.out.println("*");System.out.println("*\t[1] 新增学生、并分配宿舍");System.out.println("*");System.out.println("*\t[2] 查看宿舍信息");System.out.println("*");System.out.println("*\t[3] 按房间号查看房间信息");System.out.println("*");System.out.println("*\t[4] 查看所有学生信息");System.out.println("*");System.out.println("*\t[5] 按学生学号查询学生信息");System.out.println("*");System.out.println("*\t[6] 按学号修改学生信息");System.out.println("*");System.out.println("*\t[7] 删除指定学生");System.out.println("*");System.out.println("*\t[8] !!!详细使用说明信息!!!");System.out.println("*");System.out.println("*\t[0] 退出");System.out.println("***************************************");System.out.println("Please select a funtion:");}static void showfunction() {System.out.println("***************************************");System.out.println("|\t\tJAVA程序设计");System.out.println("|\t\t ");System.out.println("|\t\t 李月超");System.out.println("|\t\t ");System.out.println("|\t\t班级:乐山师范学院_计科学院_12级网络工程班");System.out.println("|\t\t ");System.out.println("|\t\t开发日期:2013年12月");System.out.println("***************************************");System.out.println("*课程题目:\n*设计宿舍管理系统\n*宿舍管理要求:\n*可以新增学生,新增学生的同时,按以上要求由系统自动将学生安排进房间\n*可以列出所有房间信息\n*可以通过房间号查看房间信息,以及该房间内住宿学生的信息\n*可以列出所有学生信息\n*可以通过学生学号查看学生的信息\n*可以删除指定学生");System.out.println("*\t\t提示:\n*此程序的功能只能是0-9数字输入\n*性别只能是female或者是male!!!");System.out.println("---------------------------------------");System.out.println("|\t\t宿舍管理系统");System.out.println("|\t[1] 新增学生、并分配宿舍");System.out.println("|\t[2] 查看宿舍信息");System.out.println("|\t[3] 按房间号查看房间信息");System.out.println("|\t[4] 查看所有学生信息");System.out.println("|\t[5] 按学生学号查询学生信息");System.out.println("|\t[6] 按学号修改学生信息");System.out.println("|\t[7] 删除指定学生");System.out.println("|\t[8] !!!详细使用说明信息!!!");System.out.println("|\t[0] 退出");System.out.println("---------------------------------------");System.out.println("Please select a funtion:");}}.。
java课程设计学生信息管理系统一、教学目标本节课的教学目标是使学生掌握Java编程语言的基本语法和编程技巧,能够运用Java语言实现简单的学生信息管理系统。
具体目标如下:1.知识目标:–掌握Java语言的基本语法和数据结构;–理解面向对象编程的基本概念和方法;–了解学生信息管理系统的功能和结构。
2.技能目标:–能够使用Java语言编写简单的程序;–能够运用面向对象编程方法设计和实现学生信息管理系统;–能够对程序进行调试和优化。
3.情感态度价值观目标:–培养学生的编程兴趣和自主学习能力;–培养学生解决问题的能力和团队合作精神;–使学生认识到计算机技术在现实生活中的重要性和应用价值。
二、教学内容本节课的教学内容主要包括以下几个部分:1.Java语言的基本语法和数据结构;2.面向对象编程的基本概念和方法;3.学生信息管理系统的功能和结构;4.学生信息管理系统的实现和优化。
具体安排如下:1.第1-2课时:讲解Java语言的基本语法和数据结构;2.第3-4课时:讲解面向对象编程的基本概念和方法;3.第5-6课时:介绍学生信息管理系统的功能和结构;4.第7-8课时:引导学生实现和优化学生信息管理系统。
三、教学方法本节课采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性:1.讲授法:讲解Java语言的基本语法和数据结构,面向对象编程的基本概念和方法;2.案例分析法:分析实际的学生信息管理系统的案例,使学生更好地理解理论知识;3.实验法:引导学生动手实现和优化学生信息管理系统,提高学生的实际编程能力。
四、教学资源本节课所需的教学资源包括:1.教材:Java编程语言相关教材;2.参考书:面向对象编程相关参考书;3.多媒体资料:讲解Java语言和面向对象编程的PPT;4.实验设备:计算机和网络设备,以便进行编程实践。
五、教学评估本节课的教学评估将采用多元化评价方式,以全面、客观、公正地评估学生的学习成果。
JA V A程序设计实验报告学号:姓名:班级:实验、Java课程设计--------学生信息管理系统一、实验目的1.掌握Java基本语法2.理解面向对象编程特点3.理解Java I/O编程4.掌握Java图形界面编程5.掌握Java与不同数据库进行连接二、预习内容Java的基本语法知识、类和对象、Java Swing图形界面编程、Java I/O处理以及Java与数据库连接操作三、实验设备与环境通过局域网互联,安装Windows 2000/XP操作系统环境的JDK 1.6,my eclipse 或者EditPlus编程工具。
并安装MySQL数据库四、实验内容编写并调试运行Java程序,进行设计,掌握Java开发的基础。
五、实验任务设计学生信息管理系统。
要求包括1. 登陆模块:设立超级管理员权限,用户可以根据不同的权限登陆系统,超级管理员可以对学生信息进行增、删、改、查操作。
而普通用户只可以查找学生信息。
2. 包括学生添加信息模块、学生信息删除模块、学生信息修改模块和学生信息查询模块3.对于管理员,可以对管理员进行添加、删除以及修改密码等操作。
六、实验报告(要求独立完成参考程序的代码、编译、调试与运行)1、程序清单:1.1程序模块清单package Pan;import java.awt.event.ItemListener;import javax.swing.*;import ponent;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.event.InputEvent;import java.awt.event.ItemListener;import java.awt.event.KeyEvent;import java.awt.event.ActionListener; import java.awt.event.ActionEvent;import java.util.*;import java.awt.Color;import java.text.DecimalFormat;import java.sql.*;import java.sql.Date;import java.awt.*;import java.util.Vector;public class Res{/*** @param args*/public static void main(String[] args) {FirstWindow win =new FirstWindow("学生信息管理系统");}}class FirstWindow extends JFrame implements ActionListener{JMenuBar menubar;JMenu menu1,menu2,menu3,menu4;public final JMenuItem a11,a12,a13,a14,a15,a16,a17;public final JMenuItem a21,a22,a23,a24;public final JMenuItem a3;public final JMenuItem a4;public final JButton btn;JPanel pnl;JLabel label;boolean flag;FirstWindow(String s){setTitle(s);setSize(400,400);setLocation(100,100);setVisible(true);setDefaultCloseOperation(3);pnl=new JPanel();this.getContentPane().add(pnl);pnl.setLayout(new BorderLayout());label=new JLabel("欢迎使用学生管理系统",JLabel.CENTER);label.setForeground(Color.red);pnl.add(label,BorderLayout.CENTER);menubar=new JMenuBar();menu1=new JMenu("使用");menu2=new JMenu("用户管理");menu3=new JMenu("帮助");menu4=new JMenu("退出");a11=new JMenuItem("管理员登录");a12=new JMenuItem("查询学生信息");a13=new JMenuItem("更改学生信息");a14=new JMenuItem("删除学生信息");a15=new JMenuItem("添加学生信息");a16=new JMenuItem("超级管理员登录");a17=new JMenuItem("普通学生登录");a11.setEnabled(true);a16.setEnabled(true);a17.setEnabled(true);a12.setVisible(false);a13.setVisible(false);a14.setVisible(false);a15.setVisible(false);a21=new JMenuItem("添加用户");a22=new JMenuItem("删除用户");a23=new JMenuItem("更改用户");a24=new JMenuItem("修改密码");a21.setEnabled(false);a22.setEnabled(false);a23.setEnabled(false);a24.setEnabled(false);a3=new JMenuItem("系统介绍");a3.setEnabled(true);a4=new JMenuItem("退出");a4.setEnabled(true);btn=new JButton("再次确认登陆");pnl.add(btn,BorderLayout.EAST);btn.setSize(10,10); menu1.add(a11);menu1.addSeparator(); menu1.add(a16);menu1.addSeparator(); menu1.add(a17);menu1.addSeparator(); menu1.add(a12);menu1.addSeparator(); menu1.add(a13);menu1.addSeparator(); menu1.add(a14);menu1.addSeparator(); menu1.add(a15);menu1.addSeparator();menu2.add(a21);menu2.addSeparator(); menu2.add(a22);menu2.addSeparator(); menu2.add(a23);menu2.addSeparator();menu2.add(a24);menu2.addSeparator();menu3.add(a3);menu3.addSeparator();menu4.add(a4);menubar.add(menu1); menubar.add(menu2); menubar.add(menu3); menubar.add(menu4); setJMenuBar(menubar);a11.addActionListener(this); a12.addActionListener(this); a13.addActionListener(this); a14.addActionListener(this); a15.addActionListener(this); a16.addActionListener(this); a17.addActionListener(this); a21.addActionListener(this); a22.addActionListener(this); a23.addActionListener(this); a24.addActionListener(this); a3.addActionListener(this);a4.addActionListener(this);btn.addActionListener(this);}public void setColor(Color black) {// TODO Auto-generated method stub}public void actionPerformed(ActionEvent event) {Object temp=new Object();temp=event.getSource();if(temp==a11){Login login=new Login();login.Login();}if(temp==a12){ShowStu show=new ShowStu();show.ShowStu();}if(temp==a13){AlterStu alter=new AlterStu();alter.AlterStu();}if(temp==a14){DeleteStu delete=new DeleteStu();delete.DeleteStu();}if(temp==a15){AddStu add=new AddStu();add.AddStu();}if(temp==a16){superlog superlog=new superlog();superlog.superlog();}if(temp==a17){stuLogin stu=new stuLogin();stu.stuLogin();a12.setVisible(true);}if(temp==a21){AddUser add=new AddUser();add.AddUser();}if(temp==a22){DeleteUser delete=new DeleteUser();delete.DeleteUser();}if(temp==a23){AlterUser alter=new AlterUser();alter.AlterUser();}if(temp==a24){AlterPword pword=new AlterPword(); pword.AlterPword();}if(temp==a3){SystemHelp help=new SystemHelp();help.SystemHelp();}if(temp==a4){SystemExit exit1=new SystemExit();exit1.SystemExit();}if(temp==btn){Connection con;Statement st;Statement st1;ResultSet rs,rs1;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();st1=con.createStatement();rs=st.executeQuery("SELECT * FROM Login");rs1=st1.executeQuery("SELECT * FROM superlog");if(rs.next()){a12.setVisible(true);a21.setEnabled(true);a22.setEnabled(true);a23.setEnabled(true);a24.setEnabled(true);Login login=new Login();login.Clear();}if(rs1.next()){a12.setVisible(true);a13.setVisible(true);a14.setVisible(true);a15.setVisible(true);superlog superlog=new superlog();lear();}con.close();}catch(SQLException e){System.out.println(e);}}}}主页面class Login{void Login(){final JFrame loginframe=new JFrame("登陆界面");loginframe.setBounds(200,200,400,500);loginframe.setVisible(true);loginframe.setResizable(true);loginframe.setLayout(null);final JTextField text1=new JTextField(10);final JPasswordField text2=new JPasswordField(10);JButton btn1=new JButton("登陆");JButton btn2=new JButton("取消");JLabel label1=new JLabel("用户名");JLabel label2=new JLabel("密码");loginframe.add(btn1);loginframe.add(btn2);loginframe.add(text1);loginframe.add(text2);loginframe.add(label1);loginframe.add(label2);label1.setBounds(80, 100, 50, 50);label2.setBounds(80, 200, 50, 50);btn1.setForeground(Color.black);btn2.setForeground(Color.black);text1.setBounds(150, 100, 200, 30);text2.setBounds(150, 200, 200, 30);btn1.setBounds(100, 300, 100, 60);btn2.setBounds(200, 300, 100, 60);btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String name=text1.getText();String password=text2.getText();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{Connection con;Statement sql,st;ResultSet rs;con=DriverManager.getConnection("jdbc:odbc:pan","","") ;sql=con.createStatement();st=con.createStatement();rs=sql.executeQuery("SELECT username,password FROM users where username='"+name+"'");if(!rs.next()){JOptionPane b=new JOptionPane();b.showMessageDialog(null,"账号有误" ,"消息对话框",RMATION_MESSAGE);}else{String username=rs.getString(1);String pass=rs.getString(2);if( Integer.parseInt(password)==Integer.parseInt(pass) ){st.executeUpdate("INSERT INTO Login VALUES('"+username+"','"+pass+"')");loginframe.dispose();JOptionPane b=new JOptionPane();b.showMessageDialog(null,"登录成功" ,"消息对话框",RMATION_MESSAGE);}else{text1.setText("");text2.setText("");JOptionPanea=new JOptionPane();a.showMessageDialog(null,"您的账户名或者密码有误","消息对话框" ,RMATION_MESSAGE);}}}catch(SQLException e){System.out.println(e);}}});btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){loginframe.dispose();}});}void Clear(){Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();st.executeUpdate("DELETE FROM Login");con.close();}catch(SQLException e){System.out.println(e);}}}管理员登陆与权限class superlog{superlog(){final JFrame loginframe=new JFrame("登陆界面");loginframe.setBounds(200,200,400,500);loginframe.setVisible(true);loginframe.setResizable(true);loginframe.setLayout(null);final JTextField text1=new JTextField(10);final JPasswordField text2=new JPasswordField(10);JButton btn1=new JButton("登陆");JButton btn2=new JButton("取消");JLabel label1=new JLabel("超级用户名",JLabel.CENTER);JLabel label2=new JLabel("密码",JLabel.CENTER);loginframe.add(btn1);loginframe.add(btn2);loginframe.add(text1);loginframe.add(text2);loginframe.add(label1);loginframe.add(label2);label1.setBounds(80, 100, 100, 50);label2.setBounds(80, 200, 100, 50);btn1.setForeground(Color.black);btn2.setForeground(Color.black);text1.setBounds(150, 100, 200, 30);text2.setBounds(150, 200, 200, 30);btn1.setBounds(100, 300, 100, 60);btn2.setBounds(200, 300, 100, 60);btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String name=text1.getText();@SuppressWarnings("deprecation")String password=text2.getText();tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{Connection con;Statement sql;ResultSet rs;con=DriverManager.getConnection("jdbc:odbc:pan","","") ;sql=con.createStatement();rs=sql.executeQuery("SELECT Cusername,Cpassword FROM super where Cusername='"+name+"'");if(!rs.next())JOptionPane b=new JOptionPane();b.showMessageDialog(null,"超级账号错误" ,"消息对话框",RMATION_MESSAGE);}else{String username=null;String pass=null;username=rs.getString(1);pass=rs.getString(2);if( Integer.parseInt(password)==Integer.parseInt(pass) ){sql.executeUpdate("INSERT INTO superlog VALUES('"+username+"',"+"'"+pass+"')");JOptionPane b=new JOptionPane();b.showMessageDialog(null,"登录成功" ,"消息对话框",RMATION_MESSAGE);loginframe.dispose();}else{text1.setText("");text2.setText("");JOptionPane a=new JOptionPane();a.showMessageDialog(null,"您的账户名或者密码有误","消息对话框" ,RMATION_MESSAGE);}}}catch(SQLException e){System.out.println(e);}}});btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){loginframe.dispose();}});}public void superlog() {// TODO Auto-generated method stub }void Cclear(){Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();st.executeUpdate("DELETE FROM superlog");con.close();}catch(SQLException e){System.out.println(e);}}}超级管理员登陆界面与权限class stuLogin{void stuLogin(){final JFrame loginframe=new JFrame("登陆界面");loginframe.setBounds(200,200,400,500);loginframe.setVisible(true);loginframe.setResizable(true);loginframe.setLayout(null);final JTextField text1=new JTextField(15);final JPasswordField text2=new JPasswordField(15);JButton btn1=new JButton("登陆");JButton btn2=new JButton("取消");JLabel label1=new JLabel(" 学生姓名",JLabel.CENTER);JLabel label2=new JLabel("密码",JLabel.CENTER);loginframe.add(btn1);loginframe.add(btn2);loginframe.add(text1);loginframe.add(text2);loginframe.add(label1);loginframe.add(label2);label1.setBounds(80, 100, 100, 50);label2.setBounds(80, 200, 100, 50);btn1.setForeground(Color.black);btn2.setForeground(Color.black);text1.setBounds(150, 100, 200, 30);text2.setBounds(150, 200, 200, 30);btn1.setBounds(100, 300, 100, 60);btn2.setBounds(200, 300, 100, 60);btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String name=text1.getText();String password=text2.getText();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{Connection con;Statement sql;ResultSet rs;con=DriverManager.getConnection("jdbc:odbc:pan","","") ;sql=con.createStatement();rs=sql.executeQuery("SELECTsname,sphone FROM student where sname='"+name+"' AND sphone='"+password+"'");if(rs.next()){JOptionPane a=new JOptionPane();a.showMessageDialog(null,"登陆成功","消息对话框" ,RMATION_MESSAGE);loginframe.dispose();}else{text1.setText("");text2.setText("");JOptionPane a=new JOptionPane();a.showMessageDialog(null,"您的账户名或密码有误","消息对话框" ,RMATION_MESSAGE);}con.close();}catch(SQLException e){System.out.println(e);}}});btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){loginframe.dispose();}});}}普通学生登陆与权限class ShowStu{void ShowStu(){JFrame frame1=new JFrame("学生信息窗口");frame1.setBounds(300,300,500,400);frame1.setDefaultCloseOperation(2);JTable table;Object a[][]=null;Object name[]={"学号","姓名","年龄","性别","籍贯","电话"};Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println("" + e);}try{con=DriverManager.getConnection("jdbc:odbc:pan",""," ");st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITI VE,ResultSet.CONCUR_READ_ONLY);rs=st.executeQuery("SELECT * FROM student");st();int lastnumber=rs.getRow();a=new Object[lastnumber][6];int i=0;rs.beforeFirst();while(rs.next()){a[i][0]=rs.getString(1);a[i][1]=rs.getString(2);a[i][2]=rs.getString(3);a[i][3]=rs.getString(4);a[i][4]=rs.getString(5);a[i][5]=rs.getString(6);i++;}con.close();}catch(SQLException e){System.out.println(e);}table=new JTable(a,name);frame1.setLayout(new BorderLayout());frame1.add(newJScrollPane(table),BorderLayout.CENTER);frame1.setVisible(true);frame1.validate();}}class AlterStu{void AlterStu(){JFrame deleteframe=new JFrame("更改学生信息");deleteframe.setLayout(null);JLabel label=new JLabel("需要修改的学生学号",JLabel.CENTER);deleteframe.setVisible(true);deleteframe.setBounds(350,350,450,350);JButton btn=new JButton("确定");deleteframe.add(label);label.setForeground(Color.red);final JTextField text=new JTextField(10);text.setSize(100,60);deleteframe.add(text);deleteframe.add(btn);label.setBounds(150, 50, 150, 20);text.setBounds(150, 100, 100, 20);btn.setBounds(150, 150, 100, 20);btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String sno=text.getText();Connection con;Statement st;ResultSet rs;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){System.out.println(e);}try{con=DriverManager.getConnection("jdbc:odbc:pan","","") ;st=con.createStatement();rs=st.executeQuery("SELECT * FROM student WHERE sno=+'"+sno+"'");if(rs==null){JOptionPane b=new JOptionPane();b.showMessageDialog(null,"该学生不存在" ,"消息对话框",RMATION_MESSAGE);}else{rs.next();final String no1=rs.getString(1);final String name1=rs.getString(2);final String age1=rs.getString(3);final String sex1=rs.getString(4);final String address1=rs.getString(5);final String phone1=rs.getString(6);JFrame addframe=new JFrame("修改学生信息");addframe.setDefaultCloseOperation(2);addframe.setBounds(400,200,450,600);addframe.setVisible(true);addframe.setResizable(true);addframe.validate();addframe.setLayout(newBorderLayout());Box basebox,box1,box2,box3,box4;basebox=Box.createHorizontalBox();box1=Box.createVerticalBox();box2=Box.createVerticalBox();box3=Box.createVerticalBox();box4=Box.createVerticalBox();JLabel no=new JLabel("学号");JLabel name=new JLabel("姓名");JLabel age=new JLabel("年龄");box1.add(Box.createVerticalStrut(90));box1.add(no);box1.add(Box.createVerticalStrut(90));box1.add(name);box1.add(Box.createVerticalStrut(90));box1.add(age);JLabel sex=new JLabel("性别");JLabel address =new JLabel("籍贯");JLabel phone=new JLabel("电话");box3.add(Box.createVerticalStrut(90));box3.add(sex);box3.add(Box.createVerticalStrut(90));box3.add(address);box3.add(Box.createVerticalStrut(90));box3.add(phone);final JTextField notext=new JTextField(15);final JTextField nametext=new JTextField(15);final JTextField agetext=new JTextField(15);final JTextField sextext=new JTextField(15);final JTextField addresstext=new JTextField(15);final JTextField phonetext=new JTextField(15);box2.add(Box.createVerticalStrut(90));box2.add(notext);box2.add(Box.createVerticalStrut(90));box2.add(nametext);box2.add(Box.createVerticalStrut(90));box2.add(agetext);box4.add(Box.createVerticalStrut(90));box4.add(sextext);box4.add(Box.createVerticalStrut(90));box4.add(addresstext);box4.add(Box.createVerticalStrut(90));box4.add(phonetext);basebox.add(box1);basebox.add(box2);basebox.add(box3);basebox.add(box4);。
Java课程设计指导书(学生版初稿)第一章网吧计费管理系统目标1.1 背景介绍1.1.1 业务背景1.1.2 技术背景1.2 需求分析1.2.1功能需求分析1.2.2 业务对象分析1.2.3 验收测试要求1.3 系统设计1.3.1 总体设计1.3.2 详细设计1.4 系统实现1.5 小结1.6 展望第一章网吧计费管理系统学习目标:能使用Java集成开发环境,运用Swing设计图形界面,运用JDBC 访问数据库,掌握事件处理编程,了解简单两层CS项目的开发及简单面向对象程序的设计过程,发展基本的团队协作开发能力。
学习寄语:虽然本项目并不是一个商业项目,其产品也不能用来赚钱,但从中你可以学到实际开发中的许多经验和技巧,获得一种“学有所用”、“学有所得”的成就感,同时赢得老师和同学(同事)对你的格外尊重。
在此项目的学习中,你不但是个学生,还是一个职业人,将与同事一起尽全力完成你所要做的工作,并再次验证“天道酬勤”的真理。
我们的信念是:“不抛弃,不放弃”。
你的改变和收获是老师真诚的期待。
1.1 背景介绍1.1.1 业务背景“海之星”网吧,是一个小型网吧,以前是人工记帐,现需要开发一个简单的网吧计费管理系统。
原人工管理的主要过程如下:客户在门口服务台,出示上机卡,若是新客户则先发新卡;管理员先查询是否有空机器,若有则根据上机卡号查到该卡对应的记录(账簿),若有余额(〉5元),则分配一个空闲的机器号给客户,客户根据机器号对号入座,管理员记下客户卡号、上机机器号、上机时间。
客户下机要到门口的服务台,请求下机,管理员根据当前时间、上机时间及费率计算出本次上机费用,并记录,同时将费用从卡余额中扣除,若费用不够则需充值。
原手工系统主要有如下缺点:1 手工记帐,管理员工作量大,且易出错;2 超时超费使用不能及时发现。
因此需要开发一个简易计费管理软件,取代人工记帐方式,由软件统一管理记录上下机、计费、上机卡、机器情况,提供简单统计功能,超时超费提醒功能等。
java课程设计社团管理系统一、教学目标本章节的教学目标是使学生掌握Java编程语言的基本语法和面向对象编程思想,能够运用Java编写简单的社团管理系统。
具体分为以下三个部分:1.知识目标:(1)掌握Java的基本语法和数据结构;(2)了解面向对象编程的基本概念和方法;(3)熟悉社团管理系统的功能和架构。
2.技能目标:(1)能够使用Java编写简单的程序;(2)具备面向对象编程的能力,能够设计和实现社团管理系统的模块;(3)掌握使用Java开发工具进行项目构建和管理。
3.情感态度价值观目标:(1)培养学生的编程兴趣,提高自主学习能力;(2)培养学生团队协作意识,学会与人沟通和合作;(3)培养学生解决问题的能力,增强创新精神。
二、教学内容本章节的教学内容主要包括Java基本语法、数据结构、面向对象编程思想和社团管理系统的架构。
具体安排如下:1.Java基本语法和数据结构:(1)Java语法规则;(2)基本数据类型和变量;(3)运算符和表达式;(4)控制结构和函数。
2.面向对象编程:(1)类和对象的概念;(2)构造方法和析构方法;(3)封装、继承和多态;(4)接口和抽象类。
3.社团管理系统的架构:(1)系统需求分析;(2)系统设计;(3)模块划分和功能描述;(4)系统实现和测试。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式。
具体如下:1.讲授法:用于讲解Java基本语法、数据结构和面向对象编程的基本概念;2.案例分析法:通过分析社团管理系统的实际案例,使学生理解和掌握系统的架构和实现方法;3.实验法:让学生动手编写Java程序,培养学生的实际编程能力和团队协作能力。
四、教学资源本章节的教学资源包括教材、实验设备和相关多媒体资料。
具体如下:1.教材:选用《Java编程思想》作为主要教材,辅助以相关参考书籍;2.实验设备:计算机和网络设备,用于学生上机实践;3.多媒体资料:制作PPT和教学视频,用于辅助讲解和演示。
《软件工程课程设计》报告项目题目:设备管理系统班级:组长:组员姓名:说明一、设计项目:设备管理系统二、小组成员三、任务分配情况目录1. 项目开发目的和意义 (4)1.1 项目来源 (4)1.2 项目开发目的和意义 (4)1.3 项目完成情况 (4)2. 项目开发相关技术及方法 (5)2.1 开发环境和开发工具 (5)2.2 相关技术及方法 (5)3. 系统需求分析、设计及实现 (5)3.1 系统需求分析 (5)3.2总体设计方法 (6)3.3 详细设计及实现 (8)3.3.1系统数据流图 (9)3.3.2系统数据实体图以及E-R图 (12)实体图 (12)E-R图 (13)3.3.3数据库表结表 (13)3.3.4系统界面 (17)3.3.5系统测试 (19)4. 实践总结 (22)4.1项目小结 (22)4.2 实践感想 (23)参考文献 (24)附录:详细设计 (25)(一)界面设计 (25)(二)程序设计 (25)1. 项目开发目的和意义1.1 项目来源本项目生产型企业中存在大量的设备,如何对这些设备进行全面管理是企业管理的重要内容。
项目拟研发基于B/S架构的设备管理系统,包括设备申购、设备台账、车间设备使用、使用状况查询分析四部分组成。
其中设备申购是一个过程,包括设备申请采购、启用和封存、报废过程。
设备台账是对所有的设备建立的一个台账,并提供设备查询功能。
车间设备使用主要是记录设备使用过程中的各种情况,包括日常维修、设备交接班记录等。
使用状况查询分析是根据设备台账,来查询车间设备使用的各种情况,进行一定的分析。
1.2 项目开发目的和意义随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系在企业管理水平以及优质服务上都提出更高的要求。
建设一个科学高效的信息管理系统是解决这一问题的必经之路。
设备管理信息系统详细设计设备管理信息系统(Equipment Management Information System, EMIS)是一种帮助企业或组织管理设备的软件系统。
该系统具有设备入库、设备出库、设备维修、设备报废以及设备信息查询等功能。
为了更好地实现设备管理,我们设计了以下详细设计。
一、系统架构1.1系统模块EMIS主要包括以下模块:-用户管理模块:用于管理系统用户的注册、登录、权限分配等操作。
-设备入库模块:用于记录设备的入库信息,包括设备名称、型号、数量、入库时间等。
-设备出库模块:用于记录设备的出库信息,包括设备名称、型号、数量、出库时间等。
-设备维修模块:用于记录设备的维修情况,包括维修人员、维修时间、维修结果等。
-设备报废模块:用于记录设备的报废情况,包括报废原因、报废时间等。
-设备查询模块:用于查询设备的信息,包括设备的入库、出库、维修、报废记录等。
1.2数据库设计为了支持系统的功能和操作,EMIS将使用一个关系型数据库来存储数据。
数据库中将有以下几个表:-用户表:存储用户的基本信息,例如用户名、密码、角色等。
-设备表:存储设备的基本信息,例如设备名称、型号、规格等。
-入库表:存储设备的入库记录,包括设备ID、入库时间、入库数量等字段。
-出库表:存储设备的出库记录,包括设备ID、出库时间、出库数量等字段。
-维修表:存储设备的维修记录,包括设备ID、维修人员、维修时间、维修结果等字段。
-报废表:存储设备的报废记录,包括设备ID、报废原因、报废时间等字段。
二、系统功能设计2.1用户管理功能用户管理功能包括用户注册、登录、密码重置等。
系统管理员可以创建新用户并分配权限,普通用户可以登录系统并查看相关信息。
2.2设备入库功能设备入库功能允许用户记录设备的入库信息,包括设备名称、型号、数量、入库时间等。
用户可以通过手动输入设备信息或者导入设备清单来快速完成入库操作。
2.3设备出库功能设备出库功能允许用户记录设备的出库信息,包括设备名称、型号、数量、出库时间等。
JAVA课程设计报告课题名称:设备管理系统目录1 项目总体规划12 系统需求分析42.1用户管理基本功能分析52.2设备管理基本功能分析62.3数据管理基本功能分析23 数据库设计14 关键技术和难点14.1 数据库连接34.2 SQL语句的使用25 系统详细设计与实现15.1用户管理设计与实现55.2设备管理设计与实现65.3数据管理设计与实现26 项目测试17 参考文献1摘要:随着社会生产活动中自动化水平越来越高,设备的监控及其数据的存储越来越重要。
本系统使用JAVA语言,结合实际编写了该设备管理系统,可以实现对数据库的准确操作,完成用户的登录、修改密码、添加用户、删除用户,及设备的添加和删除,设备数据的添加、删除和查询等一系列功能。
关键词:设备管理系统数据库技术JDBC SQL语句1.项目总体规划随着社会生产活动中自动化水平越来越高,设备的监控及其数据的存储越来越重要。
数据库技术已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。
对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用。
随着我国市场经济的迅速发展,在工厂中,为了有效管理各种设备及其在运作过程中产生的数据,开发一个方便高效的管理软件是非常必要的。
本系统使用JAVA 语言,结合实际编写了该设备管理系统,可以实现对数据库的准确操作,完成用户的登录、修改密码、添加用户、删除用户,及设备的添加和删除,设备数据的添加、删除和查询等一系列功能。
本系统开始运行时首先进入登陆界面,用户输入正确的用户名及密码后进入主窗体,然后通过点击主窗体的各项菜单进入各项功能。
2.系统需求分析2.1用户管理基本功能分析系统中用户需要正确的密码才能获得能录权限,登录之后可以进行一系列数据操作。
其功能定义如图1所示。
图12.2设备管理基本功能分析设备管理可以实现对设备的添加和删除,其功能定义如图2所示。
图22.3数据管理基本功能分析数据管理室系统的核心,可以实现对数据的添加、删除及查询,其功能定义如图3所示。
3.数据库设计本系统使用微软公司的ACCESS数据,数据源名称为” shebei ”。
根据系统的需求,经过详细的分析设计,本系统数据库中各个数据表的字段定义和说明如下。
users(用户信息表),存放注册用户的信息,如表1.表1 usersshebeilist(设备列表),存放设备列表,如表2.表2 shebeilistshebei1(设备信息表),名为shebei1 的设备的各项数据(程序中每台设备建一个数据表),如表3.表3 shebei14. 关键技术和难点4.1数据库连接JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
JDBC访问ACCESS有两种方式,一种是JDBC-ODBC桥接式,另一种是ODBC直接方式。
本系统使用的是ODBC直接方式。
ODBC直接连接方式采用了JDBC直接连接思想。
他是在程序中直接指出需要使用的ODBC驱动程序,从而免去了配置数据源的麻烦,提高程序的可移植性。
首先需要加载驱动程序,代码如下:try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch (ClassNotFoundException e){System.out.println("加载驱动程序错误!"+e);}然后就可以通过数据源连接到数据库,关键代码如下:Connection conn;S tatement stmt;R esultSet rs;S tring url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=shebei.mdb";conn=DriverManager.getConnection(url,"","");s tmt=conn.createStatement();r s=stmt.executeQuery("SELEC* FROM users where username="+"'"+t_name.getText()+"'");r s.close();s tmt.close();c onn.close();4.2 SQL语句的使用系统开发过程中关键部分是SQL语句的使用。
SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言包含4个部分:数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
数据查询语言(DQL),例如:SELECT语句。
数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的SQL接口。
它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出。
例如程序中用到的有:"INSERT INTO " + s + " (dianya ,dianliu,zhuangtai,guzhangcs) VALUES ("+s1+","+s2+", "+s3+" ,"+s4+")""CREATE TABLE " + s + " ( id COUNTER(1,1) ,dianya varchar(50) ,dianliu varchar(50) , zhuangtai varchar(50) ,guzhangcs INTEGER )""DROP TABLE " + s"DELETE FROM users WHERE username ="+s1"SELECT * FROM users where username="+"'"+t_name.getText()+"'""UPDATE users SET password="+s3+" WHERE username ="+s25 系统详细设计与实现5.1用户管理设计与实现用户管理中最重要的登陆,此时要核对用户名和密码是否一致。
关键代码如下:conn=DriverManager.getConnection(url,"","");stmt=conn.createStatement();rs=stmt.executeQuery("SELECT * FROM users where username="+"'"+t_name.getText()+"'");while(rs.next()){ sname=rs.getString(1);spass=rs.getString(2);if(t_name.getText().equals(sname)&&t_pass.getText().equals(spass)){l_error.setText("登陆成功");t_name.setText("");t_pass.setText("");myframe =new MyFrame();this.dispose();break;}else{l_error.setText("用户名或密码错误");until++;}}5.2设备管理设计与实现设备管理模块中添加设备实际上是在数据库中新建一个表,删除设备实质上是删除一个表。
添加设备关键代码如下:conn=DriverManager.getConnection(url,"","");stmt=conn.createStatement();rs=stmt.executeQuery("SELECT * FROM shebeilist whereif(rs.next()){a1.setText("设备已经存在,添加失败!");}else{String temp="INSERT INTO shebeilist (shebeiname) VALUES (" + s1 + " )";stmt.executeUpdate(temp);String temp1="CREATE TABLE " + s + " ( id COUNTER(1,1) ,dianya varchar(50) ,dianliu varchar(50) , zhuangtai varchar(50) ,guzhangcs INTEGER )";stmt.execute(temp1);a1.setText("设备添加成功!");}rs.close();stmt.close();conn.close();5.3数据管理设计与实现此模块是对数据库中某个设备的某一条数据进行操作,添加、删除或查询,其中查询功能关键代码如下:c onn=DriverManager.getConnection(url,"","");stmt=conn.createStatement();if (s1.equals("ID")){rs=stmt.executeQuery("SELECT * FROM " + s + " WHERE id LIKE "+"'"+t_guanjian.getText().trim()+"'");}else if (s1.equals("电压")){rs=stmt.executeQuery("SELECT * FROM " + s + " WHERE dianya}else if (s1.equals("状态")){rs=stmt.executeQuery("SELECT * FROM " + s + " WHERE zhuangtai LIKE "+"'"+t_guanjian.getText().trim()+"'");}else if (s1.equals("故障次数")){rs=stmt.executeQuery("SELECT * FROM " + s + " WHERE guzhangcs LIKE "+"'"+t_guanjian.getText().trim()+"'");}else if (s1.equals("电流")){rs=stmt.executeQuery("SELECT * FROM " + s + " WHERE dianliu LIKE "+"'"+t_guanjian.getText().trim()+"'");}6 项目测试本系统在运行调试的过程中遇到很多错误并进行了大量的调试和改正。