Java网络编程课程设计Word格式.docx
- 文档编号:21374161
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:40
- 大小:219.44KB
Java网络编程课程设计Word格式.docx
《Java网络编程课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《Java网络编程课程设计Word格式.docx(40页珍藏版)》请在冰豆网上搜索。
学生信息管理系统是一个教育单位不可缺少的部分。
一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。
所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
通过此项目实训——JAVA学生信息管理系统,实践、总结、回顾了网络编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握,理论与时间相结合。
进一步培养学生面向对象程序设计的思想,针对JAVA语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
二.解题基本思路
本程序分为两部分,服务器端与客户端。
服务器连接数据库存储学生的信息表格。
客户端与服务器建立Socket连接,然后用对象输出流包装Sock的输出流将用户输入客户端的信息与执行的操作发送给服务器端,服务器端接收到客户端发送来的信息后加以分析,然后对数据库内的学生信息相应的处理后,最后将学生信息发送给客户端,用户就能查看并处理学生信息了。
三.分析与设计
本系统主要通过客户端,服务器端来体现聊天系统的基本功能。
(1)服务器端
1.连接数据库获取学生信息
2.处理用户登录
3.处理用户查询学生信息
4.处理用户添加学生信息
5.处理用户删除学生信息
6.处理用户修改学生信息
(2)客户端
1.用户的操作界面
2.向服务器端端发送用户的操作信息
3.接受服务器向客户端的反馈信息
四.主要程序源代码
服务器端代码:
importjava.io.*;
import.*;
importjava.sql.*;
publicclassServer{
publicstaticvoidmain(Stringargs[]){
ThreadServers=newThreadServer();
s.start();
}
}
classThreadServerextendsThread{//多线程类
staticServerSocketserver;
staticSocketssocket;
staticBufferedReaderreader1;
staticBufferedReaderreader2;
staticStringsql,databack;
staticStringStudentID,password,address,myname,class1,age,phone,
sex,school;
staticResultSetrs;
staticStatementstmt;
staticConnectioncon;
publicvoidrun(){
try{
finalStringdb_driver="
sun.jdbc.odbc.JdbcOdbcDriver"
;
//加载数据库驱动
finalStringdb_url="
jdbc:
odbc:
Driver={MicrosoftAccessDriver(*.mdb,*.accdb)};
DBQ=d:
/student.mdb"
try{
}catch(Exceptione){
e.printStackTrace();
}
server=newServerSocket(4838);
//创建服务器
System.out.println("
服务器已创建"
);
intflag=0;
intflag1=0;
while(true){
ssocket=server.accept();
//连接客户端
System.out.println("
客户端已连接服务器"
reader1=newBufferedReader(newInputStreamReader(
ssocket.getInputStream()));
PrintWriterwriter=newPrintWriter(
ssocket.getOutputStream());
Strings1=reader1.readLine();
Stringnetwork[]=s1.split("
"
//逗号分隔
sql="
select*fromstudent"
Class.forName(db_driver);
con=DriverManager.getConnection(db_url,"
"
"
//连接数据库
if(con!
=null){
System.out.println("
数据库连接成功"
}else{
数据库连接失败"
}
stmt=con.createStatement();
rs=stmt.executeQuery(sql);
if(network[0].equals("
enter"
)){//处理登陆功能
while(rs.next()){
StudentID=rs.getString("
StudentID"
password=rs.getString("
password"
if(network[1].equals(StudentID)
&
&
network[2].equals(password)){
intnumber1=Integer.parseInt(StudentID);
intnumber2=Integer.parseInt(password);
if(number1==201211044
&
number2==201211044){
flag=1;
break;
}
}
}
if(flag==1){
writer.println("
yes"
writer.flush();
flag=0;
}else{
no"
stmt.close();
con.close();
}elseif(network[0].equals("
Search"
)){//处理查询功能
school=rs.getString("
school"
sex=rs.getString("
sex"
address=rs.getString("
address"
class1=rs.getString("
class"
myname=rs.getString("
myname"
phone=rs.getString("
phone"
age=rs.getString("
age"
flag1=1;
break;
if(flag1==1){
rs.next();
StringA[]={school,StudentID,password,sex,
address,class1,myname,phone,age};
databack="
for(inti=0;
i<
=A.length-1;
i++){
databack+=A[i];
if(i!
=A.length-1){
databack+="
writer.println(databack);
flag1=0;
SearchError"
AddStudent"
)){//处理添加功能
rs.next();
StudentID=rs.getString("
if(!
network[1].equals(StudentID)){
Strings="
insertintostudent(StudentID,password,sex,address,class,myname,phone,age)values(?
?
)"
PreparedStatementstat1=con.prepareStatement(s);
stat1.setString(1,network[1]);
stat1.setString(2,network[2]);
stat1.setString(3,network[3]);
stat1.setString(4,network[4]);
stat1.setString(5,network[5]);
stat1.setString(6,network[6]);
stat1.setString(7,network[7]);
stat1.setString(8,network[8]);
stat1.executeUpdate();
flag=1;
AddSucceed"
AddError"
DeleteStudent"
)){//处理删除功能
Strings="
deletefromstudentwhereStudentID=?
PreparedStatementstat1=con
.prepareStatement(s);
stat1.setString(1,network[1]);
stat1.executeUpdate();
flag=1;
DeleteSucceed"
DeleteError"
Alter"
)){//处理修改功能
sex=network[3];
address=network[4];
class1=network[5];
myname=network[6];
phone=network[7];
age=network[8];
updatestudentsetpassword=?
sex=?
address=?
class=?
myname=?
phone=?
age=?
StudentID=?
whereStudentID=?
stat1.setString(1,password);
stat1.setString(2,sex);
stat1.setString(3,address);
stat1.setString(4,class1);
stat1.setString(5,myname);
stat1.setString(6,phone);
stat1.setString(7,age);
stat1.setString(8,StudentID);
stat1.setString(9,StudentID);
AlterSucceed"
AlterError"
}
}finally{
链接发生错误"
if(reader1!
reader1.close();
if(ssocket!
ssocket.close();
}catch(Exceptione1){
}catch(Exceptione){
System.out.println("
发生错误"
}
importjava.awt.*;
importjavax.swing.*;
importjavax.swing.border.EmptyBorder;
importjava.awt.event.*;
classClientextendsJFrameimplementsActionListener{
privateJLabelStudentLabel;
privateJLabeltitle;
privateJTextFieldStudentTextField;
privateJLabelpasswordLabel;
privateJPasswordFieldpasswordField;
privateJButtonbutton1;
privateJButtonbutton2;
privateJButtonbutton3;
publicClient(){//客户端登陆界面
super.setTitle("
学生管理系统"
Containerc=getContentPane();
c.setLayout(null);
title=newJLabel("
欢迎进入学生登入系统!
title.setBounds(50,30,300,30);
title.setFont(newFont("
宋体"
Font.BOLD,25));
StudentLabel=newJLabel("
用户名:
StudentLabel.setBounds(50,90,170,20);
StudentLabel.setFont(newFont("
黑色"
Font.PLAIN,20));
StudentTextField=newJTextField();
StudentTextField.setBounds(130,90,170,20);
StudentTextField.setFont(newFont("
passwordLabel=newJLabel("
密码:
passwordLabel.setBounds(50,120,170,20);
passwordLabel.setFont(newFont("
passwordField=newJPasswordField();
passwordField.setBounds(130,120,170,20);
passwordField.setFont(newFont("
passwordField.setEchoChar('
*'
button1=newJButton();
button1.setText("
进入"
button1.setFont(newFont("
button1.setBounds(80,170,80,30);
button1.addActionListener(this);
button2=newJButton();
button2.setText("
重置"
button2.setFont(newFont("
button2.setBounds(200,170,80,30);
button2.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
StudentTextField.setText(null);
passwordField.setText(null);
});
button3=newJButton();
button3.setText("
!
button3.setFont(newFont("
Font.BOLD,15));
button3.se
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 网络 编程 课程设计