广东海洋大学数据库原理及应用课程设计——学生信息管理系统(Java+SQL)
数据库课程设计报告_学生信息管理系统_SQL-java

数据库课程设计报告_学生信息管理系统_S Q L-j a v a《数据库系统》课程设计报告软件专业2012级1班26号巨生鹏2014年6月20日目录1.需求分析内容 (3)1.1用户需求说明 (3)1.2数据字典 (3)1.3数据流图 (7)2.概念设计内容 (8)2.1 E-R图 (8)2.1 包括实体、联系以及实体、联系属性的详细E-R图 (9)3.逻辑设计与物理设计及安全设计 (11)3.1实体类型的转换 (11)3.2联系的转换 (11)3.3物理设计 (12)3.4安全设计 (15)4.系统模块设计与功能实现 (15)4.1系统的功能划分及描述 (15)4.2主要用户界面 (16)4.3 系统使用说明和安装说明.........................................................16 5. 附:部分重要代码 (17)6.体会与心得 (18)1需求分析内容学生信息管理系统概述学生信息管理系统主要用来管理学生基本信息。
本系统是一个简单的学生信息管理系统,系统管理的信息主要是学生基本信息、课程信息和学生选课信息。
系统的目的是有效地处理这些信息,同时为用户提供信息检索、信息修改和保护功能。
1.1(1)用户需求说明学生信息管理系统是学校有效管理学生的重要工具,它的任务主要有以下几项:◆学生基本信息管理,主要负责管理学生基本信息。
◆学生选课信息管理,主要负责管理课程信息和学生选课信息。
◆信息检索管理,主要负责对学生各类信息进行查询和统计。
◆信息修改管理,主要负责学生信息的增加,删除,更改。
◆系统管理,主要负责管理用户信息和用户登陆,以及配置系统参数。
(2)系统的目标学生信息管理系统是学校管理学生的有效方法,也是学生学生查询信息的有效途径。
一个好的学生信息管理系统应具有以下这些目标:◆能够管理所有学生的信息。
◆能够快速地进行学生的各类信息查询,包括基本信息和选课信息的查询。
广东海洋大学java实验4

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称类的综合运用课程名称 Java 程序设计课程号16232105学院(系) 信息学院专业计算机科学与技术班级学生姓名XXX 学号20 实验地点钟04002 实验日期实验目的:(1)掌握类的继承,实现构造函数的继承。
(2)多态,通过相同的方法名实现不同的功能实验内容:1、有一个shape接口,利用该接口来编写求解不同的几何图形(矩型,正方形,圆)的周长、面积的应用程序(其中正方形是矩形的子类),要求用到继承、多态、抽象类、接口、内部类等面向对象程序设计技术的来编程。
Interface shape{Public double perimeter();Public double area();}放自己的程序代码import java.util.Scanner;interface Shape{ //定义一个接口public double perimeter();public double area();}abstract class line{ //定义一个长度抽象类double r=0;}class Juxing implements Shape{ //矩形的类定义double c=0;double h=0;Juxing(){}Juxing(double a){ //多态h=a;}Juxing(double a,double b){ //多态c=a;h=b;}public double perimeter(){ //重写,求矩形周长double z=(c+h)*2;return z;}public double area(){ //重写,求矩形面积double s=c*h;return s;}}class Square extends Juxing{ //继承,定义正方形的类 Square(double a){super(a);}}class Circle extends line implements Shape{ //继承,定义圆的类 jisuan A=new jisuan();Circle(double y){r=y;}class jisuan{ //内部计算类jisuan(){}double zhouchang(){double l=2*3.14*r;return l;}double mianji(){double s1=3.14*r*r;return s1;}}public double perimeter(){ //求圆的周长return A.zhouchang();}public double area(){ //求圆的面积return A.mianji();}}public class Shiyan4 {public static void main(String[] args){System.out.print("请输入矩形的长和宽:");Scanner input = new Scanner(System.in);Scanner input2 = new Scanner(System.in);double ai = input.nextInt(); // 输入double bi = input2.nextInt(); //输入Juxing J=new Juxing(ai,bi);ai=J.perimeter();System.out.print("矩形的周长为:"+ai+'\n');bi=J.area();System.out.print("矩形的面积为:"+bi+'\n');System.out.print("请输入正方形的边长:");Scanner input3 = new Scanner(System.in);double ci = input3.nextInt();Square S=new Square(ci);ci=S.perimeter();System.out.print("正方形的周长为:"+ci+'\n');ci=S.area();System.out.print("正方形的面积为:"+ci+'\n');System.out.print("请输入一个圆的半径:");Scanner input4 = new Scanner(System.in);double di = input4.nextInt();Circle C=new Circle(di);di=C.perimeter();System.out.print("圆的周长为:"+di+'\n');di=C.area();System.out.print("圆的面积为:"+di+'\n');}}运行结果或截图2 设计一个抽象类CompareObject,其中定义一个抽象方法compareTo()用于比较两个对象。
广东海洋大学java课程设计报告书-记事本

广东海洋大学课程设计报告成绩:评语:报告正文一,项目说明文档1.任务与内容设计一个简单的使用java语言编写的一个记事本程序,可以实现以下功能:A.文件的新建,打开,保存和另存B.对文件的编辑,如剪切,复制,粘贴,删除,还有查找替换等等C.对文本中字体的设置2.运行以及使用使用eclipse运行源程序,则可以出现:1)主界面2)点击窗口的文件按钮,可以实现打开保存等操作3)点击编辑菜单,可以实现对文本的复制粘贴剪切全选等功能4)点击编辑菜单,可以实现查找替换功能5)点击编辑菜单的全部替换功能,可以实现快速替换。
6)点击格式中的字体按钮,可以实现对文本区域的字体设置2.程序设计思路和关键数据结构在本程序中,在菜单栏上设置四大菜单,然后将相应的菜单项(功能)添加到各个菜单中,然后再具体实现各个菜单项的功能。
主要使用JButton,JFrame,Textarea (文本区),menu(创建菜单)等类和实现ActionListener,MouseListener,WindowListener等接口。
3.测试数据1)编辑菜单中的替换功能当查找文本中没有数据时,这时点击替换或全部替换,因为还没有内容,这这时会弹出一个消息对话框,提示“请先输入查找内容”。
2)编辑菜单中的查找功能打开查找菜单对话框,如果没有输入查找内容,点击查找下一个,则会弹出一个消息对话框,说“请先输入查找内容”。
4.在设计实现和测试中发现的问题以及我的解决方案1)在实现查找功能时,分为向上、向下查找,当第一次向下查找时,我们先设置rear变量为0,从头开始查找,当查找到时,对rear重新赋值,使它能够下次从正确位置开始遍历。
向上查找时,通过设置另一个变量head来控制实现。
2)在设计新建文件的类中,当用户点击新建时候,应该类中的成员变量(保存文件名,打开文件名)设为null,把是否第一次保存的标记设为false;3)在点击退出时,我们我先判断文本是否作过了改动,若改动过,看是否已经保存,保存过了,就直接退出,否则弹框提示是否保存,再点击相应的按钮进行后续的保存或不保存操作。
SQL数据库 java学生管理系统

SQL数据库 java学生管理系统《数据库系统原理》课程设计报告说明书学生信息管理系统学生姓名学号所在专业所在班级指导教师提交时间评阅情况成绩广东海洋大学本科生课程设计目录读书笔记 ..................................................................... ................. 错误~未定义书签。
1 1. 学生信息管理系统概述 ..................................................................... ....................... , 1.1 研究背景 ..................................................................... .......................................... , 1.2 开发意义 ..................................................................... .......................................... ,2. 系统需求分析 ..................................................................... ...................................... ,2.1 开发环境和软件 ..................................................................... ............................... , 2.2 系统设计与功能分析 ..................................................................... ....................... , 3 数据库设计 ..................................................................... ......................................... ,3.1 系统概念结构设计 ..................................................................... ........................... ,3.2 系统逻辑结构设计 ..................................................................... ........................... , 3.3 数据库实现 ..................................................................... ...................................... , 3.3.1 数据库关系图 ..................................................................... ............................... , 3.3.2 SQL语句实现 ..................................................................... .............................. , 4. 系统模块详细设计...................................................................... .............................. , 4.1 用户登录模块 ..................................................................... ................................. , 4.2 各用户操作模块 ..................................................................... ........................... ,, 4.2.1 管理员操作模块 ..................................................................... ....................... ,, 4.2.2 教师操作模块 ..................................................................... ........................... ,, 4.2.3 学生操作模块 ..................................................................... ........................... ,, 5. 系统运行与测试 ..................................................................... .............................. ,, 5.1 管理员登录 ..................................................................... .................................... ,, 5.2 教师登录 ..................................................................... ........................................ ,, 5.3 学生登录 ..................................................................... ........................................ ,, 6(课程设计总结 ..................................................................... .................................. ,, 7(附录(代码) .................................................................... ................................... ,,2广东海洋大学本科生课程设计I(读书笔记关于网上花店管理系统的读书笔记:在网上购物逐步平民化的今天,网上购物人数不断增加,现代IT技术和互联网的结合。
计科1141广东海洋大学java实验三

广东海洋大学学生实验报告书(学生用表)实验名称实验三数组与字符课程名称Java程序设计与开发技术课程号学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141学生姓名邓超荣学号201411621110 实验地点钟海楼04017实验日期2016.10.22实验三数组与字符一实验目的:掌握Java数组的编程掌握字符串使用二实验内容:1 已知字符串:“This is a java program.”按要求编写下程序:(1)统计该字符串中字母a出现的次数(2)取出子字符串“java”,存在另一字符串中并输出。
(3)用两种方式将本字符串复制到另一个字符数组char[] str中,并输出(4)将字符串中每个单词的第一个字母变成大写,并输出整个字符串(5)用两种方式将该字符串逆序输出(用stringbuffer和for方式来实现)实验代码:package javademo2;public class Stringtest {GDOU-B-11-112public static void main(String[] args) {//问题1 统计该字符串中字母a出现的次数String s="This is a java program.";int count=0;char[] chs=s.toCharArray();for(int i=0;i<chs.length;i++){if(chs[i]=='a'){count++;}}System.out.println("a出现的次数:"+count);//问题2 取出子字符串“java”,存在另一字符串中并输出。
int index=s.indexOf("java");String ss=s.substring(index,index+4 );System.out.println(ss);//问题3 用两种方式将本字符串复制到另一个字符数组 char[] str中,并输出//方式一:char[] str=s.toCharArray();System.out.println(str);//方式二char[]str2=new char[s.length()];for(int i=0;i<str.length;i++){str2[i]=s.charAt(i);}System.out.println(str2);//问题4 将字符串中每个单词的第一个字母变成大写,并输出整个字符串//思路:先定义一个变量f用来标记是否是单词的开始位置,如果是开始位置就输出大写字母,并把f标记成false,如果遇到空格,就把f标记成true。
广东海洋大学数据库实验一报告

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验1数据库及其对象创建与管理课程名称数据库原理及应用课程号 16732201学院(系) 信息学院专业信息管理与信息系统班级信管1111学生姓名陈梓哲学号201111671106 实验地点海安A705 实验日期2013/10/16实验一数据库及其对象的创建与管理一、实验目的1、掌握用SSMS或Transact-SQL语句创建、查看、修改、删除数据库的方法;2、掌握数据库的备份和恢复方法;3、掌握数据库的分离和附加方法;4、掌握用SSMS或Transact-SQL语句创建、修改、删除表及向其添加数据的方法。
二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。
三、实验内容1、用SSMS在“对象资源管理器”中完成如下任务:(1)(2)再修改学生课程数据库Student 的主数据文件的大小,使其扩大两倍,然后查看扩大后的数据库属性。
2、用SSMS ,在数据库Student 中:(1)创建如下四个表,并设置相关的约束条件:SS表:Course表:SC表:Teacher表:(2) 用SSMS修改将刚才所创建表:①在Course表中插入如下两列:②将SC 表中列Grade 的类型改为smallint③在S 表中创建CHECK 约束,约束名为Sagechk ,要求实现年龄在15~45取值④在Course 表中创建外键约束,约束名为Fk_Tno ,要求实现Course 表中的Tno 必须参照Teacher 表的Tno 取值。
⑤删除Course 表中Tno 列(3)删除将刚才所创建Teacher 表(4)向表插入以下数据3、用SSMS 方法完成如下数据库的分离和附加:(1)分离Student 数据库 ⑵附加Student 数据库4. 用SSMS 方法完成如下数据库的备份和恢复: ( 选作实验)(1)备份数据库①创建备份设备,其名称为bk_Student0,保存文件为D:\Student0.bak,并对Student数据库进行完全备份,备份到备份设备bk_ Student0中。
计科1141广东海洋大学java10(实验4)

广东海洋大学学生实验报告书(学生用表)实验名称实验四.类的基本编程课程名称Java程序设计与开发技术课程号学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141学生姓名邓超荣学号201411621110 实验地点钟海楼04017实验日期2016.10.26一实验目的:掌握Java类的基本知识及应用二实验内容:定义一个名为Complex的类实现复数概念及运算,它的UML图如下,先实现该类的相关方法,再试编写主方法来测试该类这些的方法。
GDOU-B-11-112代码:public class ComplexDemo {public static void main(String[] args) {Complex c1 = new Complex(1,2);Complex c2 = new Complex(2,3);Complex c3 = new Complex(4,-2);double c = -2;Complex sum = new Complex();sum = plexAdd(c1,c2);System.out.println("(1+2i)+(2+3i)="+sum);sum = plexAdd(c1, c);System.out.println("(1+2i)+(-2)="+sum);sum = plexAdd(c1,c2,c3);System.out.println("(1+2i)+(2+3i)+(4-2i)="+sum);Complex mid = new Complex();mid = plexMinus(c1,c2);System.out.println("(1+2i)-(2+3i)="+mid);mid = plexMinus(c1, c);System.out.println("(1+2i)-(-2)="+mid);Complex mul = new Complex();mul = plexMul(c1,c2);System.out.println("(1+2i)*(2+3i)="+mul);mul = plexMul(c1, c);System.out.println("(1+2i)*(-2)="+mul);mul = plexMul(c1,c2,c3);System.out.println("(1+2i)*(2+3i)*(4-2i)="+mul);}}class Complex {double realPart;double imaginaryPart;Complex(){} //默认构造函数Complex(double r,double i) { //带参数的构造函数realPart = r;imaginaryPart = i;}double getRealPart() { //返回实部return realPart;}void setRealPart(double d) { //设置实部realPart = d;}double getImaginaryPart() { //返回虚部return imaginaryPart;}void setImaginaryPart(double d) { //设置虚部imaginaryPart = d;}Complex complexAdd(Complex c1,Complex c2) { //复数对象与复数对象相加Complex sum = new Complex();sum.realPart = c1.realPart + c2.realPart;sum.imaginaryPart = c1.imaginaryPart +c2.imaginaryPart;return sum;}Complex complexAdd(Complex c1,double c2) { //复数对象与实数相加Complex sum = new Complex();sum.realPart = c1.realPart + c2;sum.imaginaryPart = c1.imaginaryPart;return sum;}Complex complexAdd(Complex c1,Complex c2,Complex c3) { //三个复数相加Complex sum = new Complex();sum.realPart = c1.realPart + c2.realPart +c3.realPart;sum.imaginaryPart = c1.imaginaryPart +c2.imaginaryPart + c3.imaginaryPart;return sum;}Complex complexMinus(Complex c1,Complex c2) { //复数对象与复数对象相减Complex mid = new Complex();mid.realPart = c1.realPart - c2.realPart;mid.imaginaryPart = c1.imaginaryPart -c2.imaginaryPart;return mid;}Complex complexMinus(Complex c1,double c2) { //复数对象与实数相减Complex mid = new Complex();mid.realPart = c1.realPart - c2;mid.imaginaryPart = c1.imaginaryPart;return mid;}Complex complexMul(Complex c1,Complex c2) { //复数对象与复数对象相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2.realPart -c1.imaginaryPart * c2.imaginaryPart;mul.imaginaryPart= c1.realPart* c2.imaginaryPart + c1.imaginaryPart * c2.realPart;return mul;}Complex complexMul(Complex c1,double c2) { //复数对象与实数相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2;mul.imaginaryPart = c1.imaginaryPart * c2;return mul;}Complex complexMul(Complex c1,Complex c2,Complex c3) { //三个复数相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2.realPart -c1.imaginaryPart * c2.imaginaryPart;mul.imaginaryPart= c1.realPart* c2.imaginaryPart + c1.imaginaryPart * c2.realPart;double r = mul.realPart;double i = mul.imaginaryPart;mul.realPart = r * c3.realPart - i *c3.imaginaryPart;mul.imaginaryPart = r * c3.imaginaryPart + i *c3.realPart;return mul;}public String toString() { //以a+bi的形式显示复数String s = new String();if(realPart!=0){if(imaginaryPart>0) {s = (int)realPart + "+" + (int)imaginaryPart + "i";}else if(imaginaryPart==0) {s = String.valueOf((int)realPart);}else{s= (int)realPart+ ""+ (int)imaginaryPart+ "i";}}else{if(imaginaryPart>0) {s = (int)imaginaryPart + "i";}else if(imaginaryPart==0) {s = String.valueOf(0);}else{s = (int)imaginaryPart + "i";}}return s;}}。
广东海洋大学数据库课程设计

本科生课程设计课程名称数据库原理及应用课程设计课程编号J1670101学号2014116211学生姓名阿稻所在专业计算机科学与技术所在班级计科指导教师成绩教师签字年月日课程设计时间: 2015年 11月 15 日至 2015 年 12月 20 日目录一、设计总说明1.1 概况1.2 系统开发目的1.3 开发内容1.4 开发要求1.5 开发环境二、需求分析2.1 系统背景分析2.2 需求分析三、概念结构设计3.1 系统功能模块设计图3.2 系统E-R图四、逻辑结构设计五、物理结构设计5.1 数据库创建六、系统实现七、优缺点及自我评价八、参考文献九、代码(附录)设计总说明1.1 概况名称:学生成绩管理系统用途:学校等教育机构功能:实现对学生信息、成绩的管理1.2 系统开发的目的1)掌握利用java语言进行程序设计的基本过程;2)理解java应用程序事件驱动机制,掌握利用java开发工具编写程序的方法,能熟练掌握java语法规则进行算法设计和代码编写;3)掌握利用对象进行数据库应用程序设计的基本方法;4)掌握SQL数据库数据表设计以及SQL语句的书写和java中的调用方法,通过掌握以上只是的同时提高自己的实践能力等。
1.3 开发内容通过调查分析达到学生成绩管理系统的系统要求,从而设计出系统的概念结构模型、逻辑结构模型、物理结构模型,通过SQL2008实现相应的要求,进而不断的测试和完善系统的漏洞。
1.4 开发要求1)学生信息的输入,包括学生的基本信息、选课信息和成绩等;2)学生基本信息、选课信息和成绩的修改;3)实现学生基本信息、选课信息和成绩的删除;4)查询学生基本信息、选课信息和成绩等等。
1.5 开发环境及工具系统前台开发工具:Eclipse Java Mars.1系统后台管理软件:SQL Server Management Studio 2008系统开发语言:Java二、需求分析2.1 系统背景分析人类社会已经步入了计科飞速发展的信息时代,尤其是信息网络系统的发展和应用,对社会生活的影响越来越深刻。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科生课程设计课程名称数据库原理及应用课程设计课程编号J1670101学号学生姓名所在专业所在班级指导教师成绩教师签字年月日课程设计时间:年月日至年月日目录目录设计总说明 (I)1、需求分析 (3)2、概念结构设计 (3)3、逻辑结构设计 (4)4、物理结构设计 (4)5、系统实现 ....................................................................................... 错误!未定义书签。
5.1前台界面 .................................................................................. 错误!未定义书签。
5.2 后台实现 .................................................................................. 错误!未定义书签。
6、优缺点及自我评价....................................................................... 错误!未定义书签。
7、参考文献 (7)设计总说明(1)系统开发目的学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。
随着在校大学生人数的不断增加,教务系统的数量也不断的上涨。
学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。
并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。
然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。
所以如何自动高效地管理信息是这些年来许多人所研究的。
(2)开发内容用数据库和Java相关技术开发一个学生信息管理系统(3)开发要求能够对学生信息进行简单的添加,删除和查询(4)开发环境及工具1、操作系统:Windows 72、数据库软件:SQL Server 20083、Java开发工具:Eclipse(5)系统功能简介一、学生管理1、添加学生信息。
可以按照图形的界面的显示依次输入新学生的“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。
完成新纪录的添加。
2、删除学生记录。
可以根据输入的“学号”或者”姓名”进行删除的操作。
二、学生查询3、查询学生信息。
用户可以选择通过“按姓名查询”,也可以选择“按学号查询”查询学生信息,查询到的信息会在窗口中显示出来。
三、文件退出(6)开发分工情况本系统由本人独立完成数据库原理及应用课程设计报告1、需求分析在一些学校等机构,随着学生数量的不断增加,学生的信息不断增多,人工管理信息的难度也越来越大。
而且效率也是很低的。
所以如何自动高效地管理信息是这些年来许多人所研究的。
随着这些年电脑计算机的速度质的提高,成本的下降,IT 互联网大众趋势的发展。
我们使用电脑高效率处理数据信息成为可能。
学生信息管理系统的出现,正是管理人员与信息数据,计算机进入互动时代的体现。
友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。
学生信息管理系统,以SQL 数据库作为后台信息存储,Java 作为前台系统的语言。
提供了对学生信息添加,查询,删除等功能。
实现了最基本的信息管理。
2、概念结构设计教师教师ID教师姓名登录密码 课程课程号教师ID课程名称成绩学号课程号3、逻辑结构设计StudentInfo 表:字段名 类型 空值 约束条件 学号 Char(10)not null 主键 姓名 varchar(10) 出生日期 datetime籍贯 varchar(50) 系号 char(2) not null外键班级号 char(6)not null 外键4、物理结构设计create table StudentInfo(学号 char(10) primary key , 姓名 varchar(10) , 性别 char(2) ,出生日期 datetime , 籍贯 varchar(50) ,成绩学生性别姓名学号籍贯班级号总人数登录密码籍贯 班级名称班级号班级管理员登录密码管理员ID系号char(2),班级号char(6) ,)5、系统实现5.1前台界面:5.2后台代码实现:见附录6、优缺点及自我评价由于时间仓促,本系统还有许多功能没有实现,也有一些漏洞。
同时,也因为自己掌握的知识不够扎实,不够全面,所以,这个学生信息管理系统只实现了一些简单的基本功能,其他功能还有待完善。
本次课程设计自我感觉很辛苦,但是受益匪浅。
因为数据库,Java这两门课的知识学的不够扎实,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手,通过在百度、书本、同学的帮助下有些得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计,逐渐能将课本上的知识应用到实际操作中,但是我发现我现在学到的知识还远远不够,要想做出一个功能比较全面,界面比较漂亮的系统还需要更多相关的知识。
所以,在接下来的日子里,我还有待加强学习。
在设计的过程中发现了自己的很多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,导致设计系统的时候频频出现错误。
通过这次课程设计使我懂得了理论与实际相结合很重要,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正达到学以致用的目的,从而提高自己的实际动手能力和独立思考的能力。
7、参考文献(1)王珊,萨师煊.《数据库系统概论》[M],高等教育出版社,2014. (2)耿祥义,张跃平.《Java2实用教程》[M],清华大学出版社,2013.附录附录1、添加学生面板类的代码package jieweixiao;//导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“添加学生面板”类public class AddStudentPanel extends JPanel implements ActionListener{//声明连接数据库对象Connection con;//声明SQL语句对象PreparedStatement st;//创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel("学号");JLabel jLabel2=new JLabel("姓名");JLabel jLabel3=new JLabel("性别");JLabel jLabel4=new JLabel("出生日期");JLabel jLabel5=new JLabel("籍贯");JLabel jLabel6=new JLabel("注意:出生日期格式为YYYY-MM-DD");JTextField jTextField1=new JTextField();JTextField jTextField2=new JTextField();JTextField jTextField3=new JTextField();JTextField jTextField4=new JTextField();JRadioButton jRadioButton1=new JRadioButton("男");JRadioButton jRadioButton2=new JRadioButton("女");ButtonGroup buttonGroup1=new ButtonGroup();JButton jButton1=new JButton("存入数据库");//构造方法public AddStudentPanel(){try{//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//界面初始化方法private void jbInit() throws Exception{//连接数据库//con=new Connection();//创建一个statement对象来将SQL语句发送到数据库String url="jdbc:sqlserver://localhost:1433; DatabaseName=StudentManager";String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";Class.forName(driver);//加载驱动!con=DriverManager.getConnection(url,"sa","xjw1123");//连接数据库!String sql="insert into StudentInfo"+" values(?,?,?,?,?,?,?)";st=con.prepareStatement(sql);//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setBounds(new Rectangle(21,17,64,24));jLabel2.setBounds(new Rectangle(21,51,53,22));jLabel3.setBounds(new Rectangle(21,86,61,27));jLabel4.setBounds(new Rectangle(21,122,59,25));jLabel5.setBounds(new Rectangle(21,188,54,24));jLabel6.setBounds(new Rectangle(102,153,219,27));jTextField1.setBounds(new Rectangle(102,10,200,30));jTextField2.setBounds(new Rectangle(102,49,200,30));jTextField3.setBounds(new Rectangle(102,117,200,33));jTextField4.setBounds(new Rectangle(102,183,200,29));jRadioButton1.setBounds(new Rectangle(102,83,65,30));jRadioButton2.setBounds(new Rectangle(190,85,85,30));jButton1.setBounds(new Rectangle(103,217,180,30));//设置单选按钮被选中jRadioButton1.setSelected(true);//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jTextField1);this.add(jLabel1);this.add(jLabel2);this.add(jTextField2);this.add(jRadioButton1);this.add(jRadioButton2);this.add(jLabel3);this.add(jLabel4);this.add(jTextField3);this.add(jLabel6);this.add(jTextField4);this.add(jLabel5);this.add(jButton1);buttonGroup1.add(jRadioButton1);buttonGroup1.add(jRadioButton2);}//点击按钮事件//事件相应器当你定义的事件捕捉以后就会执行这个里面的代码public void actionPerformed(ActionEvent e){//获取用户输入的信息String xuehao=jTextField1.getText();String xingming=jTextField2.getText();String xingbie="";if(jRadioButton1.isSelected())xingbie+="男";if(jRadioButton2.isSelected())xingbie+="女";String dateString=jTextField3.getText();String jiguan=jTextField4.getText();try{//设置日期格式//st.execute("set dateformat ymd");//利用st对象执行SQL语句,进行插入操作st.setString(1,xuehao);st.setString(2,xingming);st.setString(3,xingbie);st.setString(4,dateString);st.setString(5,jiguan);st.setString(6,"");st.setString(7,"");st.executeUpdate();//清空文本行的内容jTextField1.setText("");jTextField2.setText("");jTextField3.setText("");jTextField4.setText("");//利用消息对话框提示删除操作成功JOptionPane.showMessageDialog(this,"插入成功!");}catch(Exception ex){//利用消息对话框提示不能插入,并显示异常的信息JOptionPane.showMessageDialog(this,ex);//ex.printStackTrace();}}}2、删除学生面板类的代码package jieweixiao;//导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“删除学生面板”类public class DeleteStudentPanel extends JPanel implements ActionListener{//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象JLabel jLabel1=new JLabel("请输入待删除的学生的学号:");JTextField jTextField1=new JTextField();JButton jButton1=new JButton("删除");//构造方法public DeleteStudentPanel(){try{//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//界面初始化方法private void jbInit() throws Exception{//连接数据库//con=DBConnect.getConn();String url="jdbc:sqlserver://localhost:1433; DatabaseName=StudentManager";String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";Class.forName(driver);//加载驱动!con=DriverManager.getConnection(url,"sa","xjw1123");//连接数据库!st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(new java.awt.Font("宋体",Font.BOLD,14));jLabel1.setBounds(new Rectangle(70,20,200,30));jTextField1.setBounds(new Rectangle(70,80,207,41));jButton1.setBounds(new Rectangle(70,175,205,36));//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jButton1);}//点击按钮事件public void actionPerformed(ActionEvent e){//获取用户输入的学号String xuehao=jTextField1.getText();//要求用户确认删除if(JOptionPane.showConfirmDialog(this,"确认要删除吗?")==JOptionPane.YES_OPTION){try{//利用st对象执行SQL删除操作st.executeUpdate("delete from StudentInfo where 学号='"+xuehao+"'");//利用消息对话框提示删除操作成功JOptionPane.showMessageDialog(this,"删除操作成功!");//清空输入学号的文本行jTextField1.setText("");}catch(Exception ex){//利用消息对话框提示不能删除JOptionPane.showMessageDialog(this,"删除操作执行失败!");}}}}3、按姓名查询学生面板类的代码package jieweixiao;import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“添加学生面板”类public class InquireOnNamePanel extends JPanel implements ActionListener {//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel("请输入待查询的学生的姓名:");JTextField jTextField1=new JTextField();JButton jButton1=new JButton("按姓名查询");JScrollPane jScrollPane1=new JScrollPane();JTextArea jTextArea1=new JTextArea();//构造方法public InquireOnNamePanel(){try{//调用初始化方法jbInit();}catch(Exception exception){//exception.printStackTrace();}}//面板初始化方法private void jbInit() throws Exception{//连接数据库//con=DBConnect.getConn();String url="jdbc:sqlserver://localhost:1433; DatabaseName=StudentManager";String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";Class.forName(driver);//加载驱动!con=DriverManager.getConnection(url,"sa","xjw1123");//连接数据库!st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(new java.awt.Font("宋体",Font.BOLD,14));jLabel1.setBounds(new Rectangle(80,10,200,34));jTextField1.setBounds(new Rectangle(80,50,200,30));jButton1.setBounds(new Rectangle(100,90,160,30));jScrollPane1.setBounds(new Rectangle(29,125,308,130));//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jScrollPane1);jScrollPane1.getViewport().add(jTextArea1);this.add(jLabel1);this.add(jTextField1);this.add(jButton1);}//点击按钮事件public void actionPerformed(ActionEvent e){//获取用户输入的姓名String xingming=jTextField1.getText();//清空文本区原有的内容jTextArea1.setText("");//要求用户确认删除try{//利用st对象执行SQL语句,返回结果集对象ResultSet rs=st.executeQuery("select * from StudentInfo where 姓名='"+xingming+"'");//处理结果集:逐条显示结果集中的记录while(rs.next()){jTextArea1.append(rs.getString("学号")+" "+rs.getString("姓名")+" "+rs.getString("性别")+" "+rs.getDate("出生日期")+" "+rs.getString("籍贯")+"\n");}}catch(Exception ex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"查询失败!");}//清空文本行的内容jTextField1.setText("");}}4、按学号查询学生面板类的代码package jieweixiao;//导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;//创建“添加学生面板”类public class InquireOnXHPanel extends JPanel implements ActionListener{//声明连接数据库对象Connection con;//声明SQL语句对象Statement st;//创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel("请输入待查询的学生的学号:");JTextField jTextField1=new JTextField();JButton jButton1=new JButton("按学号查询");JTextArea jTextArea1=new JTextArea();//构造方法public InquireOnXHPanel(){try{//调用初始化方法jbInit();}catch(Exception ex){JOptionPane.showMessageDialog(this,ex+"00");}}//面板初始化方法private void jbInit() throws Exception{//连接数据库//con=DBConnect.getConn();String url="jdbc:sqlserver://localhost:1433; DatabaseName=StudentManager";String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";Class.forName(driver);//加载驱动!con=DriverManager.getConnection(url,"sa","xjw1123");//连接数据库!st=con.createStatement();//框架的布局this.setLayout(null);//设置各组件的大小jLabel1.setFont(new java.awt.Font("宋体",Font.BOLD,16));jLabel1.setBounds(new Rectangle(46,4,222,32));jTextField1.setBounds(new Rectangle(47,37,247,31));jButton1.setBounds(new Rectangle(47,86,247,30));jTextArea1.setBounds(new Rectangle(24,130,305,109));//添加按钮动作事件jButton1.addActionListener(this);//添加组件到面板this.add(jLabel1);this.add(jTextField1);this.add(jTextArea1);this.add(jButton1);}//点击按钮事件public void actionPerformed(ActionEvent e){//获取用户输入的学号String xuehao=jTextField1.getText();//清空文本区原有的内容jTextArea1.setText("");try{//利用st对象执行SQL语句,返回结果集对象ResultSet rs=st.executeQuery("select * from StudentInfo where 学号="+xuehao);//处理结果集:逐条显示结果集中的记录//此处没有使用while,因为学号是唯一的,而姓名不是,所以在InquireOnNamePanel.java里使用了whileif(rs.next()){jTextArea1.append(rs.getString("学号")+" "+rs.getString("姓名")+""+rs.getString("性别")+" "+rs.getDate("出生日期")+" "+rs.getString("籍贯")+"\n");}else{JOptionPane.showMessageDialog(this,"没有这个学号!");}}catch(Exception ex){//利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,"查询失败!+00");}//清空文本行的内容jTextField1.setText("");}}5、系统主界面类的代码package jieweixiao;//导入系统的包import java.awt.*;import java.awt.event.*;import javax.swing.*;//创建主界面类public class MainFrame extends JFrame implements ActionListener {//创建内容面板JPanel contentPane;//创建菜单栏(见267页的图12.1里的菜单栏)JMenuBar jMenuBar1=new JMenuBar();JMenu jMenuFile=new JMenu("文件");JMenuItem jMenuFileExit=new JMenuItem("退出");JMenu jMenu1=new JMenu("学生管理");JMenuItem jMenuItem1=new JMenuItem("添加学生");JMenuItem jMenuItem2=new JMenuItem("删除学生");JMenuItem jMenu3=new JMenuItem("学生信息修改");JMenu jMenu2=new JMenu("学生查询");JMenuItem jMenuItem3=new JMenuItem("按姓名查询");JMenuItem jMenuItem4=new JMenuItem("按学号查询");//创建标签,用于显示信息JLabel jLabel1=new JLabel("欢迎使用学生信息管理系统");JLabel jLabel2=new JLabel("2015-数据库课程设计");//构造方法,创建对象时自动调用public MainFrame(){try{//关闭框架窗口时的默认事件方法setDefaultCloseOperation(EXIT_ON_CLOSE);//调用初始化方法jbInit();}catch(Exception exception){exception.printStackTrace();}}//界面初始化方法private void jbInit() throws Exception{//创建内容面板和其布局contentPane =(JPanel) getContentPane();contentPane.setLayout(null);//框架的大小和其标题setSize(new Dimension(400,320));setTitle("学生信息管理系统");//添加事件监听器jMenuFileExit.addActionListener(this);jMenuItem1.addActionListener(this);jMenuItem2.addActionListener(this);jMenuItem3.addActionListener(this);jMenuItem4.addActionListener(this);jMenu3.addActionListener(this);//添加菜单条setJMenuBar(jMenuBar1);//添加菜单组件到菜单条jMenuBar1.add(jMenuFile);jMenuBar1.add(jMenu1);jMenuBar1.add(jMenu2);jMenuBar1.add(jMenuFileExit);//添加菜单项组件到菜单组件jMenuFile.add(jMenuFileExit);jMenu1.add(jMenuItem1);jMenu1.add(jMenuItem2);jMenu1.add(jMenu3);jMenu2.add(jMenuItem3);jMenu2.add(jMenuItem4);//添加标签到内容面板contentPane.add(jLabel1);contentPane.add(jLabel2);//设置标签组件的大小和字体jLabel1.setFont(new java.awt.Font("宋体",Font.BOLD,20));jLabel1.setBounds(new Rectangle(65,70,275,55));jLabel2.setFont(new java.awt.Font("宋体",Font.BOLD,16));jLabel2.setBounds(new Rectangle(90,150,200,35));}//菜单事件的处理方法public void actionPerformed(ActionEvent actionEvent){//点击“文件”菜单下的“退出”菜单项if(actionEvent.getSource()==jMenuFileExit){System.exit(0);}//点击“学生管理”菜单下的“添加学生”菜单项if(actionEvent.getSource()==jMenuItem1){//创建添加学生面板对象AddStudentPanel add=new AddStudentPanel();//移除主界面上原有的内容this.remove(this.getContentPane());this.setContentPane(add);//令界面可见this.setVisible(true);}//点击“学生管理”菜单下的“删除学生”菜单项if(actionEvent.getSource()==jMenuItem2){//创建删除学生面板对象DeleteStudentPanel delete=new DeleteStudentPanel();//移除主界面上原有的内容this.remove(this.getContentPane());this.setContentPane(delete);//令界面可见this.setVisible(true);}//点击“学生查询”菜单下的“按姓名查询”菜单项if(actionEvent.getSource()==jMenuItem3){//创建“按姓名查询”面板对象InquireOnNamePanel onName=new InquireOnNamePanel();//移除主界面上原有的内容this.remove(this.getContentPane());this.setContentPane(onName);//令界面可见this.setVisible(true);}//点击“学生查询”菜单下的“按学号查询”菜单项if(actionEvent.getSource()==jMenuItem4){//创建“按学号查询”面板对象InquireOnXHPanel onXH=new InquireOnXHPanel();//移除主界面上原有的内容this.remove(this.getContentPane());this.setContentPane(onXH);//令界面可见this.setVisible(true);}if(actionEvent.getSource()==jMenu3){update xiugai=new update();//移除主界面上原有的内容this.remove(this.getContentPane());this.setContentPane(xiugai);//令界面可见this.setVisible(true);}}}6、系统主函数类的代码package jieweixiao;//导入系统的包import java.awt.*;import javax.swing.*;//创建主系统类class Main{public static void main (String[] args){//创建主界面MainFrame frame=new MainFrame();//获取屏幕尺寸Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();//获取主界面的窗体尺寸Dimension frameSize =frame.getSize();//令主界面窗体居中if(frameSize.height>screenSize.height)frameSize.height=screenSize.height;if(frameSize.width>screenSize.width)frameSize.width=screenSize.width;frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.he ight)/2);//令主界面显示frame.setVisible(true);}}。