JAVA数据库学生成绩管理系统实验报告

合集下载

java学生成绩管理系统报告

java学生成绩管理系统报告
power="管理员";
XueSheng frame1=new
XueSheng();
frame1.setResizable(true);
}
else
if((f1.getText()).equals("tang")&&(f2.get
Text()).equals("123456"))
{
JOptionPane.showMessageDialog(null,"
public void actionPerformed(ActionEvent
e)
{
f1.setText("");
f2.setText("");
f1.requestFocus();
}
}
class Close implements ActionListener{
public void actionPerformed(ActionEvent e)
}
class Enter implements ActionListener{ public voidactionPerformed(ActionEvent e)
{
if((f1.getText()).equals("tang")&&(f2.get
Text()).equals("051141"))
{
JOptionPane.showMessageDialog(null,"登录成功!用户权限是管理员");
数据流组成: 课程编号(文本)、课程名称(文本)、 教师(文本)等。
4)数据流名:返回信息 说明:根据用户在学生信息维护的时候所填写的信 息存入了数据库之后。

Java学生管理系统实验报告

Java学生管理系统实验报告

学生管理系统实验报告学期:2018-2019课程名称:《Java程序设计实验》一、实验目的1.掌握JDK的安装与环境变量的配置,熟练使用Eclipse、WindowBulider插件、navicat和MySql。

2.熟练掌握Java基础语法与程序结构,了解面向对象的编程思想,掌握封装、构造方法和访问权限。

3.理解继承的概念和意义,掌握继承关系。

4.理解接口的概念和意义,掌握实现接口的方法。

5.掌握异常处理的方法。

6.掌握Java Swing,学会创建GUI界面,熟练使用MVC结构,掌握事件处理。

7.掌握MySql基础语句,操作MySql数据库。

二、实验内容a.管理系统功能1.实现登录界面与相应功能。

用户填写正确账号与密码并选择用户身份后即可实现登陆并跳转至主界面。

2.实现主界面与相应功能。

此界面功能包括学生管理、成绩管理、教师管理、系统设置和帮助。

其中系统设置包括修改密码,退出账号和关闭系统。

帮助包括关于作者、版本信息和意见反馈。

3.实现管理学生界面与相应功能。

可对学生信息进行添加、查询、修改和删除的操作。

4.实现管理成绩界面与相应功能。

可查询到学生并对其成绩信息进行编辑。

5.实现管理教师界面与相应功能。

可对教师信息进行添加、查询、修改和删除的操作。

6.实现修改密码界面与相应功能。

7.实现用户权限功能。

管理员权限为最高,可操作本系统所有功能。

学生可查看、修改自己的信息,查看自己的成绩,但不得添加、查询、删除他人信息与成绩。

教师可查看、修改自己的信息,查询、编辑学生的成绩信息,但不得添加、修改、删除学生信息,不得添加、查询、修改、删除其他教师信息。

8.实现退出账号、关闭系统、关于作者、版本信息、意见反馈和显示当前用户信息功能。

b.设计思路1.利用WindowBuilder插件可视化编写GUI界面。

2.利用MySql数据库保存学生、教师和管理员的信息,并用navicat管理数据库。

使用MVC框架,有以下几个包:model包(模型)、view包(视图)、images包(图像)、util包(自己定义的工具)、dao包(面向对象的数据库接口)。

JAVA学生成绩管理系统实验报告

JAVA学生成绩管理系统实验报告

中南大学《面向对象技术实验报告》姓名: 学号: 专业班级:指导教师: 学院:实验题目:学生成绩管理系统一、设计目的●掌握面向对象程序设计的基本思路和方法。

●利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

二、内容及要求主要功能如下:1.添加学生信息功能:添加一个学生的基本信息,包括学号、姓名,性别;2.添加课程信息功能:添加一个课程的基本信息,包括课程号、课程名称;3. 添加考试成绩功能:添加考试成绩:输入一个学生的学号,输入一个课程号,输入分数;4.统计功能:输入姓名,能显示某学生各门科目的课程号和分数。

注: 自学《教材》前14章,利用所学到的Java编程知识和编程技巧,设计一个实际的应用软件,初步认识软件设计的基本方法,提高进行工程设计的基本技能及分析、解决实际问题的能力,为后续课程和以后的工程实践打下良好的基础。

三、核心代码1、主类(程序的入口)public class Main {//程序入口,主函数public static void main(String[] args) {Main ma=new Main();//实例化ma.zhiXing();//调用方法}/*** 执行,判断的方法*/public void zhiXing(){System.out.println("\t欢迎来到徐兴豪学生成绩管理系统");//开始执行,致欢迎词operating();}/*** 选择操作和处理操作的方法*/private void operating(){choseOperating();//选择操作dealOperating();//处理操作}/*** 选择操作,可以在每次完成操作之后又出现*/private void choseOperating(){System.out.println("请选择你想要的操作(输入数字并按回车键):");//选择操作System.out.println("0:退出1:添加学生信息 2:添加课程信息 3:添加考试成绩 4:统计");}/*** 处理操作,根据扫描的命令来执行相应的模块*/private void dealOperating(){//生成一个扫描器,扫描用户输入的命令;System.in返回的是一个InputStreamScanner sc=new Scanner(System.in);int i=sc.nextInt();switch (i) {case 0:System.out.println("你已经退出系统了!!");System.exit(0);//退出系统break;case 1:System.out.println("\t欢迎进入<添加学生信息>");addStudent();break;case 2:System.out.println("\t欢迎进入<添加课程信息>");addCourse();break;case 3:System.out.println("\t欢迎进入<添加考试成绩>");addGrade();break;case 4:System.out.println("\t欢迎进入<统计>");tongji();break;default:System.out.println("输入有误,请重新输入");choseOperating();dealOperating();//调用本身,监听再次输入的结果break;}}/*** 添加学生的方法* 扫描需要填入的信息*/private void addStudent() {Scanner sc=new Scanner(System.in);System.out.println("学号:");int sno=sc.nextInt();//int型的值System.out.println("姓名:");String sname=sc.next();//string型的值System.out.println("性别:");String sex=sc.next();int i=addOrNot(sc);if(i==1){//如果添加Student stu=new Student(String.valueOf(sno),sname,sex);//创建一个学生对象String contentStr=stu.contentStr();//返回连接的字符串boolean isSucceed=FileWrite.wirteIn2File(FileConfig.FILE_STUDENT, contentStr);//判断是否插入数据成功if(isSucceed){//如果成功System.out.println("添加数据成功:");//告诉别人成功了,选择其他操作System.out.println();//空一格operating();}else{//添加数据不成功,重新输入System.out.println("添加失败,请重新加入");addStudent();}}}/*** 添加课程的方法* 扫描需要填入的信息*/private void addCourse() {Scanner sc=new Scanner(System.in);System.out.println("课程编号:");int cno=sc.nextInt();//int型的值System.out.println("课程名称:");String cname=sc.next();//string型的值int i=addOrNot(sc);if(1==i){//如果添加Course cou=new Course(String.valueOf(cno),cname);//创建一个课程对象String contentStr=cou.contentStr();//要插入的字符串boolean isSucceed=FileWrite.wirteIn2File(FileConfig.FILE_COURSE, contentStr);//判断是否插入数据成功if(isSucceed){//如果成功System.out.println("添加数据成功:");//告诉别人成功了,选择其他操作System.out.println();//空一格operating();}else{//添加数据不成功,重新输入System.out.println("添加失败,请重新加入");addCourse();}}}/*** 添加成绩的方法* 扫描需要填入的信息*/private void addGrade() {Scanner sc=new Scanner(System.in);System.out.println("学生学号:");int sno=sc.nextInt();//int型的值System.out.println("课程编号:");int cno=sc.nextInt();//int型的值System.out.println("学科成绩:");float grade=sc.nextFloat();//int型的值int i=addOrNot(sc);if(1==i){//如果添加Grade gra=newGrade(String.valueOf(sno),String.valueOf(cno),String.valueOf(grade));//创建一个成绩对象String contentStr=gra.contentStr();//要插入的字符串boolean isSucceed=FileWrite.wirteIn2File(FileConfig.FILE_GRADE, contentStr);//判断是否插入数据成功if(isSucceed){//如果成功System.out.println("添加数据成功:");//告诉别人成功了,选择其他操作System.out.println();//空一格operating();}else{//添加数据不成功,重新输入System.out.println("添加失败,请重新加入");addGrade();}}}/*** 统计方法* 扫描需要填入的信息* 输入学生姓名,显示各门科目的课程号cno和成绩grade*/private void tongji() {System.out.println("请输入需要统计的学生的姓名:");Scanner sc=new Scanner(System.in);String sname=sc.next();int result=isStuIn(sname);if(0==result){System.out.println("该姓名不存在,请返回主目录创建该学生!!!");}else if(-1==result){System.out.println("该姓名存在,但是没有相关的课程信息,请返回主目录创建成绩等信息!!!");}else if(1==result){System.out.println("恭喜恭喜,查找成功,请选择其他操作!!!");}operating();//选择操作}/*** 判断是否列表中有这个学生的方法* 除非存在该姓名,并且* 返回值 0:不存在该姓名 1:正常可以输出* -1,存在姓名,但是不存在相应的数据*/public int isStuIn(String sname){//获得学生列表ArrayList<Student> stuList=FileRead.getStuList();for(int i=0;i<stuList.size();i++){if(stuList.get(i).getSname().equals(sname)){//如果存在该姓名String sno=stuList.get(i).getSno();//得到该学生的序号if(!isSnoInGra(sno)){//如果返回false说明有该学生姓名,没有相关的课程信息return -1;}elsereturn 1;}}return 0;}/***判断该学号是否在成绩列表中(要查的学生在学生列表中)* @param sno* @return*/public boolean isSnoInGra(String sno){//获得成绩列表ArrayList<Grade> graList=FileRead.getGraList();ArrayList<TongJi> tonList=new ArrayList<TongJi>();for(int i=0;i<graList.size();i++){if(sno.equals(graList.get(i).getSno())){//如果两个列表的学号相等则遍历该学生的信息TongJi tj=newTongJi(graList.get(i).getCno(),graList.get(i).getGrade());tonList.add(tj);//加入到列表}}if(tonList.size()>0){//如果有数据,则遍历打印出来//打印需要的信息System.out.println("----结果----");for(int i=0;i<tonList.size();i++){System.out.println("课程编号:"+tonList.get(i).getCno()+" 学科成绩:"+tonList.get(i).getGrade());}System.out.println();return true;}else//没有数据return false;}/*** 是否添加学生,课程,成绩(3者可公用)* 1表示添加,0表示取消*/private int addOrNot(Scanner sc){System.out.println("输入1确认添加,输入0取消添加");int i=sc.nextInt();if(1==i){System.out.println("确认添加");}else if(0==i){//若取消添加则返回上机System.out.println("取消添加");operating();}else{System.out.println("输入有误,请重新输入");addOrNot(sc);}return i;}}2、数据类(定义实现了各功能)(1)添加课程public class Course {private String cno;//课程号private String cname;//课程名//构造函数public Course() {}public Course(String cno, String cname) {o = cno;ame = cname;}/*** 用于将Course类的属性的值封装在一个字符串内以便添加到文件中* @return:要写入文件的字符串* 写成以下格式以便利用String的正则匹配分解得到实体*/public String contentStr(){return cno+","+cname+"\n";}//覆盖toString方法,便于打印测试public String toString() {return"Course [cname=" + cname + ", cno=" + cno + "]";}//get和set方法public String getCno() {return cno;}public void setCno(String cno) {o = cno;}public String getCname() {return cname;}public void setCname(String cname) {ame = cname;}}(2)添加成绩public class Grade {private String sno;//学生学号private String cno;//课程编号private String grade;//成绩//构造函数public Grade() {}public Grade(String sno, String cno, String grade) {this.sno = sno;o = cno;this.grade = grade;}/*** 依据从文件中读取的一行字符串解剖成一个学生实体对象* @param contentStr*/public Grade(String contentStr){String[] field=contentStr.split(",");this.setSno(field[0]);this.setCno(field[1]);this.setGrade(field[2]);}/*** 用于将Grade类的属性的值封装在一个字符串内以便添加到文件中* @return:要写入文件的字符串* 写成以下格式以便利用String的正则匹配分解得到实体*/public String contentStr(){return sno+","+cno+","+grade+"\n";}//覆盖toString方法,便于打印测试public String toString() {return"Grade [cno=" + cno + ", grade=" + grade + ", sno=" + sno + "]";}//get和set方法public String getSno() {return sno;}public void setSno(String sno) {this.sno = sno;}public String getCno() {return cno;}public void setCno(String cno) {o = cno;}public String getGrade() {return grade;}public void setGrade(String grade) {this.grade = grade;}}(3)添加学生信息public class Student {private String sno;//学号private String sname;//学生姓名private String sex;//性别//构造函数public Student(){}public Student(String sno, String sname, String sex) { this.sno = sno;this.sname = sname;this.sex = sex;}/*** 依据从文件中读取的一行字符串解剖成一个学生实体对象* @param contentStr*/public Student(String contentStr){String[] field=contentStr.split(",");this.setSno(field[0]);this.setSname(field[1]);this.setSex(field[2]);}/*** 用于将student类的属性的值封装在一个字符串内以便添加到文件中* @return:要写入文件的字符串* 写成以下格式以便利用String的正则匹配分解得到实体*/public String contentStr(){return sno+","+sname+","+sex+"\n";}//覆盖toString方法,便于打印测试public String toString() {return"Student [sex=" + sex + ", sname=" + sname + ", sno=" + sno + "]";}// set和get方法public String getSno() {return sno;}public void setSno(String sno) {this.sno = sno;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}}(4)统计查成绩public class TongJi {private String cno;//课程编号private String grade;//成绩//重构函数public TongJi(String cno, String grade) {o = cno;this.grade = grade;}@Overridepublic String toString() {return"TongJi [cno=" + cno + ", grade=" + grade + "]";}//get和set方法public String getCno() {return cno;}public void setCno(String cno) {o = cno;}public String getGrade() {return grade;}public void setGrade(String grade) {this.grade = grade;}}3、FileIO类(对信息输入到文件和从文件读取数据)(1)写文件public class FileWrite {/*** 将内容写入文件的方法* @param filePath:要写入的目标文件* @param contentStr:要写入的内容* @return:写入的成败*/public static boolean wirteIn2File(String filePath,String contentStr){ File file=new File(filePath);//根据路劲实例化文件OutputStream ous;try {ous = new FileOutputStream(file,true);//true表示能够在文件的尾部追加内容DataOutputStream dos=new DataOutputStream(ous);//封装一下以便写入byte[] data=contentStr.getBytes();//得到字符串的字节dos.write(data, 0, data.length);//写入} catch (Exception e) {e.printStackTrace();return false;//若有什么异常则表示失败}return true;}}(2)读文件public class FileRead {/*** 获得学生信息列表的方法* @return*/public static ArrayList<Student> getStuList(){ArrayList<Student> stuList=new ArrayList<Student>();//创建链表对象DataInputStream dis=readFromFile(FileConfig.FILE_STUDENT);//得到文件数据输入流对象String txt;try {txt = dis.readLine();//一行一行的读while(txt!=null){Student stu=new Student(txt);//根据构造函数解剖成一个学生实体对象stuList.add(stu);//加入到列表txt = dis.readLine();//不为空就继续读取字符串}} catch (IOException e) {e.printStackTrace();}return stuList;}public static ArrayList<Grade> getGraList(){ArrayList<Grade> graList=new ArrayList<Grade>();DataInputStream dis=readFromFile(FileConfig.FILE_GRADE);String txt;try {txt = dis.readLine();while(txt!=null){Grade stu=new Grade(txt);graList.add(stu);txt = dis.readLine();}} catch (IOException e) {e.printStackTrace();}return graList;}/*** 依据文件路劲获得封装后的数据输入流的方法* @param filePath* @return*/public static DataInputStream readFromFile(String filePath){DataInputStream dis;File file=new File(filePath);try {InputStream ins=new FileInputStream(file);dis=new DataInputStream(ins);//传入InputStream对象实例化,得到数据流} catch (Exception e) {e.printStackTrace();return null;}return dis;}}四、运行结果1、添加学生信息2、添加课程信息3、添加成绩信息五、完整源代码package xxh.main;import java.util.ArrayList; import java.util.Scanner;import xxh.FileIO.FileConfig; import xxh.FileIO.FileRead; import xxh.FileIO.FileWrite; import xxh.datas.Course; import xxh.datas.Grade; import xxh.datas.Student; import xxh.datas.TongJi;/*** 程序入口类**/public class Main {//程序入口,主函数public static void main(String[] args) {Main ma=new Main();//实例化ma.zhiXing();//调用方法}/*** 执行,判断的方法*/public void zhiXing(){System.out.println("\t欢迎来到徐兴豪学生成绩管理系统");//开始执行,致欢迎词operating();}/*** 选择操作和处理操作的方法*/private void operating(){choseOperating();//选择操作dealOperating();//处理操作}/*** 选择操作,可以在每次完成操作之后又出现*/private void choseOperating(){System.out.println("请选择你想要的操作(输入数字并按回车键):");//选择操作System.out.println("0:退出1:添加学生信息 2:添加课程信息 3:添加考试成绩 4:统计");}/*** 处理操作,根据扫描的命令来执行相应的模块*/private void dealOperating(){//生成一个扫描器,扫描用户输入的命令;System.in返回的是一个InputStreamScanner sc=new Scanner(System.in);int i=sc.nextInt();switch (i) {case 0:System.out.println("你已经退出系统了!!");System.exit(0);//退出系统break;case 1:System.out.println("\t欢迎进入<添加学生信息>");addStudent();break;case 2:System.out.println("\t欢迎进入<添加课程信息>");addCourse();break;case 3:System.out.println("\t欢迎进入<添加考试成绩>");addGrade();break;case 4:System.out.println("\t欢迎进入<统计>");tongji();break;default:System.out.println("输入有误,请重新输入");choseOperating();dealOperating();//调用本身,监听再次输入的结果break;}}/*** 添加学生的方法* 扫描需要填入的信息*/private void addStudent() {Scanner sc=new Scanner(System.in);System.out.println("学号:");int sno=sc.nextInt();//int型的值System.out.println("姓名:");String sname=sc.next();//string型的值System.out.println("性别:");String sex=sc.next();int i=addOrNot(sc);if(i==1){//如果添加Student stu=new Student(String.valueOf(sno),sname,sex);//创建一个学生对象String contentStr=stu.contentStr();//返回连接的字符串boolean isSucceed=FileWrite.wirteIn2File(FileConfig.FILE_STUDENT, contentStr);//判断是否插入数据成功if(isSucceed){//如果成功System.out.println("添加数据成功:");//告诉别人成功了,选择其他操作System.out.println();//空一格operating();}else{//添加数据不成功,重新输入System.out.println("添加失败,请重新加入");addStudent();}}}/*** 添加课程的方法* 扫描需要填入的信息*/private void addCourse() {Scanner sc=new Scanner(System.in);System.out.println("课程编号:");int cno=sc.nextInt();//int型的值System.out.println("课程名称:");String cname=sc.next();//string型的值int i=addOrNot(sc);if(1==i){//如果添加Course cou=new Course(String.valueOf(cno),cname);//创建一个课程对象String contentStr=cou.contentStr();//要插入的字符串boolean isSucceed=FileWrite.wirteIn2File(FileConfig.FILE_COURSE, contentStr);//判断是否插入数据成功if(isSucceed){//如果成功System.out.println("添加数据成功:");//告诉别人成功了,选择其他操作System.out.println();//空一格operating();}else{//添加数据不成功,重新输入System.out.println("添加失败,请重新加入");addCourse();}}}/*** 添加成绩的方法* 扫描需要填入的信息*/private void addGrade() {Scanner sc=new Scanner(System.in);System.out.println("学生学号:");int sno=sc.nextInt();//int型的值System.out.println("课程编号:");int cno=sc.nextInt();//int型的值System.out.println("学科成绩:");float grade=sc.nextFloat();//int型的值int i=addOrNot(sc);if(1==i){//如果添加Grade gra=newGrade(String.valueOf(sno),String.valueOf(cno),String.valueOf(grade));//创建一个成绩对象String contentStr=gra.contentStr();//要插入的字符串boolean isSucceed=FileWrite.wirteIn2File(FileConfig.FILE_GRADE, contentStr);//判断是否插入数据成功if(isSucceed){//如果成功System.out.println("添加数据成功:");//告诉别人成功了,选择其他操作System.out.println();//空一格operating();}else{//添加数据不成功,重新输入System.out.println("添加失败,请重新加入");addGrade();}}}/*** 统计方法* 扫描需要填入的信息* 输入学生姓名,显示各门科目的课程号cno和成绩grade*/private void tongji() {System.out.println("请输入需要统计的学生的姓名:");Scanner sc=new Scanner(System.in);String sname=sc.next();int result=isStuIn(sname);if(0==result){System.out.println("该姓名不存在,请返回主目录创建该学生!!!");}else if(-1==result){System.out.println("该姓名存在,但是没有相关的课程信息,请返回主目录创建成绩等信息!!!");}else if(1==result){System.out.println("恭喜恭喜,查找成功,请选择其他操作!!!");}operating();//选择操作}/*** 判断是否列表中有这个学生的方法* 除非存在该姓名,并且* 返回值 0:不存在该姓名 1:正常可以输出* -1,存在姓名,但是不存在相应的数据*/public int isStuIn(String sname){//获得学生列表ArrayList<Student> stuList=FileRead.getStuList();for(int i=0;i<stuList.size();i++){if(stuList.get(i).getSname().equals(sname)){//如果存在该姓名String sno=stuList.get(i).getSno();//得到该学生的序号if(!isSnoInGra(sno)){//如果返回false说明有该学生姓名,没有相关的课程信息return -1;}elsereturn 1;}}return 0;}/***判断该学号是否在成绩列表中(要查的学生在学生列表中)* @param sno* @return*/public boolean isSnoInGra(String sno){//获得成绩列表ArrayList<Grade> graList=FileRead.getGraList();ArrayList<TongJi> tonList=new ArrayList<TongJi>();for(int i=0;i<graList.size();i++){if(sno.equals(graList.get(i).getSno())){//如果两个列表的学号相等则遍历该学生的信息TongJi tj=newTongJi(graList.get(i).getCno(),graList.get(i).getGrade());tonList.add(tj);//加入到列表}}if(tonList.size()>0){//如果有数据,则遍历打印出来//打印需要的信息System.out.println("----结果----");for(int i=0;i<tonList.size();i++){System.out.println("课程编号:"+tonList.get(i).getCno()+" 学科成绩:"+tonList.get(i).getGrade());}System.out.println();return true;}else//没有数据return false;}/*** 是否添加学生,课程,成绩(3者可公用)* 1表示添加,0表示取消*/private int addOrNot(Scanner sc){System.out.println("输入1确认添加,输入0取消添加");int i=sc.nextInt();if(1==i){System.out.println("确认添加");}else if(0==i){//若取消添加则返回上机System.out.println("取消添加");operating();}else{System.out.println("输入有误,请重新输入");addOrNot(sc);}return i;}}package xxh.datas;/*** 课程实体类**/public class Course {private String cno;//课程号private String cname;//课程名//构造函数public Course() {}public Course(String cno, String cname) {o = cno;ame = cname;}/*** 用于将Course类的属性的值封装在一个字符串内以便添加到文件中 * @return:要写入文件的字符串* 写成以下格式以便利用String的正则匹配分解得到实体*/public String contentStr(){return cno+","+cname+"\n";}//覆盖toString方法,便于打印测试public String toString() {return"Course [cname=" + cname + ", cno=" + cno + "]";}//get和set方法public String getCno() {return cno;}public void setCno(String cno) {o = cno;}public String getCname() {return cname;}public void setCname(String cname) {ame = cname;}}package xxh.datas;/*** 考试成绩实体类**/public class Grade {private String sno;//学生学号private String cno;//课程编号private String grade;//成绩//构造函数public Grade() {}public Grade(String sno, String cno, String grade) { this.sno = sno;o = cno;this.grade = grade;}/*** 依据从文件中读取的一行字符串解剖成一个学生实体对象* @param contentStr*/public Grade(String contentStr){String[] field=contentStr.split(",");this.setSno(field[0]);this.setCno(field[1]);this.setGrade(field[2]);}/*** 用于将Grade类的属性的值封装在一个字符串内以便添加到文件中* @return:要写入文件的字符串* 写成以下格式以便利用String的正则匹配分解得到实体*/public String contentStr(){return sno+","+cno+","+grade+"\n";}//覆盖toString方法,便于打印测试public String toString() {return"Grade [cno=" + cno + ", grade=" + grade + ", sno=" + sno + "]";}//get和set方法public String getSno() {return sno;}public void setSno(String sno) {this.sno = sno;}public String getCno() {return cno;}public void setCno(String cno) {o = cno;}public String getGrade() {return grade;}public void setGrade(String grade) {this.grade = grade;}}package xxh.datas;/*** 学生信息实体类**/public class Student {private String sno;//学号private String sname;//学生姓名private String sex;//性别//构造函数public Student(){}public Student(String sno, String sname, String sex) {this.sno = sno;this.sname = sname;this.sex = sex;}/*** 依据从文件中读取的一行字符串解剖成一个学生实体对象* @param contentStr*/public Student(String contentStr){String[] field=contentStr.split(",");this.setSno(field[0]);this.setSname(field[1]);this.setSex(field[2]);}/*** 用于将student类的属性的值封装在一个字符串内以便添加到文件中* @return:要写入文件的字符串* 写成以下格式以便利用String的正则匹配分解得到实体*/public String contentStr(){return sno+","+sname+","+sex+"\n";}//覆盖toString方法,便于打印测试public String toString() {return"Student [sex=" + sex + ", sname=" + sname + ", sno=" + sno + "]";}// set和get方法public String getSno() {return sno;}public void setSno(String sno) {this.sno = sno;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}}package xxh.datas;/*** 统计类* 其实可以用grade类,但是为了区分,还是单独用个类的好**/public class TongJi {private String cno;//课程编号private String grade;//成绩//重构函数public TongJi(String cno, String grade) {o = cno;this.grade = grade;}@Overridepublic String toString() {return"TongJi [cno=" + cno + ", grade=" + grade + "]";}//get和set方法public String getCno() {return cno;}public void setCno(String cno) {o = cno;}public String getGrade() {return grade;}public void setGrade(String grade) {this.grade = grade;}}package xxh.FileIO;/*** 文件路径的参数类*若以后要更换文件路径,可在这里修改*/public class FileConfig {//文件的路径public final static String FILE_STUDENT="E:\\student.txt"; //学生public final static String FILE_COURSE="E:\\course.txt"; //课程public final static String FILE_GRADE="E:\\grade.txt"; //成绩}package xxh.FileIO;import java.io.DataInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import xxh.datas.Grade;import xxh.datas.Student;/*** 读取文件类**/public class FileRead {/*** 获得学生信息列表的方法* @return*/public static ArrayList<Student> getStuList(){ArrayList<Student> stuList=new ArrayList<Student>();//创建链表对象DataInputStream dis=readFromFile(FileConfig.FILE_STUDENT);//得到文件数据输入流对象String txt;try {txt = dis.readLine();//一行一行的读while(txt!=null){Student stu=new Student(txt);//根据构造函数解剖成一个学生实体对象stuList.add(stu);//加入到列表txt = dis.readLine();//不为空就继续读取字符串}} catch (IOException e) {e.printStackTrace();}return stuList;}public static ArrayList<Grade> getGraList(){ArrayList<Grade> graList=new ArrayList<Grade>();DataInputStream dis=readFromFile(FileConfig.FILE_GRADE);String txt;try {txt = dis.readLine();while(txt!=null){Grade stu=new Grade(txt);graList.add(stu);txt = dis.readLine();}} catch (IOException e) {e.printStackTrace();}return graList;}/*** 依据文件路劲获得封装后的数据输入流的方法* @param filePath* @return*/public static DataInputStream readFromFile(String filePath){ DataInputStream dis;File file=new File(filePath);try {InputStream ins=new FileInputStream(file);dis=new DataInputStream(ins);//传入InputStream对象实例化,得到数据流} catch (Exception e) {e.printStackTrace();return null;}return dis;}}package xxh.FileIO;import java.io.DataOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;/*** 将内容写进文件的处理类**/public class FileWrite {/*** 将内容写入文件的方法* @param filePath:要写入的目标文件* @param contentStr:要写入的内容* @return:写入的成败*/public static boolean wirteIn2File(String filePath,String contentStr){ File file=new File(filePath);//根据路劲实例化文件OutputStream ous;try {ous = new FileOutputStream(file,true);//true表示能够在文件的尾部追加内容DataOutputStream dos=new DataOutputStream(ous);//封装一下以便写入byte[] data=contentStr.getBytes();//得到字符串的字节dos.write(data, 0, data.length);//写入} catch (Exception e) {e.printStackTrace();return false;//若有什么异常则表示失败}return true;}}。

java学生信息管理系统实验报告(共10篇)

java学生信息管理系统实验报告(共10篇)

java学生信息管理系统实验报告(共10篇)JAVA学生信息管理系统实验报告JAVA程序设计实验报告学号:姓名:班级:实验、Java课程设计--------学生信息管理系统一、实验目的1.掌握Java基本语法2.理解面向对象编程特点3.理解Java I/O编程4.掌握Java图形界面编程5.掌握Java与不同数据库进行连接二、预习内容Java的基本语法知识、类和对象、Java Swing图形界面编程、Java I/O处理以及Java与数据库连接操作三、实验设备与环境通过局域网互联,安装Windows 2000/XP操作系统环境的JDK1.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(超级管理员登录);篇二:java学生成绩管理系统实验报告JAVA课内实验报告学生成绩管理系统一. 实验目的及实验环境实验目的:在如今的高校日常管理当中,学生成绩管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生成绩管理系统更具有非常大的实际应用意义。

学生管理系统JAVA实验报告

学生管理系统JAVA实验报告

实验报告学生信息管理系统学号:XXXXXXXX:XXXXXX班级:XXXXXXXXXXXXXXX摘要本文着重阐述了“学生信息管理系统”的开发过程。

对于设计思想和设计流程也做出了全面的叙述,在数据库创建思想以及各个数据表之间的具体关联等方面也做出了详细说明,并且具体剖析了系统各个功能的实现过程以及详细设计过程,在绘制简单系统功能模块图的同时,力求更加清晰地表明设计思想以及对整个学生模块程序设计的规划及具体实现过程。

本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员和用户的工作负担,提高了学生管理的工作效率和学校的信息化的水平。

AbstractThis article focuses on the student information management system---student module for the development process. Introduced a system for environment and development tools, the design concept and design process has also made a comprehensive narrative, in the database to create ideological and various data tables specific links between the areas has also made detailed and specific analysis of the The various functions of the system to achieve process and detailed design process, drawing a simple system function modules map at the same time, to more clearly show that design thinking and the whole process of planning and design of concrete realization.This system has many features: system fully functional, easy to use simple user-friendly user interface, complete security settings, greatly reducing the operators and users of the burden and improve the efficiency of the management of students and school information Level.1.实验目的:编写学生信息管理系统程序:(1)基本要求:学生信息(包括学号、、性别、年龄、家庭住址、电话等)的添加,删除,修改,查询(包括按学号,按姓名等查询)。

java学生成绩管理系统课程设计报告

java学生成绩管理系统课程设计报告

目录1设计目的及内容要求 (1)2 系统总体设计 (1)3 系统详细设计 (2)4 运行结果及分析 (18)致谢 (22)参考文献 (22)简单学生成绩管理系统的设计与实现1设计目的及内容要求1、设计目的:巩固和加深学生对高级语言程序设计课程的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,提高运用java语言解决实际问题的能力。

2、内容要求实现学生成绩的管理(增、删、改、查询、持久化、成绩排序、成绩统计等功能),在文件中增加、删除、学生信息,根据学号查询、修改学生信息,统计功能求每个人的总分并按从高到低排序,通过这些操作对文件中的信息保存。

2 系统总体设计成功登陆系统以后,出现成绩管理界面,系统初始化,可对学生成绩进行增加、删除、查询、修改、统计,进入相应界面进行成绩管理,退出系统自动保存本次操作内容,保存信息。

简易流程图:3 系统详细设计①创建Student类,设置变量及对应方法Student.java代码:package keshe;import java.io.Serializable;public class Student implements Serializable{private String name;private int num;private int yuwen;private int shuxue;private int java;private int sum=0;public Student(){}public Student(String name, int num, int yuwen, int shuxue, int java) {super(); = name;this.num = num;this.yuwen = yuwen;this.shuxue = shuxue;this.java = java;}public String getName() {return name;}public void setName(String name) { = name;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}public int getYuwen() {return yuwen;}public void setYuwen(int yuwen) {this.yuwen = yuwen;}public int getShuxue() {return shuxue;}public void setShuxue(int shuxue) {this.shuxue = shuxue;}public int getJava() {return java;}public void setJava(int java) {this.java = java;}public int getSum() {return sum;}public void setSum(int sum) {this.sum = sum;}public String toString() {return"Student [name=" + name + ", num=" + num + ", yuwen=" + yuwen+ ", shuxue=" + shuxue + ", java=" + java + ", sum=" + sum+ "]";}}②Student管理类StuC,创建对应方法,实现对Student对象的操作(增、删、改、查询、持久化、成绩排序、成绩统计等功能)供其对象调用。

java成绩管理系统的实训总结报告

java成绩管理系统的实训总结报告

java成绩管理系统的实训总结报告Java成绩管理系统实训总结报告一、实训目标本次实训的目标是利用Java语言开发一个成绩管理系统,该系统能够实现对学校成绩的录入、查询、修改和删除等基本操作。

通过本次实训,我希望能够加深对Java语言的了解,提高编程能力,并熟悉软件开发的基本流程。

二、实训内容在本次实训中,我主要完成了以下几个部分的工作:1. 需求分析:首先对成绩管理系统的需求进行了详细的分析,确定了系统的基本功能和数据结构。

2. 系统设计:根据需求分析的结果,设计了数据库表结构和系统的主要功能模块。

3. 系统实现:使用Java语言实现了系统的各个功能模块,包括界面设计和后台逻辑处理。

4. 测试与调试:对系统进行了详细的测试,确保各个功能都能正常运行,并对出现的问题进行了调试和修复。

三、遇到的问题和解决方案在实训过程中,我遇到了以下几个问题:1. 数据库连接问题:最初在连接数据库时,出现了连接失败的情况。

经过检查,发现是连接字符串的配置出现了错误。

通过仔细检查并参考相关资料,最终解决了这个问题。

2. 界面设计问题:在界面设计中,最初版本的界面不够美观和易用。

通过学习和使用相关的UI设计工具和框架,我对界面进行了优化,使其更加美观和易用。

3. 数据验证问题:在处理数据时,没有对用户输入的数据进行有效的验证,导致出现了一些异常情况。

我通过添加数据验证代码,确保了数据的合法性和准确性。

四、实训收获与反思通过本次实训,我深入了解了Java语言在软件开发中的应用,提高了编程能力,并熟悉了软件开发的基本流程。

同时,我也意识到了在开发过程中需要注意的一些问题,如需求分析的准确性、代码的规范性和可维护性等。

在未来的学习和工作中,我将继续努力提高自己的技能和能力,以更好地适应社会和企业的需求。

此外,我也意识到了团队合作的重要性。

在实训过程中,我们需要相互协作、共同解决问题,才能按时完成项目。

在未来,我将更加注重团队合作,发挥每个人的优势,提高工作效率。

学生考试成绩分析JAVA程序报告

学生考试成绩分析JAVA程序报告

学生考试成绩分析JAVA程序一、实验目的(1)掌握图形用户界面的基本设计方法。

(2)掌握事件驱动程序设计的方法。

(3)掌握JA V A中绘图的方法。

(4)掌握面向对象程序建立的过程。

(5)进一步掌握UML中类图的使用。

二、实验过程1、系统分析题目的要求大概可分为3个模块:要实现这个程序其实就是构建一个面向对象的过程,有以下步骤:1.确定、标识系统的类。

2.描述每个类的属性和方法。

3.建立类之间的关系。

4.创建类。

第一步是为系统确定、标识类。

有许多方法可以为系统确定类,一种方法是研究系统的运转机制,并且选择一定数量有用的实例或场景。

第二步是对已经确定的每个类描述其属性和方法,它们可以用UML图表示,如上图所示。

第三步是建立类之间的关系。

关系来源于欠两步的分析,这三步是相互关联的。

当划分的时候,也需要思考它们之间的关系。

建立对象之间的关系有助于理解对象之间的相互作用。

一个面向对象系统由相互关联、相互合作的对象组合而成。

上图说明了本例中类的关系第四步是编写类的代码。

程序虽然较长,但是大部分代码是get和set方法。

一旦对象确定下来,就可以通过分析系统的需求和方案来定义他的属性和方法。

通常,提供完整的get方法和set方法是一个很好的习惯。

当前的项目也许不需要这些方法,但是其他项目可能需要,设计类是应该考虑到今后的项目可能使用它们。

2、系统设计三、系统实现:该程序主要创建了五介类:Scores类,要实现这个程序,我们除了要构建出不同的类外,重要的是创建界面GUI,同时实现多个界面GUI同时显示出来,我们还要很熟悉JAVA中的创建各种界面GUI的类。

在实现GUI的类时,我们要注意实现接口。

实现基本数据输入,考试成绩输入,成绩查询都是要求我们熟悉各种GUI 的类同时要懂得创建GUI的类;在实现成绩分析时,分数分析和分数段分析我们可以用swing包中的JoptionPane实现,图形分析,要注意JAVA的坐标。

Java学生成绩管理系统报告

Java学生成绩管理系统报告

一、实验题目基于JSP/Servlet设计、实现一个课程管理Web应用程序,该程序实现如下功能。

❖有登录页面,登录用帐号密码保存在数据库中,合法登录后进入学习成绩管理页面。

否则给出错误提示。

❖在学习成绩管理页面可添加一门课程的成绩,添加内容包括:课程编号、课程名称、学生姓名、课程成绩等内容。

添加后信息保存在数据库中。

❖可根据课程名称和学生姓名进行查询。

❖可删除和修改课程信息的内容。

(即删除一条课程记录或修改课程记录中的某一字段)。

二、程序设计1.数据库设计:经过分析可知,改程序主要有如下的实体对象,用户、课程、学生三个实体对象。

因此该数据库主要有四张表,分别如下:连接数据库的类设计如下:package database;import java.sql.Connection;import java.sql.DriverManager;public class DataBaseConnection {public static Connection createDBConn(){try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connectionconn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=Student_system","supiyun","supiyun1989828");return conn;}catch(Exception e){e.printStackTrace();return null;}}}2.程序界面设计:通过程序的要求可知该程序有jsp页面或Html页面以及servlet组成。

Jsp 主要负责与用户的交互实现视图页面的功能,而servlet主要负责页面跳转控制以及数据处理的功能。

JAVA程序课程设计_一个简单的学生成绩管理信息系统

JAVA程序课程设计_一个简单的学生成绩管理信息系统
功能组件 4 个按钮、1 个背景、1 个标签文本、1 个面板 功能实现 查询数据、添加数据、删除数据、修改数据 实现过程 对按钮添加监控,共有 4 个监控事件,实现按钮事件为创建对应 得得得得得得得功能的类对象,出现相应的功能窗口。 截图如下:
-4-
1.主界面
3. 算法实现及分析 (内容:要求小四号字体)
-7-
(7)没有退出的按钮,尚未实现退出语句。
5. 设计体会与小结
(内容:要求小四号字体)
选择“一个简单的学生成绩管理系统”作为这一次的课题,是因为这个课题 主要运用的是 Java 与数据库的相关知识,而这个学期,我们正好学习了这两门 课程,在这个课题中 Java 与数据库知识的结合,是对这两个课程理解学习成果 的一个双重考察。
query=new JButton("查询数据"); query.addActionListener(new queryActionPerformed()); query.setBackground(Color.green);
modify=new JButton("修改数据"); modify.setBackground(Color.green); modify.addActionListener(new modifyActionPerformed());
-9-
附录(源代码)
(内容:要求小五号字体)
一、架包
package com.tarena.util;
import java.sql.Connection; import java.sql.DriverManager;
public class ConnectionUtil { public static Connection getConnection()throws Exception{ Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/JSD1407"; String user="root"; String password="1234"; Connection conn=DriverManager.getConnection(url,user,password); return conn; } public static void main(String[] args) throws Exception{ System.out.println(getConnection()); }

java学生成绩管理系统实验报告

java学生成绩管理系统实验报告

JAVA课内实验报告学生成绩管理系统一.实验目的及实验环境实验目的:在如今的高校日常管理当中,学生成绩管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生成绩管理系统更具有非常大的实际应用意义。

但是,我们看到,其实我们学校的学生成绩管理系统在很多方面作的不是很完善,功能方面也有欠缺。

随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。

几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。

该课程设计旨在设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。

要方便学生进行成绩查询,通过该课程设计,应该达到把java理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。

实验环境:JAVA开发工具MyEclipse 8.5Microsoft SQL Server 2005二.实验内容在JAVA开发工具MyEclipse 8.5和Microsoft SQL Server 2005环境下,运用学到的java和数据库理论知识,设计一个具有简单的增加`删除`修改`查询操作的学生成绩管理系统。

三.方案设计1、系统功能设计要求此系统实现如下功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化。

(2)通过用户名和密码登录系统,查询、删除、修改和增加课程基本资料`学生所选课程`用户密码等功能。

容易地完成学生成绩信息及学生信息的基本操作。

(3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。

2、系统模块设计学生成绩管理系统大体可以分成两大模块:一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;二是课程管理模块,在该模块中应该包含有对学生成绩信息的查询和处理;可以得到的系统流程图如下图2.1所示:图2.1 学生成绩管理系统的系统流程图3、数据字典数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。

学生成绩管理系统综合实验报告

学生成绩管理系统综合实验报告

《Java高级编程》课程报告学生成绩管理系统小组成员及分工一、实验环境操作系统:Windows7编程环境:Eclipse二、实验内容与完成情况1.登录用户(1)登录用户:有3种不同的方式登录,管理员登录、教师登录和学生。

每个用户都有自己的账号和密码,通过输入账号和密码来登录,输入账号和密码后会检查是否合理,即账号只能由数学组成,密码只能数字和字母组成,否则会提示错误登录不成功;然后再查找数据库,如果找到匹配的账号和密码,就登录成功,否则登录不成功。

登录成功后会添加相应的功能,管理员可以增删改查学生,教师可以修改和查找学生,学生只能查找学生。

(2)流程图:(3)代码:String s1 = textField.getText();String s2 = passwordField.getText();StudentDao dao = new StudentDao();boolean result = false;if(radioButton.isSelected()==true){ //管理员登录result = dao.seachadministrators(s1, s2);if(result){ //登录成功menuEdit.removeAll();menuEdit.add(AddItem);menuEdit.add(SDEItem);}}else if(radioButton_1.isSelected()==true){ //教师登录result = dao.seachteacher(s1, s2);if(result){ //登录成功menuEdit.removeAll();SDEItem.setText("改查学生");menuEdit.add(SDEItem);}}else if(radioButton_2.isSelected()==true){ //学生登录result = dao.seachstudent(s1, s2);if(result){ //登录成功menuEdit.removeAll();SDEItem.setText("查找学生");menuEdit.add(SDEItem);}}2.增加学生(1)增加学生:输入学生姓名、学号、性别、班别、成绩等信息,判断输入的信息是否为空,如果为空提示错误(如姓名为空,就提示姓名不能为空,其他的一样),增加学生失败。

JAVA数据库学生成绩管理系统实验报告

JAVA数据库学生成绩管理系统实验报告

J A V A数据库学生成绩管理系统实验报告文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]实训报告实训名称:学生成绩管理系统系(部):专业班级:学生姓名:学号:指导教师:完成日期:南京铁道职业技术学院目 录……………………………装……………………………………订…………………………………线……………………………Java访问并处理数据库的设计与实现1 实训概述南京铁道职业技术学院浦口校区2013级网络L1301班于大二上学期组织了为期一周的Java实训,本次实训的课题是“学生成绩管理系统”。

通过综合实训,掌握运用Java语言基本知识和技能、 JAVA的基本语法与JDBC数据库技术的应用;进一步熟悉Oracle数据库的数据库管理(数据库的创建、应用)。

表的创建、修改、删除,约束及关系等、数据的查询处理(insert、update、delete、select语句等技术。

2 Java访问并处理数据库的课题描述2.1 课题简介经过分析,我们使用Java开发工具,利用其提供的各种面向对象的开发工具,Java?技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

使用的数据库是Oracle,Oracle数据库功能强大,学习起来也不难,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。

通过实训,我们掌握运用Java语言知识和技能,运用JAVA的基本语法与JDBC数据库技术的应用,完成对甲骨文数据库的数据库管理、例如表的设计(表的创建、修改、删除,字段的默认值、约束及关系等)、数据的查询处理(insert、update、delete、select语句的应用)等技术;并能结合数据库应用技术和jdbc进行小型数据库管理系统的开发。

2.2 模块简介管理员模块功能需求:管理员身份登陆系统后,可以对学生信息进行添加、修改和查询等操作,对学生进行添加、修改和查询功能操作,还可以修改管理员的登录密码。

Java程序设计实训报告-学生成绩查询系统.doc

Java程序设计实训报告-学生成绩查询系统.doc

Java程序设计实训报告i. 系统功能说明“学生成绩查询系统”模仿简单教务系统,通过用户名和密码登陆,可存储用户信息、学生个人信息、课程和成绩等内容,并可进行增删查改四个基木操作。

实现“教师录入成绩,学生査询成绩”的目的。

系统的不足之处:系统功能开发不全面,仅能实现记荥一门课成绩,无更多增强功能。

安全级别不够高,易遭到攻击破坏和篡改。

界面不友好、不美观,个别位罝有小漏洞:在选择功能菜单的按钮时,系统只设计了支持阿拉伯数字。

当用户输入英文字母或者其他文字时,整个程序则无法运行。

增加学生就是按学生学号増加,系统没有严格规定必须输入相同位数的学生学号。

成绩查询,修改密码和删除学生都是按学生学号实现,在删除学生这个功能里,数据库中没有存的学生信息也可以删除。

2. 〔据库的简单介绍此系统数据库为Access数据库,包括四个表,分别为Student表,S C表, Course 表和Userlnfo表,分别存储学生信息、成绩、课程和用户信息的内容。

SC表里记录了Sno、Cno、S core信息Cour se 表里记录Cno、Course、Ccredit、Ctype 信息Student 表里记录了Sno、Sn ame、Sbirth、Sdept 信息U serinfo 表里记录了username、password 信息程序通过DBUti I类、SchoolC RUD类实现与数据库相连3. 程序中的类以及对类的理解程序中包含10个类:1、A ppl ication类是输出欢迎信息,读取用户的输入信息。

2、C o nsolelnput Util类是读取所输入的用户名和密码数据。

3、C onsole OutputUtil类是输出欢迎信息,退出信息。

4、D BUtil的功能为用于连接数据库的类。

5、F u nctionlmpl ementation类的功能为实现增删查改。

6、F uncti onMenu类是显示菜单信息。

Java学生管理系统实验报告

Java学生管理系统实验报告

学生管理系统实验报告学期:2018-2019课程名称:《Java程序设计实验》一、实验目的1.掌握JDK的安装与环境变量的配置,熟练使用Eclipse、WindowBulider插件、navicat和MySql。

2.熟练掌握Java基础语法与程序结构,了解面向对象的编程思想,掌握封装、构造方法和访问权限。

3.理解继承的概念和意义,掌握继承关系。

4.理解接口的概念和意义,掌握实现接口的方法。

5.掌握异常处理的方法。

6.掌握Java Swing,学会创建GUI界面,熟练使用MVC结构,掌握事件处理。

7.掌握MySql基础语句,操作MySql数据库。

二、实验内容a.管理系统功能1.实现登录界面与相应功能。

用户填写正确账号与密码并选择用户身份后即可实现登陆并跳转至主界面。

2.实现主界面与相应功能。

此界面功能包括学生管理、成绩管理、教师管理、系统设置和帮助。

其中系统设置包括修改密码,退出账号和关闭系统。

帮助包括关于作者、版本信息和意见反馈。

3.实现管理学生界面与相应功能。

可对学生信息进行添加、查询、修改和删除的操作。

4.实现管理成绩界面与相应功能。

可查询到学生并对其成绩信息进行编辑。

5.实现管理教师界面与相应功能。

可对教师信息进行添加、查询、修改和删除的操作。

6.实现修改密码界面与相应功能。

7.实现用户权限功能。

管理员权限为最高,可操作本系统所有功能。

学生可查看、修改自己的信息,查看自己的成绩,但不得添加、查询、删除他人信息与成绩。

教师可查看、修改自己的信息,查询、编辑学生的成绩信息,但不得添加、修改、删除学生信息,不得添加、查询、修改、删除其他教师信息。

8.实现退出账号、关闭系统、关于作者、版本信息、意见反馈和显示当前用户信息功能。

b.设计思路1.利用WindowBuilder插件可视化编写GUI界面。

2.利用MySql数据库保存学生、教师和管理员的信息,并用navicat管理数据库。

使用MVC框架,有以下几个包:model包(模型)、view包(视图)、images包(图像)、util包(自己定义的工具)、dao包(面向对象的数据库接口)。

(完整版)JAVA实验报告_学生成绩管理

(完整版)JAVA实验报告_学生成绩管理

目录12222334444599910一、引言1.1 课程设计目的1) 复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2) 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;3) 培养学生在项目开发中团队合作精神,创新意识及能力。

1.2 题目说明课题:学生成绩管理功能要求: 1、输入十个同学的学号,姓名,四科成绩(应用数学,大学英语,Java 程序设计,计算机应用基础) 。

2、计算出平均成绩,以平均成绩降序输出成绩表。

3、输入学号查询学生信息。

4、输出全组各科平均分。

5、统计各分数段人数6、删除记录7、输出各科最高分和最低分。

8、退出。

界面要示:用字符界面实现,也可用图形界面实现。

1.3 开发工具介绍Eclipse是一种可扩展的开放源代码IDE。

2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。

集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。

为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。

Eclipse 允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。

利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。

如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。

事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。

Java程序课程设计---一个简单的学生成绩管理信息系统

Java程序课程设计---一个简单的学生成绩管理信息系统

扬州大学数学科学学院java程序设计实验报告课题:一个简单的学生成绩管理信息系统姓名:学号:班级:指导教师:时间: 12月20日团队完成:考核结果1. 绪论(内容:要求小四号字体)此次课题是一个简单的学生管理系统,该课题涉及数据库、Java 等领域。

要求达到以下功能:1. 能够根据学生姓名 、学号、班级、课程名称查询具体内容。

2. 能够实现按照单科成绩、总成绩、平均成绩、学号排序。

3. 能够实现学生信息的插入、删除和修改。

4. 能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。

5. 能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。

6.能够使用图形界面进行操作。

要实现这些功能需要熟练使用数据库和Java 编程语言,并且能够实现数据库和Java 的连接。

2. 设计思路 (内容:要求小四号字体)1)建立数据库表格:将班级、姓名、学号、成绩等具体信息录入数据库。

·数据库系统设计成绩查询系统—--·系统逻辑结构设计学生成绩信息表学号 姓名 班级 语文 数学 英语·数据库截图2)利用Java实现数据库连接,使其可以调用数据库表格中的内容。

具体截图如下:3)Java程序编写思路:主要编写了5个类:将添加数据、查询数据、删除数据、修改数据四个功能分别为四个类来实现,此外还有一个主类用于实现面板。

Insert类:功能组件 6个文本域、6个标签、1个按钮功能实现添加数据实现过程对按钮添加监控,实现按钮事件为获取文本域中的信息,并执行SQL 的INSERT语句。

Delete类:功能组件 1个单行文本、1个标签、1个按钮、1个多行文本功能实现删除数据实现过程与修改数据类似,对按钮添加监控,实现按钮事件为获取文本域中的学号信息,并执行SQL的DELETE语句;不同的是以学号为主键进行查找并将删除信息输出到文本框中。

Modify类:功能组件 6个单行文本、6个标签、1个按钮功能实现修改数据实现过程与添加数据类似,对按钮添加监控,实现按钮事件为获取文本域中的信息,并执行SQL的UPDATE语句;不同的是以学号为主键进行查找并更新。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

修改学生信息功能 此信息修改模块主要是给学生和管理员建立信息库,方便管理员查询操作,信 息修改模块算法描述如下: 1.管理员成功登陆; 2.点击修改学生信息; 3.输入学生的编号; 4.编号为空,重新输入; 5.输入不为数字,重新输入; 6.输入正确,进入修改页面进行相关修改。
3.3 学生模块设计
2 Java 访问并处理数据库的课题描述
2.1 课题简介 经过分析,我们使用 Java 开发工具,利用其提供的各种面向对象的开发工具,
Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人 PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有 全球最大的开发者专业社群。使用的数据库是 Oracle,Oracle 数据库功能强大, 学习起来也不难,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形 成用户满意的可行系统。
入旧密码; 4.提交修改完成修改。
课程实训报告书
4 程序运行与测试
package com.briup.view; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.*; import com.briup.bean.Admin; import com.briup.bean.Student; import com.briup.dao.AdminDao; //登录窗口 import com.briup.dao.StudentDao; public class LoginFrame extends JFrame{


2.1 课题简介...........................................................................................................................3

2.2 模块简介...........................................................................................................................3
数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并 表现系统的逻辑处理功能。
2.4 系统功能层次图 学生信息管理系统是一个典型的数据库开发应用程序,系统是和数据库相结
合.,进入系统,有两个用户,分别是普通学生、和管理员。
学生信息管理系统
登陆管理









修查增查删修 改询加找除改 密信学学学学 码息生生生生
通过实训,我们掌握运用 Java 语言知识和技能,运用 JAVA 的基本语法与 JDBC 数据库技术的应用,完成对甲骨文数据库的数据库管理、例如表的设计(表 的创建、修改、删除,字段的默认值、约束及关系等)、数据的查询处理(insert、 update、delete、select 语句的应用)等技术;并能结合数据库应用技术和 jdbc 进 行小型数据库管理系统的开发。 2.2 模块简介
管理员模块功能需求:
管理员身份登陆系统后,可以对学生信息进行添加、修改和查询等操作,对 学生进行添加、修改和查询功能操作,还可以修改管理员的登录密码。
学生模块功能需求:
学生信息管理系统中需要在学生登录或验证身份后,,可以自行完成学生个 人信息的查询,也可以进行修改和删除个人信息、修改学生密码等操作。
…Hale Waihona Puke …4 程序运行与测试...........................................................................................................................9

5 实训总结.....................................................................................................................................30
字段名 管理员 ID 登录密码
表 4-2 管理员信息表
类型
空值
number(10) not null
varchar2(10) not null
约束条件 主键
2.表 student 保存学生基本信息,结构表如下:
表 4-5 学生信息表
字段名
类型
空值
学号
number(10)
not null
姓名
varchar2(20) not null
查看学生个人信息功能 学生信息管理系统方便了学生查看自己的学籍信息,如果学校由于疏忽输入 了错误信息,自己可以查看并且及时通知学校管理员,及时修改,减少不必要的麻 烦. 此信息查询模块主要是方便学生查询操作,信息查询模块算法描述如下: 1 学生成功登陆; 2.点击查询学生信息; 3.输入学生的编号; 4.编号为空,重新输入; 5.输入不为数字,重新输入; 6.输入正确,进入信息查询页面进行相关修改。 修改学生登录密码功能 学生可以进入学生管理系统进行登录密码的修改 1. 学生成功登陆; 2.单击修改密码; 3.输入旧密码、新密码确认后,若旧密码正确则修改成功,则提示重新输
3.2 管理员模块设计
学生信息管理系统前台登陆模块只有一个登陆窗口分为学生、管理员两个级 别登陆,系统在后台程序有自动限制设置,可以自动识别登陆者的限制。其系统登 陆模块算法如下:
1 判断是否勾选管理员身份; 2 输入用户名和密码; 3 判断用户名和密码是否匹配; (1)若提示输入信息错误,则重新输入; (2)否则以管理员身份进入系统。 添加学生信息功能 学生信息管理系统对学生信息的管理非常重要,其中对信息的录入是系统最 为关键的地方,以往我们管理学生信息的时候都是手工操作,而随社会不断发展的 今天计算机的应用已全部取带了手工操作的方法,利用计算机可以方便的录入各 类信息,进行高效的管理.学生信息的录入就是利用计算机通过程序读入数据库, 录入学生信息模块算法描述如下: 1.管理员登陆后,录入学生信息管理界面; 2.单击增加学生按钮,键入学生 ID; 3.当录入学号已经存在,提示该学生信息已存在,请重新输入; 4.否则学生信息添加成功。 查找学生信息功能 学生信息管理系统对查询学生信息管理也很重要,方法和增添学生信息类 似,也同样是利用计算机通过程序读入数据库,查询学生信息模块算法描述如下: 1.管理员登陆后,点击查询学生; 2.当录入学生信息不存在时,提示没有该学生信息,重新输入; 3.当录入学生 ID 已经存在,提示该学生信息存在,显示学生信息; 删除学生信息功能 学生选课模块主要是给删除学生信息的功能,本功能主要由管理员进入数据 库,然后学生管理系统,其删除学生信息模块算法描述如下: 1.管理员成功登陆; 2.点击删除学生; 3.输入学生相关信息,如学生 ID; 4. 如该学生不存在,则提示信息不存在,否则删除该学生。
图的格式如下所示:
开始
进入登录页面
选择权限 (例如管理员)
选择要实现的按钮 1.添加 2.查询 3.删除
添加按钮
添加一个学生信息,包括 ID, 姓名,年龄,性别
查找按钮
查找数据库中一个学生信息, 包括 ID,姓名,年龄,性别
删除按钮
删除一个学生信息,包括他的 ID,姓名,年龄,性别
返回
结束
图 1 管理员对学生信息管理系统局部 E-R 图
性别
varchar2 (3)
年龄
number(2)
登录密码
varchar2(10) not null
约束条件 主键
逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务是把概念 结构设计阶段设计好的基本 E-R 图转化为宜选用的 DBMS 所支持的数据模型相 符合的逻辑结构,并对其进行优化。
流程图层次设计
图 2 学生信息管理系统功能层次图
3 系统模块的详细设计
本学生信息管理系统主要模块,即用户登录模块、用户操作模块。用户操作 模块又分为学生操作模块、管理员操作模块。下面将显示系统的主要功能模块。
3.1 登录模块设计
学生信息管理系统前台登陆模块可以勾选管理员身份信息,代表以管理员身 份进入。不勾选即为普通学生身份登录。


2.3 数据库结构设计...............................................................................................................4

2.4 系统功能层次图..................................................................................................................6
1
2.3 数据库结构设计 数据表设计 定义每个表的数据类型以及字段限制,使数据库达到一定的完整性.每个表的
物理设计如下: 1.表 admin 保存用户的个人信息 用户信息表主要是用来保存管理员用户的基本信息,包括管理员的 ID 和管理
员的登录密码,只有符合这两个字段的格式要求,才能登录成功,结构表如下:


3.2 管理员模块设计...........................................................................................................6
相关文档
最新文档