




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书 NO.18学生选课系统课程设计1. 课程设计的目的该学生选课系统需求分析报告的目的在于通过该报告,可以使选课系统规范化、系统化、程序化,避免选课系统的随意性,提高信息处理的速度和准确性,可以及时、准确、有效的查询和修改选课的信息。基本实现如下功能:学生选课,成绩查询,课程信息管理,成绩信息管理。使学生对选课的需求能够清晰的呈现出来。通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。2.设计方案论证2.1概要设计2.1.1 系统功能描述该系统利用java程序要求除了能实现信息的录入、删除、插入和更新等基本功能外,还要求能够根据用户的需要进行操作。例如学生要查询学生选课,要求按照专业、班级、课程等多种方式查询。这些功能基本上满足用户操作的需要,这样用户操作起来就方便简单。2.1.2 系统开发环境(1)硬件环境 硬件要求能运行windows 9.x 操作系统的微机系统。Java程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。(2)软件环境 集成开发环境:Eclipse + MyEclipse 数据库:MySql2.2详细设计2.2.1 程序流程图经分析系统模块图如图1所示学生选课系统 课课程编号课课程名称授授课教师上上课地点可可选人数已已选人数图1 系统功能模块图2.2.2数据项(1)表admin(用户表)FieldTypeNullKeyComment Usernamechar(10)PRI用户名passwordchar(10)密码NameChar(10)用户昵称表1 用户表(2)表S(学生信息表)FieldTypeNullKeyComment Snonvarchar(50)PRI学号Snamenvarchar(50)姓名Sxnvarchar(50)系别表2 学生信息表(3)表C(课程信息表)FieldTypeNullKeyComment Cnonvarchar(50)PRI课号Cnamenvarchar(50)课名表3 课程信息表(4)表SC(学生信息表)FieldTypeNullKeyComment Cnonvarchar(50)PRI课号Snonvarchar(50)PRI学号Cnvarchar(50)成绩表4 学生信息表2.2.3程序中主要方法说明(1)连接数据库方法:这是java连接数据库的驱动,有关数据库的操作都要用到他。public static Connection CONN() String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver; /加载JDBC驱动String dbURL = jdbc:sqlserver:/localhost:1433; DatabaseName=student; /连接服务器和数据库test,此处student是数据库名 String userName = sa; /默认用户名 String userPwd = mima; /密码 Connection dbConn=null; try Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); System.out.println(Connection Successful!); /如果连接成功 控制台输出Connection Successful! catch (Exception e) e.printStackTrace(); return dbConn;(2)用户登录界面user.java:登录时,凡是账号密码未填写、输入错误账号密码都会提出错误提示框。在填写好账号密码后,会读取数据库里admin表,并查询其输入是否存在,若无误,则登录到用户界面。public class User extends JFrame private JLabel use,password; private JTextField k1;/用户名输入框 private JPasswordField k2;/密码输入框 private JButton b1,b2;/登录窗口public User(JFrame f)super(系统登录);Container c=getContentPane();c.setLayout(new FlowLayout();use=new JLabel(username:);use.setFont(new Font(Serif,Font.PLAIN,20);password=new JLabel(password:);password.setFont(new Font(Serif,Font.PLAIN,20);k1=new JTextField(12);k2=new JPasswordField(12);b1=new JButton(登录);b2=new JButton(退出);(3)用户界面:Menu.java用户界面能菜单栏有4个一级菜单,学生管理、课程管理、选课管理都能添加、修改、删除数据,分别操作数据库里的S表(学生),C表(课程),SC表(选课)。查询管理则可进行三个表的查询。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Menu extends JFrame implements ActionListenerAddstu 增加学生界面;Updatastu 修改学生界面;Delstu 删除学生界面;AddC 增加课程界面;DelC 删除课程界面;UpdateC 修改课程界面;AddSC 增加选课界面;DelSC 删除选课界面;UpdateSC 修改选课界面;Selstu 学生查询界面;(4)添加界面:UpdateC.java/UpdateSC.java /Updatestu.java先查找你想要修改的项目,若修改的信息包括号码(学号、课号),则会进行查询,如果修改后的号码已存在,以及修改后必须的信息变成空都会提示无法修改和其错误原因。此外,若修改C表或则S表,会连同SC表中对应的信息一起修改。import java.awt.*;import javax.swing.*;import java.sql.*;import java.awt.event.*;public class AddC extends JPanel implements ActionListenerJTextFieid课号,课名;JButton 录入;public AddC()try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e)System.err.println(不能设置外观: +e);课号=new JTextFieid (12);课名=new JTextFieid (12);录入=new JButton(录入);录入.addActionListener(this);Box box1=Box.createHorizontalBox();/横放boxBox box2=Box.createHorizontalBox();box1.add(new JLabel(课号:);box1.add(课号);box2.add(new JLabel(课名:);box2.add(课名);box4.add(录入);Box boxH=Box.createVerticalBox();/竖放boxboxH.add(box1);boxH.add(box2);boxH.add(Box.createVerticalGlue();JPanel messPanel=new JPanel();messPanel.add(boxH);setLayout(new BorderLayout();add(messPanel,BorderLayout.CENTER);validate();3. 设计结果与分析3.1 程序运行结果运行后进入学生选课系统登录界面图2 学生选课系统登录界面在登录界面输入要选课的学生的用户名和密码后,进入学生资料页面,包括学生头像、选课、成绩管理。同时还显示天气情况、任课老师。界面模仿人人网界面。图3 学生信息图在单击查询已选课信息链接后,出现学生选课的情况,具体体现如图4所示图4 学生选课情况4. 设计体会通过本次课程设计,成功的完成了这个小型简单的系统的设计,在整个设计过程中我对JAVA使用和它强大的作用有了一个更深刻的认识,尽管这个系统很简单,但是它让我综合运用了这个学期所学的JAVA的很多内容,在此基础上,对JAVA的基础知识得到了更好的巩固。其实,在制作的过程中我也学到很多思想:首先,要学会统筹全局,合理规划,例如在制作整个框架的时候提前就要做全面考虑,要把整个结构图画出来,并且要对数据库表里的东西做全面规划。同时在编写程序的时候也要想好先实现什么功能,再实现什么功能,这样做出来的东西才有条理性,更容易实现和理解。其次,要细心仔细。Java程序虽然容易理解,但在写的过程中一不留心就会出现错误。当然出错是在所难免的,与性质有关的错误可以经过思考讨论后进行改正,但如果粗心大意,出现输入上的错误就很难发现和修改,会耽误很多时间。我认为最大的收获是提高了自己的动手能力。在平时的上机中大多数是根据书上的思想和布局来写程序的。这次的课程设计要自己思考自己写,考虑的东西比平时上机考虑的要多的多。在整个设计过程中写代码不是最难的,最难的是构思和布局。这次课程设计也是一次很好的实践活动,让我们体会到了java的神奇作用。5. 参考文献1 朱仲杰. JAVA2全方位学习.北京:机械工业出版社,20062 张思民. JAVA程序设计实践教程.北京:清华大学出版社,20063 汤一平. java 语言程序设计.北京:科学出版社,20064 何桥. JAVA的核心技术:面相对象编程.中国水利水电出版社,20045 严悍. JAVA程序设计:高等教育,20066 Bruce Eckel. JAVA编程思想:机械工程出版社,20056. 附录package com.starting.cousys.controller;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.starting.cousys.util.EncodeUtil;public class ChooseCourseServlet extends HttpServlet private static final long serialVersionUID = 1L; public ChooseCourseServlet() super(); response)protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException this.doPost(request, response);protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException EncodeUtil.setRREncode(request, response);int CID = Integer.parseInt(request.getParameter(cid);System.out.println(CID);package com.starting.cousys.controller;import java.io.IOException;import .URLEncoder;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.starting.cousys.service.StudentService;public class LoginServlet extends HttpServlet private static final long serialVersionUID = 1L; public LoginServlet() super(); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExceptionthis.doPost(request, response);protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(utf-8);response.setCharacterEncoding(utf-8);String SID = request.getParameter(SID);String password = request.getParameter(password);String checkBox = request.getParameter(relogin);StudentService ss = new StudentService();if(ss.login(SID,password)if(checkBox != null)response.sendRedirect(index.html);Elseresponse.sendRedirect(fail.html);package com.starting.cousys.controller;import java.io.IOException;import java.io.PrintWriter;import .URLEncoder;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TestLoginStateServlet extends HttpServlet private static final long serialVersionUID = 1L; public TestLoginStateServlet() super();protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException this.doPost(request, response);protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException request.setCharacterEncoding(utf-8);response.setCharacterEncoding(utf-8);PrintWriter out = response.getWriter();Cookie allCookies = request.getCookies();if(allCookies != null)for(Cookie c:allCookies)if(c.getName().equals(SID)response.sendRedirect(index.html);break;Elseresponse.sendRedirect(login.html);package com.starting.cousys.dao;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import com.starting.cousys.jdbc.DBConnection;import com.starting.cousys.model.Course;public class CourseDAO String sqlSelectAllCourses = select * from course;public List showAllCourses()List list = new ArrayList();DBConnection dc = new DBConnection();Connection conn = dc.getConnection();Statement stmt;Try stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(sqlSelectAllCourses);while(rs.next()Course cou = new Course();cou.setAdd(rs.getString(add);cou.setCID(rs.getInt(CID);cou.setCouName(rs.getString(couName);cou.setCredits(rs.getInt(credits);cou.setDate(rs.getString(date);cou.setTeacherName(rs.get
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 解析卷人教版八年级上册物理物态变化《熔化和凝固》章节训练试卷(含答案详解版)
- 考点攻克人教版八年级《力》同步练习试卷(含答案详解)
- 2025课标考试真题及答案历史
- 高一下政治考试题及答案
- 江苏省建筑企业a证考试真题及答案
- 大学《学前教育学》期末试卷及答案详解
- 麻醉精神药品管理制度及相关药品知识试题含答案
- 水体高级氧化工艺-洞察与解读
- 秒杀机制设计优化-洞察与解读
- 2025年事业单位招聘考试综合类职业能力倾向测验真题模拟试卷(法律)
- 市场调查研究基本知识
- 水泥混凝土路面设计
- 无机及分析化学 化学反应速率和化学平衡
- 银川市灵活就业人员城镇职工医疗保险退费申请表
- 2023年大学生《思想道德与法治》考试题库附答案(712题)
- 四川省凉山彝族自治州教育教学公共基础知识教师招聘考试
- GB/T 7631.5-1989润滑剂和有关产品(L类)的分类第5部分:M组(金属加工)
- GB/T 26988-2011汽车部件可回收利用性标识
- GB/T 16840.4-1997电气火灾原因技术鉴定方法第4部分:金相法
- 大剧院声场模拟分析
- 小学生法制教育课件讲义
评论
0/150
提交评论