java学生成绩管理系统代码

合集下载

java编写学生学分管理系统设计与实现代码

java编写学生学分管理系统设计与实现代码

java编写学生学分管理系统设计与实现代码学生学分管理系统是一款非常实用的软件,它可以帮助学生管理自己的课程、成绩和学分,让学生更好地了解自己的学习情况,提高学习成绩。

本文将详细介绍学生学分管理系统的设计与实现代码。

一、需求分析首先,我们需要进行需求分析,明确学生学分管理系统的功能。

(1)课程管理:学生可以通过该功能添加、修改、删除自己选择的课程信息,包括课程名称、授课教师、学分、考核方式等。

(2)成绩管理:学生可以通过该功能录入自己的成绩信息,并查看自己的历次考试成绩,以及对应的成绩单。

(3)学分管理:学生可以通过该功能查看自己已经取得的学分和还需取得的学分。

(4)用户管理:学生可以通过该功能修改自己的账号密码、个人信息等。

管理员可以添加、删除、修改学生的账号信息和个人信息。

二、系统设计经过需求分析,我们可以开始进行系统设计,设计思路如下:(1)数据库设计:设计一个学生信息表,包括学生的基本信息,如姓名、学号、所属学院、专业等,以及学生选修的课程信息和成绩信息。

(2)界面设计:设计一个简洁、直观的用户界面,方便学生进行操作。

界面需要包括主界面、添加课程界面、录入成绩界面、学分管理界面和用户管理界面等。

(3)功能设计:根据需求分析中的功能需求,设计相应的代码实现。

三、代码实现下面是学生学分管理系统的代码实现示例,为了简化代码,这里只展示了课程管理和成绩管理的代码:1. 课程管理代码// 添加课程信息public void addCourse(String courseName, String teacherName, double credit, String examType) {Course course = new Course(courseName, teacherName, credit, examType);// 将新添加的课程信息插入到数据库中db.insert(course);System.out.println("成功添加课程:" + courseName);}// 修改课程信息public void updateCourse(String courseName, String teacherName, double credit, String examType) {// 根据课程名称从数据库中查询课程信息Course course = db.queryCourseByName(courseName);course.setTeacherName(teacherName);course.setCredit(credit);course.setExamType(examType);// 更新课程信息到数据库中db.update(course);System.out.println("成功修改课程:" + courseName);}// 删除课程信息public void deleteCourse(String courseName) {// 根据课程名称从数据库中查询课程信息Course course = db.queryCourseByName(courseName);// 从数据库中删除课程信息db.delete(course);System.out.println("成功删除课程:" + courseName);}2. 成绩管理代码// 录入成绩public void enterScore(String courseName, double score) { // 根据课程名称查询课程信息Course course = db.queryCourseByName(courseName);// 查询当前学生信息Student student = db.queryStudentById(this.id);// 将成绩信息插入到数据库中Score scoreObj = new Score(student, course, score);db.insert(scoreObj);System.out.println("成功录入成绩,课程:" + courseName + " 成绩:" + score);}// 查询成绩单public void queryScoreSheet() {// 查询当前学生的成绩信息List<Score> scoreList =db.queryScoreByStudent(this.id);// 输出成绩单信息System.out.println("成绩单:");for (Score score : scoreList) {Course course = score.getCourse();System.out.println("课程名称:" +course.getCourseName() + " 成绩:" + score.getScore());}}四、总结以上就是学生学分管理系统的设计与实现过程,完整功能的代码请参考具体实现。

基于java的学生成绩管理系统的设计与实现

基于java的学生成绩管理系统的设计与实现

文章标题:基于Java的学生成绩管理系统的设计与实现一、引言学生成绩管理系统是学校管理系统中的重要组成部分,它可以帮助学校、老师和学生高效地管理和查询学生成绩信息。

基于Java的学生成绩管理系统的设计与实现是一个重要的课题,本文将从深度与广度两个角度来探讨这个主题。

二、学生成绩管理系统的基本要求学生成绩管理系统需要满足以下基本要求:1)能够实现学生信息的录入、修改和删除;2)能够实现课程信息的录入、修改和删除;3)能够实现成绩信息的录入、修改和删除;4)能够实现成绩的统计和排名功能;5)能够实现成绩的查询和导出功能。

三、基于Java的学生成绩管理系统的设计与实现1. 系统架构设计学生成绩管理系统可以采用三层架构设计,即用户界面层、业务逻辑层和数据访问层。

用户界面层负责与用户的交互,业务逻辑层负责处理业务逻辑,数据访问层负责与数据库进行交互。

2. 数据库设计数据库设计是学生成绩管理系统中的关键环节,需要设计学生信息表、课程信息表和成绩信息表,并建立它们之间的关联关系。

3. 功能模块设计学生成绩管理系统的功能模块包括学生信息管理、课程信息管理、成绩信息管理、成绩统计和排名以及成绩查询和导出功能。

四、基于Java的学生成绩管理系统的个人观点我认为基于Java的学生成绩管理系统的设计与实现不仅可以提高学校管理效率,也可以帮助老师更好地了解学生的学习情况,同时也能够让学生更方便地查询自己的成绩信息。

这个系统可以为学校管理和教学工作提供很大的便利,是非常值得推广和应用的。

五、总结与展望通过本文的探讨,我们深入了解了基于Java的学生成绩管理系统的设计与实现,从系统架构设计、数据库设计,功能模块设计等方面进行了全面的评估。

我们也共享了个人观点和理解。

希望本文能够为读者提供有价值的信息,同时也为学生成绩管理系统的推广应用提供一些借鉴和思路。

六、个人观点通过本次的撰写,我对基于Java的学生成绩管理系统的设计与实现有了更深入的了解,同时也对系统架构设计、数据库设计、功能模块设计等方面有了更全面的认识。

java学生成绩管理系统报告

java学生成绩管理系统报告

Java学生成绩管理系统报告简介本文将介绍一个基于Java开发的学生成绩管理系统。

该系统旨在帮助学校和教师高效管理学生的成绩信息,包括录入、查询、统计和分析等功能。

开发环境和工具•Java编程语言•IntelliJ IDEA集成开发环境•MySQL数据库功能需求1. 学生信息管理•录入学生信息,包括学生姓名、学号、性别等基本信息。

•修改学生信息,如学号、班级等。

•删除学生信息。

2. 成绩录入和查询•录入学生的考试成绩,包括科目、分数、考试日期等。

•查询学生的考试成绩,可按照学生姓名、学号、科目等进行检索。

3. 成绩统计和分析•对学生的考试成绩进行统计,包括平均分、最高分、最低分等。

•根据科目、班级等条件进行成绩分析,生成成绩报表。

4. 数据备份与恢复•对学生信息和成绩数据进行备份,以防数据丢失或损坏。

•支持从备份中恢复数据。

数据库设计学生表(student)字段名类型备注学号int 主键姓名varchar(50)性别varchar(10)班级varchar(50)成绩表(score)字段名类型备注学号int 外键科目varchar(50)分数float考试日期date系统架构本系统采用Java MVC(Model-View-Controller)架构模式进行设计和开发。

•Model层:负责数据的处理和存储,包括与数据库的交互。

•View层:负责用户界面的展示和交互,使用Swing或JavaFX等GUI 库进行开发。

•Controller层:负责接收用户的请求,调用对应的Model方法进行数据处理,并更新View层的显示。

开发步骤1. 数据库连接和表设计使用JDBC连接MySQL数据库,并创建上述的学生表和成绩表。

2. 学生信息管理模块开发•创建学生类(Student)和学生管理类(StudentManager)。

•实现学生信息的录入、修改和删除功能。

3. 成绩录入和查询模块开发•创建成绩类(Score)和成绩管理类(ScoreManager)。

学生成绩在线管理系统数据库课程设计mysql+java

学生成绩在线管理系统数据库课程设计mysql+java

学生成绩在线管理系统数据库课程设计mysql+java以下是一个学生成绩在线管理系统的数据库设计示例,使用MySQL数据库和Java 编程语言:1. 学生表(students)-学生ID(student_id):主键,自增-学生姓名(student_name):varchar类型,最大长度为50-学生年龄(student_age):整数类型-学生性别(student_gender):varchar类型,最大长度为10-学生班级(student_class):varchar类型,最大长度为502. 课程表(courses)-课程ID(course_id):主键,自增-课程名称(course_name):varchar类型,最大长度为503. 成绩表(scores)-成绩ID(score_id):主键,自增-学生ID(student_id):外键,关联到学生表的学生ID-课程ID(course_id):外键,关联到课程表的课程ID-分数(score):浮点数类型通过以上表的设计,你可以实现以下功能:-添加学生信息-添加课程信息-添加学生成绩-查询学生信息-查询课程信息-查询学生的成绩-更新学生信息-更新课程信息-更新学生成绩-删除学生信息-删除课程信息-删除学生成绩在Java中,你可以使用JDBC(Java Database Connectivity)来连接MySQL数据库并执行SQL语句来实现对数据库的操作。

你需要配置数据库连接信息,并编写相应的Java代码来执行查询和更新操作。

这只是一个简单的数据库设计示例,你可以根据你的具体需求进行调整和扩展。

java代码设计文档

java代码设计文档

java代码设计文档Java代码设计文档是用于记录和描述Java程序的设计思路、功能模块、类和方法的用途以及实现细节的文档。

它旨在帮助开发人员和其他相关人员了解和理解Java程序的设计和实现过程。

本文将以一个简单的学生管理系统为例,展示如何编写Java代码设计文档。

# 1. 引言本文档旨在描述学生管理系统的设计和实现细节。

该系统用于管理学生的基本信息、课程信息和成绩信息。

# 2. 系统概述学生管理系统是一个基于Java的桌面应用程序,用于管理学生信息。

它提供了以下功能:- 添加学生信息:包括姓名、学号、性别、年龄等基本信息。

- 添加课程信息:包括课程名称、学分、教师等信息。

- 添加成绩信息:将学生与课程关联,并录入学生的成绩。

- 查询学生信息:根据学号或姓名查询学生的基本信息、课程信息和成绩信息。

- 修改学生信息:可以修改学生的基本信息、课程信息和成绩信息。

- 删除学生信息:可以删除学生的基本信息、课程信息和成绩信息。

# 3. 系统结构学生管理系统由以下几个模块组成:- 学生信息模块:用于管理学生的基本信息。

- 课程信息模块:用于管理课程的基本信息。

- 成绩信息模块:用于管理学生的成绩信息。

- 数据库模块:用于连接和操作数据库,存储和读取学生、课程和成绩信息。

# 4. 类设计## 4.1 学生类学生类表示学生的基本信息,包括姓名、学号、性别和年龄等属性。

它具有以下方法:- 构造方法:用于创建学生对象,初始化学生的基本信息。

- getter和setter方法:用于获取和设置学生的属性值。

## 4.2 课程类课程类表示课程的基本信息,包括课程名称、学分和教师等属性。

它具有以下方法:- 构造方法:用于创建课程对象,初始化课程的基本信息。

- getter和setter方法:用于获取和设置课程的属性值。

## 4.3 成绩类成绩类表示学生的成绩信息,包括学生、课程和成绩等属性。

它具有以下方法:- 构造方法:用于创建成绩对象,初始化成绩的基本信息。

基于JAVA的学生成绩管理系统的设计与实现(含源文件)

基于JAVA的学生成绩管理系统的设计与实现(含源文件)

基于JAVA的学生成绩管理系统的设计与实现摘要:本文按照目前流行的B/S体系结构模式,结合现有的学生成绩管理系统的现状,采用SQL Server 2000数据库和JAVA技术,设计开发了学生成绩管理系统系统,本系统分为前台页面和后台管理两大部分,主要实现成绩查询、成绩删除、成绩添加、成绩修改四大主体功能。

在细节方面,着重考虑了用户添加成绩、成绩查询两方面的简易操作,力求为客户带来方便。

关键词:B/S模式;JA V A;SQL ServerAbstract:This according to the popular B / S architecture model, combined with the current status of student achievement management system using SQL Server 2000 database and JAVA technology, design and development of student achievement management system, the system is divided into front page and back office management two parts, the main accomplishment query results to delete, add scores, results modify the four main functions. In detail, the focus to consider the user to add results, performance query both easy to operate, and strive to bring convenience for customers.Key words:B/S mode;JA V A;SQL Server近年来,随着高校的扩招,运用常规的方法对学生成绩的管理变得越来越困难,因此学校迫切的需要一种高效的系统来帮助其管理学生的成绩。

学生成绩管理系统的设计与实现代码

学生成绩管理系统的设计与实现代码

学生成绩管理系统的设计与实现代码本系统有增加学生记录、修改学生记录、删除学生记录、按姓名查询学生记录、按C语言成绩对学生进行排序、退出系统6大功能。

能够对学生的姓名,学号,c语言成绩做相应的操作。

在检测到输入成绩大于55时,会自动加上5。

该管理系统设计功能模块图:下面是源代码:#include "stdio.h"#include "string.h"/*定义学生结构体*/struct Student{char ID[20]; //学号char Name[20]; //姓名float C_Mark; //C语言成绩};/*声明学生数组及学生数量*/struct Student students[1000];int num=0;/*通过学号返回数组下标*/int Student_SearchByIndex(char id[]) {int i;for (i=0;i<num;i++){if (strcmp(students[i].ID,id)==0) {return i;}}return -1;}/*通过姓名返回数组下标*/int Student_SearchByName(char name[]) {int i;for (i=0;i<num;i++){if (strcmp(students[i].Name,name)==0){return i;}}return -1;}/*显示单条学生记录*/void Student_DisplaySingle(int index){printf("%10s%10s%8s\n","学号","姓名","C语言成绩");printf("-------------------------------------------------------------\n");printf("%10s%10s%8.2f\n",students[index].ID,students[index] .Name,students[index].C_Mark);}/****1、增加学生记录*****/void Student_Insert(){while(1){printf("请输入学号:");scanf("%s",&students[num].ID);getchar();printf("请输入姓名:");scanf("%s",&students[num].Name);getchar();printf("请输入C语言成绩:");scanf("%f",&students[num].C_Mark);getchar();if (54<students[num].C_Mark && students[num].C_Mark< 60) //把55~59分之间的成绩都加上5分{students[num].C_Mark += 5;}num++;printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/******2、修改学生信息**********/void Student_Modify(){while(1){char id[20];int index;printf("请输入要修改的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if (index==-1){printf("该学生不存在!\n");}else{printf("你要修改的学生信息为:\n");Student_DisplaySingle(index);printf("-- 请输入新值--\n");printf("请输入学号:");scanf("%s",&students[index].ID);getchar();printf("请输入姓名:");scanf("%s",&students[index].Name);getchar();printf("请输入C语言成绩:");scanf("%f",&students[index].C_Mark);getchar();}printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/****3、删除学生信息****/void Student_Delete(){int i;while(1){char id[20];int index;printf("请输入要删除的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if (index==-1){printf("学生不存在!\n");}else{printf("你要删除的学生信息为:\n");Student_DisplaySingle(index);printf("是否真的要删除?(Y/N)");if (getchar()=='Y'){for (i=index;i<num-1;i++){students[i]=students[i+1];//把后边的对象都向前移动}num--;}getchar();printf("已删除\n");}printf("是否继续删除?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/****4、按姓名查询******/void Student_Select(){while(1){char name[20];int index;printf("请输入要查询的学生的姓名:");scanf("%s",&name);getchar();index=Student_SearchByName(name);if (index==-1){printf("学生不存在!\n");}else{printf("你要查询的学生信息为:\n");Student_DisplaySingle(index);}printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/******5、按C语言成绩排序*******/void Student_SortByAverage(){int i,j;struct Student tmp;for (i=0;i<num;i++){for (j=1;j<num-i;j++){if (students[j-1].C_Mark<students[j].C_Mark){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}/*显示学生信息*/void Student_Display(){int i;printf("%10s%10s%8s\n","学号","姓名","成绩");printf("-------------------------------------------------------------\n");for (i=0;i<num;i++){printf("%10s%10s%8.2f\n",students[i].ID,students[i].Name ,students[i].C_Mark);}}/*将学生信息从文件(Database.txt)中读出*/void IO_ReadInfo(){FILE *fp;int i;if ((fp=fopen("Database.txt","rb"))==NULL){printf("不能打开文件!\n");return;}if (fread(&num,sizeof(int),1,fp)!=1){num=-1;}else{for(i=0;i<num;i++){fread(&students[i],sizeof(struct Student),1,fp);}}fclose(fp);}/*将学生信息写入文件(Database.txt)*/void IO_WriteInfo(){FILE *fp;int i;if ((fp=fopen("Database.txt","wb"))==NULL){printf("不能打开文件!\n");return;}if (fwrite(&num,sizeof(int),1,fp)!=1){printf("写入文件错误!\n");}for (i=0;i<num;i++){if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1){printf("写入文件错误!\n");}}fclose(fp);}/***********主程序*********/void main(){int choice;IO_ReadInfo(); //读取文件while(1){/*主菜单*/printf("\n------ 学生成绩管理系统------\n");printf("1. 增加学生记录\n");printf("2. 修改学生记录\n");printf("3. 删除学生记录\n");printf("4. 按姓名查询学生记录\n");printf("5. 按C语言成绩排序\n");printf("6. 退出\n");printf("请选择(1-6):");scanf("%d",&choice);getchar();switch(choice){case 1:Student_Insert();break;case 2:Student_Modify();break;case 3:Student_Delete();break;case 4:Student_Select();break;case 5:Student_SortByAverage();Student_Display();break;case 6:exit(0);break;}IO_WriteInfo();}}1234567891011121415161718192021222324252627282930313233343637383940414243444546474849505152535455565859606162636465666768697071727374757677788081828384858687888990919293949596979899 100102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320322323324325326327328329330331332333334335336337338运行结果:测试第一个功能,输入四个学生的成绩:测试第二个功能,修改学生记录:测试第三个功能,删除学生记录:测试第四个功能,按姓名查询学生记录:测试第五个功能,显示所有学生的成绩,按照C语言成绩由高到底排序:我们可以看到,各项功能的实现,在第2个步骤中,将赵的成绩改为80,而第3个步骤删除了李的成绩。

学生成绩管理系统(JAVA课程设计)

学生成绩管理系统(JAVA课程设计)

Java课程设计课题:学生成绩管理系统一、问题及功能分析1、身份验证,和使用系统的权限设置、判定。

2、实现同学的学号、性别、成绩等信息的录入、编辑3、提供对学号或姓名,进行成绩或所有信息的查询.4、计算学生平均成绩,显示最高成绩学生信息5、能实现按成绩、学号、姓名排序列出学生信息.6、能统计学生成绩分数段的分布(60以下、60~70、70~80、80~90、90~100)情况,并输出。

7、用文件保存数据,以便反复使用.二、概要设计import java。

lang.*;import java.io。

*;class Mytest{public static void main(String[]args)throws IOException{{int select;select = 1;Student stu[]= new Student[10];StudentMis mis=new StudentMis();Scanner sc = new Scanner(System.in);System。

out.println();System.out。

println(”—---—-—-————————-——-——-——-—---—--———-——");System.out。

println(”* *");System。

out.println(”欢迎进入学生成绩管理系统");System。

out。

println(”**”);System。

out.println(”-————--——-—-—---——-——--———-—-—----——--—");while(true){System。

out.println( );System。

out.println(" 请选择您的操作:");System.out.println(” 1.录入学生成绩信息;”);System.out.println(" 2.显示学生成绩信息;”);System。

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

JAVA学生成绩管理系统代码import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import java.awt.*;import java.awt.event.*; import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.table.JTableHeader; import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.table.DefaultTableModel; import javax.swing.table.JTableHeader; import javax.swing.*; import java.awt.*;import java.awt.event.*;import java.sql.*;class AddForm extends JFrame implements ActionListener{JLabel labName=new JLabel("学号:");JLabel labDate=new JLabel("出生日期:");JLabel labScore=new JLabel("成绩:");JTextField txtName=new JTextField(20);JTextField txtDate=new JTextField(18);JTextField txtScore=new JTextField(20);JButton btnOk=new JButton("确定");JButton btnClear=new JButton("清空");JPanel pan=new JPanel();JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel();JPanel pan4=new JPanel();Connection cnn;Statement stm;ResultSet rs;AddForm(){super("添加数据");setSize(400,300);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder());pan1.add(labName);pan1.add(txtName);pan2.add(labDate);pan2.add(txtDate);pan3.add(labScore);pan3.add(txtScore);pan4.add(btnOk);pan4.add(btnClear);pan.setLayout(new GridLayout(3,1));pan.add(pan1);pan.add(pan2);pan.add(pan3);getContentPane().add(pan,"Center"); getContentPane().add(pan4,"South");btnOk.addActionListener(this);btnClear.addActionListener(this);setVisible(true);txtName.requestFocus();}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnClear){txtName.setText("");txtDate.setText("");txtScore.setText("");txtName.requestFocus();}else if(ae.getSource()==btnOk){String strName=txtName.getText();String strDate=txtDate.getText();String strScore=txtScore.getText();if(strName.equals(""))JOptionPane.showMessageDialog(this,"学号不能为空~","警告",JOptionPane.ERROR_MESSAGE); else if(strDate.equals(""))JOptionPane.showMessageDialog(this,"出生日期不能为空~","警告",JOptionPane.ERROR_MESSAGE); els JOptionPane.showMessageDialog(this,"成绩不能为空~","警告",JOptionPane.ERROR_MESSAGE); else{try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch (ClassNotFoundException ex) {ex.printStackTrace();}try {cnn=DriverManager.getConnection("Jdbc:Odbc:MyDB");stm=cnn.createStatement();} catch (SQLException ex) {ex.printStackTrace();}try{rs = stm.executeQuery("select * from 成绩表 where 学号='" +strName + "'");if (rs.next()) {JOptionPane.showMessageDialog(this,"对不起,该成绩信息已存在~");} else //否则插入记录{//System.out.println("insert into 成绩表 values('"+strName+"',#"+strDate+"#,"+strScore+")"); stm.executeUpdate("insert into 成绩表 values('"+strName+"','"+strDate+"',"+strScore+")"); JOptionPane.showMessageDialog(null,"记录已经成功添加~");}//断开连接stm.close();cnn.close();} catch (SQLException ex) {System.out.println("SQLException:" + ex.getMessage());}}}}public static void main(String[] args) {new AddForm();}}class BrowseForm extends JFrame {String []str={"学号","出生日期","成绩"};Object[][] data;JTable table;JTableHeader head;JScrollPane jsp;Connection conn;Statement stmt;ResultSet rs;BrowseForm(){super("浏览数据");setSize(400,300);int i=0,j=0;int row;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection("jdbc:odbc:MyDB","",""); stmt=conn.createStatement();rs=stmt.executeQuery("select COUNT(*) as a from 成绩表"); rs.next();row=rs.getInt("a");rs.close();data=new Object[row][3];rs=stmt.executeQuery("select * from 成绩表");while(rs.next()){data[i][j++]=rs.getString("学号");data[i][j++]=rs.getDate("出生日期");data[i][j]=new Integer(rs.getInt("成绩"));i++;j=0;}table=new JTable(data,str);head=table.getTableHeader();jsp=new JScrollPane(table);getContentPane().add(head,"North"); getContentPane().add(jsp,"Center");rs.close();stmt.close();}catch(Exception e){e.printStackTrace();}setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setVisible(true);}public static void main(String[] args) {new BrowseForm();}}class DeleteForm extends JFrame implements ActionListener{ JLabel labName=new JLabel("学号:");JLabel labDate=new JLabel("出生日期:");JLabel labScore=new JLabel("成绩:");JTextField txtName=new JTextField(20);JTextField txtDate=new JTextField(18);JTextField txtScore=new JTextField(20);JButton btnDel=new JButton("删除");JButton btnCancel=new JButton("取消");JButton btnQuery=new JButton("查询");JPanel pan=new JPanel();JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel();JPanel pan4=new JPanel();Connection cnn;Statement stm;ResultSet rs;DeleteForm(){super("删除数据");setSize(400,300);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder());pan1.add(labName);pan1.add(txtName);pan2.add(labDate);pan2.add(txtDate);pan3.add(labScore);pan3.add(txtScore);pan4.add(btnQuery);pan4.add(btnDel);pan4.add(btnCancel);pan.setLayout(new GridLayout(3,1));pan.add(pan1);pan.add(pan2);pan.add(pan3);getContentPane().add(pan,"Center"); getContentPane().add(pan4,"South");btnQuery.addActionListener(this);btnDel.addActionListener(this);btnCancel.addActionListener(this);btnDel.setEnabled(false);txtDate.setEditable(false);txtScore.setEditable(false);setVisible(true);txtName.requestFocus();}public void actionPerformed(ActionEvent ae){/* if(ae.getSource()==btnCancel){try {if(stm!=null)stm.close();if(cnn!=null)cnn.close();} catch (SQLException ex) {ex.printStackTrace();}this.dispose();} else if(ae.getSource()==btnQuery){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");cnn=DriverManager.getConnection("jdbc:odbc:MyDB","",""); stm=cnn.createStatement();rs=stm.executeQuery("select * from 成绩表 where 学号='"+txtName.getText()+"'");if(rs.next()){txtName.setText(rs.getString("学号"));txtDate.setText(rs.getDate("出生日期").toString());txtScore.setText(new Integer(rs.getInt("成绩")).toString ());btnDel.setEnabled(true);}else{JOption btnDel.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");}}catch(Exception e){e.printStackTrace();}}else if(ae.getSource()==btnDel){try {if(JOptionPane.YES_OPTION==JOptionPane.showConfirmDialog (this,"确定要删除该记录,","信息",JOptionPane.YES_NO_OPTION)){ stm.executeUpdate("delete from 成绩表 where 学号 ='"+txtName.getText()+"'"); btnDel.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");}}catch (SQLException ex) {ex.printStackTrace();}}*/}public static void main(String[] args) {new DeleteForm();}}class LoginForm extends JFrame implements ActionListener{ JLabel labName=new JLabel("姓名");JLabel labPwd=new JLabel("密码");JTextField txtName=new JTextField(20); JPasswordField txtPwd=new JPasswordField(20); JButton btnOk=new JButton("确定");JButton btnCancel=new JButton("取消");JPanel pan=new JPanel();JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel();JPanel pan4=new JPanel();Connection cnn;Statement stm;ResultSet rs;LoginForm(){super("用户登录");setSize(300,200);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createTitledBorder("登录")); pan.setLayout(new GridLayout(2,1));pan1.add(labName);pan1.add(txtName);pan2.add(labPwd);pan2.add(txtPwd);pan.add(pan1);pan.add(pan2);pan3.add(btnOk);pan3.add(btnCancel);pan4.add(pan);getContentPane().add(pan4,"Center"); getContentPane().add(pan3,"South");txtName.addActionListener(this);txtPwd.addActionListener(this);btnOk.addActionListener(this);btnCancel.addActionListener(this);setVisible(true);try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch (ClassNotFoundException ex) {ex.printStackTrace();}try {cnn=DriverManager.getConnection("Jdbc:Odbc:MyDB");stm=cnn.createStatement();} catch (SQLException ex) {ex.printStackTrace();}txtName.requestFocus();}public void actionPerformed(ActionEvent ae){if(ae.getSource()==txtName)txtPwd.requestFocus();else if(ae.getSource()==txtPwd)btnOk.requestFocus();els txtName.setText("");txtPwd.setText("");txtName.requestFocus();}else if(ae.getSource()==btnOk){String str="select * from 用户表 where 用户名='"+txtName.getText()+"'and 密码='"+newString(txtPwd.getPassword())+"'";try {rs=stm.executeQuery(str);} catch (SQLException ex) {ex.printStackTrace();}try {if(rs.next()){JOptionPane.showMessageDialog(this,"验证通过!","信息",RMATION_MESSAGE);rs.close();stm.close();cnn.close();new MainForm().setVisible(true);this.dispose();}else{JOptionPane.showMessageDialog(this,"用户名或密码不正确!","信息",RMATION_MESSAGE);}} catch (SQLException ex) {ex.printStackTrace();}}}public static void main(String[] args) {new LoginForm();}}class ModifyForm extends JFrame implements ActionListener{JLabel labName=new JLabel("学号:");JLabel labDate=new JLabel("出生日期:");JLabel labScore=new JLabel("成绩:");JTextField txtName=new JTextField(20);JTextField txtDate=new JTextField(18);JTextField txtScore=new JTextField(20);JButton btnModify=new JButton("修改");JButton btnCancel=new JButton("取消");JButton btnQuery=new JButton("查询");JPanel pan=new JPanel();JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel();JPanel pan4=new JPanel();Connection cnn;Statement stm;ResultSet rs;ModifyForm(){super("修改数据");setSize(400,300);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder());pan1.add(labName);pan1.add(txtName);pan2.add(labDate);pan2.add(txtDate);pan3.add(labScore);pan3.add(txtScore);pan4.add(btnQuery);pan4.add(btnModify);pan4.add(btnCancel);pan.setLayout(new GridLayout(3,1));pan.add(pan1);pan.add(pan2);pan.add(pan3);getContentPane().add(pan,"Center"); getContentPane().add(pan4,"South"); btnQuery.addActionListener(this); btnModify.addActionListener(this); btnCancel.addActionListener(this); btnModify.setEnabled(false);txtDate.setEditable(false);txtScore.setEditable(false);setVisible(true);txtName.requestFocus();}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnCancel){try {if(s stm.close();if(cnn!=null)cnn.close();} catch (SQLException ex) {ex.printStackTrace();}this.dispose();} else if(ae.getSource()==btnQuery){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");cnn=DriverManager.getConnection("jdbc:odbc:MyDB","","");stm=cnn.createStatement();rs=stm.executeQuery("select * from 成绩表 where 学号='"+txtName.getText()+"'");if(rs.next()){txtName.setText(rs.getString("学号"));txtScore.setText(new Integer(rs.getInt("成绩")).toString());txtDate.setText(rs.getDate("出生日期").toString());btnModify.setEnabled(true);txtDate.setEditable(true);txtScore.setEditable(true);}else{JOptionPane.showMessageDialog(this,"不存在该记录~");btnModify.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");txtDate.setEditable(false);txtScore.setEditable(false);}}catch(Exception e){e.printStackTrace();}}else if(ae.getSource()==btnModify){try{System.out.println("Update 成绩表 set 出生日期=#"+txtDate.getText()+"#,成绩="+txtScore.getText()+" where 学号='"+txtName.getText()+"'");stm.executeUpdate("Update 成绩表 set 出生日期=#"+txtDate.getText()+"#,成绩="+txtScore.getText()+" where 学号='"+txtName.getText()+"'"); JOptionPane.showMessageDialog(this,"记录修改完毕~");btnModify.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");txtDate.setEditable(false);txtScore.setEditable(false);stm.close();cnn.close();}catch(Exception e){e.printStackTrace();}}}public static void main(String[] args) {new ModifyForm();}}class NumberQueryForm extends JFrame implements ActionListener{JLabel labName=new JLabel("学号:");JLabel labDate=new JLabel("出生日期:");JLabel labScore=new JLabel("成绩:");JTextField txtName=new JTextField(20);JTextField txtDate=new JTextField(18);JTextField txtScore=new JTextField(20);JButton btnCancel=new JButton("取消");JButton btnQuery=new JButton("查询");JPanel pan=new JPanel();JPanel pan1=new JPanel();JPanel pan2=new JPanel();JPanel pan3=new JPanel() JPanel pan4=new JPanel(); Connection cnn;Statement stm;ResultSet rs;NumberQueryForm(){super("按学号查询");setSize(400,300);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pan.setBorder(BorderFactory.createEtchedBorder());pan1.add(labName);pan1.add(txtName);pan2.add(labDate);pan2.add(txtDate);pan3.add(labScore);pan3.add(txtScore);pan4.add(btnQuery);pan4.add(btnCancel);pan.setLayout(new GridLayout(3,1));pan.add(pan1);pan.add(pan2);pan.add(pan3);getContentPane().add(pan,"Center"); getContentPane().add(pan4,"South");btnQuery.addActionListener(this);btnCancel.addActionListener(this);txtDate.setEditable(false);txtScore.setEditable(false);setVisible(true);txtName.requestFocus();}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnCancel){try {if(stm!=null)stm.close();if(cnn!=null)cnn.close();} catch (SQLException ex) {ex.printStackTrace();}this.dispose();} else if(ae.getSource()==btnQuery){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");cnn=DriverManager.getConnection("jdbc:odbc:MyDB","",""); stm=cnn.createStatement();rs=stm.executeQuery("select * from 成绩表 where 学号='"+txtName.getText()+"'"); if(rs.next()){txtName.setText(rs.getString("学号"));txtScore.setText(new Integer(rs.getInt("成绩")).toString());txtDate.setText(rs.getDate("出生日期").toString());}else{JOptionPane.showMessageDialog(this,"不存在该记录~");txtName.setText("");txtScore.setText("");txtDate.setText("");txtName.requestFocus();}}catch(Exception e){e.printStackTrace();}}}public static void main(String[] args) {new NumberQueryForm();}}class ScoreQueryForm extends JFrame implements ActionListener{JLabel labScore=new JLabel("请输入成绩:");JTextField txtScore=new JTextField(10);JButton btnQuery=new JButton("查询");JPanel pan1=new JPanel();JPanel pan2=new JPanel();String []str={"学号","出生日期","成绩"};Object[][] data=new Object[10][3];JTable table=new JTable(data,str);JTableHeader head=table.getTableHeader(); JScrollPane jsp=new JScrollPane(table);Connection conn;Statement stmt;ResultSet rs;Sco super("按成绩查询");setSize(400,300);pan1.add(labScore);pan1.add(txtScore);pan1.add(btnQuery);getContentPane().add(pan1,"North");table=new JTable(data,str);pan2.setLayout(new BorderLayout());head=table.getTableHeader();jsp=new JScrollPane(table);pan2.add(head,"North");pan2.add(jsp,"Center");getContentPane().add(pan2,"Center");btnQuery.addActionListener(this); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setVisible(true);}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnQuery){int i,j,row;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");conn=DriverManager.getConnection("jdbc:odbc:MyDB","","");stmt=conn.createStatement();rs=stmt.executeQuery("select COUNT(*) as rowcount from 成绩表 where 成绩="+txtScore.getText()); rs.next();row=rs.getInt("rowcount");rs.close();data=new Object[row][3];rs=stmt.executeQuery("select * from 成绩表 where 成绩="+txtScore.getText());i=0;j=0;while(rs.next()){data[i][j++]=rs.getString("学号");data[i][j++]=rs.getDate("出生日期");data[i][j]=new Integer(rs.getInt("成绩"));i++;j=0;}pan2.removeAll();getContentPane().remove(pan2);table=new JTable(data,str);pan2.setLayout(new BorderLayout());head=table.getTableHeader();jsp=new JScrollPane(table);pan2.add(head,"North");pan2.add(jsp,"Center");getContentPane().add(pan2,"Center");this.validate();rs.close();stmt.close();conn.close();}catch(Exception e){e.printStackTrace();}}}public static void main(String[] args) {new ScoreQueryForm();}}class MyPanel extends JPanel{Image img=Toolkit.getDefaultToolkit().getImage("c:/a.jpg"); public void paint(Graphics g){g.drawImage(img,0,0,this);}}class MainForm extends JFrame implements ActionListener{ JMenu mSystem=new JMenu("系统");JMenuItem mExit=new JMenuItem("退出");JMenu mOperate=new JMenu("数据操作");JMenuItem mAdd=new JMenuItem("添加"); JMenuItem mDel=new JMenuItem("删除"); JMenuItem mModify=new JMenuItem("修改"); JMenuItem mBrowse=new JMenuItem("浏览");JMenu mQuery=new JMenu("查询");JMenuItem mNumber=new JMenuItem("按学号查询"); JMenuItem mScore=n JMenu mHelp=new JMenu("帮助"); JMenuItem mAbout=new JMenuItem("关于"); JMenuBar mBar=new JMenuBar();MainForm(){super("学生成绩管理系统");setSize(700,630);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); mSystem.add(mExit);mOperate.add(mAdd);mOperate.add(mDel);mOperate.add(mModify);mOperate.add(mBrowse);mQuery.add(mNumber);mQuery.add(mScore);mHelp.add(mAbout);mBar.add(mSystem);mBar.add(mOperate);mBar.add(mQuery);mBar.add(mHelp);setJMenuBar(mBar);mExit.addActionListener(this);mAdd.addActionListener(this);mDel.addActionListener(this);mModify.addActionListener(this);mBrowse.addActionListener(this);mNumber.addActionListener(this);mScore.addActionListener(this);mAbout.addActionListener(this);setContentPane(new MyPanel());setVisible(true);}public void actionPerformed(ActionEvent ae){if(ae.getSource()==mExit)System.exit(0);else if(ae.getSource()==mAbout)JOptionPane.showMessageDialog(this,"学生管理系统 V1.0\n\n重庆邮电大学计算机学院\n\n2011年11月","关于",RMATION_MESSAGE);else if(ae.getSource()==mAdd)new AddForm().setVisible(true);else if(ae.getSource()==mDel)new DeleteForm().setVisible(true);else if(ae.getSource()==mModify)new ModifyForm().setVisible(true);else if(ae.getSource()==mBrowse)new BrowseForm().setVisible(true);else if(ae.getSource()==mNumber) new NumberQueryForm().setVisible(true); else if(ae.getSource()==mScore)new ScoreQueryForm().setVisible(true); }public static void main(String[] args) { new MainForm();}}。

相关文档
最新文档