基于JAVA的学生成绩管理系统源代码

合集下载

用java写的一个简单的学生成绩管理系统(含代码)

用java写的一个简单的学生成绩管理系统(含代码)

用java写的一个简单的学生成绩管理系统一.简洁的需求描述学生成绩管理系统(以下简称系统)为教师和学生的信息交流提供了一个统一的平台,方便了教师对成绩的管理,学生对于成绩的查询等1.教师可以通过系统查询所授课程的信息以及课程所对应的学生的信息;教师通过系统管理学生分数信息,包括查询,输入,修改学生成绩。

2.学生用户仅仅拥有查询功能,查询的信息包括所选修课程信息和分数信息。

系统用例图:用例图解释系统功能大致上分为分数管理,课程管理,个人信息查询,分数查询四大块。

其中教师用户使用分数管理和课程管理功能,学生用户使用个人信息查询和分数查询功能。

细分来,分数管理指的是分数的录入,更新,查询;课程管理包括所授课程查询,课程信息录入,修改等;个人信息查询针对学生而言,包括姓名,学号,班级等;分数查询则指的是某一学期所有课程的分数信息的查询。

二.简单的设计说明2.1系统类图2009-04-12 18:38三。

简单的数据库设计ER图:数据库详细设计说明:1).数据库说明数据库取名为score_manage_system其中有五个表,分别为:TEACHER(TNO ,TNAME,SEX,TITLE,PASSWORD)..............教师信息表STUDENT (SNO,SNAME,SEX,CLASS,PASSWORD) .................学生信息表COURSE(CNO,CNAME,CXUEFEN,HOUR)..............................课程信息表TEACH(TNO,CNO)............................................................................教师授课信息表STUDY(SNO,CNO,SCORE)...........................................................学生选课信息表2009-04-12 18:412).字段说明3)TEACHER字段类型主码外码说明TNO CHAR(20) √ √ 教师代码TNAME CHAR(10) 教师姓名SEX CHAR(1) 教师性别TITLE CHAR(10) 职称PASSWORD CHAR(20) 登录密码STUDENT字段类型主码外码说明SNO CHAR(20) √ √ 学号SNAME CHAR(10) 学生姓名SEX CHAR(2) 性别CLASS CHAR(5) 班级PASSWORD CHAR(20) 登录密码DEPARTMENT CHAR(20) 学生所属院系SCHOOL CHAR(20) 学生所属学校COURSE字段类型主码外码说明CNO CHAR(20) √ √ 课程代码CNAME CHAR(10) 课程名称XUEFEN int 学分,取值大于0小于10HOUR int 学时,大于等于0YEAR CHAR(5) 学年TERM CHAR(1) 学分TEACH字段类型主码外码说明TNO CHAR(20) √教师代码CNO CHAR(20) √课程代码STUDY字段类型主码外码说明SNO CHAR(20) √学号CNO CHAR(20) √课程代码SCORE DOUBLE 分数,0--1003).建表语句TEACHER建表语句:create table TEACHER(TNO char(20) not null, TNAME char(10) not null, SEX char(1) not null,TITLE char(10) not null, PASSWORD char(20) not null, primary key (TNO),check(SEX in('男','女')));STUDENT建表语句:create table STUDENT(SNO char(20) not null, SNAME char(10) not null, SEX char(2) not null,CLASS char(5) not null, PASSWORD char(20) not null,DEPARTMENT char(20) not null,SCHOOL char(20) not null, primary key (SNO),check(SEX in('男','女')));COURSE建表语句:create table COURSE(CNO char(20) not null, CNAME char(10) not null, XUEFEN int not null, HOUR int not null, YEAR char(5) not null,TERM char(1) not null,primary key (CNO),check(XUEFEN > 0 and XUEFEN < 10 and HOUR >= 0 ));TEACH建表语句:create table TEACH(TNO char(20) not null, CNO char(20) not null, primary key (TNO, CNO)foreign key(TNO,CNO)REFERENCES TEACHER COURSE ,foreign key(CNO)REFERENCES COURSE);alter table TEACHadd constraint FK_TEACH_REFERENCE_TEACHER foreign key (TNO) references TEACHER (TNO)on update restricton delete restrict;alter table TEACHadd constraint FK_TEACH_REFERENCE_COURSE foreign key (CNO) references COURSE (CNO)on update restricton delete restrict;2009-04-12 18:41STUDY建表语句:create table STUDY(SNO char(20) not null, CNO char(20) not null,SCORE double ,primary key (SNO, CNO),check(SCORE >=0 and SCORE <= 100));alter table STUDYadd constraint FK_STUDY_REFERENCE_COURSE foreign key (CNO) references COURSE (CNO)on update restricton delete restrict;alter table STUDYadd constraint FK_STUDY_REFERENCE_STUDENT foreign key (SNO) references STUDENT (SNO)on update restricton delete restrict;2009-04-12 18:42四。

用java写的一个简单的学生成绩管理系统(含代码)

用java写的一个简单的学生成绩管理系统(含代码)

用java写的一个简单的学生成绩管理系统一.简洁的需求描述学生成绩管理系统(以下简称系统)为教师和学生的信息交流提供了一个统一的平台,方便了教师对成绩的管理,学生对于成绩的查询等1.教师可以通过系统查询所授课程的信息以及课程所对应的学生的信息;教师通过系统管理学生分数信息,包括查询,输入,修改学生成绩。

2.学生用户仅仅拥有查询功能,查询的信息包括所选修课程信息和分数信息。

系统用例图:用例图解释系统功能大致上分为分数管理,课程管理,个人信息查询,分数查询四大块。

其中教师用户使用分数管理和课程管理功能,学生用户使用个人信息查询和分数查询功能。

细分来,分数管理指的是分数的录入,更新,查询;课程管理包括所授课程查询,课程信息录入,修改等;个人信息查询针对学生而言,包括姓名,学号,班级等;分数查询则指的是某一学期所有课程的分数信息的查询。

二.简单的设计说明2.1系统类图2009-04-12 18:38三。

简单的数据库设计ER图:数据库详细设计说明:1).数据库说明数据库取名为score_manage_system其中有五个表,分别为:TEACHER(TNO ,TNAME,SEX,TITLE,PASSWORD)..............教师信息表STUDENT (SNO,SNAME,SEX,CLASS,PASSWORD) .................学生信息表COURSE(CNO,CNAME,CXUEFEN,HOUR)..............................课程信息表TEACH(TNO,CNO)............................................................................教师授课信息表STUDY(SNO,CNO,SCORE)...........................................................学生选课信息表2009-04-12 18:412).字段说明3)TEACHER字段类型主码外码说明TNO CHAR(20) √ √ 教师代码TNAME CHAR(10) 教师姓名SEX CHAR(1) 教师性别TITLE CHAR(10) 职称PASSWORD CHAR(20) 登录密码STUDENT字段类型主码外码说明SNO CHAR(20) √ √ 学号SNAME CHAR(10) 学生姓名SEX CHAR(2) 性别CLASS CHAR(5) 班级PASSWORD CHAR(20) 登录密码DEPARTMENT CHAR(20) 学生所属院系SCHOOL CHAR(20) 学生所属学校COURSE字段类型主码外码说明CNO CHAR(20) √ √ 课程代码CNAME CHAR(10) 课程名称XUEFEN int 学分,取值大于0小于10HOUR int 学时,大于等于0YEAR CHAR(5) 学年TERM CHAR(1) 学分TEACH字段类型主码外码说明TNO CHAR(20) √教师代码CNO CHAR(20) √课程代码STUDY字段类型主码外码说明SNO CHAR(20) √学号CNO CHAR(20) √课程代码SCORE DOUBLE 分数,0--1003).建表语句TEACHER建表语句:create table TEACHER(TNO char(20) not null, TNAME char(10) not null, SEX char(1) not null,TITLE char(10) not null, PASSWORD char(20) not null, primary key (TNO),check(SEX in('男','女')));STUDENT建表语句:create table STUDENT(SNO char(20) not null, SNAME char(10) not null, SEX char(2) not null,CLASS char(5) not null, PASSWORD char(20) not null,DEPARTMENT char(20) not null,SCHOOL char(20) not null, primary key (SNO),check(SEX in('男','女')));COURSE建表语句:create table COURSE(CNO char(20) not null, CNAME char(10) not null, XUEFEN int not null, HOUR int not null, YEAR char(5) not null,TERM char(1) not null,primary key (CNO),check(XUEFEN > 0 and XUEFEN < 10 and HOUR >= 0 ));TEACH建表语句:create table TEACH(TNO char(20) not null, CNO char(20) not null, primary key (TNO, CNO)foreign key(TNO,CNO)REFERENCES TEACHER COURSE ,foreign key(CNO)REFERENCES COURSE);alter table TEACHadd constraint FK_TEACH_REFERENCE_TEACHER foreign key (TNO) references TEACHER (TNO)on update restricton delete restrict;alter table TEACHadd constraint FK_TEACH_REFERENCE_COURSE foreign key (CNO) references COURSE (CNO)on update restricton delete restrict;2009-04-12 18:41STUDY建表语句:create table STUDY(SNO char(20) not null, CNO char(20) not null,SCORE double ,primary key (SNO, CNO),check(SCORE >=0 and SCORE <= 100));alter table STUDYadd constraint FK_STUDY_REFERENCE_COURSE foreign key (CNO) references COURSE (CNO)on update restricton delete restrict;alter table STUDYadd constraint FK_STUDY_REFERENCE_STUDENT foreign key (SNO) references STUDENT (SNO)on update restricton delete restrict;2009-04-12 18:42四。

用java编写的学生成绩管理系统代码

用java编写的学生成绩管理系统代码

;public class Student{private String id;private String name;private int math;private int english;private int java;private int computer;public String getId(){return id;}public void setId(String id){= id;}public String getName(){return name;}public void setName(String name){= name;}public int getMath(){return math;}public void setMath(int math){= math;}public int getEnglish(){return english;}public void setEnglish(int english) {= english;}public int getJava(){return java;}public void setJava(int java){= java;}public int getComputer(){return computer;}public void setComputer(int computer){= computer;}public static void main(String[] args) throws Exception {String id;String cid;String name;int math;int english;int java;int computer;String DBDriver = "";String conStr = "jdbc:odbc:student";Connection con = null;Statement stmt = null;ResultSet rs = null;(DBDriver);con = (conStr, "student", "123");stmt = ();String s = "\n\n\t\t\t学生成绩\n\n\t\t 1 新增\n\t\t 2 更改\n\t\t 3 删除\n\t\t 4 查找\n\t\t 5 显示\n\t\t 0 退出\n\n";int choice = ();switch (choice){xecuteQuery("select avg(math),avg(english),avg(java),avg(computer) from lxh1");while ()){+ "\t" + (2) + "\t"+ (3) + "\t" + (4));};xecuteQuery("select min(math),min(english),min(java),min(computer) from lxh1");while ()){+ "\t" + (2) + "\t"+ (3) + "\t" + (4));};break;case 0:break;default:"感谢您的使用,再见!");};();();}}。

基于JAVA的学生成绩管理系统(含源文件)

基于JAVA的学生成绩管理系统(含源文件)

摘要通过本课程设计,使自己更加系统地理解和掌握数据结构的基本概念;能自如地根据实际要求,设计相应的数据结构,并运用java语言和SQL语言实现所设计的算法,编写较大型的程序,分析和解决实际应用问题,进一步加深、巩固所学专业课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。

掌握java语言或sql server语言独立的编写、调试应用程序和进行其它相关设计的技能。

此项目主要是考察我们对结构体、数组、文件等具体操作,以及对java语言语法的掌握,所以做成此项目要求比较高的设计要求,对整体有很熟悉的概括,同时调试过程也是很重要的,对程序界面的要求也比较高,要设计的合理同时也要美观一点,能够人性化的描述清楚你的各个功能,一目了然,对其他用户使用本程序简单易懂,这才能成本程序或本系统是成功的。

对于学生成绩管理系统,此项目每年都有学生去做,但是能够在其他项目中脱颖而出,还要有自己的设计特色,用简单的语言详细描述系统的功能,这才是关键。

这个设计能够练习我们的理解和运用结构化程序设计的思想和方法,掌握开发一个小型实用系统的基本方法,学会调试一个比较长的程序的基本方法,同时掌握书写程序设计开发文档的能力。

【关键词】java 项目 SQL 学生成绩管理系统Title:Student achrevement management systemAbstractThrough the curriculum design, make themselves more systematically understand and master the basic concepts of data structures; freely according to the actual requirements, the design of the corresponding data structure, and uses Java language and SQL language implementation of the algorithm, written in relatively large program, analyze and solve the practical problems, deepen further, consolidate the professional curriculum of basic theoretical knowledge, linking theory with practice, to further develop their comprehensive ability to analyze and solve problems. Master the Java language or SQL server language independent compilation, debugging applications and other related design skills.This project is mainly to investigate our structure, array, documents and other specific operations, as well as on the Java language grammar, so make this project requires relatively high design requirement, on the whole are very familiar generalizations, and the debugging process is very important, the program interface requirements are relatively high, to design reasonable but also a, to humanized description clearly you each function, stick out a mile, for other users of this procedure is simple to understand, this can the cost of procedure or the system is successful.For student achievement management system, the project each year there are students to do, but in other projects talent showing itself, but also has its own characteristics of the design, using simple language to describe in detail the function of the system, this is the key.This design can be used to practice our understanding and use of structured program design thinking and methods, master development of a practicalsystem of small basic method, learn to debug a relatively long process of the basic method, at the same time, master the writing program design and development capability of document.【Key Words】java project SQL Student achrevement management system目录1题目分析析或需求分析 (1)1.1题目分析 (1)1.2需求分析 (1)1.2.1需求分析概述 (1)1.2.2组织结构调查 (2)1.2.3系统需求分析 (2)1.2.4 系统用户分析 (3)1.2.5 其他需求分析 (3)2设计方案 (3)2.1系统开发方案的选择 (3)2.2系统开发环境 (4)2.2.1程序设计语言选择 (4)2.3学生成绩管理系统的功能 (7)2.3.1软件的具体功能 (7)2.3.2软件模块划分 (7)3数据库设计 (10)4编程开发和调试过程 (11)5效果分析与课题小节 (12)总结 (14)致谢 (15)参考文献 (16)1题目分析析或需求分析1.1题目分析学生成绩管理系统可以实现管理员对整个学成绩的添加,修改,删除,查询等操作,对教师用户的添加,修改,删除,查询等操作。

基于JAVA的学生成绩管理系统源代码

基于JAVA的学生成绩管理系统源代码
butt on 2=new Butt on(“删除");
butt on 3=new Butt on(“修改");
butt on 4=new Butto n("添加");
tuichu=new Button("退岀");
p1=new Pan el();
p2=new Pan el();
p3=new Pan el();
Button butt on 1,butt on 2,butt on 3,butto n4,tuichu;
Pan el p1, p2,p3;
Label l1,l2,l3;
TextField a1,a2;
Box b1,b2,b3,b4,b5;
ss s;
zhuchuangkouO{("登陆");
(this);
(l1);
(b5);
add( p1,;
add( p2,;
add( p3,;
addWi ndowListe ner(new Win dowAda pter(){
p ublic void wi ndowClosi ng(Wi ndowEve nt e){ dis pose();
}
});
setBackgrou nd;
add( p2,;
add( p3,;
addWi ndowListe ner(new Win dowAda pter(){
p ublic void win dowClosi ng(Wi ndowEve nt e){
dis pose();
});
setBackgrou nd;
setBou nds(10, 10, 1000, 500);

学生成绩管理系统源代码

学生成绩管理系统源代码

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <dos.h>#include<ctype.h>#include<conio.h>#include<stddef.h>#include<time.h>#define PRINT1 textcolor(12); cprintf("\r 请按任意键返回主菜单\n\r");textcolor(10); getch();clrscr(); break;int shoudsave=0;struct student /* 学生信息结构体定义*/{char num[10],name[20],cla[4];int score1,score2,score3,total,ave;};typedef struct node{struct student data;struct node *next;}Node,*L;void print1(){cprintf("\r======================================================================= =========");}void print2(){cprintf("\n\r 1.输入学生成绩信息在这里你可以按照提示输入学生的班级,学号,姓名及各科成绩.\n");cprintf("\n\r 2.注销学生成绩信息在这里你可以按照学号或姓名将某名学生的信息从本系统中删除.\n");cprintf("\n\r 3.查询学生成绩信息在这里你可以按照学号或姓名查询某一名学生的信息.\n");cprintf("\n\r 4.修改学生成绩信息在这里你可以按照提示修改某一名学生的学号,姓名及各科成绩.");cprintf("\n\r 5.学生成绩信息排序在这里你可以看到所有学生的各科成绩.\n"); cprintf("\n\r 6.学生成绩信息统计在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n");cprintf("\n\r 7.显示学生成绩信息在这里你可以看到系统中所有学生的信息.\n"); cprintf("\n\r 8.保存学生成绩信息在这里你可以将学生你信息保存到内存中.\n"); cprintf("\n\r 9.帮助学生成绩信息在这里你可以获得帮助信息.\n");cprintf("\n\r 0.退出系统在这里选择是否保存后,你可以安全的退出本系统.\n\n\r ");}void menu(){cprintf("\n\r\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcb\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb");cprintf("\r\xba 学生信息导入\xba 学生信息处理\xba");cprintf("\r\xba____________________________________\xba___________________________ _______________\xba");cprintf("\r\xba 1-->输入学生成绩信息\xba 6-->学生成绩信息统计\xba");cprintf("\r\xba 2-->注销学生成绩信息\xba 7-->显示学生成绩信息\xba");cprintf("\r\xba 3-->查询学生成绩信息\xba 8-->保存学生成绩信息\xba");cprintf("\r\xba 4-->修改学生成绩信息\xba 9-->帮助学生成绩信息\xba");cprintf("\r\xba 5-->学生成绩信息排序\xba 0-->退出系统\xba");cprintf("\r\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xca\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc");}void wrong(){cprintf("\n\r输入错误!请验证后重新输入.\n");}void notfind(){cprintf("\n\r该学生信息不存在!请验证后重新输入.\n");}void printc() /* 此函数用于输出中文格式*/{cprintf("\r学号姓名班级英语数学C语言总分平均分\n ");}void printe(Node *p) /* 此函数用于输出英文格式*/{cprintf("\r%-4s%-4s%4s%5d%5d%8d%5d%7d\n\r",p->data.num,p->,p->data.cla,p->dat a.score3,p->data.score2,p->data.score1,p->data.total,p->data.ave);}Node* Locate(L l,char findinfo[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针*/{Node *r;if(strcmp(nameornum,"num")==0)/* 按学号查询*/{r=l->next;while(r!=NULL){if(strcmp(r->data.num,findinfo)==0)return r;r=r->next;}}else if(strcmp(nameornum,"name")==0) /* 按姓名查询*/{r=l->next;while(r!=NULL){if(strcmp(r->,findinfo)==0)return r;r=r->next;}}return 0;}void input(L l) /* 增加学生*/{Node *p,*r,*s;char num[10];r=l;s=l->next;while(r->next!=NULL)r=r->next;/* 将指针置于最末尾*/while(1){ cprintf("\r如果输入完毕,请按任意键返回主菜单\n");cprintf("\r如果你还想输入,请按y(yes)继续\n\r");scanf("%s",num);if(strcmp(num,"y")==0){ cprintf("请你输入学号:");scanf("%s",num); } else break;while(s){if(strcmp(s->data.num,num)==0){printf("\t学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);print1();printc();printe(s);print1();printf("\n");getch();return;}s=s->next;}p=(Node *)malloc(sizeof(Node));strcpy(p->data.num,num);cprintf("\r请你输入姓名:");scanf("%s",p->);getchar();cprintf("\r请你输入班级:");scanf("%s",p->data.cla);getchar();cprintf("\r请你输入c语言成绩(0-100):");scanf("%d",&p->data.score1);getchar();cprintf("\r请你输入数学成绩(0-100):");scanf("%d",&p->data.score2);getchar();cprintf("\r请你输入英语成绩(0-100):");scanf("%d",&p->data.score3);getchar();p->data.total=p->data.score3+p->data.score1+p->data.score2;p->data.ave=p->data.total / 3; /* 信息输入已经完成*/p->next=NULL;r=p;shoudsave=1;}}void query(L l) /* 查询学生信息*/{int select;char findinfo[20];Node *p;if(!l->next){cprintf("\n 没有信息可以查询!\n");return;}cprintf("\n1==>按学号查找\n\r2==>按姓名查找\n\r");scanf("%d",&select);if(select==1) /* 学号*/{cprintf("\r请你输入要查找的学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){cprintf(" 查找结果\n\r");print1();printc();printe(p);print1();}elsenotfind();}else if(select==2) /* 姓名*/{cprintf("\r请你输入要查找的姓名:");scanf("%s",findinfo);p=Locate(l,findinfo,"name");if(p){cprintf(" 查找结果\n\r");print1();printc();print1();}elsenotfind();}elsewrong();}void Delete(L l) /* 删除学生信息*/{int select;Node *p,*r;char findinfo[20];if(!l->next){cprintf("\n 没有信息可以删除!\n");return;}cprintf("\n1==>按学号删除\n\r2==>按姓名删除\n\r");scanf("%d",&select);if(select==1){cprintf("\r请你输入要删除的学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);cprintf("\n\r该学生已经成功删除!\n");shoudsave=1;}elsenotfind();}else if(select==2){cprintf("\r请你输入要删除的姓名:");scanf("%s",findinfo);p=Locate(l,findinfo,"name");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);cprintf("\n\r该学生已经成功删除!\n");shoudsave=1;}elsenotfind();}else wrong();}void modify(L l) /*修改学生信息*/{Node *p;char findinfo[20];if(!l->next){cprintf("\n\r没有信息可以修改!\n");return;}cprintf("\r请你输入要修改的学生学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){cprintf("\r请你输入新学号(原来是%s):",p->data.num);scanf("%s",p->data.num);cprintf("\r请你输入新姓名(原来是%s):",p->);scanf("%s",p->);getchar();cprintf("\r请你输入新班级(原来是%s):",p->data.cla);scanf("%s",p->data.cla);cprintf("\r请你输入新的c语言成绩(原来是%d分):",p->data.score1);scanf("%d",&p->data.score1);getchar();cprintf("\r请你输入新的数学成绩(原来是%d分):",p->data.score2);scanf("%d",&p->data.score2);getchar();cprintf("\r请你输入新的英语成绩(原来是%d分):",p->data.score3);scanf("%d",&p->data.score3);p->data.total=p->data.score3+p->data.score1+p->data.score2;p->data.ave=p->data.total/3;cprintf("\n\r信息修改成功!\n");shoudsave=1;}elsenotfind();}void display(L l){/*显示全部学生信息*/int count=0;Node *p;p=l->next;if(!p){cprintf("\n\r 没有信息可以显示!\n");return;}cprintf(" 显示结果");print1();printc();while(p){ if(count%5==0) getch();printe(p);p=p->next;count++;}print1();cprintf("\n");}void Statistic(L l) /*统计学生信息*/{Node *pm_max,*pe_max,*pc_max,*pt_max,*pa_max; /* 用于指向分数最高的接点*/ Node *pm_min,*pe_min,*pc_min,*pt_min,*pa_min;Node *r=l->next;if(!r){cprintf("\n\r 没有信息可以统计!\n");return ;}pm_max=pe_max=pc_max=pt_max=pa_max=pm_min=pe_min=pc_min=pt_min=pa_min=r; while(r!=NULL){if(r->data.score1>=pc_max->data.score1)pc_max=r;if(r->data.score1<=pc_min->data.score1)pc_min=r;if(r->data.score2>=pm_max->data.score2)pm_max=r;if(r->data.score2<=pm_min->data.score2)pm_min=r;if(r->data.score3>=pe_max->data.score3)pe_max=r;if(r->data.score3<=pe_min->data.score3)pe_min=r;if(r->data.total>=pt_max->data.total)pt_max=r;if(r->data.total<=pt_min->data.total)pt_min=r;if(r->data.ave>=pa_max->data.ave)pa_max=r;if(r->data.ave<=pa_min->data.ave)pa_min=r;r=r->next;}cprintf("====================================统计结果====================================\n");cprintf("\r总分最高者: %-16s %d分\n",pt_max->,pt_max->data.total); cprintf("\r平均分最高者: %-16s %d分\n",pa_max->,pa_max->data.ave); cprintf("\r英语最高者: %-16s %d分\n",pe_max->,pe_max->data.score3); cprintf("\r数学最高者: %-16s %d分\n",pm_max->,pm_max->data.score2); cprintf("\rc语言最高者: %-16s %d分\n\r",pc_max->,pc_max->data.score1); cprintf("\r总分最低者: %-16s %d分\n",pt_min->,pt_min->data.total); cprintf("\r平均分最低者: %-16s %d分\n",pa_min->,pa_min->data.ave); cprintf("\r英语最低者: %-16s %d分\n",pe_min->,pe_min->data.score3); cprintf("\r数学最低者: %-16s %d分\n",pm_min->,pm_min->data.score2); cprintf("\rc语言最低者: %-16s %d分\n\r",pc_min->,pc_min->data.score1); print1();}void Sort(L l){L ll;Node *p,*rr,*s;ll=(L)malloc(sizeof(Node)); /* 用于做新的连表*/ll->next=NULL;if(l->next==NULL){cprintf("\n\r 没有信息可以排序!\n");return ;}p=l->next;while(p){s=(Node*)malloc(sizeof(Node)); /* 新建接点用于保存信息*/s->data=p->data;s->next=NULL;rr=ll;while(rr->next!=NULL && rr->next->data.total>=p->data.total)rr=rr->next;if(rr->next==NULL)rr->next=s;else{s->next=rr->next;rr->next=s;}p=p->next;}free(l);l->next=ll->next;cprintf("\n\r 排序已经完成!\n");}void Save(L l) /* */{FILE* fp;Node *p;int flag=1,count=0;fp=fopen("c:\\student","wb");if(fp==NULL){cprintf("\n\r 重新打开文件时发生错误!\n");exit(1);}p=l->next;while(p){if(fwrite(p,sizeof(Node),1,fp)==1){p=p->next;count++;}else{flag=0;break;}}if(flag){cprintf("\n\r 文件保存成功.(有%d条信息已经保存.)\n\r",count);shoudsave=0;}fclose(fp);}void main() /* */{L l; /* 链表*/FILE *fp; /* 文件指针*/int count=0 ,i,menu_select; /*菜单选择*/char ch ,creat;Node *p,*r;time_t it;clrscr();textmode(C80);window(1,1,80,25);textbackground(1); clrscr();textcolor(10);printf("\r 学生成绩管理系统");printf("\r -------扬州大学信息工程学院软件0902班") ;printf("\r 设计人员:李天鹏");l=(Node*)malloc(sizeof(Node));l->next=NULL;r=l;fp=fopen("c:\\student","rb");if(fp==NULL){cprintf("\n\r 该文件还未存在,是否需要创建?(y/n,Y/N)\n\r");scanf("%c",&creat);if(creat=='y'||creat=='Y'){fp=fopen("c:\\student","wb");}elseexit(0);}gotoxy(9,11); textcolor(12);cprintf("\n\r 文件已经打开,系统正在导入信息");for(i=0;i<6;i++){ cprintf(".");sleep(1);}textcolor(10);gotoxy(9,11); cprintf("\n ");while(!feof(fp)){p=(Node*)malloc(sizeof(Node));if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中*/{p->next=NULL;r->next=p;r=p; /* 将该接点挂入连中*/count++;}}fclose(fp);/* 关闭文件*/gotoxy(1,3);cprintf("\n\r信息导入完毕,系统共导入%d条信息",count);sleep(1);while(1){ menu();textcolor(12);cprintf("\r现在时间: "); it=time(NULL);cprintf(ctime(&it));cprintf("\r左边数字对应功能选择,请按0--9选择操作:\n\r");textcolor(10) ;scanf("%d",&menu_select);if(menu_select==0){if(shoudsave==1){ getchar(); textcolor(128+12);cprintf("\n\r 信息已经改动,是否将改动保存到文件中(y/n Y/N)?\n\r"); scanf("%c",&ch);if(ch=='y'||ch=='Y')Save(l);}cprintf("\n\r 你已经成功退出学生成绩信息系统,欢迎下次继续使用!\n"); break;}switch(menu_select){case 1: clrscr(); input(l); clrscr(); break; /* 输入学生*/case 2: clrscr(); Delete(l); PRINT1 /* 删除学生*/case 3: clrscr(); query(l); PRINT1 /* 查询学生*/case 4: clrscr(); modify(l); PRINT1 /* 修改学生*/case 5: clrscr(); Sort(l); PRINT1case 6: clrscr(); Statistic(l); PRINT1case 7: clrscr(); display(l); PRINT1case 8: clrscr(); Save(l); PRINT1 /* 保存学生*/case 9: clrscr(); cprintf(" ==========帮助信息==========\n");print2(); PRINT1 ;default: wrong(); getchar(); break;}}}。

java学生成绩管理系统源码

java学生成绩管理系统源码

文件addmessage.java代码:import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class addmessage extends JFrame implements ActionListener{ JTextField t1,t2,t3,t4,t5;JTable table;JButton but1;JLabel lab1,lab2,lab3,lab4,lab5;JPanel p1;addmessage(){super("增加");setBounds(350,100,470,400);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();lab1=new JLabel("学号"); t1=new JTextField(10);lab2=new JLabel("姓名"); t2=new JTextField(10);lab3=new JLabel("课程名"); t3=new JTextField(10);lab4=new JLabel("状态"); t4=new JTextField(10);lab5=new JLabel("成绩"); t5=new JTextField(10);but1=new JButton("添加");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(lab2);p1.add(t2);p1.add(lab3);p1.add(t3);p1.add(lab4);p1.add(t4);p1.add(lab5);p1.add(t5);p1.add(but1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){int i=0 ;String sql1=null,sql2=null,update=null;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){ //添加-------------------try{con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();sql1="INSERT INTO 学生成绩表VALUES ('"+t1.getText()+"','"+t2.getText()+"','"+t3.getText()+"','"+t4.getText()+"','"+t5.getText()+"')";String num1=t1.getText();String num2=t1.getText();String sele="select * from 学生成绩表where 学号='"+num1+"' and 课程名='"+num2+"'";ResultSet rs=stmt.executeQuery(sele);if(rs.next()){JOptionPane.showMessageDialog(this, "已有该条记录,请核实!");}else{stmt.executeUpdate(sql1);JOptionPane.showMessageDialog(this, "添加成功!");}t1.setText("");t2.setText("");t3.setText("");t4.setText("");t5.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}}文件deletemessage.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class deletemessage extends JFrame implements ActionListener{ JTextField t1,t2,t3;JTable table;JButton but1;JLabel lab1,lab2,lab3;JPanel p1;deletemessage(){super("删除");setBounds(350,100,470,400);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();lab1=new JLabel("学号"); t1=new JTextField(10);lab2=new JLabel("姓名"); t2=new JTextField(10);lab3=new JLabel("课程名"); t3=new JTextField(10);but1=new JButton("删除");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(lab2);p1.add(t2);p1.add(lab3);p1.add(t3);p1.add(but1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){String sql1=null,sql2=null;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){ //删除----------------------------try{String num1=t1.getText();String num2=t2.getText();String num3=t3.getText();sql2="delete from 学生成绩表where 学号='"+num1+"'and 课程名='"+num3+"'";con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();sql1="select * from 学生成绩表where 学号='"+num1+"' and 姓名='"+num2+"' and 课程名='"+num3+"'";ResultSet rs=stmt.executeQuery(sql1);if(rs.next()){stmt.executeUpdate(sql2);JOptionPane.showMessageDialog(this, "删除成功!");}else{JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}t1.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}}文件entry.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;class entry extends JFrame implements ActionListener{ int flag=1;String user,pass;JPanel pa;JLabel lab1,lab2;JTextField tf1;JPasswordField tf2;JButton btu1,btu2;JPanel pa1,pa2,pa4;entry(){super("学生成绩管理系统");setBounds(400,200,400,300);GridBagLayout gbL=new GridBagLayout();GridBagConstraints gbc=new GridBagConstraints();setLayout(gbL);gbc.fill=GridBagConstraints.HORIZONTAL;gbc.anchor=GridBagConstraints.CENTER;lab1=new JLabel("请输入帐号");lab2=new JLabel("请输入密码");tf2=new JPasswordField(10);tf2.setEchoChar('*');tf1=new JTextField(10);tf1.addActionListener(this);pa1=new JPanel();pa1.add(lab1);pa1.add(tf1);gbc.gridx=1;gbc.gridy=1;gbc.insets=new Insets(2,5,0,5);gbL.setConstraints(pa1,gbc);add(pa1);tf2.addActionListener(this);pa2=new JPanel();pa2.add(lab2);pa2.add(tf2);gbc.gridx=1;gbc.gridy=2;gbc.insets=new Insets(2,5,2,5);gbL.setConstraints(pa2,gbc);add(pa2);btu1=new JButton("确定");btu1.addActionListener(this);btu2=new JButton("退出");btu2.addActionListener(this);pa4=new JPanel();pa4.add(btu1);pa4.add(btu2);gbc.gridx=1;gbc.gridy=4;gbc.insets=new Insets(2,5,2,5);gbL.setConstraints(pa4,gbc);add(pa4);}public void actionPerformed(ActionEvent e){loginsure ls;if(e.getSource()==btu1){user=tf1.getText();pass=tf2.getText();try{ls=new loginsure(user,pass);this.setVisible(false);}catch (SQLException e1){e1.printStackTrace();}catch (ClassNotFoundException e1){e1.printStackTrace();}}if(e.getSource()==btu2){dispose();System.exit(0);}}}class loginsure{int i=0;String name=null,pwd=null, ustype=null;public loginsure(String s,String a) throws SQLException,ClassNotFoundException{ String driver ="org.gjt.mm.mysql.Driver";Class.forName(driver);String URL = "jdbc:mysql://localhost:3306/学生成绩系统";Connection conn = DriverManager.getConnection(URL,"root","123");Statement stmt=conn.createStatement();ResultSet rs = stmt.executeQuery("select * from 用户管理表");while (rs.next()){name=rs.getString("用户名").trim();pwd=rs.getString("密码").trim();ustype=rs.getString("权限组").trim();if (s.equals(name)&&a.equals(pwd)){i=1;if(ustype.trim().equals("管理员")){teacher tea=new teacher();tea.setVisible(true);}if(ustype.trim().equals("学生")){student stu=new student(name);stu.setVisible(true);}}}if(i==0)JOptionPane.showMessageDialog(null, "用户名或者密码错误", "警告",JOptionPane.W ARNING_MESSAGE);stmt.close();conn.close();}}文件inquiry.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class inquiry extends JFrame implements ActionListener{ JTextField t1;JTable table;JButton but1;JLabel lab1;JPanel p1;JTable table1=null;DefaultTableModel demod1=null;String n[]={"课程名","状态","成绩"};String [][]data=new String[0][0];String No;inquiry(String no){super("成绩");No=no;setBounds(350,100,470,400);p1=new JPanel();lab1=new JLabel("课程名"); t1=new JTextField(10);but1=new JButton("查询成绩");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(but1);demod1=new DefaultTableModel(data,n);table1=new JTable(demod1);JScrollPane s1=new JScrollPane(table1);p1.add(s1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){int i=0;String sql1;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){try{String num=t1.getText();sql1="select * from 学生成绩表where 学号='"+No+"'";if(!num.equals("")){sql1="select * from 学生成绩表where 课程名='"+num+"'and 学号='"+No+"'";}con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql1);removeAllRecord();while(rs.next()){Vector data=new Vector();data.addElement(rs.getString(3));data.addElement(rs.getString(4));data.addElement(rs.getString(5));demod1.addRow(data);i=1;}if(i==0){JOptionPane.showMessageDialog(this, "没有此课程!请重新输入");}table1.revalidate();t1.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}public void removeAllRecord(){//将界面上的所有记录清空int rowcount;while(true){//删除所有存在的行rowcount = demod1.getRowCount()-1;if(rowcount >= 0){demod1.removeRow(rowcount);demod1.setRowCount(rowcount);}elsebreak;}}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;public class main{public static void main(String args[]){entry ent=new entry();ent.setVisible(true);ent.setResizable(false);}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class record extends JFrame implements ActionListener{ JTextField t1;TextArea t;JButton but1;JLabel L1;JPanel p1;JTable table1=null;DefaultTableModel demod1=null;String n[]={"平均成绩","优秀","良好","不及格"};String [][]data=new String[0][0];public record(){super("统计");setBounds(350,30,470,610);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();L1=new JLabel("课程名");but1=new JButton("查询");but1.addActionListener(this);t1=new JTextField(10);p1.add(L1);p1.add(t1);p1.add(but1);demod1=new DefaultTableModel(data,n);table1=new JTable(demod1);JScrollPane s1=new JScrollPane(table1);p1.add(s1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){int i=0;String sql1;String sql2;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){try{String num1=t1.getText();if(num1.equals("")){JOptionPane.showMessageDialog(this, "学号不能为空","请输入学号!",JOptionPane.W ARNING_MESSAGE);}else{sql1="select * from 学生成绩表where 学号='"+num1+"'";sql1="select avg(成绩) from 学生成绩表where 课程名='"+num1+"'";sql2="select count(*) from 学生成绩表where 课程名='"+num1+"' and 成绩>=90";con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql1);removeAllRecord();while(rs.next()){Vector data=new Vector();data.addElement(rs.getInt(1));/*data.addElement(rs.getString(3));data.addElement(rs.getString(4));data.addElement(rs.getString(5));*/demod1.addRow(data);i=1;}rs=stmt.executeQuery(sql2);while(rs.next()){int n = rs.getInt(1);System.out.println(n);}if(i==0){JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}table1.revalidate();t1.setText("");stmt.close();con.close();}}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}public void removeAllRecord(){//将界面上的所有记录清空int rowcount;while(true){//删除所有存在的行rowcount = demod1.getRowCount()-1;if(rowcount >= 0){demod1.removeRow(rowcount);demod1.setRowCount(rowcount);}elsebreak;}}}文件revise.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class revise extends JFrame implements ActionListener{ JTextField t1,t2,t3,t4,t5;JTable table;JButton but1;JLabel lab1,lab2,lab3,lab4,lab5;JPanel p1;int n=0;revise(){super("修改");setBounds(350,100,470,400);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();lab1=new JLabel("学号"); t1=new JTextField(10);lab2=new JLabel("姓名"); t2=new JTextField(10);lab3=new JLabel("课程名"); t3=new JTextField(10);lab4=new JLabel("状态"); t4=new JTextField(10);lab5=new JLabel("成绩"); t5=new JTextField(10);but1=new JButton("修改");but1.addActionListener(this);p1.add(lab1);p1.add(t1);p1.add(lab2);p1.add(t2);p1.add(lab3);p1.add(t3);p1.add(lab4);p1.add(t4);p1.add(lab5);p1.add(t5);p1.add(but1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){String sql1=null,update=null;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){ //修改---------------------------try{String num1=t3.getText();String num2=t1.getText();//String num3=t5.getText();n= Integer.valueOf(t5.getText()).intValue();System.out.print(n);con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();sql1="select * from 学生成绩表where 学号='"+num2+"' and 课程名='"+num1+"'";update="update 学生成绩表set 课程名='"+t3.getText()+"',状态='"+t4.getText()+"',成绩='"+n+"' where 学号='"+num2+"'";ResultSet rs=stmt.executeQuery(sql1);if(rs.next()){stmt.executeUpdate(update);JOptionPane.showMessageDialog(this, "修改成功!");}else{JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}t1.setText("");t2.setText("");t3.setText("");t4.setText("");t5.setText("");stmt.close();con.close();}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;class student extends JFrame implements ActionListener{ inquiry cho;JMenuBar mb;JMenu m1;JMenuItem mt1,mt2;String No;Icon icon;JLabel lab;student(String no){super("学生");icon=new ImageIcon("123.jpg");lab=new JLabel(icon);add(lab);No=no;setBounds(130,10,800,500);JMenuBar mb=new JMenuBar();setJMenuBar(mb);m1=new JMenu("操作");mt1=new JMenuItem("查询成绩");mt2=new JMenuItem("退出");m1.add(mt1);mt1.addActionListener(this);m1.addSeparator();m1.add(mt2);mt2.addActionListener(this);m1.addActionListener(this);mb.add(m1);}public void actionPerformed(ActionEvent e){if(e.getSource()==mt1)cho=new inquiry(No);if(e.getSource()==mt2)dispose();}}import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;class teacher extends JFrame implements ActionListener{ addmessage add;deletemessage delete;revise re;user use;record rec;MenuBar mb;Menu m1;MenuItem mt1,mt2,mt3,mt4,mt5,mt6;Icon icon;JLabel lab;teacher(){super("管理员");setBounds(130,10,800,500);MenuBar mb=new MenuBar();setMenuBar(mb);m1=new Menu("操作");mt1=new MenuItem("增加");mt2=new MenuItem("删除");mt3=new MenuItem("修改");mt4=new MenuItem("查询");mt5=new MenuItem("统计");mt6 = new MenuItem("退出");icon=new ImageIcon("123.jpg");lab=new JLabel(icon);add(lab);mt1.addActionListener(this);m1.add(mt1);mt2.addActionListener(this);m1.add(mt2);mt3.addActionListener(this);m1.add(mt3);mt4.addActionListener(this);m1.add(mt4);mt5.addActionListener(this);m1.add(mt5);m1.addSeparator();mt6.addActionListener(this);m1.add(mt6);m1.addActionListener(this);mb.add(m1);}public void actionPerformed(ActionEvent e){if(e.getSource()==mt1)add=new addmessage();if(e.getSource()==mt2)delete=new deletemessage();if(e.getSource()==mt3)re=new revise();if(e.getSource()==mt4)use=new user();if(e.getSource()==mt5)rec=new record();if(e.getSource()==mt6)dispose();}}文件user.java代码import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;class user extends JFrame implements ActionListener{ JTextField t1,t2;TextArea t;JButton but1;JLabel L1,L2;JPanel p1;JTable table1=null;DefaultTableModel demod1=null;String n[]={"姓名","课程名","状态","成绩"};String [][]data=new String[0][0];public user(){super("查询");setBounds(350,30,470,610);setLayout(new GridLayout(1,1,10,10));p1=new JPanel();L1=new JLabel("学号");L2=new JLabel("课程名");but1=new JButton("查询");but1.addActionListener(this);t1=new JTextField(10);t2=new JTextField(10);p1.add(L1);p1.add(t1);p1.add(L2);p1.add(t2);p1.add(but1);demod1=new DefaultTableModel(data,n);table1=new JTable(demod1);JScrollPane s1=new JScrollPane(table1);p1.add(s1);add(p1);setVisible(true);}public void actionPerformed(ActionEvent e){int i=0;String sql1;String url="jdbc:mysql://localhost:3306/学生成绩系统";Connection con;Statement stmt;try{Class.forName("org.gjt.mm.mysql.Driver");}catch(ng.ClassNotFoundException e1){System.err.println("ClassNotFoundException:"+e1.getMessage());}if(e.getSource()==but1){try{String num1=t1.getText();String num2=t2.getText();if(num1.equals("")){JOptionPane.showMessageDialog(this, "学号不能为空","请输入学号!",JOptionPane.W ARNING_MESSAGE);}else{sql1="select * from 学生成绩表where 学号='"+num1+"'";if(!num2.equals("")){sql1="select * from 学生成绩表where 课程名='"+num2+"'and 学号='"+num1+"'";}con=DriverManager.getConnection(url,"root","123");stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql1);removeAllRecord();while(rs.next()){Vector data=new Vector();data.addElement(rs.getString(2));data.addElement(rs.getString(3));data.addElement(rs.getString(4));data.addElement(rs.getString(5));demod1.addRow(data);i=1;}if(i==0){JOptionPane.showMessageDialog(this, "没有此条记录!请重新输入");}table1.revalidate();t1.setText("");stmt.close();con.close();}}catch(SQLException ex){System.err.println("SQLException:"+ex.getMessage());}}}public void removeAllRecord(){//将界面上的所有记录清空int rowcount;while(true){//删除所有存在的行rowcount = demod1.getRowCount()-1;if(rowcount >= 0){demod1.removeRow(rowcount);demod1.setRowCount(rowcount);}elsebreak;}}}附件sql语句create table 用户管理表(用户名varchar(25),密码varchar(15),权限组varchar(15))insert into 用户管理表values('01','01','学生')insert into 用户管理表values('admin','admin','管理员') select * from 用户管理表create table 学生成绩表(学号varchar(25),姓名varchar(15),课程名varchar(25),状态varchar(5),成绩int(11))insert into 学生成绩表values('01','朱亮','数据库','通过','88') insert into 学生成绩表values('02','张三','数据库','未通过','55') select * from 学生信息管理表。

java学生成绩管理系统设计代码

java学生成绩管理系统设计代码

一、背景介绍在当今信息化时代,计算机科学与技术的发展变得日新月异。

在教育领域,学生成绩管理系统的设计与实现对教学管理工作起到了至关重要的作用。

随着Java语言的发展与普及,使用Java语言开发学生成绩管理系统成为了一种趋势。

二、需求分析1. 管理员管理功能:包括添加学生信息、删除学生信息、查询学生成绩等;2. 学生管理功能:包括查看个人成绩、修改个人信息等;3. 教师管理功能:查看学生成绩、录入学生成绩等;4. 数据库管理功能:对学生成绩数据进行管理;5. 界面友好性:系统界面要简洁明了,易于操作。

三、系统设计1. 技术选型:Java语言、MySQL数据库;2. 系统架构:将系统分为前端和后端,前端使用Java Swing实现界面,后端使用Java语言与MySQL数据库交互;3. 数据库设计:设计学生信息表、教师信息表和成绩信息表;4. 模块划分:分为管理员模块、学生模块、教师模块、数据库管理模块。

四、系统实现1. 数据库设计:创建学生信息表、教师信息表和成绩信息表,建立相关的外键约束;2. 后端开发:使用Java语言编写后端代码,实现对数据库的增删改查操作;3. 前端开发:使用Java Swing实现系统界面,设计管理员、学生、教师不同的操作界面;4. 系统集成:将前后端代码进行集成,实现系统功能。

五、系统测试1. 功能测试:测试管理员、学生、教师不同模块的功能是否正常;2. 兼容性测试:测试系统在不同操作系统和浏览器下的兼容性;3. 性能测试:测试系统的性能,包括响应速度和并发能力;4. 安全性测试:测试系统对输入的合法性和安全性。

六、系统优化1. 代码优化:对系统代码进行优化,提高系统的性能和响应速度;2. 用户体验优化:优化系统界面,提高系统的友好性;3. 安全性优化:加强系统对输入的合法性检查,提高系统的安全性;4. 部署优化:对系统部署进行优化,提高系统的稳定性和可靠性。

七、总结与展望通过对学生成绩管理系统的设计与开发,我们实现了管理员、学生和教师的管理功能,并且通过优化提高了系统的性能和用户体验。

java课程设计学生成绩管理系统代码

java课程设计学生成绩管理系统代码

一、概述随着信息化时代的到来,学生成绩管理系统已经成为学校教育管理的重要组成部分。

学生成绩管理系统的建设,对于提高学校教学管理水平,促进教学改革具有重要意义。

本文旨在通过java编程语言设计学生成绩管理系统代码,为学校教育管理提供技术支持和参考。

二、系统功能设计1. 学生成绩录入功能学生成绩录入功能是学生成绩管理系统的核心功能之一,通过该功能,教师可以方便快捷地录入学生成绩信息。

录入信息包括学生尊称、学号、课程名称、成绩等。

2. 学生成绩查询功能学生成绩查询功能是学生成绩管理系统的基本功能之一,通过该功能,教师和学生可以查询学生成绩信息。

查询信息包括学生尊称、学号、课程名称、成绩等。

3. 学生成绩统计功能学生成绩统计功能是学生成绩管理系统的重要功能之一,通过该功能,教师可以对学生成绩信息进行统计分析。

统计信息包括总分、平均分、及格人数、优秀人数等。

4. 学生成绩修改功能学生成绩修改功能是学生成绩管理系统的必要功能之一,通过该功能,教师可以对学生成绩信息进行修改。

修改信息包括学生尊称、学号、课程名称、成绩等。

5. 学生成绩导出功能学生成绩导出功能是学生成绩管理系统的便捷功能之一,通过该功能,教师可以将学生成绩信息导出为Excel或PDF格式,以便打印和备份。

三、系统代码设计1. 学生成绩录入代码```javapublic class StudentGradeInput {public static void m本人n(String[] args) {// 录入学生成绩信息Scanner input = new Scanner(System.in);System.out.println("请输入学生尊称:");String name = input.nextLine();System.out.println("请输入学号:");String id = input.nextLine();System.out.println("请输入课程名称:");String course = input.nextLine();System.out.println("请输入成绩:");int grade = input.nextInt();// 将学生成绩信息存入数据库// ...}}```2. 学生成绩查询代码```javapublic class StudentGradeQuery {public static void m本人n(String[] args) { // 查询学生成绩信息Scanner input = new Scanner(System.in); System.out.println("请输入学生尊称:"); String name = input.nextLine();// 查询数据库中对应学生的成绩信息// ...}}```3. 学生成绩统计代码```javapublic class StudentGradeStatistics {public static void m本人n(String[] args) { // 统计学生成绩信息// 从数据库中获取所有学生成绩信息// 统计总分、平均分、及格人数、优秀人数等 // ...}}```4. 学生成绩修改代码```javapublic class StudentGradeModify {public static void m本人n(String[] args) { // 修改学生成绩信息Scanner input = new Scanner(System.in); System.out.println("请输入学生尊称:"); String name = input.nextLine();// 查询数据库中对应学生的成绩信息// ...System.out.println("请输入新的成绩:"); int newGrade = input.nextInt();// 更新数据库中对应学生的成绩信息// ...}}```5. 学生成绩导出代码```javapublic class StudentGradeExport {public static void m本人n(String[] args) {// 导出学生成绩信息// 从数据库中获取所有学生成绩信息// 将学生成绩信息导出为Excel或PDF格式// ...}}```四、系统代码实现以上代码实现了学生成绩管理系统的基本功能,包括学生成绩录入、查询、统计、修改和导出。

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

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

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

2.录入、编辑同学的学号、性别、成绩等信息。

3.提供对学号或姓名进行成绩或所有信息的查询。

4.计算学生平均成绩,显示最高成绩学生信息。

5.能按成绩、学号、姓名排序列出学生信息。

6.能统计学生成绩分数段的分布(60以下、60~70、70~80、80~90、90~100)情况,并输出。

7.用文件保存数据,以便反复使用。

概要设计:算法的流程图:录入学生成绩信息显示学生信息计算学生平均成绩显示最高成绩学生查找学生信息修改学生信息学生信息库扩容统计学生成绩分数段的分布编译运行字节码文件列出学生成绩信息按成绩排序列出学生信息按学号排序列出学生信息按姓名排序列出学生信息退出详细设计:学生成绩管理系统代码设计:import java.util.*;import ng.*;import。

*;class StudentMis {public static void main(String[] args) throws n {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("---------------------------------------");while (true) {System.out.println();System.out.println("请选择要执行的操作:"); System.out.println("1、录入学生信息");System.out.println("2、显示学生信息");System.out.println("3、计算学生平均成绩"); System.out.println("4、显示最高成绩学生"); System.out.println("5、查找学生信息");System.out.println("6、修改学生信息");System.out.println("7、学生信息库扩容"); System.out.println("8、统计学生成绩分数段的分布"); System.out.println("9、按成绩排序列出学生信息"); System.out.println("10、按学号排序列出学生信息"); System.out.println("11、按姓名排序列出学生信息"); System.out.println("0、退出");select = sc.nextInt();switch (select) {case 0:System.exit(0);break;case 1:mis.input(stu);break;case 2:mis.display(stu); break;case 3:mis.average(stu); break;case 4:mis.max(stu); break;case 5:mis.search(stu); break;case 6:mis.modify(stu); break;case 7:stu = mis.resize(stu); break;case 8:mis.statistic(stu);break;case 9:mis.sortByGrade(stu);break;case 10:XXX(stu);break;case 11:mis.sortByName(stu);break;default:System.out.println("输入有误,请重新输入!"); break;void input(Student[] stu) {Scanner sc = new Scanner(System.in);int i = 0;while (i < stu.length) {System.out.println("请输入学生信息(学号、姓名、性别、成绩):");stu[i] = new Student(sc.nextInt()。

【系统】Java学生成绩管理系统源代码

【系统】Java学生成绩管理系统源代码

【关键字】系统Java学生成绩管理系统源代码Java学生成绩管理系统源代码import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;import ;/** Created on*//*** @author 让炜* @since 1.0** TODO 学生成绩管理系统* 通过学号查找,修改,删除数据**/public class LittleProgram{static boolean isDelete = true;static boolean isFind = true;public static void main(String [] args)//主方法,程序从这里开始运行throws IOException,NumberNotFoundException{int choice=-1;do{LittleProgram lp = new LittleProgram();;"\t####################################"); ;"\t\t Java学生成绩管理系统1.1");"\t\t请用学号查找,修改,删除数据");;"\t####################################\n"); "1.增加数据:\n"+"2.查找数据:\n"+"3.删除数据:\n"+"4.清除所有数据:\n"+"5.把数据全部打印到屏幕\n"+"6.把成绩按学号排序\n"+"7.修改数据\n"+"8.统计已记录成绩学生数\n"+"9.关于作者\n"+"0.退出程序.\n" +"输入:");BufferedReader in = //从终new BufferedReader( //端接new InputStreamReader(System.in));//收数String inputLine = in.readLine(); //字选choice= Integer.valueOf(inputLine).intValue();//项; switch(choice){case 1: {//1.增加数据String str = lp.inputData();lp.addData(str);"增加数据成功.");timeOut(1);}break;case 2: {//2.查找数据long find = 0;"请输入你要查找的学生学号:"); BufferedReader inn =new BufferedReader(new InputStreamReader(System.in));String inputLi = inn.readLine();find = Integer.valueOf(inputLi).longValue();lp.findData(find);timeOut(2);}break;case 3: {//3.删除数据long deleteNumber = 0;"请输入你想删除的同学的学号:"); BufferedReader bf =new BufferedReader (new InputStreamReader(System.in));String inputL = bf.readLine();deleteNumber = Integer.valueOf(inputL).longValue(); lp.deleteData(deleteNumber);if(isDelete)"删除数据成功!");timeOut(1);}break;case 4: {lp.clearData();//4.清除所有数据timeOut(1);}break;case 5: {print();//5.把数据全部打印到屏幕timeOut(2);}break;case 6: {lp.numSort();//6.把成绩按学号排序"按照学号从小到大排序成功!\n"+"排序后:\n");print();timeOut(2);}break;case 7: {lp.rewrite();//7.修改数据timeOut(2);}break;case 8: {int count = lp.count();"共有"+count+"个学生已经记录.");timeOut(2);}break;case 9: {"\t\t让炜\n"+"\t\t上海电力学院通信工程系\n"+"\t\tQQ:0\n");timeOut(4);}break;}while (choice != 0);"Bye! ^-^");System.exit(0);}public String inputData()//从终端接收数据的方法,返回字符串throws IOException,NumberFormatException{"请依次输入:学号姓名性别成绩\n" +"每项数据请用空格隔开:");String all = "";try{BufferedReader in = //从终new BufferedReader ( //端接new InputStreamReader(System.in)); //收数String inputLine = in.readLine(); //据StringTokenizer str =new StringTokenizer(inputLine," ");//接收的数据用空格隔开,这个类用来提取每个字符串long num = Integer.valueOf(str.nextToken()).longValue();//学号String name = (String)str.nextToken(); //姓名String sex = (String)str.nextToken(); //性别double mark = Integer.valueOf(str.nextToken()).doubleValue();//分数all = String.valueOf(num) +" , "+name +" , "+sex +" , "+String.valueOf(mark);//把所有的数据用" , "隔开然后在连起来放进字符串all}catch (IOException e){}catch (NumberFormatException e){}return all;//返回字符串all}public void addData(String str)//增加数据的方法throws IOException{String s1 ="",s2="" ,s3= "";File file = new File("data.txt");if (file.exists())//如果文件data.txt存在{try{BufferedReader in =new BufferedReader(new FileReader("data.txt"));while ((s1=in.readLine())!=null)s2+=s1+"\n";//把文件中的每行数据全部放进一个字符串s2s2+=str+"\n"; //再把s2于形参str相连放进s2BufferedReader in2 = //把字符new BufferedReader( //串s2也new StringReader(s2)); //就是原PrintWriter out = //文件+new PrintWriter( //形参str(新输入的一行数据)new BufferedWriter( //重新写进data.txtnew FileWriter("data.txt"))); //覆盖原来的数据while ((s3=in2.readLine())!= null){out.println(s3);}out.close();//"write data true.");}catch (IOException e){}}else{"File \"data\" Missing!");}}public void clearData()//清除data.txt的所有数据的方法throws IOException{File file = new File("data.txt");if(file.exists())//如果文件在{try{PrintWriter out =new PrintWriter(new BufferedWriter(new FileWriter(file)));out.print("");//在文件data.txt里写进一个空字符,所以清除了原来的内容out.close(); //关闭文件"clear data true!");}catch(IOException e){}}else{"File \"data\" Missing!");}}public void deleteData(long deleteNumber)//删除某条数据throws IOException,FileNotFoundException{isDelete = true;try{DataMap mp = new DataMap();//生成一个自己编写的容器long j=0;String s1="",s2="",s3="";BufferedReader in =new BufferedReader(new FileReader("data.txt"));while ((s1=in.readLine())!=null){j=numberTokenizer(s1);mp.put(j,s1);}try{if(mp.containsKey( String.valueOf(deleteNumber).toString())) {mp.remove(deleteNumber);}elsethrow new NumberNotFoundException();Collection c = mp.values();Iterator iter = c.iterator();while(iter.hasNext()){s1 = (String)iter.next();s3 +=s1+"\n";}BufferedReader in2 =new BufferedReader(new StringReader(s3));PrintWriter out =new PrintWriter(new BufferedWriter(new FileWriter("data.txt")));//"delete No"+deleteNumber);while( (s1 = in2.readLine())!=null){out.println(s1);}out.close();}catch (NumberNotFoundException e){isDelete = false;" no found :(");}}catch(IOException e){}}public long numberTokenizer(String s)throws IOException{StringTokenizer st =new StringTokenizer(s," ");return Integer.valueOf((st.nextToken())).longValue();}public void findData(long find)//查找数据throws IOException,NumberNotFoundException{isFind = true;String s = "",findString ="";long i;DataMap dm = new DataMap();BufferedReader in =new BufferedReader(new FileReader("data.txt"));while ((s=in.readLine())!=null){i=numberTokenizer(s);dm.put(i,s);}//in.close();try{if(dm.containsKey( String.valueOf(find).toString())){findString = dm.get(find);"学号"+find+"学生的资料是:");;}elsethrow new NumberNotFoundException();}catch (NumberNotFoundException e){" no found :(");isFind = false;}}public static void print()//读取文本文件把数据打印到终端的方法throws IOException{try{BufferedReader in =new BufferedReader(new FileReader("data.txt"));String read = "";while ((read = in.readLine())!=null);}catch(IOException e){}}public static void timeOut(double sec)//停顿短暂时间的一个方法完全可以不要这个功能{double seconds = sec;long t = System.currentTimeMillis()+(int)(seconds*1000); while ((System.currentTimeMillis())<t);}public void numSort()//按学号排序throws IOException{long i = 0;String s = "";try{DataArrayList dal = new DataArrayList(); BufferedReader in =new BufferedReader(new FileReader("data.txt"));while ((s=in.readLine())!=null){i=numberTokenizer(s);dal.add(i);}Collections.sort(dal);DataMap dm = new DataMap();BufferedReader in2 =new BufferedReader(new FileReader("data.txt"));while ((s=in2.readLine())!=null){i=numberTokenizer(s);dm.put(i,s);}PrintWriter out =new PrintWriter (new BufferedWriter(new FileWriter("data.txt")));Iterator it = dal.iterator();long temp = 0;String tempStr = "";while (it.hasNext()){temp = Integer.valueOf((String)it.next()).longValue(); tempStr = dm.get(temp);out.println(tempStr);}out.close();}catch(IOException e){}}public void rewrite()throws IOException,NumberNotFoundException {try{"请输入你要修改的学生学号:"); BufferedReader in =new BufferedReader (new InputStreamReader(System.in));String inputLine = in.readLine();long num = Integer.valueOf(inputLine).longValue(); findData(num);if(isFind){deleteData(num);"请重新输入该学生的资料:");String str = inputData();addData(str);"rewrite true!");}}catch(IOException e){}catch(NumberNotFoundException e){}}public int count()throws IOException{DataArrayList dal = new DataArrayList();try{String s = "";long i =0;BufferedReader in =new BufferedReader(new FileReader("data.txt"));while ((s=in.readLine())!=null){i=numberTokenizer(s);dal.add(i);}}catch(IOException e){}return dal.size();}}/*** @author RangWei* TODO 这是个我们写的一个容器,继承公共类HashMap* 大概的功能就相当一个数组**/class DataMap extends HashMap//一个保存数据的Map{public void put(long i,String str)//把学号和数据放进这个Map{ //以后一个学号(key)对应的是一个人的数据(value)put(String.valueOf(i).toString(),str);}public void remove(long i)//接收学号,然后删除学号(key)和它对应的数据(value) {remove(String.valueOf(i).toString().toString());}public String get(long i)//接收一个学号,然后返回这个key对应的value{String s = String.valueOf(i).toString();if (!containsKey(s)){"Not found Key: "+s);}return (String)get(s);}}/*** @author RangWei** TODO 这个类继承ArrayList* 用来按数字排序,在用学号排序时要用到它**/class DataArrayList extends ArrayList{public void add(long num){String numToString = String.valueOf(num).toString();add(numToString);}}/*文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.** @author RangWei** TODO 增加的一个Exception,主要是在文件里没有要找* 的学号就抛出**/class NumberNotFoundException extends Exception{public NumberNotFoundException(){}}此文档是由网络收集并进行重新排版整理.word可编辑版本!11。

一个简单的学生成绩管理信息系统(Java)

一个简单的学生成绩管理信息系统(Java)

一个简单的学生成绩管理信息系统(Java)一个简单的学生成绩管理信息系统题目:数据库要求:1.建立的数据库中包含如下信息:学生学号、姓名、班级,语文、数学、英语成绩。

2.至少要有5个班级,每个班级要有10名以上学生。

3.使用.txt格式文本表示各种表。

功能需求:1.能够实现根据以下关键字查询:学生姓名、学号、班级、课程名称。

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

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

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

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

界面要求:使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。

需求分析:界面:要符合日常软件使用规范,使用方便,外形简洁美观。

功能需求:存储学生学号、姓名、班级,语文、数学、英语成绩等信息,实现数据库的读取与存入,数据项的记录与修改,删除等。

设计思想:类设计:将添加数据、查询数据、删除数据、修改数据四个功能分别为四个类来实现,为了便于测试,每一个类都继承了主窗口类JFRAME,使得窗口可以独自运行。

INSERT类设计:功能组件6个文本域、6个标签、1个按钮。

功能实现添加数据。

实现过程对按钮添加监控,实现按钮事件为获取文本域中的信息,并执行SQL的INSERT语句。

QUERY类设计:功能组件5个按钮、三个单行文本组件、1个下拉框、1个多行文本。

功能实现按学号查询、按姓名查询、按班级查询、按课程查询、显示全部。

实现过程对按钮添加监控,共有五个监控事件,前三个实现按钮事件为先获取文本域中的信息,根据对应查询的要求执行相应的SQL的SELLECT语句;按课程查询通过在下拉框中选择对应的选项,即查询相应的课程;第五个查询按钮将全部信息在多行文本框中输出。

MODIFY类设计:功能组件6个单行文本、6个标签、1个按钮。

功能实现修改数据。

实现过程与添加数据类似,对按钮添加监控,实现按钮事件为获取文本域中的信息,并执行SQL的UPDATE语句;不同的是以学号为主键进行查找并更新。

java学生成绩管理系统代码

java学生成绩管理系统代码

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。

学生成绩管理系统java

学生成绩管理系统java

学生成绩管理系统Java1. 简介学生成绩管理系统是一种用于管理学生信息和学生成绩的应用程序,通过该系统可以方便地记录学生的各门科目成绩、计算平均成绩、生成成绩报告等功能。

本文档将详细介绍学生成绩管理系统的设计和实现,使用Java作为开发语言。

2. 功能需求学生成绩管理系统应该具备以下功能:1.学生信息管理:包括学生姓名、学号、年级等基本信息的录入、修改和删除功能。

2.科目管理:包括科目名称、科目编号的录入、修改和删除功能。

3.成绩管理:包括学生各科目的成绩录入、修改和删除功能。

4.成绩查询:根据学生学号或姓名进行成绩查询的功能。

5.成绩统计:根据科目统计某学期班级的平均成绩、最高成绩、最低成绩等统计信息。

6.成绩报告生成:根据学生的成绩生成成绩报告,包括学生基本信息、各科目成绩、平均成绩等内容。

3. 系统设计3.1 数据库设计系统中将使用MySQL数据库来存储学生信息、科目信息和成绩信息。

3.1.1 学生表(student)列名数据类型说明id INT 学生ID,主键name VARCHAR 学生姓名student_no VARCHAR 学生学号grade VARCHAR 学生年级3.1.2 科目表(subject)列名数据类型说明id INT 科目ID,主键name VARCHAR 科目名称subject_no VARCHAR 科目编号3.1.3 成绩表(score)列名数据类型说明id INT 成绩ID,主键student_id INT 学生ID,外键subject_id INT 科目ID,外键score FLOAT 成绩3.2 系统架构设计学生成绩管理系统将采用三层架构,包括表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。

3.2.1 表现层(Presentation Layer)表现层负责与用户交互,接受用户输入的指令,展示系统的运行结果。

基于JAVA的学生成绩管理系统源代码

基于JAVA的学生成绩管理系统源代码

Java程序设计系电气信息系专业软件班级1342学号131842352姓名朱家军题目学生成绩管理系统任课教师一:要求1、用到书上(课本或实验册)上的至少三个实例2、用到至少两种布局和至少四种组件3、用到对话框4、用到对数据库的查询、删除、添加和修改5、最好用到输入输出流6、具有一定的实际意义二:内容本系统用access作为数据库,用到了书上的布局实例和数据库连接实例功能: 1、输入十个同学的学号,姓名,出生日期,二科成绩(学,大学英语) 。

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

3、删除记录4、查询记录5、添加记录6、修改记录1.简单的方式(java)import java.awt.Button;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import java.awt.Frame;import bel;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JOptionPane;public class 查询成绩登陆系统extends Frame{ private Label lab_stuNum,lab_stuPassword;private TextField tf_stuNum,tf_stuPassword; private Button bt_login,bt_reset;public Label getLab_stuNum() {if(b_stuNum==null){b_stuNum=new Label("学号");}return lab_stuNum;}public Label getLab_stuPassword() {if(b_stuPassword==null){b_stuPassword=new Label("密码");}return lab_stuPassword;}public TextField getTf_stuNum() {if(this.tf_stuNum==null){this.tf_stuNum=new TextField(15);}return tf_stuNum;}public TextField getTf_stuPassword() {if(this.tf_stuPassword==null){this.tf_stuPassword=new TextField(15);this.tf_stuPassword.setEchoChar('●');}return tf_stuPassword;}public Button getBt_login() {if(this.bt_login==null){this.bt_login=new Button("登陆");this.bt_login.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {String account=tf_stuNum.getText();if(account==null||"".equals(account)){JOptionPane.showMessageDialog(查询成绩登陆系统.this, "请输入学号");tf_stuNum.requestFocus();}String pw=tf_stuPassword.getText();if(pw==null||"".equals(pw)){JOptionPane.showMessageDialog(查询成绩登陆系统.this, "请输入密码");tf_stuPassword.requestFocus();}String db_account="admin";String db_password="000000";if(account.equals(db_account)&&pw.equals(db_password)){JOptionPane.showMessageDialog(查询成绩登陆系统.this, "登陆成功");查询成绩登陆系统.this.dispose();}else{JOptionPane.showMessageDialog(查询成绩登陆系统.this,"账号密码不对");tf_stuNum.setText("");tf_stuPassword.setText("");tf_stuNum.requestFocus();}}2.C语言#include <stdio.h>#include <string.h>#include <stdlib.h>#include <windows.h>struct student //结构体定义{int num;char name[10];char birthday[10];int Cyuyan;int shujujiegou;struct student *next;};struct student *creat_by_input();struct student *get_last_student(struct student *head);struct student *Print_menu_main() //主菜单{printf("*********************************************************************\n");printf(" | 1.........输入学生信息| \n");printf(" | 2.........输出学生信息| \n");printf(" | 3.........查找学生信息| \n");printf(" | 4.........修改学生信息| \n");printf(" | 5.........插入学生信息| \n");printf(" | 6.........删除学生信息| \n");printf(" | 7.........排序学生信息| \n");printf(" | 0.........退出系统| \n");printf(" |_ _ _ _ _ _ _ _ _ _ _ _ _ | \n");}struct student *print_table_head(){printf("+----------+----------+----------+----------+-------------+\n");printf("| 学号| 姓名| 出生日期| c成绩|数据结构成绩|\n");printf("+----------+----------+----------+----------+-------------+\n");}struct student *print_table_row(struct student *p){printf("|%10d|%10s|%10s|%10d|%10d|\n",p->num,p->name,p->birthday,p->Cyuyan,p->shuju jiegou);}void print_table_bottom(){printf("+----------+----------+----------+----------+-------------+\n");}struct student * Creat_stu_record() //建立链表{struct student *plaststu=NULL,*pnewstu;char continue_input='N';struct student *head=NULL;while(1){if(head==NULL){head=creat_by_input();print_table_head();print_table_row(head);print_table_bottom();}else{pnewstu=creat_by_input();print_table_head();print_table_row(pnewstu);print_table_bottom();plaststu=get_last_student(head);plaststu->next=pnewstu;}printf("是否继续输入学生信息?(Y 继续,N 返回菜单)\n");getchar();continue_input=getchar();if(continue_input=='n'||continue_input=='N'){system("cls");Print_menu_main();break;}}return head;}struct student *creat_by_input(){struct student *pnewstu=(struct student *)malloc(sizeof(struct student));printf("请输入学生信息\n");printf("学号:");scanf("%d",&pnewstu->num);printf("姓名:");scanf("%s",pnewstu->name);printf("出生年月:");scanf("%s",pnewstu->birthday);printf("请输入学生成绩\n");printf("C语言:");scanf("%d",&(pnewstu->Cyuyan));printf("数据结构:");scanf("%d",&(pnewstu->shujujiegou));pnewstu->next=NULL;return pnewstu;}struct student *get_last_student(struct student *p ){if(p->next==NULL)return p;elsereturn get_last_student(p->next);}void Print_Stu_Doc(struct student *head){struct student *p;char r;print_table_head();if(head==NULL){printf("\n No Records\n");}for(p=head;p;p=p->next){printf("|%10d|%10s|%10s|%10d|%10d|\n",p->num,p->name,p->birthday,p->Cyuyan,p->shuju jiegou);printf("+----------+----------+----------+----------+-------------+\n");}printf("(按Enter键返回主菜单)\n");getchar();r=getchar();if(r!='1'){system("cls");Print_menu_main();}else{system("cls");Print_menu_main();}}struct student *search_by_name(struct student *head)//按姓名查找{char name[10];struct student *p=head;char continue_input;/*int isfound=0;*/printf("请输入要查找的姓名:");scanf("%s",name);printf("查找%s\n",name);print_table_head();while(p!=NULL){if(strcmp(p->name,name)==0){print_table_row(p);p=p->next;/* isfound=1; */break;}p=p->next;}print_table_bottom();printf("是否继续查找?(Y 继续;N 返回主菜单)\n");getchar();continue_input=getchar();if(continue_input=='n'||continue_input=='N'){system("cls");Print_menu_main();}elsesearch_by_name(head);}struct student * search_by_id(struct student *head)//按学号查找{int id;struct student *p=head;char continue_input;/*int isfound=0;*/printf("请输入要查找的学号:");scanf("%d",&id);printf("查找%d\n",id);print_table_head();while(p!=NULL){if(p->num==id){print_table_row(p);p=p->next;/*isfound=1;*/break;}p=p->next;}print_table_bottom();printf("是否继续查找?(Y 继续;N 返回主菜单)\n");getchar();continue_input=getchar();if(continue_input=='n'||continue_input=='N'){system("cls");Print_menu_main();}elsesearch_by_id(head);return head;}struct student*modify_record_by_id(struct student*head)//按学号修改{struct student *p=head;int id;char continue_input;printf("请输入要修改的学生的学号:\n");scanf("%d",&id);while(p!=NULL){if(p->num==id)break;p=p->next;}if(p==NULL)printf("抱歉,没有学号为%d的学生\n",id);else{printf("请输入学生信息:\n");printf("学号:");scanf("%d",&(p->num));printf("姓名:");scanf("%s",&(p->name));printf("出生年月:");scanf("%s",&(p->birthday));printf("请输入学生成绩:\n");printf("C语言:");scanf("%d",&(p->Cyuyan));printf("数据结构:");scanf("%d",&(p->shujujiegou));print_table_head();print_table_row(p);print_table_bottom();}printf("继续修改学生信息吗?Y 继续;N 返回主菜单\n");getchar();continue_input=getchar();if(continue_input=='y'||continue_input=='Y')creat_by_input();else{system("cls");Print_menu_main();}return head;}struct student*modify_record_by_name(struct student*head)//按姓名修改{struct student*p=head;char name[10];char continue_input;printf("请输入要修改的学生的姓名:\n");scanf("%s",name);while(p!=NULL){if(strcmp(p->name,name)==0)break;p=p->next;}if(p==NULL)printf("抱歉,没有姓名为%s的学生\n",name);else{printf("请输入学生信息:\n");printf("学号:");scanf("%d",&(p->num));printf("姓名:");scanf("%s",&(p->name));printf("出生年月:");scanf("%s",&(p->birthday));printf("请输入学生成绩:\n");printf("C语言:");scanf("%d",&(p->Cyuyan));printf("数据结构:");scanf("%d",&(p->shujujiegou));print_table_head();print_table_row(p);print_table_bottom();}printf("继续修改学生信息吗?Y 继续;N 返回主菜单\n");getchar();continue_input=getchar();if(continue_input=='y'||continue_input=='Y')creat_by_input();else{system("cls");Print_menu_main();}return head;}struct student *insert_record(struct student *head)//插入{struct student *ptr1;struct student *ptr,*stud;struct student *ptr2=head;char continue_input='N';int id;printf("请输入一个学号,在此之前插入学生信息:");scanf("%d",&id);stud=creat_by_input();ptr=stud;if(head==NULL){head=ptr;head->next=NULL;}else if(head->num==id){ptr->next=head;head=ptr;}else{while(ptr2!=NULL){ptr1=ptr2;ptr2=ptr1->next;if(ptr2->num==id){ptr1->next=ptr;ptr->next=ptr2;break;}}}print_table_head();print_table_row(ptr);print_table_bottom();printf("是否继续插入学生信息?(Y 继续N 返回主菜单)\n");getchar();continue_input=getchar();if(continue_input=='y'||continue_input=='Y')return insert_record(head);else{system("cls");Print_menu_main();return head;}}struct student *Delete_record_by_id( struct student *head)//按学号删除{struct student *p=head,*ppre=NULL;int id;char continue_input;printf("请输入要删除的学号:");scanf("%d",&id);while(p!=NULL){if(p->num==id)break;p=p->next;}if(p==NULL)printf("抱歉,没有该学号的学生信息!\n");else{printf("确定要删除学号为%d的学生的信息吗?(Y 确定;N 返回主菜单)\n",p->num);getchar();continue_input=getchar();if(continue_input=='y'||continue_input=='Y'){ppre=head;if(ppre==p){head=p->next;printf(" \n");free(p);}else{while(ppre!=NULL){if(ppre->next==p){ppre->next=p->next;free(p);break;}ppre=ppre->next;}}printf("删除成功!");}// Print_menu_main();}printf("继续删除学生信息吗?(Y 继续;N 返回主菜单)");getchar();continue_input=getchar();if(continue_input=='y'||continue_input=='Y')Delete_record_by_id(head);else{system("cls");Print_menu_main();return head;}return 0;}struct student *Delete_record_by_name( struct student *head)// 按姓名删除{struct student *p=head,*ppre=NULL;char name[10];char continue_input;printf("请输入要删除的姓名:");scanf("%s",name);while(p!=NULL){if(strcmp(p->name,name)==0) break;p=p->next;}if(p==NULL){printf("抱歉,没有该姓名的学生信息!\n");goto end;}elseprintf("确定要删除姓名为%s的学生的信息吗?(Y 确定;N 返回主菜单)",p->name);printf("\n");getchar();continue_input=getchar();if(continue_input=='y'||continue_input=='Y'){ppre=head;if(ppre==p){head=p->next;free(p);}else{while(ppre!=NULL){if(ppre->next==p){ppre->next=p->next;free(p);break;}ppre=ppre->next;}}printf("删除成功!");}//else Print_menu_main();end: printf("继续删除学生信息吗?(Y 继续;N 返回主菜单)");printf("\n");getchar();continue_input=getchar();if(continue_input=='Y'||continue_input=='y')Delete_record_by_name(head);else{system("cls");Print_menu_main();return head;}return 0;}struct student * Sorting_record_by_id(struct student *head)//按学号排序{int i=0,j,k,r;struct student *pt1,*pt2,*pt,m;if(head==NULL){printf("现在无同学记录\n");printf("(按Enter键返回主菜单)\n");getchar();r=getchar();if(r!='1'){system("cls");Print_menu_main();}else{system("cls");Print_menu_main();}}else{pt1=head;pt2=head->next;for(pt=head;pt;pt=pt->next)i++;for(j=1;j<i;j++){pt1=head;pt2=head->next;for(k=1;k<i-j+1;k++){if(pt1->num>pt2->num){m=*pt1;*pt1=*pt2;*pt2=m;pt2->next=pt1->next;pt1->next=pt2;}pt1=pt2;pt2=pt1->next;}}}print_table_head();for(pt=head;pt;pt=pt->next){printf("|%10d|%10s|%10s|%10d|%10d|\n",pt->num,pt->name,pt->birthday,pt->Cyuyan,pt->s hujujiegou);printf("+----------+----------+----------+----------+----------+\n");}return head;}int main(){struct student *head=NULL;struct student *p;int choice;int select;char m;char r;system("color e");printf("\n");printf("\n");printf(" 欢迎使用学生成绩管理系统!\n");printf("\n");printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^\n");printf("\n");printf("...............................................................................\n");printf("请按照提示信息完成操作\n");Print_menu_main();printf("\n");printf(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n");printf("\n");printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");while(choice!=0){printf("请选择所要执行的操作:\n");start:if(scanf("%d",&choice)){if(choice>7||choice<0){printf("请输入0到7的数字,选择所要执行的操作:\n");goto start;}elsegoto next;}if(scanf("%c",&m)){printf("请输入0到7的数字,选择所要执行的操作:\n");goto start;}next:switch(choice){case 1:system("cls");head=Creat_stu_record();break;case 2:system("cls");Print_Stu_Doc(head);break;case 3:system("cls");printf("请选择查找方式:1 按姓名查找;2 按学号查找;3 返回主菜单");printf("\n");scanf("%d",&select);switch(select){case 1:search_by_name(head);break;case 2:search_by_id(head);break;case 3:system("cls");Print_menu_main();break;};break;case 4:system("cls");printf("请输入修改方式:1 按学号修改;2 按姓名修改; 3 返回主菜单");printf("\n");scanf("%d",&select);switch(select){case 1:system("cls");modify_record_by_id(head);break;case 2:system("cls");modify_record_by_name(head);break;case 3:system("cls");Print_menu_main();break;}break;case 5:system("cls");head=insert_record(head);break;case 6:system("cls");printf("请输入删除方式:1 按学号删除;2 按姓名删除; 3 返回主菜单\n");scanf("%d",&select);switch(select){case 1:head=Delete_record_by_id(head);break;case 2:head=Delete_record_by_name(head);break;case 3:Print_menu_main();break;}break;case 7:system("cls");Sorting_record_by_id(head);printf("(按Enter键返回主菜单)\n");getchar();r=getchar();if(r!='1'){system("cls");Print_menu_main();}else{system("cls");Print_menu_main();}break;break;case 0:system("cls");printf("\n");printf("------------------------------------------------------------\n");printf(" ^-^ ^-^ ^-^ ^-^ ^-^ 谢谢使用^-^ ^-^ ^-^ ^-^ ^-^!\n");printf("\n");break;}}}三:代码第一部分:public class main {public static void main(String[] args) {zhuchuangkou win=new zhuchuangkou();}}第二部分主界面:import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class zhuchuangkou extends Frame implements ActionListener{Button button1,button2,button3,button4,tuichu;Panel p1,p2,p3;Label l1,l2,l3;TextField a1,a2;Box b1,b2,b3,b4,b5;ss s;zhuchuangkou(){button1=new Button("登陆");button2=new Button("删除");button3=new Button("修改");button4=new Button("添加");tuichu=new Button("退出");p1=new Panel();p2=new Panel();p3=new Panel();l1=new Label("学生成绩管理",Label.CENTER);l1.setFont(new Font("宋体",Font.BOLD,72));l1.setBackground(Color.green);l2=new Label("登录名");l3=new Label("密码");a1=new TextField(10);a2=new TextField(10);a2.setEchoChar('*');b1=Box.createVerticalBox();b1.add(l2);b1.add(Box.createVerticalStrut(8));b1.add(l3);b2=Box.createVerticalBox();b2.add(a1);b2.add(Box.createVerticalStrut(8));b2.add(a2);b4=Box.createHorizontalBox();b4.add(button1);b4.add(Box.createHorizontalStrut(10)); b4.add(tuichu);b3=Box.createHorizontalBox();b3.add(b1);b3.add(Box.createHorizontalStrut(10)); b3.add(b2);b5=Box.createVerticalBox();b5.add(b3);b5.add(Box.createVerticalStrut(8));b5.add(b4);button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this);tuichu.addActionListener(this);p1.add(l1);p2.add(b5);add(p1,BorderLayout.NORTH);add(p2,BorderLayout.CENTER);add(p3,BorderLayout.PAGE_END);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dispose();}});setBackground(Color.RED);setBounds(10, 10, 1000, 500);setVisible(true);validate();}public void actionPerformed(ActionEvent e){if(e.getSource()==tuichu){System.exit(0);}if(e.getSource()==button1){if(a1.getText().equals("liuzhenji")&&a2.getText().equals("123456")){ new chuankou();System.out.println("wwwww");dispose();}else{System.out.print("nishurucuowu");}}}}第三部分选择操作:import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class zhuchuangkou extends Frame implements ActionListener{Button button1,button2,button3,button4,tuichu;Panel p1,p2,p3;Label l1,l2,l3;TextField a1,a2;Box b1,b2,b3,b4,b5;ss s;zhuchuangkou(){button1=new Button("登陆");button2=new Button("删除");button3=new Button("修改");button4=new Button("添加");tuichu=new Button("退出");p1=new Panel();p2=new Panel();p3=new Panel();l1=new Label("学生成绩管理",Label.CENTER);l1.setFont(new Font("宋体",Font.BOLD,72));l1.setBackground(Color.green);l2=new Label("登录名");l3=new Label("密码");a1=new TextField(10);a2=new TextField(10);a2.setEchoChar('*');b1=Box.createVerticalBox();b1.add(l2);b1.add(Box.createVerticalStrut(8));b1.add(l3);b2=Box.createVerticalBox();b2.add(a1);b2.add(Box.createVerticalStrut(8));b2.add(a2);b4=Box.createHorizontalBox();b4.add(button1);b4.add(Box.createHorizontalStrut(10));b4.add(tuichu);b3=Box.createHorizontalBox();b3.add(b1);b3.add(Box.createHorizontalStrut(10));b3.add(b2);b5=Box.createVerticalBox();b5.add(b3);b5.add(Box.createVerticalStrut(8));b5.add(b4);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);tuichu.addActionListener(this);p1.add(l1);p2.add(b5);add(p1,BorderLayout.NORTH);add(p2,BorderLayout.CENTER);add(p3,BorderLayout.PAGE_END);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dispose();}});setBackground(Color.RED);setBounds(10, 10, 1000, 500);setVisible(true);validate();}public void actionPerformed(ActionEvent e){if(e.getSource()==tuichu){System.exit(0);}if(e.getSource()==button1){if(a1.getText().equals("liuzhenji")&&a2.getText().equals("123456")){ new chuankou();System.out.println("wwwww");dispose();}else{System.out.print("nishurucuowu");}}}}第四部分查询界面实现:import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.JOptionPane;public class ss extends Frame implements TextListener,ActionListener{ Button xunzhao;TextField input;TextArea show;String s;int k;Connection con;Statement sql;int sum=0;ResultSet rs;ss(){Panel p=new Panel();xunzhao= new Button("查找");input= new TextField(10);show= new TextArea(6,43);p.add(new Label("输入学号"));p.add(input);p.add(xunzhao);xunzhao.addActionListener(this);show.addTextListener(this);show.setEditable(false);add(p,BorderLayout.NORTH);add(show,BorderLayout.CENTER);setBounds(10,30,500,200);setVisible(true);validate();addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dispose();}});}public void actionPerformed(ActionEvent ee) {boolean boo=true;s=input.getText();k=Integer.parseInt(s);try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundException eee){ System.out.println(""+eee);}try { con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM chengjibiao ");while(rs.next()){int number=rs.getInt("number");String name=rs.getString("name");String date=rs.getString("birthday");int math=rs.getInt("math");int english=rs.getInt("english");if(number==k){ boo=false;show.setText(null);show.append("学号:"+number+" 姓名:"+name+" 出生:"+date+"数学"+math+" 英语"+english);show.append("\n");}}con.close();if(boo){JOptionPane.showMessageDialog(this, "你输入的学号不存在");}}catch(SQLException eee){ System.out.println(eee);}}}第五部分删除:import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.JOptionPane;public class shanchu extends Frame implements TextListener,ActionListener{ Button xunzhao;TextField input;TextArea show;String s;int k,s1,j;Connection con;Statement sql;int sum=0;ResultSet rs;shanchu(){Panel p=new Panel();xunzhao= new Button("删除");input= new TextField(10);show= new TextArea(6,43);p.add(new Label("输入要删除的" +"学号"));p.add(input);p.add(xunzhao);xunzhao.addActionListener(this);show.addTextListener(this);show.setEditable(false);add(p,BorderLayout.NORTH);add(show,BorderLayout.CENTER);setBounds(10,30,500,200);setVisible(true);validate();addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dispose();}});}public void actionPerformed(ActionEvent ee) {boolean boo=true;s=input.getText();k=Integer.parseInt(s);String m,dir;try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException eee){ System.out.println(""+eee);}try { con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM chengjibiao");while(rs.next()){int number=rs.getInt(2);String name=rs.getString(3);String date=rs.getString("birthday");int math=rs.getInt("math");int english=rs.getInt("english");if(number==k){show.setText("你删除了:");show.append("学号:"+number+" 姓名:"+name+" 出生:"+date+"数学"+math+" 英语"+english);show.append("\n");m="DELETE FROM chengjibiao WHERE number="+k+"";sql.executeUpdate(m);}}con.close();}catch(SQLException e){ System.out.println(e);}}}第六部分修改:import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.JOptionPane;public class xiugai extends Frame implements TextListener,ActionListener{Button charu;TextField input1,input2,input3,input4,input5,input6;TextArea show;Panel p1,p2;int k,s1,j;Connection con;Statement sql;int sum=0;ResultSet rs;xiugai(){p1=new Panel();p2=new Panel();charu= new Button("修改");input1= new TextField(10);input2= new TextField(10);input3= new TextField(10);input4= new TextField(10);input5= new TextField(10);input6= new TextField(10);show= new TextArea(6,43);p1.add(new Label("请输入要修改的学号"));p1.add(new Label("number"));p1.add(input1);p2.add(new Label("请输入修改的数据"));p2.add(new Label("name"));p2.add(input2);p2.add(new Label("date"));p2.add(input3);p2.add(new Label("math"));p2.add(input4);p2.add(new Label("english"));p2.add(input5);p2.add(charu);charu.addActionListener(this);show.addTextListener(this);show.setEditable(false);add(p1,BorderLayout.NORTH);add(p2,BorderLayout.CENTER);setBounds(10,30,1200,200);setVisible(true);validate();addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){dispose();}});}public void actionPerformed(ActionEvent ee) { boolean boo=true;String s0,s1,s2,s3,s4,s5,insert1,recode,name,date;int m0,m1,m2,m3,number,math,english;s1=input1.getText();m1=Integer.parseInt(s1);number=m1;s4=input4.getText();m2=Integer.parseInt(s4);math=m2;s5=input5.getText();m3=Integer.parseInt(s5);english=m3;try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException eee){ System.out.println(""+eee);}try { con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123");sql=con.createStatement();recode="("+m0+","+number+","+"'"+name+"'"+","+"'"+date+"'"+","+math+","+english+")";insert1="UPDA TE chengjibiao SET math="+math+",english="+english+"WHERE number="+number+"";sql.executeUpdate(insert1);} catch(SQLException e){ System.out.println(e);}}}第七部分添加:import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.JOptionPane;public class charu extends Frame implements TextListener,ActionListener{ Button charu;TextField input1,input2,input3,input4,input5,input6;TextArea show;int k,s1,j;Connection con;Statement sql;int sum=0;ResultSet rs;charu(){Panel p=new Panel();charu= new Button("插入");input1= new TextField(10);input2= new TextField(10);input3= new TextField(10);input4= new TextField(10);input5= new TextField(10);input6= new TextField(10);show= new TextArea(6,43);p.add(new Label("请输入要插入的数据"));p.add(new Label("ID"));。

JAVA 学生成绩管理系统源代码

JAVA 学生成绩管理系统源代码
import javax.swing.*; import javax.swing.event.AncestorEvent; import javax.swing.event.AncestorListener; public class student extends JFrame implements ActionListener {
super("学生成绩管理系统"); setLayout(null); menuBar.add(file); menuBar.add(set); menuBar.add(help); file.add(newItem); setJMenuBar(menuBar); //面板 1 p1.setBounds(10, 10, 800, 530); p1.setBackground(Color.gray); p1.setLayout(null); j1.setBounds(20, 0, 50, 30); j2.setBounds(20, 385, 100, 30); p1.add(j1); p1.add(j2); text1.setBounds(10, 30, 780, 350); text2.setBounds(10, 420, 780, 100); //text1.setEditable(false); p1.add(text1); p1.add(text2); add(p1); //面板 2 p2.setLayout(null); p2.setBounds(820, 10, 150, 530); p2.setBackground(Color.green); check.setBounds(23, 20, 100, 50); check1.setBounds(23, 80, 100, 50); button3.setBounds(23, 140, 100, 50); button4.setBounds(23, 200, 100, 50); button5.setBounds(23, 260, 100, 50); button6.setBounds(23, 320, 100, 50);

java学生成绩管理系统课程设计源码

java学生成绩管理系统课程设计源码

一、概述Java学生成绩管理系统是一种利用Java语言开发的,用于学校管理学生成绩的信息系统。

它提供了学生信息的录入和管理功能,可以方便教师对学生成绩进行查询和统计分析,同时也为学生和家长提供了查询成绩和学业情况的途径。

本文将为大家详细介绍Java学生成绩管理系统的课程设计源码。

二、系统设计1. 功能设计学生成绩管理系统主要包括学生信息管理、课程管理、成绩管理和统计分析等功能。

学生信息管理包括学生基本信息的录入和修改,课程管理包括课程信息的录入和修改,成绩管理包括学生成绩的录入和查询,统计分析包括对成绩进行分析和报表输出等。

2. 技术选型本系统采用Java作为开发语言,采用MySQL作为数据库,采用Swing作为界面开发工具,采用JDBC进行数据库连接。

3. 系统架构学生成绩管理系统采用B/S架构,即浏览器/服务器架构。

前端页面采用Java Swing实现,后端采用Java编写,采用MySQL作为数据库存储数据。

三、系统实现1. 数据库设计(1)学生表学生ID、尊称、性别、生日、通联方式、家庭住宅区域等字段。

(2)课程表课程ID、课程名称、学分、任课教师等字段。

(3)成绩表学生ID、课程ID、成绩等字段。

2. 源码实现(1)学生信息管理学生信息的录入和修改功能采用Java Swing实现,与数据库的交互采用JDBC技术。

(2)课程管理课程信息的录入和修改功能同样采用Java Swing实现,并与数据库进行交互。

(3)成绩管理成绩的录入和查询功能采用Java Swing实现,并通过JDBC与数据库交互。

(4)统计分析统计分析功能包括对成绩进行统计和报表输出,采用Java编程实现。

四、系统测试系统测试分为单元测试和集成测试两个阶段。

单元测试主要测试系统的各个模块是否正常运行,集成测试主要测试系统各模块之间的交互是否正常。

测试内容包括录入学生信息、录入课程信息、录入成绩、查询成绩、统计分析等功能的测试。

Java实现简单的学生成绩管理系统

Java实现简单的学生成绩管理系统

Java实现简单的学⽣成绩管理系统ScoreInformation.javaimport java.util.Scanner;class ScoreInformation {private String stunumber; //⼋位学号private String name;private double mathematicsscore;private double englishscore;private double networkscore;private double databasescore;private double softwarescore;//构造函数ScoreInformation(String stunumber,String name,double mathematicssore,double englishscore,double networkscore,double databasescore,double softwarescore) {this.stunumber=stunumber;=name;this.mathematicsscore=mathematicssore;this.englishscore=englishscore;workscore=networkscore;this.databasescore=databasescore;this.softwarescore=softwarescore;};ScoreInformation(){};//读取和设置变量信息public void setstunumber(String stunumber){this.stunumber=stunumber;}public String getstunumber(){return stunumber;}public void setname(String name){=name;}public String getname(){return name;}public void setmathematicsscore(double math){this.mathematicsscore=math;}public double getmathematicsscore(){return mathematicsscore;}public void setenglishscore(double english){this.englishscore=english;}public double getenglishscore(){return englishscore;}public void setnetworkscore(double network){workscore=network;}public double getnetworkscore(){return networkscore;}public void setdatabasescore(double database){this.databasescore=database;}public double getdatebasescore(){return databasescore;}public void setsoftwarescore(double software){this.softwarescore=software;}public double getsoftwarescore(){return softwarescore;}}ScoreManagement.javaimport java.text.DecimalFormat;import java.util.Scanner;public class ScoreManagement {int t;public static void main(String[] args){ScoreManagement a=new ScoreManagement();ScoreInformation s[]=new ScoreInformation[5];//存储五个学⽣信息s[0]=new ScoreInformation("20183725","杨⽂青",0,0,0,0,0);s[1]=new ScoreInformation("20184725","乔⼀",70,70,70,70,70);s[2]=new ScoreInformation("20173695","沈潇",60,70,80,60,80);s[3]=new ScoreInformation("20183728","王⼀墨",70,70,70,70,70); s[4]=new ScoreInformation("20183721","肖奈",60,60,60,60,60);a.menu(s);}//主界⾯public void menu(ScoreInformation []s){System.out.println("***************************************");System.out.println(" ⽯家庄铁道⼤学软件⼯程系 ");System.out.println(" 学⽣学籍管理系统2019版 ");System.out.println("***************************************"); System.out.println(" 1.学⽣考试成绩录⼊ ");System.out.println(" 2.学⽣考试成绩修改 ");System.out.println(" 3.计算学⽣成绩绩点 ");System.out.println(" 4.退出学籍管理系统 ");System.out.println("***************************************");//输⼊选项int a;Scanner in=new Scanner(System.in);a=in.nextInt();while(a<0||a>4){System.out.print("输⼊⽆效,请重新输⼊:");a=in.nextInt();}switch(a) {case 1:add(s);break;case 2:modif(s);break;case 3:showjidian(s);case 4:exit();break;default:break;}}//退出界⾯public void exit(){System.out.println("**************************************************");System.out.println("谢谢使⽤⽯家庄铁道⼤学软件⼯程系学⽣学籍管理系统2019级版"); System.out.println(" 制作⼈:杨⽂青 ");System.out.println("**************************************************");System.exit(0);}//成绩录⼊,形参为数组public void add(ScoreInformation [] s){System.out.println("**************************************************");System.out.println(" ⽯家庄铁道⼤学软件⼯程系学⽣学籍管理系统2019级版");System.out.println("**************************************************");System.out.println(" 请输⼊学⽣学号(8位): ");Scanner in=new Scanner(System.in);int a;a=in.nextInt();for(int i=0;i<s.length;i++)if(a==Integer.parseInt(s[i].getstunumber())){this.luru(s);//录⼊完成后显⽰学⽣成绩信息System.out.println("**************************************************");System.out.println(" ⽯家庄铁道⼤学软件⼯程系学⽣学籍管理系统2019级版");System.out.println(" 学⽣考试成绩录⼊界⾯ ");System.out.println("**************************************************");System.out.println(" 学⽣学号:"+s[i].getstunumber());System.out.println(" 学⽣姓名:"+s[i].getname());System.out.println(" ⾼等数学成绩"+s[i].getmathematicsscore());System.out.println(" ⼤学英语成绩"+s[i].getenglishscore());System.out.println(" 计算机⽹络成绩"+s[i].getnetworkscore());System.out.println(" 数据库成绩"+s[i].getdatebasescore());System.out.println(" 软件⼯程成绩"+s[i].getsoftwarescore());System.out.println("该学⽣成绩已录⼊完毕,是否提交(Y/N)");System.out.println("**************************************************");Scanner In=new Scanner(System.in);String str;char ch;str=In.next();ch=str.charAt(0);while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n'){System.out.println("输⼊有误,请重新输⼊:");str=In.next();ch=str.charAt(0);}if(ch=='Y'||ch=='y'){this.menu(s);}if(ch=='N'||ch=='n'){this.luru(s);}}}//成绩成绩录⼊界⾯public void luru(ScoreInformation []s){System.out.println("**************************************************");System.out.println(" ⽯家庄铁道⼤学软件⼯程系学⽣学籍管理系统2019级版");System.out.println(" 学⽣考试成绩录⼊界⾯ ");System.out.println("**************************************************");System.out.println(" 学⽣学号:"+s[t].getstunumber()); //t是全局变量System.out.println(" 学⽣姓名:"+s[t].getname());System.out.println(" 请输⼊⾼等数学成绩: ");Scanner score=new Scanner(System.in);s[t].setmathematicsscore(score.nextDouble());System.out.println(" 请输⼊⼤学英语成绩: ");s[t].setenglishscore(score.nextDouble());System.out.println(" 请输⼊计算机⽹络成绩: ");s[t].setnetworkscore(score.nextDouble());System.out.println(" 请输⼊数据库成绩: ");s[t].setdatabasescore(score.nextDouble());System.out.println(" 请输⼊软件⼯程成绩: ");s[t].setsoftwarescore(score.nextDouble());System.out.println("**************************************************");}public void modif(ScoreInformation []s){System.out.println("**************************************************");System.out.println(" ⽯家庄铁道⼤学软件⼯程系学⽣学籍管理系统2019级版");System.out.println(" 学⽣考试成绩修改界⾯ ");System.out.println("**************************************************");System.out.println(" 请输⼊学⽣学号(8位): ");Scanner in=new Scanner(System.in);int a;a=in.nextInt();for(int i=0;i<s.length;i++)if(a==Integer.parseInt(s[i].getstunumber())){t=i; //标记该学⽣System.out.println("**************************************************");System.out.println(" ⽯家庄铁道⼤学软件⼯程系学⽣学籍管理系统2019级版"); System.out.println(" 学⽣考试成绩录⼊界⾯ ");System.out.println("**************************************************");System.out.println(" 学⽣学号:"+s[i].getstunumber());System.out.println(" 学⽣姓名:"+s[i].getname());System.out.println(" 1. ⾼等数学成绩"+s[i].getmathematicsscore());System.out.println(" 2. ⼤学英语成绩"+s[i].getenglishscore());System.out.println(" 3. 计算机⽹络成绩"+s[i].getnetworkscore());System.out.println(" 4. 数据库成绩"+s[i].getdatebasescore());System.out.println(" 5.软件⼯程成绩"+s[i].getsoftwarescore());System.out.println("**************************************************");}int m; //输⼊选项Scanner k=new Scanner(System.in);m=k.nextInt();System.out.println("**************************************************");System.out.println(" ⽯家庄铁道⼤学软件⼯程系学⽣学籍管理系统2019级版"); System.out.println(" 学⽣考试成绩录⼊界⾯ ");System.out.println("**************************************************");System.out.println(" 学⽣学号:"+s[t].getstunumber());System.out.println(" 学⽣姓名:"+s[t].getname());Scanner chengji=new Scanner(System.in); //录⼊所要修改的成绩if(m==1){ System.out.println(" 请输⼊修改后⾼等数学成绩");s[t].setmathematicsscore(chengji.nextDouble());}if(m==2){ System.out.println(" 请输⼊修改后⼤学英语成绩");s[t].setenglishscore(chengji.nextDouble());}if(m==3){ System.out.println(" 请输⼊修改后计算机⽹络成绩");s[t].setnetworkscore(chengji.nextDouble());}if(m==4){ System.out.println(" 请输⼊修改后数据库成绩");s[t].setdatabasescore(chengji.nextDouble());}if(m==5){ System.out.println(" 请输⼊修改后软件⼯程成绩");s[t].setsoftwarescore(chengji.nextDouble());}System.out.println("**************************************************");System.out.println(" ⽯家庄铁道⼤学软件⼯程系学⽣学籍管理系统2019级版"); System.out.println(" 学⽣考试成绩录⼊界⾯ ");System.out.println("**************************************************");System.out.println(" 学⽣学号:"+s[t].getstunumber());System.out.println(" 学⽣姓名:"+s[t].getname());System.out.println(" ⾼等数学成绩"+s[t].getmathematicsscore());System.out.println(" ⼤学英语成绩"+s[t].getenglishscore());System.out.println(" 计算机⽹络成绩"+s[t].getnetworkscore());System.out.println(" 数据库成绩"+s[t].getdatebasescore());System.out.println(" 软件⼯程成绩"+s[t].getsoftwarescore());System.out.println("该学⽣成绩已录⼊完毕,是否提交(Y/N)");System.out.println("**************************************************");Scanner In=new Scanner(System.in);String str;char ch;str=In.next();ch=str.charAt(0);while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n'){System.out.println("输⼊有误,请重新输⼊:");str=In.next();ch=str.charAt(0);}if(ch=='Y'||ch=='y'){this.menu(s);}if(ch=='N'||ch=='n'){this.modif(s);}}public double jidian(double n) //分数{//获得不同成绩段对应的绩点if(n>90) return 4.0;else if(n>=85) return 3.7;else if(n >=82) return 3.3;else if(n >=78) return 3.0;else if(n>=75) return 2.7;else if(n>=72) return 2.3;else if(n>=68) return 2.0;else if(n>=66) return 1.7;else if(n>=64) return 1.5;else if(n>=60) return 1.0;else return 0.;}public void showjidian(ScoreInformation []s){System.out.println("**************************************************");System.out.println(" ⽯家庄铁道⼤学软件⼯程系学⽣学籍管理系统2019级版"); System.out.println(" 学⽣考试成绩绩点计算界⾯ ");System.out.println("**************************************************");System.out.println(" 请输⼊学⽣学号:");Scanner in=new Scanner(System.in);int b;b=in.nextInt();//计算各学科绩点for(int i=0;i<5;i++){if(b==Integer.parseInt(s[i].getstunumber())){System.out.println("**************************************************");System.out.println(" ⽯家庄铁道⼤学软件⼯程系学⽣学籍管理系统2019级版"); System.out.println(" 学⽣考试成绩绩点计算界⾯ ");System.out.println("**************************************************");System.out.println(" 学⽣学号:"+s[i].getstunumber());System.out.println(" 学⽣姓名:"+s[i].getname());System.out.println(" ⾼等数学成绩绩点:"+jidian(s[i].getmathematicsscore()));System.out.println(" ⼤学英语成绩绩点:"+jidian(s[i].getenglishscore()));System.out.println(" 计算机⽹络成绩绩点:"+jidian(s[i].getnetworkscore()));System.out.println(" 数据库成绩绩点:"+jidian(s[i].getdatebasescore()));System.out.println(" 软件⼯程成绩绩点:"+jidian(s[i].getsoftwarescore()));//假设课程学分为1double avr=(jidian(s[i].getmathematicsscore())+jidian(s[i].getenglishscore())+jidian(s[i].getnetworkscore())+jidian(s[i].getdatebasescore())+jidian(s[i].getsoftwarescore()))/5; System.out.println(" 你的平均学分绩点为:"+new DecimalFormat("#.00").format(avr)); //⼩数点后保留两位if(avr>=2) System.out.println("提⽰信息:你的学分绩点已达到毕业要求!");else System.out.println("提⽰信息:你的学分绩点不满⾜毕业要求!");}}System.out.println("是否返回系统主界⾯(Y/N)");Scanner In=new Scanner(System.in);String str;char ch;str=In.next();ch=str.charAt(0);while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n'){System.out.println("输⼊有误,请重新输⼊:");str=In.next();ch=str.charAt(0);}if(ch=='Y'||ch=='y'){this.menu(s);}if(ch=='N'||ch=='n'){}}}实现的功能如下:。

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

Java程序设计系专业班级08级嵌入式系统实验班学号26号赵黎明姓名题目学生成绩管理系统任课教师彭洁一、课程设计要求:1、用到书上(课本或实验册)上的至少三个实例;2、用到至少两种布局和至少四种组件;3、用到对话框;4、用到对数据库的查询、删除、添加和修改;5、最好用到输入输出流;6、具有一定的实际意义。

二、用到的实例及实际意义:2.1 程序所用到的实例:1、《Java2使用教程》第10章例题10.12 P282;2、《Java2使用教程》第11章例题11.8 P323;3、《Java2使用教程》第15章所有例题均有使用作参考 P391-411;4、在其他参考书和网上也有用到相关程序和代码,并有所参考和借鉴。

2.2程序的实际意义:本《学生成绩管理系统》具有对学生成绩进行管理的功能。

并于数据库相连接,能够对学生的成绩、姓名、出生日期进行查询、添加和删除等,简捷方便,容易使用。

三、程序代码及运行效果:3.1.1 主类代码:/*主类代码*/import javax.swing.*;import java.awt.*;import java.awt.event.*;class MyPanel extends JPanel{Image img=Toolkit.getDefaultToolkit().getImage("c:/a.jpg"); public void paint(Graphics g){g.drawImage(img,0,0,this);}}public 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("修改");JMenu mQuery=new JMenu("查询");JMenuItem mName=new JMenuItem("按姓名查询");JMenuItem mScore=new JMenuItem("按成绩查询");JMenu mHelp=new JMenu("帮助");JMenuItem mAbout=new JMenuItem("软件信息");JMenuBar mBar=new JMenuBar();MainForm(){super("学生成绩管理系统");setSize(875,583);mSystem.add(mExit);mOperate.add(mAdd);mOperate.add(mDel);mOperate.add(mModify);mQuery.add(mName);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);mName.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,"学生成绩管理系统\n\n应用科学学院\n\n2011年4月","软件信息",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()==mName)new NameQueryForm().setVisible(true);else if(ae.getSource()==mScore)new ScoreQueryForm().setVisible(true);}public static void main(String[] args) {new MainForm();}}3.1.2 运行效果:3.2.1 修改数据:/*修改数据*/import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public 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 con;Statement sql;ResultSet rs;ModifyForm(){super("修改数据");setSize(400,300);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){dispose();} else if(ae.getSource()==btnQuery){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){}try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123"); sql=con.createStatement();rs=sql.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{System.out.println("不存在该记录! ");btnModify.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");txtDate.setEditable(false);txtScore.setEditable(false);}}catch(SQLException e){}}else if(ae.getSource()==btnModify){try{System.out.println("Update 成绩表 set 出生日期='"+txtDate.getText()+"',成绩="+txtScore.getText()+" where 姓名='"+txtName.getText()+"'");sql.executeUpdate("Update 成绩表 set 出生日期='"+txtDate.getText()+"',成绩="+txtScore.getText()+" where 姓名='"+txtName.getText()+"'");System.out.println("记录修改完毕!");btnModify.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");txtDate.setEditable(false);txtScore.setEditable(false);con.close();}catch(SQLException e){}}}public static void main(String[] args) {new ModifyForm();}}3.2.2 运行效果:3.3.1 删除数据:/*删除数据*/import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public 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 btnDelete=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 con;Statement sql;ResultSet rs;DeleteForm(){super("删除数据");setSize(400,300);pan1.add(labName);pan1.add(txtName);pan2.add(labDate);pan2.add(txtDate);pan3.add(labScore);pan3.add(txtScore);pan4.add(btnQuery);pan4.add(btnDelete);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);btnDelete.addActionListener(this);btnCancel.addActionListener(this);btnDelete.setEnabled(false);//取消删除按钮的功能txtDate.setEditable(false);txtScore.setEditable(false);setVisible(true);txtName.requestFocus();}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnCancel){dispose();}else if(ae.getSource()==btnQuery){ //实现查询功能try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){}try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123");sql=con.createStatement();rs=sql.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());btnDelete.setEnabled(true);//使删除按钮功能实现txtDate.setEditable(true);txtScore.setEditable(true);}else{System.out.println("不存在该记录!");btnDelete.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");txtDate.setEditable(false);txtScore.setEditable(false);}}catch(SQLException e){}}else if(ae.getSource()==btnDelete) //实现删除功能{try{System.out.println("Update 成绩表set 出生日期='"+txtDate.getText()+"',成绩="+txtScore.getText()+" where 姓名='"+txtName.getText()+"'");sql.executeUpdate("DELETE FROM 成绩表where 姓名='"+txtName.getText()+"'");System.out.println("记录删除完毕!");btnDelete.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");txtDate.setEditable(false);txtScore.setEditable(false);con.close();}catch(SQLException e){}}}public static void main(String[] args){new DeleteForm();}}3.3.2 运行效果:3.4.1 添加数据:/*添加数据*/import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public 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 btnAdd=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 con;Statement sql;ResultSet rs;AddForm(){super("添加数据");setSize(400,300);pan1.add(labName);pan1.add(txtName);pan2.add(labDate);pan2.add(txtDate);pan3.add(labScore);pan3.add(txtScore);pan4.add(btnAdd);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");btnAdd.addActionListener(this);btnCancel.addActionListener(this);btnAdd.setEnabled(true);txtDate.setEditable(true);txtScore.setEditable(true);setVisible(true);txtName.requestFocus();}public void actionPerformed(ActionEvent ae){String recode,insert1,出生日期,姓名;int成绩;if(ae.getSource()==btnCancel){this.dispose();}else if(ae.getSource()==btnAdd){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){}try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123");sql=con.createStatement();姓名=txtName.getText();出生日期=txtDate.getText();成绩=Integer.parseInt(txtScore.getText());recode="("+"'"+姓名+"'"+","+"'"+出生日期+""+"',"+成绩+")";insert1="INSERT INTO 成绩表 VALUES "+recode;sql.executeUpdate(insert1);System.out.println("记录添加完毕!");btnAdd.setEnabled(false);txtName.setText("");txtScore.setText("");txtDate.setText("");con.close();}catch(SQLException e){}}}public static void main(String[] args){new AddForm();}}3.4.2 运行效果:3.5.1 按姓名查询数据:/*按姓名查询数据*/import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class NameQueryForm 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 con;Statement sql;ResultSet rs;NameQueryForm(){super("按姓名查询");setSize(400,300);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){dispose();} else if(ae.getSource()==btnQuery){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){}try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123"); sql=con.createStatement();rs=sql.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{System.out.println("不存在该记录! ");txtName.setText("");txtScore.setText("");txtDate.setText("");txtName.requestFocus();}}catch(SQLException e){}}}public static void main(String[] args) {new NameQueryForm();}}3.5.2 运行效果:3.6.1 按成绩查询数据:/*按成绩查询数据*/import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.table.DefaultTableModel;import javax.swing.table.JTableHeader;public 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 con;Statement sql;ResultSet rs;ScoreQueryForm(){super("按成绩查询");setSize(400,300);pan1.add(labScore);pan1.add(txtScore);pan1.add(btnQuery); //以上3条在第一个面板加入内容getContentPane().add(pan1,"North"); //把面板1放到窗口顶部pan2.setLayout(new BorderLayout());pan2.add(head,"North"); //将表头放在面板2的顶部pan2.add(jsp,"Center"); //表格放在pan2中间getContentPane().add(pan2,"Center");//把面板2整体加入到主窗口中btnQuery.addActionListener(this); //增加查询按钮的监视器setVisible(true);}public void actionPerformed(ActionEvent ae){if(ae.getSource()==btnQuery){int i,j,row;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){}try{ con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123"); sql=con.createStatement();rs=sql.executeQuery("select COUNT(*) as rowcount from 成绩表where 成绩="+txtScore.getText()); //寻找相同成绩的行数rs.next(); //去掉头row=rs.getInt("rowcount");rs.close();data=new Object[row][3];rs=sql.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("成绩"));//将数据库中查询到的信息保存到data中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();con.close();}catch(SQLException e){}}}public static void main(String[] args) {new ScoreQueryForm();}}3.6.2 运行效果:四、总结:通过本次课程设计,不仅让我更深入的了解JAVA这门学科,更使自己有了继续探索的兴趣。

相关文档
最新文档