java教学计划编制的全部代码
java课程设计及代码画布
java课程设计及代码画布一、教学目标本课程的教学目标是使学生掌握Java编程语言的基本语法、编程思想和方法,能够运用Java语言编写简单的应用程序。
具体目标如下:1.掌握Java语言的基本语法和数据类型。
2.了解面向对象编程的基本概念和方法。
3.熟悉常用Java类库和API的使用。
4.能够使用Java语言编写简单的控制台应用程序。
5.能够使用Java语言编写简单的图形用户界面(GUI)应用程序。
6.能够使用Java语言进行简单的文件操作。
情感态度价值观目标:1.培养学生的编程兴趣,提高学生的问题解决能力。
2.培养学生的团队协作意识和沟通能力。
3.使学生认识到编程语言在现代社会的重要性和应用价值。
二、教学内容根据课程目标,教学内容主要包括Java语言的基本语法、数据类型、面向对象编程、常用类库和API、简单的应用程序编写等。
具体安排如下:1.Java语言的基本语法和数据类型:介绍Java语言的基本语法规则,包括变量声明、数据类型、运算符、控制结构等。
2.面向对象编程:讲解面向对象编程的基本概念和方法,包括类和对象、封装、继承、多态等。
3.常用Java类库和API:介绍Java语言中常用的类库和API,如ng、java.util、java.awt等。
4.简单的应用程序编写:通过实例讲解如何使用Java语言编写简单的控制台应用程序和GUI应用程序,包括文本输入输出、图形界面设计等。
5.文件操作:讲解如何在Java中进行文件操作,包括文件的读取、写入、删除等。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:用于讲解Java语言的基本语法、数据类型、面向对象编程等理论知识。
2.案例分析法:通过分析实际案例,使学生掌握Java语言的应用方法和技巧。
3.实验法:安排上机实验,让学生亲自动手编写Java程序,巩固所学知识,提高实际编程能力。
四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备等。
java课程设计一万行代码
java课程设计一万行代码一、教学目标本节课的教学目标是使学生掌握Java编程的基本语法和结构,能够运用Java 编写简单的程序。
具体目标如下:1.理解Java编程语言的基本语法。
2.掌握Java的数据类型、变量、运算符。
3.理解Java的控制结构,如条件语句、循环语句。
4.了解Java的面向对象编程思想,如类、对象、封装、继承。
5.能够使用Java编写简单的程序,解决实际问题。
6.能够阅读和理解简单的Java程序。
7.能够对已有的Java程序进行修改和优化。
情感态度价值观目标:1.培养学生的编程兴趣,激发学生学习Java编程的动力。
2.培养学生解决问题的能力,使学生能够通过编程解决实际问题。
3.培养学生的团队协作意识,使学生在编程过程中能够与他人合作。
二、教学内容根据教学目标,本节课的教学内容如下:1.Java编程语言的基本语法和结构。
2.Java的数据类型、变量、运算符。
3.Java的控制结构,如条件语句、循环语句。
4.Java的面向对象编程思想,如类、对象、封装、继承。
三、教学方法为了达到教学目标,本节课将采用以下教学方法:1.讲授法:教师讲解Java编程语言的基本语法和结构,引导学生掌握知识。
2.案例分析法:通过分析典型案例,让学生理解Java编程的应用。
3.实验法:让学生动手编写Java程序,培养学生的编程能力。
四、教学资源为了支持教学内容和教学方法的实施,本节课需要准备以下教学资源:1.教材:Java编程基础。
2.多媒体资料:PPT、编程实例。
3.实验设备:计算机。
通过以上教学资源,学生可以更好地学习Java编程,提高编程能力。
五、教学评估为了全面、客观地评估学生的学习成果,本节课将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解程度。
2.作业:布置与课程内容相关的编程作业,要求学生在规定时间内完成,评估学生的编程能力和掌握程度。
教学计划编制源代码(5篇)
教学计划编制源代码(5篇)第一篇:教学计划编制源代码#include #include #include #include #include #include#define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE-1 #define Status int #define Boolean int #define MAX_NAME 10 #define MAXCLASS 100 #define MAX_VERTEX_NUM 100 #define STUDY 1 #define NOTSTUDY 0 #define STACK_INIT_SIZE 10 #define STACKINCREMENT 2 typedef int SElemType;typedef struct SqStack {SElemType *base;SElemType *top;int stacksize;}SqStack;typedef char VertexType[MAX_NAME];typedef struct ArcNode {int adjvex;//该弧指向顶点的位置struct ArcNode *nextarc;//指向下一条弧的指针 }ArcNode;typedef struct {VertexType data;int credit;int state;int indegree;ArcNode *firstarc;//指向第一条依附该顶点的弧的指针 }VNode,AdjList[MAX_VERTEX_NUM];typedef struct { AdjList vertices;int vexnum,arcnum;int kind;}ALGraph;int LocateVex(ALGraph G,VertexType u){int i;for(i=0;iif(strcmp(u,G.vertices[i].data)==0)return i;return-1;} Status CreateGraph(ALGraph &G){int i,j,k;VertexType va,vb;ArcNode *p;printf(“请输入教学计划的课程数: ”);scanf(“%d”,&G.vexnum);printf(“请输入拓扑排序所形成的课程先修关系的边数: ”);scanf(“%d”,&G.arcnum);printf(“请输入%d个课程的代表值(<%d个字符):n”,G.vexnum,MAX_NAME);for(i=0;i{scanf(“%s”,&G.vertices[i].data);G.vertices[i].firstarc=NULL;G.vertices[i].state=NOTSTUDY;G.vertices[i].indegree=0;}printf(“请输入%d个课程的学分值(<%d个字符):n”,G.vexnum,MAX_NAME);for(i=0;i{scanf(“%d”,&(G.vertices[i].credit));}printf(“请顺序输入每条弧(边)的弧头和弧尾(以空格作为间隔):n”);for(k=0;k{scanf(“%s%s”,va,vb);i=LocateVex(G,va);j=LocateVex(G,vb);p=(ArcNode*)malloc(sizeof(ArcNode));p->adjvex=j;p->nextarc=G.vertices[i].firstarc;G.vertices[i].firstarc=p;}return OK;} Status Display(ALGraph G){int i;ArcNode *p;printf(“%d个顶点:n”,G.vexnum);for(i=0;iprintf(“%s”,G.vertices[i].data);printf(“n%d条弧(边):n”,G.arcnum);for(i=0;i{p=G.vertices[i].firstarc;while(p!=NULL){printf(“%s→%s ”,G.vertices[i].data,G.vertices[p->adjvex].d ata);p=p->nextarc;}printf(“n”);} } Status FindInDegree(ALGraph G,int indegree[]){int i;ArcNode *p;for(i=0;iindegree[i]=0;for(i=0;i{p=G.vertices[i].firstarc;while(p){indegree[p->adjvex]++;p=p->nextarc;}} } Status InitStack(SqStack *S){(*S).base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!(*S).base)exit(OVERFLOW);(*S).top=(*S).base;(*S).stacksize=STACK_INIT_SIZE;return OK;} Status StackEmpty(SqStack *S){if((*S).top==(*S).base)return TRUE;elsereturn FALSE;} Status Pop(SqStack *S,SElemType *e){if((*S).top==(*S).base)return ERROR;*e=*--(*S).top;return OK;} Status Push(SqStack *S,SElemType e){if((*S).top-(*S).base>=(*S).stacksize){(*S).base=(SElemType*)realloc((*S).base,((*S).stacksize+STACKINCREMENT)*sizeof (SElemType));if(!(*S).base)exit(OVERFLOW);(*S).top=(*S).base+(*S).stacksize;(*S).stacksize+=STACKINCREMENT;}*((*S).top)++=e;return OK;} Status TopologicalSort(ALGraph &G,int numterm,int upterm){ArcNode *p;SqStack S;int indegree[MAX_VERTEX_NUM];//存放各节点的入度int i,j, k, m,n,q;int count;//课程编排数目计数器int sumcredit;//每个学期的课程学分累加器FindInDegree(G, indegree);for(i=0;iG.vertices[i].indegree=indegree[i];InitStack(&S);count=0;k=0;while((count!=G.vexnum)&&(k<=numterm)){sumcredit=0;q=0;for(i=0;iif((G.vertices[i].indegree==0)&&(G.vertices[i].state==NOTST UDY)){Push(&S,i);G.vertices[i].state=STUDY;//避免入度为零节点重复入栈}if(!StackEmpty(&S)&&(q<=upterm)){k= k+1;printf(“第%d个学期学的课程:”,k);printf(“n”);while((!StackEmpty(&S))&&(q{Pop(&S,&j);q=q+1;sumcredit=sumcredit+G.vertices[j].credit;printf(“%s ”,G.vertices[j].data);count++;for(p=G.vertices[j].firstarc;p;p=p->nextarc)//对j号顶点每个邻接点的入度减一G.vertices[p->adjvex].indegree--;}printf(“学分为:n”);printf(“%dn”,sumcredit);}}return OK;} Status TopologicalSort1(ALGraph G,int numterm,int uplcredit){ArcNode *p;SqStack S;int indegree[MAX_VERTEX_NUM];//存放各节点的入度int i,j, k, m,n;int count;//课程编排数目计数器int sumcredit;//每个学期的课程学分累加器FindInDegree(G, indegree);for(i=0;iG.vertices[i].indegree=indegree[i];InitStack(&S);count=0;k=0;while(count!=G.vexnum && k<=numterm){sumcredit=0;for(i=0;iif((G.vertices[i].indegree==0)&&(G.vertices[i].state==NOTST UDY)){Push(&S,i);G.vertices[i].state = STUDY;//避免入度为零节点重复入栈}if(!StackEmpty(&S)&&(sumcredit<=uplcredit)){k= k+1;printf(“n”);printf(“第%d个学期学得课程有:n”,k);sumcredit=0;while((!StackEmpty(&S))&&(sumcredit{Pop(&S,&j);sumcredit=sumcredit+G.vertices[j].credit;if(sumcredit<=uplcredit){printf(“%s ”,G.vertices[j].data);count++;for(p=G.vertices[j].firstarc;p;p=p->nextarc)//对j号顶点每个邻接点的入度减一G.vertices[p->adjvex].indegree--;}else{Push(&S,j);//将未输出的节点重新压入栈count--;}}printf(“n学分为:n”);printf(“%dn”,sumcredit);}}if(count==G.vexnum)printf(“编排成功”);else printf(“编排不成功”);} int main(){int x,y,z;ALGraph G;printf(“以下为教学计划编制问题的求解过程:n”);printf(“请输入学期总数:”);scanf(“%d”,&x);printf(“每学期课程上限:”);scanf(“%d”,&y);printf(“输入学分上限:”);scanf(“%d”,&z);CreateGraph(G);Display(G);TopologicalSort1(G,x,z);}第二篇:教学计划编制问题背景大学的每个专业都要制定教学计划。
java课程设计代码
4. Java反射机制,了解反射在运行时动态获取类信息和进行方法调用的能力;
5. Java注解(Annotation)的使用,理解标准注解及其自定义注解的编写与解析;
6. Java泛型的高级应用,探讨通配符、边界、类型擦除等高级概念。
java课程设计代码
一、教学内容
本节示范课为Java课程设计代码,依据教材《Java编程思想》第八章“对象与类”设计。主要内容包括:
1.类的定义与对象创建;
2.类的属性与方法的定义;
3.构造方法的使用;
4.封装与访问控制符;
5.继承与多态;
6.抽象类与接口。
本节课将带领学生深入了解这些概念,并通过实际编程练习,巩固所学知识。教学内容与教材紧密相关,注重实践操作,提高学生的编程能力。
4、教学内容
本阶段的教学内容将着重于以下方面:
1. Java中的设计模式,介绍常用的设计模式如单例模式、工厂模式、观察者模式等,并分析其在实际编程中的应用场景;
2. Java并发编程进阶,深入学习线程池、并发集合、锁机制、同步工具类等,理解并发编程中的高级概念;
3. Java网络编程深入,探讨TCP/UDP协议,实现复杂网络通信程序,了解网络编程中的安全性问题;
2、教学内容
本节课程延续上一讲的内容,进一步深入学习以下教学内容:
1.异常处理机制,包括try-catch-finally结构,自定义异常;
2.集合框架的使用,涉及List、Set、Map接口及其实现类的使用方法;
3.泛型的概念及应用,理解泛型在集合和类定义中的作用;
4.输入输出流(I/O),掌握文件读写操作,理解字节流与字符流的区别;
java课设及其代码
java课设及其代码以下是一个简单的 Java 课程设计示例,包含了一个学生管理系统的设计和相关代码:**一、课程设计题目:** 学生管理系统**二、设计目标:**实现学生信息的增删改查等基本操作。
**三、系统功能:**1. 学生信息录入:可以将学生的信息录入到系统中。
2. 学生信息查询:可以根据学生的姓名或学号查询学生的信息。
3. 学生信息修改:可以修改学生的信息,如姓名、年龄等。
4. 学生信息删除:可以删除学生的信息。
**四、系统模块设计:**1. 学生类:包含学生的学号、姓名、年龄等信息。
2. 学生管理类:对学生信息进行增删改查等操作。
**五、代码实现:**1. 学生类:```javapublic class Student {private String studentId;private String name;private int age;// 构造方法public Student(String studentId, String name, int age) {this.studentId = studentId; = name;this.age = age;}// 获取学号的方法public String getStudentId() {return studentId;}// 设置学号的方法public void setStudentId(String studentId) { this.studentId = studentId;}// 获取姓名的方法public String getName() {return name;}// 设置姓名的方法public void setName(String name) { = name;}// 获取年龄的方法public int getAge() {return age;}// 设置年龄的方法public void setAge(int age) {this.age = age;}// 重写 toString 方法,以便在控制台打印学生信息 @Overridepublic String toString() {return "Student{" +"studentId='" + studentId + '\'' + ", name='" + name + '\'' +", age=" + age +'}';}}```2. 学生管理类:```javaimport java.util.ArrayList;import java.util.List;public class StudentManager {private List<Student> students;// 构造方法,初始化学生列表public StudentManager() {students = new ArrayList<>();}// 添加学生的方法public void addStudent(Student student) {students.add(student);}// 删除学生的方法public void deleteStudent(String studentId) {for (int i = 0; i < students.size(); i++) {if (students.get(i).getStudentId().equals(studentId)) {students.remove(i);break;}}}// 修改学生信息的方法public void updateStudent(String studentId, String name, int age) { for (int i = 0; i < students.size(); i++) {if (students.get(i).getStudentId().equals(studentId)) {students.get(i).setName(name);students.get(i).setAge(age);break;}}}// 查询学生信息的方法public Student queryStudent(String studentId) {for (Student student : students) {if (student.getStudentId().equals(studentId)) {return student;}}return null;}// 获取所有学生信息的方法public List<Student> getStudents() {return students;}}```**六、总结:**通过这个课程设计,我们实现了一个简单的学生管理系统,包含了学生信息的增删改查等基本操作。
java编写课程表代码
java编写课程表代码随着现代科技的不断发展,学生课程表已经不再是仅仅存在于纸质上的东西,而是可以用计算机语言编写,便于随时查看。
其中,Java编程语言可以用于编写高效的课程表代码,下面分步骤来阐述。
第一步,定义数据结构先定义一个课程的数据结构,用于存储课程信息,包括课程名称、授课教师、上课时间和上课地点等。
public class Course {private String name; // 课程名称private String teacher; // 授课教师private int startHour; // 开始上课时间:小时private int startMinute; // 开始上课时间:分钟private int endHour; // 下课时间:小时private int endMinute; // 下课时间:分钟private String location; // 上课地点// 构造函数public Course(String name, String teacher, int startHour, int startMinute, int endHour, int endMinute, String location) { = name;this.teacher = teacher;this.startHour = startHour;this.startMinute = startMinute;this.endHour = endHour;this.endMinute = endMinute;this.location = location;}// getter和setter方法// ...}第二步,创建课程表在创建课程表的代码中,可以按照以下步骤进行:1. 定义一周的上课时间,即每个工作日的上班时间,也就是一天中的上午和下午。
可以用一个二维数组来表示,例如:int[][] classes = {// 周一到周五分别是 1 - 5{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};2. 创建一个方法,用于向课程表中添加课程,并将其作为一个二维数组返回,例如:public static Course[][] createTimetable(Course[] courses) {// 定义课程表数组Course[][] timetable = new Course[5][28];// 添加每个课程到课程表上for (Course course : courses) {int dayOfWeek = course.getDayOfWeek(); // 获取星期几int startTimeIndex = course.getStartTimeIndex(); // 获取开始上课时间在当天的时间段int endTimeIndex = course.getEndTimeIndex(); // 获取下课时间在当天的时间段for (int i = startTimeIndex; i <= endTimeIndex; i++) {if (timetable[dayOfWeek - 1][i] == null) {timetable[dayOfWeek - 1][i] = course;} else {System.out.println("时间冲突:" + course.getName() + " 和 " + timetable[dayOfWeek - 1][i].getName());}}}// 返回结果return timetable;}3. 在上述方法中,需要先根据课程信息计算出它在一周中的星期几和在当天的时间段,把课程添加到对应的时间段。
java课程设计(代码清单)
java课程设计(代码清单)一、教学目标本章节的Java课程设计旨在让学生掌握Java编程语言的基本语法、概念和编程技巧,培养学生具备基本的编程能力和解决问题的能力。
具体的教学目标如下:1.知识目标:–掌握Java语言的基本语法和结构。
–理解Java中的数据类型、变量、运算符和表达式。
–学习Java的控制结构,包括条件语句和循环语句。
–了解Java的面向对象编程概念,如类、对象、封装、继承和多态。
–熟悉Java的常用类库和API。
2.技能目标:–能够使用Java编程语言编写简单的程序。
–培养学生解决编程问题的能力,能够根据需求设计和实现简单的Java程序。
–培养学生使用Java开发工具和调试程序的能力。
3.情感态度价值观目标:–培养学生的团队合作意识和沟通能力,能够与他人合作完成编程任务。
–培养学生的创新思维和问题解决能力,鼓励学生积极探索和创造。
–培养学生的学习兴趣和主动性,激发学生对Java编程语言和计算机科学的热爱。
二、教学内容根据教学目标,本章节的教学内容如下:1.Java语言的基本语法和结构。
–数据类型、变量、运算符和表达式。
–控制结构,包括条件语句和循环语句。
2.面向对象编程概念。
–类和对象的概念及其关系。
–封装、继承和多态的原理和应用。
3.常用类库和API。
–Java标准库的基本数据结构和算法。
–Java的输入输出流处理。
–Java的网络编程基础。
4.编程实践。
–使用Java编写简单的程序,如计算器、排序算法等。
–练习使用Java开发工具和调试程序。
三、教学方法为了达到教学目标,本章节将采用以下教学方法:1.讲授法:通过讲解和示例来传授Java语言的基本语法和概念。
2.讨论法:引导学生进行小组讨论,共同解决问题和探讨编程技巧。
3.案例分析法:分析实际的Java程序案例,让学生理解面向对象编程的应用。
4.实验法:安排编程实践,让学生亲自动手编写程序,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,本章节将使用以下教学资源:1.教材:《Java编程语言》或《Java核心技术》等相关教材。
Java课程设计源代码
package ui;import java.awt.EventQueue; //线程分发import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.UIManager;import javax.swing.UnsupportedLookAndFeelException; import org.jvnet.substance.SubstanceLookAndFeel;import musicPlayer.MusicPanel;public class Main {public static void main(String[] args) {try {// 设置观感UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceBu sinessBlackSteelLookAndFeel");// 设置水印SubstanceLookAndFeel.setCurrentWatermark("org.jvnet.substance.watermark.S ubstanceMangoLookAndFeel");// 设置渐变渲染SubstanceLookAndFeel.setCurrentGradientPainter("org.jvnet.substance.paint er.WaveGradientPainter");JFrame.setDefaultLookAndFeelDecorated(true); //窗体JDialog.setDefaultLookAndFeelDecorated(true); //对话框} catch (ClassNotFoundException |InstantiationException| IllegalAccessException | UnsupportedLookAndFeelException e) {e.printStackTrace(); //e为对象引用的名称//在命令行打印异常信息在程序中出错的位置及原因}EventQueue.invokeLater(() -> { //调用完毕,自动销毁(因为是一个匿名类)new MusicPanel();});}}package musicPlayer;import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.util.Vector;import javax.swing.JButton;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.table.DefaultTableModel;import player.Player;public class MusicPanel extends JFrame {/****/private static final long serialVersionUID = 1L;private JButton add, playbtn, stopbtn, deletebtn, deleteAllbtn, upbtn,downbtn;private JTable table; // 歌曲信息表private Player player;public MusicPanel() {super("1400320223音乐播放器");initCompont();setVisible(true);}/*** 初始化界面* */private void initCompont() {//各个按钮赋初始值add = new JButton("导入");playbtn = new JButton("试听");stopbtn = new JButton("停止");deletebtn = new JButton("单曲删除");deleteAllbtn = new JButton("全部删除");upbtn = new JButton("上移");downbtn = new JButton("下移");// 导入按钮点击设置add.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addFile();}});// 试听按钮点击设置playbtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {if (player != null) {player.stop();player = null;}int rowNum = table.getSelectedRow(); // 选中行时返回-1if (rowNum != -1) {// getValueAt获取表格内容player = new Player((String)table.getValueAt(rowNum, 1)+ "\\", (String)table.getValueAt(rowNum, 0));System.out.printf((String)table.getValueAt(rowNum, 1)+ "\\", (String)table.getValueAt(rowNum, 0));player.play();}}});// 停止按钮点击设置stopbtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){if (player != null){player.stop();player = null;}}});// 单曲删除按钮点击设置deletebtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {int rowNum = table.getSelectedRow();if (rowNum != -1) {((DefaultTableModel)table.getModel()).removeRow(rowNum);}}});// 删除全部按钮点击设置deleteAllbtn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {for(int i= table.getRowCount() - 1; i>= 0; i--) {((DefaultTableModel)table.getModel()).removeRow(i);}}});downbtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {int n = table.getSelectedRow() + 1;if (n < table.getRowCount()) {table.setRowSelectionInterval(n, n);}}});upbtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {int n = table.getSelectedRow() - 1;if (n < -1) {n = table.getRowCount() - 1;}if (n >= 0) {table.setRowSelectionInterval(n, n);}}});// 添加各个按钮JPanel btnPanel = new JPanel();btnPanel.add(add);btnPanel.add(playbtn);btnPanel.add(stopbtn);btnPanel.add(deletebtn);btnPanel.add(deleteAllbtn);btnPanel.add(upbtn);btnPanel.add(downbtn);this.setLayout(new BorderLayout());this.add(btnPanel, BorderLayout.NORTH);Vector<String> tableContent = new Vector<String>();Vector<String> columnName = new Vector<String>();columnName.add("歌曲名称");columnName.add("存放路径");// 设置tabletable = new JTable(tableContent, columnName);table.setSelectionBackground(Color.blue);table.setSelectionForeground(Color.LIGHT_GRAY);this.add(new JScrollPane(table),BorderLayout.CENTER);this.setSize(600, 210);}/*** 添加文件* */private void addFile() {JFileChooser fc = new JFileChooser();// 设置选入文件类型FileNameExtensionFilter filter = new FileNameExtensionFilter("mp3 or wav file", "mp3", "wav", "MP3", "WAV");fc.setFileFilter(filter);fc.setFileSelectionMode(JFileChooser.FILES_ONLY); // 设置只选文件fc.setMultiSelectionEnabled(true); // 设置选择多个文件int intRetVal = fc.showDialog(this, "打开");// 获取文件并添加到tableif (intRetVal == JFileChooser.APPROVE_OPTION) { File[] file = fc.getSelectedFiles();String name;for (File var : file) {name = var.getName().toLowerCase();if (name.endsWith(".mp3") ||name.endsWith(".wav")) {this.addMusicItem(var.getName(),var.getParentFile().getAbsolutePath());}}}}/*** table的行中添加音乐文件名称name,音乐文件路径path*/private void addMusicItem(String name, String path) { Vector<String> rowData = new Vector<String>();rowData.add(name);rowData.add(path);DefaultTableModel tabMod = (DefaultTableModel) table.getModel();tabMod.addRow(rowData);}public static void main(String[] args){new MusicPanel();}}package player;import java.io.File;import java.io.IOException;import javax.sound.sampled.AudioFormat;import javax.sound.sampled.AudioInputStream;import javax.sound.sampled.AudioSystem;import javax.sound.sampled.DataLine;import javax.sound.sampled.SourceDataLine;public class Player {private String path; // 文件路径private String name; // 文件名称private AudioFormat audioFormat; // 播放格式private AudioInputStream audioInputStream; // 音乐播放输入流private SourceDataLine sourceDataLine; // 播放设备private boolean isStop = false; // 播放停止标志/*** 创建对象时需要传入路径及文件名称* */public Player(String path,String name){this.path = path; // 代表该构造方法所创建的对象 = name;}/*** 播放音乐* */public void play(){File file = new File(path + name);try {// 获取音乐播package player;import java.io.File;import java.io.IOException;import javax.sound.sampled.AudioFormat;import javax.sound.sampled.AudioInputStream;import javax.sound.sampled.AudioSystem;import javax.sound.sampled.DataLine;import javax.sound.sampled.SourceDataLine;public class Player {private String path; // 文件路径private String name; // 文件名称private AudioFormat audioFormat; // 播放格式private AudioInputStream audioInputStream; // 音乐播放输入流private SourceDataLine sourceDataLine; // 播放设备private boolean isStop = false; // 播放停止标志/*** 创建对象时需要传入路径及文件名称* */public Player(String path,String name){this.path = path; // 代表该构造方法所创建的对象 = name;}/*** 播放音乐* */public void play(){File file = new File(path + name);try {// 获取音乐播放流audioInputStream =AudioSystem.getAudioInputStream(file);// 获取播放格式audioFormat = audioInputStream.getFormat();// 其他格式音乐文件处理if (audioFormat.getEncoding() != AudioFormat.Encoding.PCM_SIGNED);{audioFormat = newAudioFormat(AudioFormat.Encoding.PCM_SIGNED,audioFormat. getSampleRate(),16,audioFormat.getChannels(),audioFormat.getChannels( )*2,audioFormat.getSampleRate(),false);audioInputStream =AudioSystem.getAudioInputStream(audioFormat,audioInputSt ream);}// 打开输出设备 dataLineInfo = new(SourceDataLine.class,audioFormat,AudioSystem.NOT_SPECIFIED);sourceDataLine =(SourceDataLine)AudioSystem.getLine(dataLineInfo);sourceDataLine.open(audioFormat);sourceDataLine.start();// 启动播放线程new Thread() {public void run(){try{int n=0;byte tempBuffer[] = new byte[1024];while (n!=-1){// 停止播放入口,如果isStop被设置为真,结束播放if(isStop) break;// 将音乐输入流的数据读入tempBuffer缓存n =audioInputStream.read(tempBuffer,0,tempBuffer.length);if (n>0){// 将缓存数据写入播放设备,开始播放sourceDataLine.write(tempBuffer,0 ,n);}}audioInputStream.close();sourceDataLine.drain();sourceDataLine.close();}catch(IOException e){e.printStackTrace();throw new RuntimeException();}}}.start();}catch(Exception e){e.printStackTrace();System.exit(0);throw new RuntimeException();}}/*** 停止播放* */public void stop(){try{isStop = true;audioInputStream.close();sourceDataLine.drain();sourceDataLine.close();}catch(IOException e){e.printStackTrace();}}}放流audioInputStream =AudioSystem.getAudioInputStream(file);// 获取播放格式audioFormat = audioInputStream.getFormat();// 其他格式音乐文件处理if (audioFormat.getEncoding() != AudioFormat.Encoding.PCM_SIGNED);{audioFormat = newAudioFormat(AudioFormat.Encoding.PCM_SIGNED,audioFormat. getSampleRate(),16,audioFormat.getChannels(),audioFormat.getChannels( )*2,audioFormat.getSampleRate(),false);audioInputStream =AudioSystem.getAudioInputStream(audioFormat,audioInputSt ream);}// 打开输出设备 dataLineInfo = new(SourceDataLine.class,audioFormat,AudioSystem.NOT_SPECIFIED);sourceDataLine =(SourceDataLine)AudioSystem.getLine(dataLineInfo);sourceDataLine.open(audioFormat);sourceDataLine.start();// 启动播放线程new Thread() {public void run(){try{int n=0;byte tempBuffer[] = new byte[1024];while (n!=-1){// 停止播放入口,如果isStop被设置为真,结束播放if(isStop) break;// 将音乐输入流的数据读入tempBuffer缓存n =audioInputStream.read(tempBuffer,0,tempBuffer.length);if (n>0){// 将缓存数据写入播放设备,开始播放sourceDataLine.write(tempBuffer,0 ,n);}}audioInputStream.close();sourceDataLine.drain();sourceDataLine.close();}catch(IOException e){e.printStackTrace();throw new RuntimeException();}}}.start();}catch(Exception e){e.printStackTrace();System.exit(0);throw new RuntimeException();}}/*** 停止播放* */public void stop(){try{isStop = true;audioInputStream.close();sourceDataLine.drain();sourceDataLine.close();}catch(IOException e){e.printStackTrace();}}}。
java课设及其代码
java课设及其代码Java课设是计算机科学与技术专业的一门重要课程,旨在帮助学生巩固和运用Java编程知识,培养学生解决实际问题的能力。
本文将介绍Java课设的基本要求,并给出一个简单的代码示例。
一、Java课设的基本要求1. 选题:选题是Java课设的第一步,选择一个能够综合运用Java知识的实际问题。
可以从日常生活、学习、工作等方面寻找灵感,并尽量选择有挑战性的题目。
2. 需求分析:进行需求分析是为了明确课设的目标和功能。
要求学生对选题进行深入了解,确定课设的输入和输出,明确各个模块的功能和关系,并绘制相应的流程图或类图。
3. 设计与实现:基于需求分析的结果,进行软件设计和实现。
可以使用UML等工具进行系统设计,确定类的设计和关系。
在编写代码之前,应先进行伪代码编写和流程图绘制,确保程序逻辑正确。
4. 测试与调试:完成代码编写后,进行测试和调试。
通过使用各种测试用例,验证程序的正确性和稳定性。
如果发现错误或bug,及时进行修改和调试。
5. 文档编写:编写课设文档,包括选题的背景介绍、需求分析、设计思路、代码实现、测试结果、使用说明等内容。
文档应结构清晰、内容完整,便于他人了解和使用。
二、Java课设代码示例以下是一个简单的Java课设代码示例,用于实现一个学生信息管理系统:```javaimport java.util.ArrayList;import java.util.List;import java.util.Scanner;public class StudentManagementSystem {private List<Student> studentList;public StudentManagementSystem() {studentList = new ArrayList<>();}public void addStudent(String name, int age, String id) {Student student = new Student(name, age, id);studentList.add(student);}public void deleteStudent(String id) {for (Student student : studentList) {if (student.getId().equals(id)) {studentList.remove(student);return;}}System.out.println("未找到该学生信息");}public void displayStudentInfo() {for (Student student : studentList) {System.out.println("姓名:" + student.getName());System.out.println("年龄:" + student.getAge());System.out.println("学号:" + student.getId());System.out.println("-----------------");}}public static void main(String[] args) {StudentManagementSystem sms = new StudentManagementSystem(); Scanner scanner = new Scanner(System.in);while (true) {System.out.println("请输入操作指令:");System.out.println("1. 添加学生信息");System.out.println("2. 删除学生信息");System.out.println("3. 显示学生信息");System.out.println("4. 退出程序");int command = scanner.nextInt();switch (command) {case 1:System.out.println("请输入学生姓名:");String name = scanner.next();System.out.println("请输入学生年龄:");int age = scanner.nextInt();System.out.println("请输入学生学号:");String id = scanner.next();sms.addStudent(name, age, id);break;case 2:System.out.println("请输入要删除的学生学号:"); String deleteId = scanner.next();sms.deleteStudent(deleteId);break;case 3:sms.displayStudentInfo();break;case 4:System.out.println("程序已退出");return;default:System.out.println("指令错误,请重新输入"); }}}}class Student {private String name;private int age;private String id;public Student(String name, int age, String id) { = name;this.age = age;this.id = id;}public String getName() {return name;}public int getAge() {return age;}public String getId() {return id;}}```该示例实现了一个简单的学生信息管理系统,可以通过命令行界面对学生的姓名、年龄和学号进行增删改查操作。
java课程设计代码
《程序设计》Java课程设计第一组附录目录About.java (2)ChaXun.java (2)DengLu.java (5)DianFeiSystem.java (9)FenXi1.java (9)FenXi2.java (13)FenXi3.java (17)FenXi4.java (21)FenXi5.java (25)FenXi6.java (30)MainWindoe.java (34)MainWindow2.java (37)MimaXiugai.java (40)MimaXiugai2.java (43)NewList.java (46)NewUser.java (49)Register.java (54)Welcome.java (59)YongdianDangci.java (60)YongdianDangci2.java (64)YongdianQingkuang.java (68)YongdianQingkuang2.java (71)ZhanghuXiugai.java (75)About.java//关于本系统package system;import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.*;public class About implements ActionListener{static ImageIcon myimage=new ImageIcon("about.jpg");JFrame jf=new JFrame("阶梯电价查询系统1.0");JPanel jp=new JPanel();JLabel lb1=new JLabel(new ImageIcon("about.jpg"));JLabel lab1 = new JLabel("Vendor:MIS Inc. ");Button bt=new Button("关闭");public void creat(){jp.setVisible(true);jf.setLayout(new BorderLayout());jf.setBounds(300, 100, 340, 360);jf.setResizable(false);bt.addActionListener(this);jp.add(bt);jf.add(jp,new BorderLayout().SOUTH);jf.add(lb1,new BorderLayout().WEST);jf.add(lab1,new BorderLayout().EAST);jf.setVisible(true);bt.addMouseListener((MouseListener) this);}public final void actionPerformed(ActionEvent e){i f(e.getSource() == bt){jf.setVisible(false);}}}ChaXun.java//找回密码package system;import javax.swing.*;import java.awt.*;import java.sql.*;import java.awt.event.*;import javax.swing.JOptionPane;class ChaXun extends JFrame implements ActionListener {private JPanel ChaXun;private JLabel lab1,lab2,lab3,lab4;private TextField text1,text2,text3,text4;private Button button1,button2;ChaXun(){this.setBounds(300, 100, 340, 360);this.setTitle("密码查询系统");ChaXun = new JPanel();lab1 = new JLabel("用户名 ");lab2 = new JLabel("住户人数 ");lab3 = new JLabel("家庭住址 ");lab4 = new JLabel("身份证号码");text1 = new TextField(30);text2 = new TextField(30);text3 = new TextField(30);text4 = new TextField(30);button1 = new Button("确认");button2 = new Button("返回");ChaXun.add(lab1);ChaXun.add(text1);ChaXun.add(lab2);ChaXun.add(text2);ChaXun.add(lab3);ChaXun.add(text3);ChaXun.add(lab4);ChaXun.add(text4);ChaXun.add(button1);ChaXun.add(button2);button1.addActionListener(this);button2.addActionListener(this);this.getLayeredPane().setLayout(null);this.setContentPane(ChaXun);ChaXun.setOpaque(false);this.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource() == button1){String username = text1.getText();String familynumber = text2.getText();String adress = text3.getText();String ID = text4.getText();int n1 = username.length();int n2 = familynumber.length();int n3 = adress.length();int n4 = ID.length();Connection con;Statement sql;ResultSet rs;int fn,id;if(n1!=0 && n2!=0 && n3!=0 && n4!=0){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e1){System.out.println("没有驱动!");}try{boolean flag = true;con = DriverManager.getConnection("jdbc:odbc:jtdj");sql = con.createStatement();rs = sql.executeQuery("SELECT * FROM userlist");while(rs.next()){String a = rs.getString(1);String b = rs.getString(3);String c = rs.getString(4);String d = rs.getString(5);String f = rs.getString(2);if(a.equals(username) && b.equals(familynumber) && c.equals(adress) && d.equals(ID)){flag = false;JOptionPane.showMessageDialog(this,"您的用户名为:"+a+",您的登陆密码为:"+f,"信息",RMATION_MESSAGE);}}if(flag){text1.setText("");text2.setText("");text3.setText("");text4.setText("");JOptionPane.showMessageDialog(this,"您的输入有误,请重新输入!","警告",JOptionPane.WARNING_MESSAGE);}con.close();}catch(SQLException e2){System.out.println("数据库连接失败!");}}else{text1.setText("");text2.setText("");text3.setText("");text4.setText("");JOptionPane.showMessageDialog(this,"请注意,您输入的信息不能为空!","警告",JOptionPane.WARNING_MESSAGE);}}else if(e.getSource() == button2){DengLu denglu = new DengLu();this.dispose();}}}DengLu.java//登陆界面package system;import javax.swing.*;import java.awt.*;import java.sql.*;import java.awt.event.*;class DengLu extends JFrame implements ActionListener {public static int no = 0;public static String user;private JPanel denglu;private JLabel lab1,lab2;private TextField text1,text2;private TextArea text3;private Button button1,button2;private ImageIcon ii;private JLabel lab;DengLu(){this.setBounds(300, 100, 340, 360);this.setTitle("登陆界面");denglu = new JPanel();lab1 = new JLabel("用户名:");lab2 = new JLabel("密码: ");text1 = new TextField(30);text2 = new TextField(30);text3 = new TextArea(12,35);button1 = new Button("登陆查询");button2 = new Button("忘记密码?");denglu.add(lab1);denglu.add(text1);denglu.add(lab2);denglu.add(text2);denglu.add(button1);denglu.add(button2);denglu.add(text3);button1.addActionListener(this);button2.addActionListener(this);text1.addActionListener(this);ii = new ImageIcon("background.jpg");lab = new JLabel(ii);lab.setBounds(0, 0,ii.getIconWidth(), ii.getIconHeight());this.getLayeredPane().setLayout(null);this.getLayeredPane().add(lab, new Integer(Integer.MIN_VALUE));this.setContentPane(denglu);text3.setEditable(false);denglu.setOpaque(false);this.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource() == button1){String username=text1.getText();String password=text2.getText();int n1=username.length();int n2=username.length();Connection con;Statement sql;PreparedStatement sql1;ResultSet rs,rs1;int i;if(n1!=0 & n2!=0){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e1){System.out.println("没有驱动!");}try{boolean flag = false;con = DriverManager.getConnection("jdbc:odbc:jtdj");sql = con.createStatement();rs = sql.executeQuery("SELECT * FROM userpass");while(rs.next()){flag = true;String x = rs.getString(1);String y = rs.getString(2);if(x.equals(username) && y.equals(password)){no++;user=username;rs1 = sql.executeQuery("SELECT * FROM loginlist");sql1 = con.prepareStatement("insert into loginlist values(?,?)");sql1.setInt(1, no);sql1.setString(2, username);i = sql1.executeUpdate();flag = false;if(username.equals("admin")){MainWindow mainwindow = new MainWindow();mainwindow.setVisible(true);}else{MainWindow2 mainwindow2 = newMainWindow2();mainwindow2.setVisible(true);}this.dispose();break;}}if(flag){text1.setText("");text2.setText("");text3.setText("用户名或密码错误,请重新输入!");}con.close();}catch(SQLException e2){System.out.println("数据库连接失败!");}}else{text1.setText("");text2.setText("");text3.setText("输入不能为空!");}}else if(e.getSource() == button2){ChaXun chaxun = new ChaXun();this.dispose();}}}DianFeiSystem.java//电费查询系统1.0package system;import javax.swing.*;import java.awt.*;public class DianFeiSystem{public static void main(String args[]){Welcome welcome = new Welcome();welcome.creat();}}FenXi1.java//各月低的80%用户的每户每月用电量package system;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class FenXi1 implements ActionListener{JFrame jf=new JFrame("统计分析界面");JLabel jla = new JLabel(" 各月低的80%用户的每户每月用电量") { public Font getFont(){return new Font("宋体",Font.BOLD,20);}};JLabel jra = new JLabel("请选择要查找的月份");Choice co2=new Choice();JLabel jrb = new JLabel(" ");JLabel jrc = new JLabel("该月低的80%用户的每户用电量分别为:");JLabel[] jr = new JLabel[8];private Button btEnter;private Button btQuit;public void creat(){jf.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});jf.setLayout(new FlowLayout(FlowLayout.LEFT,3,3));jf.setBounds(300, 100, 400, 400);btEnter=new Button("确认");btQuit=new Button("退出");for(int k=0;k<=7;k++){jr[k]=new JLabel(" ");}jf.add(new JLabel(" "));jf.add(jla);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(jra);co2.add("一月");co2.add("二月");co2.add("三月");co2.add("四月");co2.add("五月");co2.add("六月");co2.add("七月");co2.add("八月");co2.add("九月");co2.add("十月");co2.add("十一月");co2.add("十二月");jf.add(co2);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(btEnter);jf.add(btQuit);jf.add(jrb);jf.add(jrc);jf.add(new JLabel(" 用户名该月用电量"));jf.add(jr[0]);jf.add(jr[1]);jf.add(jr[2]);jf.add(jr[3]);jf.add(jr[4]);jf.add(jr[5]);jf.add(jr[6]);jf.add(jr[7]);btEnter.addActionListener(this);btQuit.addActionListener(this);jf.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==btEnter){String str = co2.getSelectedItem();if(str=="九月"){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con =DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=jtdj.mdb");Statement st0 =con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_ READ_ONLY);ResultSet rs0 = st0.executeQuery("select erno from September");rs0.afterLast();int shu=0;if(rs0.previous()){int num = rs0.getInt(1);shu = (int)(num*0.8);}Statement st1 = con.createStatement();ResultSet rs1 = st1.executeQuery("select erna,September.monquan from September order by monquan ASC");int i=0;while(rs1.next()&&i<shu){jr[i].setText(""+rs1.getString(1)+" "+rs1.getDouble(2)+" ");i++;}con.close();}catch(Exception ex){System.out.println(ex.getMessage());}}else if(str=="六月"){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con =DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=jtdj.mdb");Statement st0 =con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_ READ_ONLY);ResultSet rs0 = st0.executeQuery("selecterno from June");rs0.afterLast();int shu=0;if(rs0.previous()){int num = rs0.getInt(1);shu = (int)(num*0.8);}Statement st1 = con.createStatement();ResultSet rs1 = st1.executeQuery("selecterna,June.monquan from June order by monquan ASC");int i=0;while(rs1.next()&&i<shu){jr[i].setText(""+rs1.getString(1)+" "+rs1.getDouble(2)+" ");i++;}con.close();}catch(Exception ex){System.out.println(ex.getMessage());}}}else{jf.setVisible(false);}}}FenXi2.java//各月小于等于阶梯电价第一档用电量的用户数package system;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class FenXi2 implements ActionListener{JFrame jf=new JFrame("统计分析界面");JLabel jla = new JLabel("各月小于等于阶梯电价第一档用电量的用户数"){ public Font getFont(){return new Font("宋体",Font.BOLD,20);}};JLabel jr8 = new JLabel("请选择要查询的月份");Choice co2=new Choice();JLabel jr7 = new JLabel("该月小于等于阶梯电价第一档用电量的用户数为:");private Button btEnter;private Button btQuit;public void creat(){jf.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});jf.setLayout(new FlowLayout(FlowLayout.LEFT,3,3));jf.setBounds(300, 100, 400, 400);btEnter=new Button("确认");btQuit=new Button("退出");jf.add(new JLabel(" "));jf.add(jla);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(jr8);co2.add("一月");co2.add("二月");co2.add("三月");co2.add("四月");co2.add("五月");co2.add("六月");co2.add("七月");co2.add("八月");co2.add("九月");co2.add("十月");co2.add("十一月");co2.add("十二月");jf.add(co2);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(jr7);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(btEnter);jf.add(btQuit);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" 备注:档数度数价格"));jf.add(new JLabel(" 第一档 0—140 0.477元/度 "));jf.add(new JLabel(" 第二档 141—230 0.527元/度"));jf.add(new JLabel(" 第三档 231—0.777元/度"));btEnter.addActionListener(this);btQuit.addActionListener(this);jf.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==btEnter){String str = co2.getSelectedItem();if(str=="九月"){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con =DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=jtdj.mdb");PreparedStatementst=con.prepareStatement("select September.monquan from September where monquan<=?");st.setInt(1,140);int num=0;ResultSet rs=st.executeQuery();while(rs.next()){num++;}jr7.setText("该月小于等于阶梯电价第一档用电量的用户数为: "+num);con.close();}catch (Exception ex){System.out.println(ex.getMessage());}}else if(str=="六月"){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con =DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=jtdj.mdb");PreparedStatementst=con.prepareStatement("select June.monquan from June wheremonquan<=?");st.setInt(1,140);int num=0;ResultSet rs=st.executeQuery();while(rs.next()){num++;}jr7.setText("该月小于等于阶梯电价第一档用电量的用户数为: "+num);con.close();}catch (Exception ex){System.out.println(ex.getMessage());}}}else{jf.setVisible(false);}}}FenXi3.java//每户月用电量与住户人数的相关性分析package system;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class FenXi3 implements ActionListener{JFrame jf=new JFrame("统计分析界面");JLabel jla = new JLabel(" 每户月用电量与住户人数的相关性分析"){ public Font getFont(){return new Font("宋体",Font.BOLD,20);}};JLabel jr8 = new JLabel("请选择要分析的月份");Choice co2=new Choice();JLabel jr0 = new JLabel("请选择住户人数");Choice co1=new Choice();JLabel jr3 = new JLabel(" ");JLabel jr4 = new JLabel("该住户人数阶段共有:");JLabel jr5 = new JLabel(" ");JLabel jr6 = new JLabel("户");JLabel jr7 = new JLabel(" ");JLabel jr1 = new JLabel("平均用电度数为:");JLabel jr2 = new JLabel(" ");private Button btEnter;private Button btQuit;public void creat(){jf.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});jf.setLayout(new FlowLayout(FlowLayout.LEFT,3,3));jf.setBounds(300, 100, 400, 400);btEnter=new Button("确认");btQuit=new Button("退出");jf.add(new JLabel(" "));jf.add(jla);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(jr8);co2.add("一月");co2.add("二月");co2.add("三月");co2.add("四月");co2.add("五月");co2.add("六月");co2.add("七月");co2.add("八月");co2.add("九月");co2.add("十月");co2.add("十一月");co2.add("十二月");jf.add(co2);jf.add(new JLabel(" "));jf.add(jr0);co1.add("0~3");co1.add("4~5");co1.add("6以上");jf.add(co1);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(jr3);jf.add(jr4);jf.add(jr5);jf.add(jr6);jf.add(jr7);jf.add(new JLabel(" "));jf.add(jr1);jf.add(jr2);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(btEnter);jf.add(btQuit);btEnter.addActionListener(this);btQuit.addActionListener(this);jf.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==btEnter){int num0 = 0,num=0;double sum=0;String str = co2.getSelectedItem();num0 = co1.getSelectedIndex();int faminu1,faminu2;if(num0==0){faminu1 = 0;faminu2 = 3;}else if(num0==1){faminu1 = 4;faminu2 = 5;}else{faminu1 = 6;faminu2 = 100000000;}if(str=="九月"){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con =DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=jtdj.mdb");PreparedStatement st =con.prepareStatement("selectuserlist.faminu,erno,erno,September.monquan from September,userlist where erno=erno and userlist.faminu<=? and userlist.faminu>=?");st.setInt(1,faminu2);st.setInt(2,faminu1);ResultSet rs = st.executeQuery();while(rs.next()){sum = sum+rs.getDouble(4);num++;}con.close();}catch(Exception ex){System.out.println(ex.getMessage());}jr4.setText("该住户人数阶段共有: "+num);jr1.setText("平均用电度数为:"+sum/num);}else if(str=="六月"){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con =DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=jtdj.mdb");PreparedStatement st =con.prepareStatement("selectuserlist.faminu,erno,erno,June.monquan fromJune,userlist where erno=erno and userlist.faminu<=? and userlist.faminu>=?");st.setInt(1,faminu2);st.setInt(2,faminu1);ResultSet rs = st.executeQuery();while(rs.next()){sum = sum+rs.getDouble(4);num++;}con.close();}catch(Exception ex){System.out.println(ex.getMessage());}jr4.setText("该住户人数阶段共有: "+num);jr1.setText("平均用电度数为:"+sum/num);}}else{jf.setVisible(false);}}}FenXi4.java//每月拥护电量与住房面积的相关性分析package system;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class FenXi4 implements ActionListener{JFrame jf=new JFrame("统计分析界面");JLabel jla = new JLabel(" 每户月用电量与住房面积的相关性分析") { public Font getFont(){return new Font("宋体",Font.BOLD,20);}};JLabel jr8 = new JLabel("请选择要分析的月份");Choice co2=new Choice();JLabel jr0 = new JLabel("请选择住房面积范围");Choice co1=new Choice();JLabel jr3 = new JLabel(" ");JLabel jr4 = new JLabel("该住房面积范围内共有:");JLabel jr5 = new JLabel(" ");JLabel jr6 = new JLabel("户");JLabel jr7 = new JLabel(" ");JLabel jr1 = new JLabel("平均用电度数为:");JLabel jr2 = new JLabel(" ");private Button btEnter;private Button btQuit;public void creat(){jf.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});jf.setLayout(new FlowLayout(FlowLayout.LEFT,3,3));jf.setBounds(300, 100, 400, 400);btEnter=new Button("确认");btQuit=new Button("退出");jf.add(new JLabel(" "));jf.add(jla);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(jr8);co2.add("一月");co2.add("二月");co2.add("三月");co2.add("四月");co2.add("五月");co2.add("六月");co2.add("七月");co2.add("八月");co2.add("九月");co2.add("十月");co2.add("十一月");co2.add("十二月");jf.add(co2);jf.add(new JLabel(" "));jf.add(jr0);co1.add("0~90");co1.add("91~150");co1.add("151以上");jf.add(co1);jf.add(new JLabel(" "));//jf.add(new JLabel(" "));jf.add(jr3);jf.add(jr4);jf.add(jr5);jf.add(jr6);jf.add(jr7);jf.add(new JLabel(" "));jf.add(jr1);jf.add(jr2);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(btEnter);jf.add(btQuit);btEnter.addActionListener(this);btQuit.addActionListener(this);jf.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==btEnter){int num0 = 0,num=0;double sum=0;String str = co2.getSelectedItem();num0 = co1.getSelectedIndex();int hospace1,hospace2;if(num0==0){hospace1 = 0;hospace2 = 90;}else if(num0==1){hospace1 = 91;hospace2 = 150;}else{hospace1 = 151;hospace2 = 100000000;}if(str=="九月"){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con =DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=jtdj.mdb");PreparedStatement st =con.prepareStatement("selectuserlist.hospace,erno,erno,September.monquan from September,userlist where erno=erno and userlist.hospace<=? and userlist.hospace>=?");st.setInt(1,hospace2);st.setInt(2,hospace1);ResultSet rs = st.executeQuery();while(rs.next()){sum = sum+rs.getDouble(4);num++;}con.close();}catch(Exception ex){System.out.println(ex.getMessage());}jr4.setText("该住房面积范围内共有: "+num);jr1.setText("平均用电度数为:"+sum/num);}else if(str=="六月"){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection con =DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=jtdj.mdb");PreparedStatement st =con.prepareStatement("selectuserlist.hospace,erno,erno,June.monquan fromJune,userlist where erno=erno and userlist.hospace<=? and userlist.hospace>=?");st.setInt(1,hospace2);st.setInt(2,hospace1);ResultSet rs = st.executeQuery();while(rs.next()){sum = sum+rs.getDouble(4);num++;}con.close();}catch(Exception ex){System.out.println(ex.getMessage());}jr4.setText("该住房面积范围内共有: "+num);jr1.setText("平均用电度数为:"+sum/num);}}else{jf.setVisible(false);}}}FenXi5.java//每户月用电量与家庭月收入的相关性分析package system;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;public class FenXi5 implements ActionListener{JFrame jf=new JFrame("统计分析界面");JLabel jla = new JLabel("每户月用电量与家庭月收入的相关性分析"){ public Font getFont(){return new Font("宋体",Font.BOLD,20);}};JLabel jr8 = new JLabel("请选择要分析的月份");Choice co2=new Choice();JLabel jr0 = new JLabel("请选择收入阶层");Choice co1=new Choice();JLabel jr3 = new JLabel(" ");JLabel jr4 = new JLabel("该收入阶层的用户共有:");JLabel jr5 = new JLabel(" ");JLabel jr6 = new JLabel("户");JLabel jr7 = new JLabel(" ");JLabel jr1 = new JLabel("平均用电度数为:");JLabel jr2 = new JLabel(" ");private Button btEnter;private Button btQuit;public void creat(){jf.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});jf.setLayout(new FlowLayout(FlowLayout.LEFT,3,3));jf.setBounds(300, 100, 400, 400);btEnter=new Button("确认");btQuit=new Button("退出");jf.add(new JLabel(" "));jf.add(jla);jf.add(new JLabel(" "));jf.add(new JLabel(""));jf.add(new JLabel(""));jf.add(new JLabel(" "));jf.add(jr8);co2.add("一月");co2.add("二月");co2.add("三月");co2.add("四月");co2.add("五月");co2.add("六月");co2.add("七月");co2.add("八月");co2.add("九月");co2.add("十月");co2.add("十一月");co2.add("十二月");jf.add(co2);jf.add(new JLabel(" "));jf.add(jr0);co1.add("0~2000");co1.add("2001~5000");co1.add("5001以上");jf.add(co1);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(jr3);jf.add(jr4);jf.add(jr5);jf.add(jr6);jf.add(jr7);jf.add(jr1);jf.add(jr2);jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(new JLabel(" "));jf.add(btEnter);jf.add(btQuit);btEnter.addActionListener(this);btQuit.addActionListener(this);jf.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==btEnter)。
Java学生课程设计源码
package com.lb.view;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Login extends JFrame {private TextField f1;private TextField f2;private JButton b1;private JButton b2;private JButton b3;//登陆界面public Login(){Container cp=getContentPane();//容器cp.setBackground(Color.cyan);cp.setLayout(new GridLayout(4,1));//四行一列布局Panel p1=new Panel();Panel p2=new Panel();Panel p3=new Panel();Panel p4=new Panel();f1=new TextField(15);f2=new TextField(15);f2.setEchoChar('*');//回显字符为*b1=new JButton("登录");b2=new JButton("重置");b3=new JButton("退出");p1.add(new Label(" "));p2.add(new Label("用户名"));p2.add(f1);p3.add(new Label("密码"));p3.add(f2);p4.add(b1);p4.add(b2);p4.add(b3);cp.add(p1);cp.add(p2);cp.add(p3);cp.add(p4);b1.addActionListener(new Enter());b2.addActionListener(new ReWrite());b3.addActionListener(new Close());}class Enter implements ActionListener{public void actionPerformed(ActionEvent e){if((f1.getText()).equals("任艳云")&&(f2.getText()).equals("ren12")){XueSheng frame1 = new XueSheng();frame1.setBounds(200, 200, 400, 400);frame1.setVisible(true);}else JOptionPane.showMessageDialog(null, "用户名或密码错误,请重新登录!");}}class ReWrite implements ActionListener{public void actionPerformed(ActionEvent e){f1.setText("");f2.setText("");f1.requestFocus();}}class Close implements ActionListener{public void actionPerformed(ActionEvent e){JButton bt=(JButton)e.getSource();if(bt==b3){System.exit(0);}}}//主函数程序开始public static void main(String[] args) {Login log=new Login();log.setTitle("系统登录");log.setBounds(200, 200, 300, 300);log.setBackground(Color.red);log.setVisible(true);}//信息管理界面内部类进行初始化和保存class XueSheng extends JFrame implements ActionListener {private JButton cx, zj, tc, sc,xg,tj;public XueSheng(){Container c = this.getContentPane();c.setLayout(new GridLayout(4, 1));c.setBackground(Color.cyan);c.setFont(new Font("true",Font.TRUETYPE_FONT,13));JPanel panel1 = new JPanel();panel1.setBackground(Color.cyan);JLabel label1 = new JLabel("欢迎登入成绩管理主页",SwingConstants.CENTER);label1.setFont(new Font("true",Font.TRUETYPE_FONT,15));panel1.add(label1);JPanel panel2 = new JPanel();panel2.setBackground(Color.cyan);JPanel panel3 = new JPanel();panel3.setBackground(Color.cyan);JPanel panel4 = new JPanel();panel4.setBackground(Color.cyan);//添加按钮cx = new JButton("查询");panel2.add(cx);zj = new JButton("增加");panel2.add(zj);sc = new JButton("删除");panel3.add(sc);xg = new JButton("修改");panel3.add(xg);tc = new JButton("退出");panel4.add(tc);c.add(panel1);c.add(panel2);c.add(panel3);c.add(panel4);cx.addActionListener(this);zj.addActionListener(this);sc.addActionListener(this);xg.addActionListener(this);tc.addActionListener(this);this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getSource() == cx) {Query f = new Query();}if(e.getSource()==zj){Inseter f = new Inseter();}if(e.getSource()==sc){Delete d = new Delete();}if(e.getSource()==xg){Update x=new Update();}if(e.getSource()==tc){shutDown();}}private void shutDown(){JOptionPane.showMessageDialog(null, "信息已保存");this.dispose();}} }插入源码:package com.lb.view;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.FileNotFoundException;import java.io.IOException;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;import com.lb.bean.Student;import com.lb.dao.DaoImpl;class Inseter extends JFrame implements ActionListener {private JTextField STNOText, SNAMEText, MAText, CHIText, JAVAText;private JButton b1, b2, b3;private String STNO, SNAME,MAT, CHI, JAVA;private Student a;public Inseter() {super("添加学生信息");Container c2 = this.getContentPane();c2.setLayout(new GridLayout(3, 1));c2.setBackground(Color.cyan);JPanel center = new JPanel();center.setLayout(new GridLayout(5, 4));center.setBackground(Color.cyan);JPanel low = new JPanel(new FlowLayout());low.setBackground(Color.cyan);JLabel label1 = new JLabel("添加学生信息", SwingConstants.CENTER);label1.setFont(new Font("TRUE", Font.TRUETYPE_FONT, 20));c2.add(label1);STNOText = new JTextField(20);//30列文本框SNAMEText = new JTextField(20);CHIText = new JTextField(20);MAText = new JTextField(20);JAVAText = new JTextField(20);center.add(new JLabel(" "));center.add(new JLabel("学号:", SwingConstants.CENTER));//添加标签学号写在标签中间center.add(STNOText);//添加文本框center.add(new JLabel(" "));center.add(new JLabel(" "));center.add(new JLabel("姓名:", SwingConstants.CENTER));center.add(SNAMEText);center.add(new JLabel(" "));center.add(new JLabel(" "));center.add(new JLabel("语文:", SwingConstants.CENTER));center.add(CHIText);center.add(new JLabel(" "));center.add(new JLabel(" "));center.add(new JLabel("数学:", SwingConstants.CENTER));center.add(MAText);center.add(new JLabel(" "));center.add(new JLabel(" "));center.add(new JLabel("java:", SwingConstants.CENTER));center.add(JAVAText);center.add(new JLabel(" "));c2.add(center);b1 = new JButton("添加");b2 = new JButton("清除");b3 = new JButton("退出");low.add(b1);low.add(b2);low.add(b3);c2.add(low);// 添加监听b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);this.setBounds(200, 200, 600, 400);this.setVisible(true);this.setTitle("添加学生信息");}public void actionPerformed(ActionEvent e) {if (e.getSource() == b1) {try {inseter();} catch (FileNotFoundException e1) {e1.printStackTrace();} catch (IOException e1) {e1.printStackTrace();}}if (e.getSource() == b2) {clearForm();}if (e.getSource() == b3) {this.dispose();}}private void inseter() throws FileNotFoundException, IOException { STNO = STNOText.getText();SNAME = SNAMEText.getText();CHI = CHIText.getText();MAT = MAText.getText();JAVA = JAVAText.getText();Student stu =new Student();if (STNO.length() == 0 || SNAME.length() == 0 || MAT.length() == 0|| JAVA.length() == 0 || CHI.length() == 0){JOptionPane.showMessageDialog(this, "请添加完全信息");}else {Student a=new Student(SNAME,STNO,Integer.parseInt(CHI),Integer.parseInt(MAT),Integer.parseInt(JAVA));DaoImpl di = new DaoImpl();di.inseter(a);JOptionPane.showMessageDialog(this, "添加成功!!");}}private void clearForm() {STNOText.setText("");SNAMEText.setText("");MAText.setText("");CHIText.setText("");JAVAText.setText("");}}删除源码:package com.lb.view;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.SwingConstants;import com.lb.dao.DaoImpl;class Delete extends JFrame implements ActionListener{private JButton yes;private JButton cancle;private JTextField text1;private String STNO;public Delete(){Container c3 = this.getContentPane();c3.setBackground(Color.pink);c3.setLayout(new GridLayout(3, 1));c3.setFont(new Font("true",Font.TRUETYPE_FONT,13));JPanel p1 = new JPanel();p1.setBackground(Color.pink);JPanel p2 = new JPanel();p2.setBackground(Color.pink);JLabel label1 = new JLabel("删除学生信息",SwingConstants.CENTER);label1.setFont(new Font("true",Font.TRUETYPE_FONT,13));label1.setForeground(Color.blue);c3.add(label1);JLabel label2 = new JLabel("请输入学号");text1 = new JTextField(10);p1.add(label2);p1.add(text1);c3.add(p1);yes = new JButton("确定");cancle = new JButton("退出");p2.add(yes);p2.add(cancle);c3.add(p2);yes.addActionListener(this);cancle.addActionListener(this);this.setTitle("删除学生信息");this.setBounds(200,200,400,300);this.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==yes){DaoImpl di =new DaoImpl();STNO = text1.getText();di.delete(STNO);}if(e.getSource()==cancle){this.dispose();}JOptionPane.showMessageDialog(this, "删除成功!!!");}}修改源码:package com.lb.view;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;import com.lb.bean.Student;import com.lb.dao.DaoImpl;class Update extends JFrame implements ActionListener{private JTextField STNOText, SNAMEText, MAText, CHIText, JAVAText;private JButton b1,b2,b3;public Update(){Container c4 = this.getContentPane();c4.setLayout(new GridLayout(5, 1));c4.setFont(new Font("true",Font.TRUETYPE_FONT,13)); JPanel up1 = new JPanel();up1.setBackground(Color.pink);JPanel up2 = new JPanel();up2.setBackground(Color.pink);JPanel center = new JPanel(new GridLayout(4,4)); center.setBackground(Color.pink);JPanel low = new JPanel();low.setBackground(Color.pink);JPanel low1 = new JPanel();low1.setBackground(Color.pink);JLabel label11 = new JLabel("需要修改的学号:"); STNOText=new JTextField(15);up2.add(label11);up2.add(STNOText);b1=new JButton("查找");up2.add(b1);c4.add(up1);c4.add(up2);c4.add(center);SNAMEText=new JTextField(22);MAText=new JTextField(22);CHIText=new JTextField(22);JAVAText=new JTextField(22);center.add(new JLabel(" "));center.add(new JLabel("姓名:", SwingConstants.CENTER)); center.add(SNAMEText);center.add(new JLabel(" "));center.add(new JLabel(" "));center.add( new JLabel("数学:", SwingConstants.CENTER)); center.add(MAText);center.add(new JLabel(" "));center.add(new JLabel(" "));center.add(new JLabel("语文:", SwingConstants.CENTER)); center.add(CHIText);center.add(new JLabel(" "));center.add(new JLabel(" "));center.add(new JLabel("java:", SwingConstants.CENTER)); center.add(JAVAText);center.add(new JLabel(" "));c4.add(center);b2=new JButton("修改");b3=new JButton("退出");low1.add(b2);low1.add(b3);c4.add(low);c4.add(low1);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);this.setTitle("修改信息");this.setBounds(200, 200, 400, 400);this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (e.getSource() == b1) {DaoImpl di = new DaoImpl();String num = STNOText.getText();Student stu = di.findStudentByNum(num);if(num.equals(stu.getNum())){SNAMEText.setText(stu.getName());MAText.setText(String.valueOf(stu.getShuxue()));CHIText.setText(String.valueOf(stu.getYuwen()));JAVAText.setText(String.valueOf(stu.getJava()));}}if (e.getSource() == b2) {if (SNAMEText.getColumns() == 0 || MAText.getColumns() == 0|| JAVAText.getColumns() == 0 || CHIText.getColumns() == 0){}else {Student a=new Student(SNAMEText.getText(),STNOText.getText(),Integer.parseInt(CHIText.getText()),Integer.parseInt(MAText.getText()),Integer.parseInt(JAVAText.getText()));DaoImpl dl = new DaoImpl();dl.update(a);JOptionPane.showMessageDialog(this, "修改成功!!!");}}if (e.getSource() == b3) {this.dispose();}}}查询源码:package com.lb.view;import java.awt.Color;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;import com.lb.bean.Student;import com.lb.dao.DaoImpl;class Query extends JFrame implements ActionListener {private JTextField STNOText, SNAMEText, MAText, CHIText, JAVAText;private String STNO;private JButton b1, b2;public Query() {Container c1 = this.getContentPane();c1.setLayout(new GridLayout(4, 1));JLabel label1 = new JLabel("查询学生信息", SwingConstants.CENTER);JLabel label0 = new JLabel("请输入你的学号",SwingConstants.CENTER);JPanel pp = new JPanel(new GridLayout(2, 1));pp.setBackground(Color.pink);pp.add(label1);pp.add(label0);c1.add(pp);JPanel p1 = new JPanel();p1.setBackground(Color.pink);STNOText = new JTextField(10);p1.add(STNOText);c1.add(p1);JPanel p2 = new JPanel();p2.setBackground(Color.pink);b1 = new JButton("查询");b2 = new JButton("退出");b1.addActionListener(this);b2.addActionListener(this);p2.add(b1);p2.add(b2);c1.add(p2);JPanel center = new JPanel(new GridLayout(4, 4));center.setBackground(Color.pink);SNAMEText = new JTextField(30);CHIText = new JTextField(30);MAText = new JTextField(30);JAVAText = new JTextField(30);center.add(new JLabel(" "));center.add(new JLabel("姓名", SwingConstants.CENTER));center.add(SNAMEText);center.add(new JLabel(" "));center.add(new JLabel(" "));center.add(new JLabel("语文", SwingConstants.CENTER));center.add(CHIText);center.add(new JLabel(" "));center.add(new JLabel(" "));center.add(new JLabel("数学", SwingConstants.CENTER));center.add(MAText);center.add(new JLabel(" "));center.add(new JLabel(" "));center.add(new JLabel("java", SwingConstants.CENTER));center.add(JAVAText);center.add(new JLabel(" "));c1.add(center);this.setVisible(true);this.setBounds(200, 200, 400, 300);}public void actionPerformed(ActionEvent e){if (e.getSource() == b1) {STNO = STNOText.getText();DaoImpl dl = new DaoImpl();Student stu = dl.findStudentByNum(STNO);if((STNO).equals(stu.getNum())){SNAMEText.setText(stu.getName());MAText.setText(String.valueOf(stu.getShuxue()));CHIText.setText(String.valueOf(stu.getYuwen()));JAVAText.setText(String.valueOf(stu.getJava()));}}if (e.getSource() == b2) {this.dispose();}}}连库源码:package com.lb.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.lb.bean.Student;public class DaoImpl {public Student login(String num,String pass){Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;Student stu = new Student();int sid = 0;try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java","root","root");String sql = "select * from user where num = ? and pass = ?";ps = conn.prepareStatement(sql);ps.setString(1, num);ps.setString(2, pass);rs = ps.executeQuery();while(rs.next()){sid = rs.getInt("sid");}String sql2 = "select * from student where id = "+sid;ps = conn.prepareStatement(sql);rs = ps.executeQuery();while(rs.next()){stu.setId(rs.getInt("id"));stu.setJava(rs.getInt("java"));stu.setName(rs.getString("name"));stu.setNum(rs.getString("num"));stu.setShuxue(rs.getInt("shuxue"));stu.setYuwen(rs.getInt("yuwen"));}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {if(ps != null){ps.close();}if(conn != null){conn.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return stu;}public void inseter(Student stu){Connection conn = null;PreparedStatement ps = null;try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java","root","root");String sql ="insert into student values(null,?,?,?,?,?)";ps = conn.prepareStatement(sql);ps.setString(1, stu.getName());ps.setString(2,stu.getNum() );ps.setInt(3, stu.getYuwen());ps.setInt(4, stu.getShuxue());ps.setInt(5, stu.getJava());ps.executeUpdate();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {if(ps != null){ps.close();}if(conn != null){conn.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public void delete(String num){Connection conn = null;PreparedStatement ps = null;try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java","root","root");String sql = "delete from student where num = ?";ps = conn.prepareStatement(sql);ps.setString(1, num);ps.executeUpdate();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {if(ps != null){ps.close();}if(conn != null){conn.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public void update(Student stu){Connection conn = null;PreparedStatement ps = null;try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java","root","root");String sql = "update student set name = ?,yuwen = ?,shuxue = ?,java = ? where num = ?";ps = conn.prepareStatement(sql);ps.setString(1, stu.getName());ps.setInt(2, stu.getYuwen());ps.setInt(3, stu.getShuxue());ps.setInt(4, stu.getJava());ps.setString(5, stu.getNum());ps.executeUpdate();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {if(ps != null){ps.close();}if(conn != null){conn.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public List<Student> query(){List<Student> li = new ArrayList<Student>();Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/java","root","root");String sql = "select * from student";ps = conn.prepareStatement(sql);rs = ps.executeQuery();while(rs.next()){Student stu = new Student();stu.setId(rs.getInt("id"));stu.setName(rs.getString("name"));stu.setNum(rs.getString("num"));stu.setYuwen(rs.getInt("yuwen"));stu.setShuxue(rs.getInt("shuxue"));stu.setJava(rs.getInt("java"));li.add(stu);}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {if(rs != null){rs.close();}if(ps != null){ps.close();}if(conn != null){conn.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return li;}。
java教学计划编制的全部代码
集合和邻接表
{
String str= "顶点集合:"+vertexlist.toString()+"\n";
str += "出边表:\n ";
//+edgeCount+"条
边 \n";
for (int i=0; i<vertexCount(); i++)
str += this.vertexlist.get(i).adjlink.toString()+"\n"; //遍
public abstract int getNextNeighbor(int i, int j); //返回 vi 在 vj
后的下一个邻接顶点的序号
// public abstract AbstractGraph prim();
public void DFSTraverse(int v)
//从顶
点 v 出发对非连通图的一次深度优先搜索遍历 { boolean[] visited = new boolean[vertexCount()];
} i = (i+1) % vertexCount(); 他连通分量中寻找未被访问顶点 } while (i!=v); System.out.println(); }
//访问标 //若顶 //从顶 //在其
private void depthfs(int v, boolean[] visited)
//从顶点 v
开始发的一次深度优先搜索遍历 {
//遍历一个连通分量 System.out.print(this.get(v)+" ");
java课程设计及源代码
java课程设计及源代码一、课程目标知识目标:1. 让学生掌握Java编程语言的基本语法和结构,包括变量声明、数据类型、运算符、控制流程(循环、分支)等。
2. 培养学生运用面向对象编程思想,包括类的定义、对象的创建、封装、继承和多态等。
3. 引导学生了解Java常用的集合框架,如List、Set、Map等,并掌握其基本使用方法。
4. 让学生掌握基本的异常处理和文件操作。
技能目标:1. 培养学生独立编写Java程序的能力,并能解决实际问题。
2. 培养学生阅读和分析他人代码的能力,提高合作开发时的沟通效率。
3. 提高学生运用Java编程语言进行项目设计和开发的能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学生的学习热情。
2. 培养学生具有良好的编程习惯,严谨的编程态度和团队协作精神。
3. 引导学生认识到编程对解决现实问题的重要性,增强社会责任感。
分析课程性质、学生特点和教学要求,本课程目标将分解为以下具体学习成果:1. 学生能够独立编写简单的Java程序,如计算器、九九乘法表等。
2. 学生能够阅读和分析复杂Java程序,如学生管理系统、图书管理系统等。
3. 学生能够运用所学知识,设计并实现一个简单的Java项目,如小型游戏、实用工具等。
4. 学生在编程过程中,能够遵循编程规范,具有良好的编程习惯,并具备一定的团队协作能力。
二、教学内容1. Java基本语法和数据类型:包括变量声明、赋值,基本数据类型(整型、浮点型、字符型、布尔型),类型转换。
2. 控制流程:介绍Java中的分支结构(if-else、switch-case)和循环结构(for、while、do-while)。
3. 面向对象编程:类的定义、构造方法、成员变量、成员方法、封装、继承、多态、抽象类和接口。
4. 常用集合框架:List(ArrayList、LinkedList)、Set(HashSet、TreeSet)、Map(HashMap、TreeMap)的基本使用。
javaawt课程设计源代码
javaawt课程设计源代码一、教学目标本课程旨在让学生掌握Java AWT(Abstract Window Toolkit)的基本概念和编程方法,培养学生运用Java AWT创建图形用户界面(GUI)的能力。
1.理解Java AWT的概念和作用。
2.掌握Java AWT的基本组件,如容器、按钮、文本框等。
3.了解Java AWT的事件处理机制。
4.熟悉Java AWT的绘图和图像处理方法。
5.能够运用Java AWT创建简单的图形用户界面。
6.能够使用Java AWT组件搭建复杂的GUI应用程序。
7.能够处理用户输入事件和窗口事件。
8.能够实现基本的绘图和图像处理功能。
情感态度价值观目标:1.培养学生对计算机编程的兴趣和热情。
2.培养学生独立思考和解决问题的能力。
3.培养学生团队协作和交流的能力。
二、教学内容本课程的教学内容主要包括Java AWT的概念、基本组件、事件处理、绘图和图像处理等方面。
1.Java AWT的概念和作用。
2.容器类(如Frame、Dialog、Panel等)及其方法。
3.常用组件(如Button、TextField、Label等)的使用。
4.事件处理机制(事件、事件监听器、事件适配器)。
5.绘图和图像处理(如Graphics类、画线、画圆、加载和显示图像等)。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解Java AWT的基本概念、原理和编程方法。
2.案例分析法:通过分析典型实例,使学生掌握Java AWT的应用技巧。
3.实验法:让学生亲自动手编写代码,培养实际操作能力。
四、教学资源1.教材:《Java编程思想》或《Java AWT编程指南》。
2.参考书:《Java核心技术》等相关书籍。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、网络环境等。
五、教学评估本课程的评估方式包括平时表现、作业、考试和项目实践四个方面,以全面、客观、公正地评价学生的学习成果。
javaee课程设计源码
javaee课程设计源码一、教学目标本节课的教学目标是让学生掌握JavaEE的基本概念和核心技术,包括Web服务器、Servlet、JSP等技术。
通过本节课的学习,使学生能够理解JavaEE的应用架构,并能够运用这些技术开发简单的Web应用程序。
此外,还希望学生能够培养对JavaEE技术的兴趣和热情,提高他们的自主学习和实践能力。
具体来说,知识目标包括:1.理解JavaEE的概念和特点;2.掌握Web服务器的基本原理和常用技术;3.掌握Servlet和JSP技术的基本原理和应用方法。
技能目标包括:1.能够配置和运行JavaEE应用程序;2.能够使用Servlet和JSP技术开发简单的Web应用程序;3.能够运用所学知识解决实际问题。
情感态度价值观目标包括:1.培养对JavaEE技术的兴趣和热情;2.提高自主学习和实践能力;3.培养团队协作和沟通能力。
二、教学内容本节课的教学内容主要包括JavaEE的概念和核心技术。
具体包括以下几个部分:1.JavaEE概述:介绍JavaEE的概念、特点和应用场景;2.Web服务器:讲解Web服务器的基本原理和常用技术,如Tomcat、Jetty等;3.Servlet:介绍Servlet的概念、原理和应用方法,包括Servlet的生命周期、请求和响应处理等;4.JSP:讲解JSP的概念、原理和应用方法,包括JSP的基本语法、内置对象、标签库等;5.案例实践:通过案例实践,让学生动手编写JavaEE应用程序,巩固所学知识。
三、教学方法为了达到本节课的教学目标,将采用以下几种教学方法:1.讲授法:讲解JavaEE的基本概念和核心技术,让学生掌握理论知识;2.案例分析法:分析实际案例,让学生了解JavaEE技术的应用方法和技巧;3.实验法:让学生动手实践,培养实际操作能力和解决问题的能力;4.讨论法:学生进行小组讨论,培养团队协作和沟通能力。
四、教学资源为了支持本节课的教学内容和教学方法,将准备以下教学资源:1.教材:选用《JavaEE应用开发》作为主教材,辅助学生学习基本概念和核心技术;2.参考书:提供《JavaEE技术详解》等参考书籍,供学生深入学习;3.多媒体资料:制作PPT课件,图文并茂地展示教学内容;4.实验设备:准备计算机、服务器等实验设备,让学生动手实践。
java课程设计(代码清单)
java课程设计(代码清单)一、教学目标本节课的目标是让学生掌握Java编程语言的基本语法和结构,能够编写简单的Java程序。
具体来说,知识目标包括理解Java的基本数据类型、控制结构、循环结构以及函数的定义和调用;技能目标包括能够使用Java编写简单的程序,解决实际问题;情感态度价值观目标包括培养学生对编程语言的兴趣,增强学生的自信心和解决问题的能力。
二、教学内容本节课的教学内容主要包括Java的基本语法和结构。
具体来说,包括Java的基本数据类型(整型、浮点型、字符型、布尔型)、控制结构(条件语句、循环语句)、函数的定义和调用等。
三、教学方法为了达到本节课的教学目标,将采用多种教学方法,包括讲授法、案例分析法、实验法等。
通过讲解Java的基本语法和结构,让学生理解并掌握相关概念;通过案例分析,让学生将理论知识应用到实际编程中;通过实验操作,让学生亲手编写Java程序,提高编程能力。
四、教学资源为了支持本节课的教学内容和教学方法的实施,将准备教材、参考书、多媒体资料和实验设备等教学资源。
教材和参考书将提供Java编程的基础知识,多媒体资料将帮助学生更好地理解Java编程的概念,实验设备将让学生亲手实践编程操作。
五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估方式包括平时表现、作业、考试等。
平时表现将根据学生在课堂上的参与度、提问回答等情况进行评估;作业将包括编程练习和理论题目,以检验学生对Java编程的理解和掌握程度;考试将包括选择题、填空题和编程题,以全面测试学生的知识水平和编程能力。
六、教学安排本节课的教学安排将在每周的固定时间进行,确保在有限的时间内完成教学任务。
教学地点将选择一间配备计算机的教室,以便学生进行编程实践。
同时,教学安排还将考虑学生的实际情况和需要,如学生的作息时间、兴趣爱好等,尽量为学生创造一个舒适、高效的学习环境。
七、差异化教学为了满足不同学生的学习需求,将根据学生的不同学习风格、兴趣和能力水平,设计差异化的教学活动和评估方式。
java课程设计画图完整源码
java课程设计画图完整源码一、教学目标本章节的教学目标是使学生掌握Java编程语言的基本知识,能够使用Java编写简单的图形用户界面程序。
具体目标如下:1.知识目标:–了解Java编程语言的基本语法和结构。
–掌握面向对象编程的基本概念和方法。
–了解Java图形用户界面编程的基本原理和常用组件。
2.技能目标:–能够使用Java编写简单的控制台程序。
–能够使用Java编写简单的图形用户界面程序。
–能够阅读和理解Java代码。
3.情感态度价值观目标:–培养学生的编程兴趣和自信心,使其能够主动学习编程知识。
–培养学生的问题解决能力和创新精神,使其能够通过编程解决实际问题。
二、教学内容本章节的教学内容主要包括Java编程语言的基本语法和结构、面向对象编程的概念和方法、Java图形用户界面编程的基本原理和常用组件。
具体内容如下:1.Java编程语言的基本语法和结构:–数据类型、变量和常量–运算符和表达式–控制语句(条件语句、循环语句)–函数和数组2.面向对象编程的概念和方法:–类和对象的概念–构造函数和析构函数–封装、继承和多态的概念和应用3.Java图形用户界面编程的基本原理和常用组件:–图形用户界面编程的基本原理和框架–常用组件(按钮、文本框、标签等)的使用和属性设置–事件处理和用户输入三、教学方法本章节的教学方法采用讲授法和实验法相结合的方式。
首先通过讲授法向学生介绍Java编程语言的基本语法和结构、面向对象编程的概念和方法、Java图形用户界面编程的基本原理和常用组件。
然后通过实验法让学生亲自动手编写代码,实践所学的知识,并通过实验过程中遇到的问题引导学生思考和解决问题。
四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书用于提供理论知识和编程技巧,多媒体资料用于辅助讲解和演示,实验设备用于学生动手实践。
教师需要根据学生的实际情况和教学要求选择和准备相应的教学资源,以支持教学内容和教学方法的实施,丰富学生的学习体验。
Java程序设计教学规划报告之学生信息管理组织系统(附全部源码)
计算机学院课程设计专业:计算机科学与技术课程名称:JAVA程序设计课题名称: 学生信息管理系统教师:学号: 姓名:20010年6 月25 日目录第一章总体设计 (1)1.1本系统的主要功能 (1)1.2系统包含的类及类之间的关系 (1)1.3 Java源文件及其功能 (1)1.4相关文件及其功能 (2)第二章详细设计 (3)2.1主类MainWindow (3)2.2类Database (4)2.3类StuBean (5)2.4类InputStudent (6)2.5类ModifyStudent (7)2.6类QueryStudent (8)2.7类DeleteStudent (9)第三章功能测试及运行效果 (10)3.1 系统主界面 (10)3.2 录入学生信息界面 (11)3.3 查询学生信息界面 (11)3.4 修改学生信息界面 (12)3.5 修改学生信息界面 (12)工作总结 (13)参考文献 (15)第一章总体设计1.1本系统的主要功能本系统是基于数据库的学生信息管理系统,实现了连接数据库,录入、修改、查询、删除学生信息的功能。
1.2系统包含的类及类之间的关系本系统共包括7个Java源文件和3个辅助文件。
类之间的关系如图1-1所示图1-1 类之间的关系图1.3 Java源文件及其功能1.MainWindow.java该类负责创建学生信息管理系统的主窗口,该类还有main方法,程序从该类开始执行。
2.InputStudent.java该类创建的对象是MainWindow类的重要成员之一,负责提供录入学生基本信息的界面。
3.ModifyStudent.java该类创建的对象是MainWindow类的重要成员之一,负责提供修改学生基本信息的界面。
4.DeleteStudent.java该类创建的对象是MainWindow类的重要成员之一,负责提供删除学生基本信息的界面。
5.QueryStudent.java该类创建的对象是MainWindow类的重要成员之一,负责提供查询学生基本信息以及打印基本信息的界面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package curriculumProject;//非连通图的深度优先搜索遍历和广度优先搜索遍历import linearList.Queue.SeqQueue; //顺序循环队列类public abstract class AbstractGraph<E> implements GGraph<E>//抽象图类{public abstract int vertexCount(); //返回顶点数,方法由子类实现public abstract E get(int i); //返回顶点vi的数据域public abstract int getFirstNeighbor(int i); //返回顶点vi的第一个邻接顶点的序号public abstract int getNextNeighbor(int i, int j); //返回vi在vj 后的下一个邻接顶点的序号// public abstract AbstractGraph prim();public void DFSTraverse(int v) //从顶点v出发对非连通图的一次深度优先搜索遍历{boolean[] visited = new boolean[vertexCount()]; //访问标记数组,元素初值为false,表示未被访问int i=v;do{if (!visited[i]) //若顶点vi未被访问{System.out.print("{ ");depthfs(i, visited); //从顶点vi出发的一次深度优先搜索遍历System.out.print("} ");}i = (i+1) % vertexCount(); //在其他连通分量中寻找未被访问顶点} while (i!=v);System.out.println();}private void depthfs(int v, boolean[] visited) //从顶点v开始发的一次深度优先搜索遍历{ //遍历一个连通分量System.out.print(this.get(v)+" "); //访问该顶点visited[v] = true; //置已访问标记int w = getFirstNeighbor(v); //获得第一个邻接顶点while (w!=-1) //若存在邻接顶点{if(!visited[w]) //若邻接顶点w未被访问depthfs(w, visited); //从w出发的深度优先搜索遍历,递归调用w = getNextNeighbor(v, w); //返回v在w后的下一个邻接顶点的序号}}public void BFSTraverse(int v) //从顶点v出发对非连通图进行一次广度优先搜索遍历{boolean[] visited = new boolean[vertexCount()]; //访问标记数组int i=v;do{if (!visited[i]) //若顶点vi未被访问{System.out.print("{ ");breadthfs(i, visited); //从顶点vi出发的广度优先搜索遍历System.out.print("} ");}i = (i+1) % vertexCount(); //在其他连通分量中寻找未被访问顶点} while (i!=v);System.out.println();}private void breadthfs(int v, boolean[] visited) //从顶点v出发的广度优先搜索遍历{ //遍历一个连通分量System.out.print(this.get(v)+" ");visited[v] = true;SeqQueue<Integer> que = new SeqQueue<Integer>(vertexCount()); //创建顺序队列que.enqueue(new Integer(v)); //访问过的顶点v的序号入队while (!que.isEmpty()) //当队列不空时循环{v = que.dequeue().intValue(); //出队int w = getFirstNeighbor(v); //获得顶点v的第一个邻接顶点序号while (w!=-1) //当邻接顶点存在时循环{if (!visited[w]) //若该顶点未访问过{System.out.print(this.get(w)+" "); //访问顶点visited[w] = true;que.enqueue(new Integer(w)); //访问过的顶点w的序号入队}w = getNextNeighbor(v, w); //返回v在w后的下一个邻接顶点的序号}}}}package curriculumProject;//图的邻接表import dataStructure.linearList.SeqList; //顺序表类import linearList.linkedList.SortedHSLinkedList; //排序的带头结点的单链表类//public class AdjListGraph<E> implements GGraph<E> //邻接表表示的图类public class AdjListGraph<E> extends AbstractGraph<E> implements GGraph<E> //邻接表表示的图类{protected SeqList<Vertex<E>> vertexlist; //顶点表public AdjListGraph(int n) //构造方法,n指定顶点数{this.vertexlist = new SeqList<Vertex<E>>(n);}public AdjListGraph(E[] vertices, Edge[] edges) //以顶点集合和边集合构造一个图{this(vertices.length);for (int i=0; i<vertices.length; i++)insertVertex(vertices[i]); //插入一个顶点for (int j=0; j<edges.length; j++)insertEdge(edges[j]); //插入一条边}public int vertexCount() //返回顶点数{return this.vertexlist.length();}public E get(int i) //返回顶点vi的数据元素{return this.vertexlist.get(i).data;}public boolean insertVertex(E vertex) //插入一个顶点,若插入成功,返回true{return this.vertexlist.add(new Vertex<E>(vertex)); //在顺序表最后插入一个元素}public boolean insertEdge(int i, int j) //插入一条权值为weight 的边〈vi,vj〉{if (i>=0 && i<vertexCount() && j>=0 && j<vertexCount() && i!=j){//SortedHSLinkedList<Edge> slink = new SortedHSLinkedList<Edge>();SortedHSLinkedList slink = this.vertexlist.get(i).adjlink;// slink = this.vertexlist.get(i).adjlink;// System.out.println(this.vertexlist.get(i));return slink.add(new Edge(i,j));//在第i条单链表最后增加边结点}return false;}public boolean insertEdge(Edge edge) //插入一条边{if (edge!=null)return insertEdge(edge.start, edge.dest);return false;}public String toString() //获得图的顶点集合和邻接表{String str= "顶点集合:"+vertexlist.toString()+"\n";str += "出边表:\n "; //+edgeCount+"条边\n";for (int i=0; i<vertexCount(); i++)str += this.vertexlist.get(i).adjlink.toString()+"\n"; //遍历第i条单链表return str;}public boolean removeEdge(int i, int j) //删除边〈vi,vj〉,i、j指定顶点序号{if (i>=0 && i<vertexCount() && j>=0 && j<vertexCount() && i!=j){SortedHSLinkedList slink = this.vertexlist.get(i).adjlink; //获得第i条边单链表return slink.remove(new Edge(i,j));}return false;}public boolean removeVertex(int v) //删除序号为v的顶点及其关联的边{ //若删除成功,返回trueint n=vertexCount(); //删除之前的顶点数if (v>=0 && v<n){SortedHSLinkedList<Edge> slink =this.vertexlist.get(v).adjlink; //获得欲删除的第v条边单链表int i=0;Edge edge = slink.get(i);while (edge!=null){this.removeEdge(edge.dest, edge.start); //删除对称的边i++;edge = slink.get(i);}this.vertexlist.remove(v); //删除顺序表的第i个元素,顶点数已减一for (i=0; i<n-1; i++) //未删除的边结点更改某些顶点序号{slink = this.vertexlist.get(i).adjlink; //获得第i条边单链表int j=0;edge = slink.get(j);while (edge!=null){if (edge.start>v)edge.start--; //顶点序号减一if (edge.dest>v)edge.dest--;j++;edge = slink.get(j);}}return true;}return false;}public int getFirstNeighbor(int v) //返回顶点v的第一个邻接顶点的序号{ //若不存在第一个邻接顶点,则返回-1return getNextNeighbor(v, -1);}public int getNextNeighbor(int v, int w) //返回v在w后的下一个邻接顶点的序号{ //若不存在下一个邻接顶点,则返回-1if (v>=0 && v<vertexCount() && w>=-1 && w<vertexCount()){SortedHSLinkedList<Edge> slink = this.vertexlist.get(v).adjlink; //获得第v条边单链表Edge edge = slink.get(0); //返回单链表的第一个结点表示的边int i=0;while (edge!=null) //寻找下一个邻接顶点{if (edge.dest>w)return edge.dest; //返回下一个邻接顶点的序号i++;edge = slink.get(i); //返回单链表的第一个结点表示的边}}return -1;}}package curriculumProject;//带权图的边类public class Edge implements Comparable<Edge> //带权值的边类{public int start; //边的起点序号public int dest; //边的终点序号//public int weight; //边的权值public Edge(int start, int dest){this.start = start;this.dest = dest;//this.weight = weight;}public String toString(){return "("+start+","+dest+")";}public int compareTo(Edge e) //约定两条边比较大小的规则{if (this.start!=e.start)return this.start - e.start;elsereturn this.dest - e.dest;}}package curriculumProject;//图接口public interface GGraph<E> //图接口{int vertexCount(); //返回顶点数E get(int i); //返回顶点vi的数据元素boolean insertVertex(E vertex); //插入一个顶点boolean insertEdge(int i, int j); //插入一条权值为weight的边〈vi,vj〉boolean removeVertex(int v); //删除序号为v的顶点及其关联的边boolean removeEdge(int i, int j); //删除边〈vi,vj〉int getFirstNeighbor(int v); //返回顶点v 的第一个邻接顶点的序号int getNextNeighbor(int v, int w); //返回v在w 后的下一个邻接顶点的序号}package curriculumProject;import java.util.*;import linearList.Queue.SeqQueue;;public class Graph_Main2 {/*** @param args*/int bian;// 定义边数HashSet array = new HashSet();// 定义一个集合保存顶点的值ArrayList list2 = new ArrayList();// 保存优先关系顶点的值ArrayList listrudu = new ArrayList();// 保存顶点的入度ArrayList result = new ArrayList();// 保存拓扑排序的结果ArrayList credit2 = new ArrayList();// 保存学分信息ArrayList credit3 = new ArrayList();// 保存学分信息int[][] relation;// 保存输入优先关系的所有值int[][] c_relation;Scanner scanner = new Scanner(System.in);public void input() {System.out.println("请输入课程总数,按回车确认");Scanner reader=new Scanner(System.in);int Input=reader.nextInt();System.out.println("请依次输入各个课程的学分:");int[] credit = new int[Input];for(int i = 0; i < Input; i++){credit[i] = reader.nextInt();credit2.add(credit[i]);}String[] vertices = new String[Input];for (int n = 0; n < Input; n++) {if (n < 9) {vertices[n] = "C0" + (n + 1);} else {vertices[n] = "C" + (n + 1);}}Scanner reader2=new Scanner(System.in);System.out.println("请输入课程之间的关系总和,即有多少条边?,按回车确认");bian = reader2.nextInt();relation = new int[bian][2];List<Edge> list = new ArrayList<Edge>();System.out.println("比如:C01是C02的先修课,则输入01 02");for (int i = 0; i < bian; i++) {System.out.print("请输入第" + (i + 1) + "条边的优先关系");for (int j = 0; j < 2; j++) {relation[i][j] = reader.nextInt();}list.add(new Edge(relation[i][0],relation[i][1]));}Edge[] edges = list.toArray(new Edge[0]);AdjListGraph<String> graph = new AdjListGraph<String>(vertices,edges);System.out.println("带权有向图,"+graph.toString());System.out.println("深度优先搜索遍历");for(int i=0;i<graph.vertexCount();i++){graph.DFSTraverse(i);}System.out.println("广度优先搜索遍历");for(int i=0;i<graph.vertexCount();i++){graph.BFSTraverse(i);}}public void sort() {for (int i = 0; i < bian; i++) {for (int j = 0; j < 2; j++) {array.add(relation[i][j]);}}Iterator iter = array.iterator();while (iter.hasNext()) {Object s = iter.next();list2.add(s);// 将各顶点的值保存在list里,方便后面查找入度时使用}int count = 0;// 定义一个记入度的计数器for (int i = 0; i < list2.size(); i++) {for (int j = 0; j < bian; j++) {if (list2.get(i).equals(relation[j][1])) {count++;}}listrudu.add(list2.get(i));listrudu.add(count);count = 0;}System.out.println();boolean flag = true;while (flag) {int check = 0;// 检查有没有入度为0for (int i = 0; i < listrudu.size(); i = i + 2) {if (listrudu.get((i + 1)).equals(0)) {result.add(listrudu.get(i));// for(int j=0;j<result.size();j++){// credit3.add(credit2.get(j)); // }//credit3.add(credit2.get(i));for (int j = 0; j < list2.size(); j++) {if (listrudu.get(i).equals(list2.get(j))) {for (int j2 = 0; j2 < bian; j2++) {if (list2.get(j).equals(relation[j2][0])) {relation[j2][1] = -9999;// 如果这个前驱是要被删除的话,那么把他的后继改值}}list2.remove(j);}}} else {check++;}}if (check == listrudu.size()/2) {System.out.println("课程关系输入错误,有环,无法排序");flag = false;}int count1 = 0;// 定义一个记入度的计数器for (int i = 0; i < list2.size(); i++) {for (int j = 0; j < bian; j++) {if (list2.get(i).equals(relation[j][1])) {count1++;}}listrudu.add(list2.get(i));listrudu.add(count1);count1 = 0;}if (list2.size() == 0) {System.out.println("存在拓扑排序");flag = false;}}// while循环结束}public void print() {* 这个for循环的作用是:因为我上面做的是根据listrudu来找的,* 所以它每进行一次循环就把前面的入度为0的值再保存了一遍,其实最后的结果是最后一次循环所得的值,打印的时候要把前面重复的去掉*/for (int i = result.size() - 1; i >= 0; i--) {for (int j = 0; j < i; j++) {if (result.get(j).equals(result.get(i))) {result.remove(j);}}}for (int i = 0; i < result.size(); i++) {System.out.print(result.get(i) + "-->");}System.out.println();System.out.println();System.out.println("请输入你的总学期数");Scanner reader3=new Scanner(System.in);int term = reader3.nextInt();System.out.println("请输入学期学分上线");int sum_credit = reader3.nextInt();System.out.println("如果要使课程均匀分布在各个学期,则为:");int sum=0;int sum2=0;for (int i = 0; i < result.size(); i++) {for(int j=0;j<result.size();j=j+2){Object res2 = result.get(j);Integer r2 = Integer.parseInt(res2.toString());Object obj = credit2.get(r2-1);Integer a = Integer.parseInt(obj.toString());sum += a;j=j+2;break;}double value = (double)credit2.size()/(double)term;int value2=0;if(value<=1.0)value=1.0;if((int)value==value)value2=(int)value;elsevalue2 = (int)value+1;if((i+1)%(value2)==0){System.out.print(result.get(i) + "-->");System.out.println();}else{if(sum<=sum_credit){for(int j3=0;j3<result.size();j3=j3+2){Object res = result.get(j3);Integer r = Integer.parseInt(res.toString());Object obj2 = credit2.get(r-1);Integer a2 = Integer.parseInt(obj2.toString());sum += a2;break;}if(sum<=sum_credit)System.out.print(result.get(i) + "-->");//System.out.print(result.get(i) + "-->");else{sum = 0;System.out.print(result.get(i) + "-->");}}else{System.out.println();sum = 0;System.out.print(result.get(i) + "-->");}}}System.out.println();System.out.println();System.out.println("如果要使课程分布在前几个学期,则为:");int j_=0;int j=0;for (int i = 0; i < result.size(); i++) {//for(int j=0;j<result.size();j=j+2){Object res4 = result.get(j);Integer r4 = Integer.parseInt(res4.toString());Object obj4 = credit2.get(r4-1);Integer a4 = Integer.parseInt(obj4.toString());sum += a4;j=j+1;//break;//}if(sum<=sum_credit){//for(int j=0;j<result.size();j=j+2){Object res3 = result.get(j_);Integer r3 = Integer.parseInt(res3.toString());Object obj3 = credit2.get(r3-1);Integer a3 = Integer.parseInt(obj3.toString());sum += a3;j_=j_+1;if(sum<=sum_credit)System.out.print(result.get(i) + "-->"); // if(sum<=sum_credit&&)// System.out.print(result.get(i) + "-->");else{sum = 0;System.out.print(result.get(i) + "-->");}}else{System.out.print(result.get(i) + "-->");System.out.println();sum = 0;}// if(sum<=sum_credit){// System.out.print(result.get(i) + "-->"); // }else{// System.out.println();// sum = 0;// System.out.print(result.get(i) + "-->"); // }}}public static void main(String[] args) {// TODO Auto-generated method stubGraph_Main2 s = new Graph_Main2();s.input();s.sort();s.print();}}package curriculumProject;import linearList.linkedList.SortedHSLinkedList; //排序的带头结点的单链表类public class Vertex<E> //顶点表{public E data; //顶点数据域public SortedHSLinkedList<Edge> adjlink; //该顶点的边单链表public Vertex(E data, SortedHSLinkedList<Edge> adjlink){this.data = data;this.adjlink = adjlink;}public Vertex(E data){this(data, new SortedHSLinkedList<Edge>()); //构造结点时创建空单链表}public String toString(){return this.data.toString();}。