Java网络编程实践任务书--基于C-S的学生信息管理(1人).docx
Java网络编程实践课程设计说明书课程名称:JaVa网络编程课程设计题目:基于ClS的学生信息管理Java网络编程实践任务书题目3:基于C/S的学生信息管理(1人)实现应用,可以通过网络在客户端对存放在服务器端的学生信息表(至少包含学号、姓名、性别、年龄、籍贯等字段)学生纪录增、删、改、查,并返回结果。要能通过菜单选择功能。基于SoCket,多客户端使用多线程,以能同时从多个客户端执行功能。必须提供友好直观、布局合理的图形界面选择功能、显示信息和填写修改信息。成员名单:服务器代码客户端代码客户端界面数据库连接课程设计报告项目简述和目的随着学校的规模不断扩大,学生数量急剧增加,学生的各种信息量也成倍增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。通过此项目实训一一JAVA学生信息管理系统,实践、总结、回顾了网络编程思想以及编程方法,并通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握,理论与时间相结合。进一步培养学生面向对象程序设计的思想,针对JAVA语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。二.解题基本思路本程序分为两部分,服务器端与客户端。服务器连接数据库存储学生的信息表格。客户端与服务器建立SOCkel连接,然后用对象输出流包装SOCk的输出流将用户输入客户端的信息与执行的操作发送给服务器端,服务器端接收到客户端发送来的信息后加以分析,然后对数据库内的学生信息相应的处理后,最后将学生信息发送给客户端,用户就能查看并处理学生信息了。三.分析与设计本系统主要通过客户端,服务器端来体现聊天系统的基本功能。(1)服务器端1 .连接数据库获取学生信息2 .处理用户登录3 .处理用户查询学生信息4 .处理用户添加学生信息5 .处理用户删除学生信息6 .处理用户修改学生信息(2)客户端1 .用户的操作界面2 .向服务器端端发送用户的操作信息3 .接受服务器向客户端的反馈信息四.主要程序源代码服务器端代码:importjava.io.*;.*;importjava.sql.*;publicclassServerpublicstaticvoidmain(Stringargs)ThreadServers=newThreadServerO;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.mdbH;try(catch(Exceptione)e.printStackTrace();)try(server=newSerVerSOCket(4838);仓IJ建服务器SyStem.out.println("服务器已创建");intflag=O;intflagl=O;while(true)ssocket=SerVer.accept。;/连接客户端SyStem.out.println("客户端已连接服务器");reader1=newBufferedReader(newInputStreamReader(ssocket.getInutStream();PrintWriterwriter=newPrintWriter(ssocket.getOutputStream();Stringsi=reader!.readLine();Stringnetwork=SLSPlit(",");/逗号分隔sq!=,select*fromstudent"Class.forName(db_driver);con=DriverManager.getConnection(db-url,"",连接数据库if(con!=null)SyStem.out.println("数据库连接成功");)elseSyStemoutprintln(”数据库连接失败");)stmt=ConxreateStatementO;rs=stmt.executeQuery(sql);if(network0.equals(,'enter")处理登陆功能while(rs.next()StudentID=rs.getString(,StudentID");password=rs.getString("password");if(network1.equals(StudentID)&&network2.equals(password)intnumber1=IntegenparseInt(StudentlD);intnumber2=Integer.parselnl(password);if(number1=201211044&&number2=2(H211044)flag=1;break;)writer.println("yes");writer.flush();flag=O;elsewriter.println("no");writer.flush();1stmt.close();con.close();)elseif(network0.equals("Search")处理查询功能while(rs.next()school=rs.getString(,school");StudentlD=rs.getString(,StudentID");password=rs.getString("password");sex=rs.gelString("sex");address=rs.getString(',address");classl=rs.getString("class");myname=rs.getString("mynameH);phone=rs-getStringCphone");age=rs.gelSlring("age");if(networklJ.equals(StudentID)&&network2.equals(password)flagl=1;break;)if(flagI=1)rs.next();password, sex,phone, age ;StringA=school,StudentID,address,class1,myname,databack="”;for(inti=0;i<=AJength-1;i+)databack+=Ai;if(i!=A.length-1)databack)writer.println(dalaback);writer.flush();flagl=0;)else(Writer.println("SearchError");writer.flush();)stmt.close();con.close();elseif(network0.equals("AddStudent")/it理添加功能rs.next();StudentID=rs.getString("StudentID");if(!networkl.equals(StudentID)Strings="insertintostudent(StudentID,password,sex,address,class,myname,phone,age)VaIUeS(?,?,?,?,?,?)”;PreparedStatementstall=con.prepareStatement(s);statl.setString(l,networkI);stall.setString(2,network(2);statl.setString(3,network3J);statl.setString(4,network4);statl.setString(5,nelwork5);statl.setString(6,network6);stall.setString(7,network7);statl.setString(8,network8);stat1.executeUpdate();flag=1;)if(flag=1)writer.println("AddSucceed");处理删除功能flag=O;)elsewriter.println("AddError");writer.flush();Istmt.close();con.close();elseif(network0.equals("DeleteStudent)/while(rs.next()StudentID=rs.getString("StudentID");password=rs.getString("password");if(network1.equals(StudentID)&&network2.equals(password)Strings="deletefromstudentwhereStudentlD=?"PreparedStalementstatl=con.prepareStatement(s);statl.setString(l,networkl);stat1.executeUp<late();flag=I;)WriteEprintlnCDeleteSucceedu);writer.flush();flag=O;else