




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安徽理工大学理学院数学专业课程设计一.绪论11引言课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。面向对象课程设计是一门重要的专业基础课,是计算机理论和应用的核心基础课程。1.2设计要求 1.组队时只能1-3位同学为一组,要求有数据库连接操作。1.只能1-3个一组,要求有数据库连接操作。2.同组之间的文档要分开,每个人的文档只写自己做的功能模块。3.每组程序必须保证运行通过,程序和文档均在老师检查通过以后方可打印上交!(源程序不需要打印) 注意:老师没有检查的小组程序均视不合格。4.倘若需要提前交程序的同学,请上交一个辅导员签字的请假条。5.最后的上交材料是:a.一份程序说明书打印版,b. 将源程序和文档的电子版一起放在一个文件夹下,文件夹命名为学号+姓名1.3开发环境系统平台:Windows XP数据库服务器:Mysql开发工具:Eclipsedk71.4 开发人员 张众一、胡先洋和樊曙光同学共同完成二系统功能介绍 本次课程设计完成一个基于java的学生成绩管理系统模型,采用c/s结构,它的基本功能是学生通过客户端连接服务器登陆,实现成绩的查询以,成绩统计查询;实现老师通过客户端登陆查询授课情况,学生名单,及进行账户管理。添加学生成绩以及进行账户管理。(根据自己的系统详细展开叙述)。 详细的功能描述如下:(1)用户登录验证:对登录用户进行登录验证。(假设用户信息已经由数据库管理员设置)(2)账户管理:学生可以查看自给的账户信息(假设已由数据管理员给出)并可修改密码。学生成绩查询:学生可以通过输入学期查询自己某学期的选修课程成绩(假设学修课程表已经给出),同时,学生也可以查询自己地历史选课成绩清单。学生成绩统计查询:学生用户可以查询自己各学期成绩统计指数,各学年成绩统计指数以及历史成绩的指数。(3)老师账户管理;管理员可以查看自给的账户信息(假设已由数据管理员给出)并可修改密码。授课查询:老师可以查询自己的授课情况(假设已给出)。学生名单查询:老师可以查询选修该老师课程的所有学生名单。添加学生成绩:老师可以天加学生的学生成绩。三系统功能模板图3-1 系统功能模板图客户端成绩管理系统历史成绩成绩统计学期成绩学年成绩成绩查询学期成绩 历史成绩账户管理密码修改账户信息账户信息 账户管理老师用户登录学生用户 授课查询 学生名单查询 添加学生成绩密码修改 修改密码四.数据库设计4.1需求分析显示信息成绩管理系统 信息错误 系统验正证 信息正确外部存储 查询添加数据老师 登录信息 数据存储学生4-1-1数据流图4.2需求要求:(1)学生基本信息管理(不由管理系统添加和修改)(2)学生登录信息修改:学生登录后可进行且仅能修改登录密码。(3)课程信息管理:假设信息已经存在 (不由管理系统添加和修改)(4)教职工信息管理:假设选课表已经给出(不由管理系统添加和修改)教师登录信息修改:教师登录后可进行且仅能修改登录密码。 (5)选课管理: 假设选课表已经给出(不由管理系统添加和修改)其中:学生可以同时选修一门或多门课程。 可以同时为多个学生选修某一门或某几门课程。(6)学生成绩信息管理:老师登陆后,可以按课程添加选学该老师学生成绩;学生登录后按学期号查询学期成绩信息,直接查询历史成绩信息,按学期(学年)查询成绩的平均成绩,平均绩点,总成绩,以及历史平均绩点,(7)用户注册信息管理:不同权限用户登录的账号为学号或是教工号由,数据库管理员已经创建,密码信息用户课以自行更改(8) 信息查询:学生只能查询该学生自己基本信息、查询成绩信息及统计信息,老师登录能查询该老师自己基本信息教职工基本信息,可以查询自己的授课情况,可以查询选修自己课程的学生名单。按课程号、课程名称、教师姓名输出对应课程的成绩登记表。4.3需求总数以上的用户请求经应用程序的转化,化为对数据库中的相应的表或视图的操作,数据库再把处理的结果(或都是错误信息)返回结应用程序。应用程序把结果返回给用户,该结果可能为一个对表操作的结果(如插入,删除等),也可能为一个查询的结果,甚至可能为一个错误的信息。4.5逻辑结构设计由e-r图经过数据模型优化可得数据结构, Course(course_name,course_i,num)Student(student_,student_name,student_faccty,age)Teacher(teacher_id,teacher_name,age)Register(num,register_number,register_id,register_type)Faculty(faculty_id,faculty_name,facuty_principal) Seleccourse(course_id,student_id,garde,teacher_id,term)Teaching_table( teacher_id,course_id)采用mysql数据库建立如下表结构:Register: Register:NumINT NNAIRegister_numberVarcharKeyNNRegister_passwordVarcahrNNRegister_typeVarcharNNCourse:NumINTNNAICourse_idVarcharKeyNNCourse_nameVarcharNNStudent:NumINTNNAIStudent_idVarcharKeyNNStudent_nameVarcharNNStudent_facutyIntStudent_ageIntNNTeachaer:NumINTNNAITeacher_idVarcharKeyNNTeacher_nameVarcharNNTeacher_ageINTNNSelecourse:NumINTKeyNNAICourse_idVarcharTeacher_idVarcharGradeINTStudent_idVarcharTermINTNNT eaching_table:NumINTKeyNNAITeacher_idVarcharCourse_IdINTStudent_facuty:Facuty_idINTKeyNNFacuty_nameVarcharFacuty_principalVarchar五系统设计5.1设计介绍本设计模型采用c/s结构,通过shocket进行传输数据。客户端主要实现用户任务的识别和分发,服务端主要实现接受任务处理业务返回结果通过序列化对象实现数据的封装传输。设计模式采用mvc结构,实现数据分层。5.2系统设计的几个主要类1登录类,loginFrame 主要有登陆账户,密码 ,权限。权限分为学生和老师两种。主要行为是在用户确认之后,判断用户类型,封装用户信息,后台验证成功后,建立用户服务类,开启管理界面。2.学生管成绩理类 StudentFrame,该类主要显示学生成绩管理系统的主界面,和相关时间的响应。主要行为时判断用户的操作(界面事件),并将行为转交给服务类,实现与用户的交互。3.教师管成绩理类teacherFrame,该类主要显示教师成绩管理系统的主界面,和相关时间的响应。主要行为时判断用户的操作(界面事件),并将行为转交给服务类,实现与用户的交互。4.服务类 客户端服务类StudentService ,服务器StudentService前者主要处理前端用户发出任务的业务逻辑,并将指令和数据发给服务器StudentService,接受服务器送回结果。后者主要接受前者的数据和指令,并分发业务,通过model层处理数据库信息用户信息并得出业务结果,将结果返回前端。5.数据库处理类 dao 主要实现对数据库的查询删除操作。 6 .bean数据类 Grade ,Student,Teacher,serialvectorGrade主要用于前后端传输成绩实现了序列化。Student,teacher主要用于传输和封装用户信息。serialVector主要用于封装和批量传输数据。7服务器框架类 serverFrame 主要用于开启服务器,发出关闭服务器请求,设置监听客户端连接,并开启新线程。8.线程类 serverthread类 主要用于处理用户业务,接受命令,接收数据,分发任务,到service层并将结果传给客户端。六系统实现本模型系统采用的MVC设计模式,分为service模块,model模块,view模块。本人负责view模块和bean中grade serialVector student teacher client的封装数据类的实现主要由客户端的界面,服务器端界面(bean中之一grade 和serialVector为例)。以下为主要代码(非主要方法略及实现代码相似函数省略):服务器端框架代码:package serverFrame;public class MainFrame extends JFrame implements ActionListenerJButton start =null;JButton end = null;JLabel startTime = null;JLabel currentTime = null;static JTextArea jta = null; StartServerThread sst = null;/处理监听程序public MainFrame()super(成绩管理服务器);this.setLayout(new FlowLayout(); start = new JButton(开启服务器); start.addActionListener(this); end = new JButton(结束服务器); end.addActionListener(this); jta = new JTextArea(10,40); jta.disable(); JScrollPane jsp = new JScrollPane(jta); currentTime = new JLabel(未开启); startTime = new JLabel(现在时间是:); this.add(end); this.add(start); this.add(jsp); this.add(startTime); this.add(currentTime);/this.add(jta);public static void main(String agrgs) MainFrame mainFrame = new MainFrame(); mainFrame.setVisible(true); mainFrame.setBounds(100, 100, 500, 500); mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Overridepublic void actionPerformed(ActionEvent e) if(e.getSource() = this.start)startActionDealing();if(e.getSource() = this.end)endActionDealing();/处理结束按钮事件private void endActionDealing() if(sst=null) jta.append(服务器尚未开始服务。n);elsesst.setStartSign(false);/ sst.destroy(); wrongjta.append(服务器结束请求已处理,等待中.n);/处理开始服务器按钮事件private void startActionDealing() /开启新线程处理监听 sst= new StartServerThread(); sst.start();public static JTextArea getJta() public static void setJta(JTextArea jta) public static void setJta(JTextArea jta) 登陆界面 package Frames;public class LogInFrame extends JFrame public String getClientType;public LogInFrame() super(登陆);this.setLayout(new FlowLayout();LoginPanel loginPanel = new LoginPanel(this);loginPanel.setPreferredSize(new Dimension(300,300);this.add(loginPanel,BorderLayout.CENTER);this.setVisible(true);this.setResizable(false);this.setBounds(500, 200, 400, 400);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);客户端学生管理界面package Frames;public class StudentManager extends JFrameIcon icon =null;Client client = null;StudentService ss = null;JPanel jp =null;public StudentManager(Client client, StudentService ss)super(学生成绩管理系统); this.ss = ss; imageIcon();this.client = client;addcompoents(); this.setVisible(true);this.setBounds(400, 100, 500, 500);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);private void addcompoents() setLayout(new BorderLayout();Container con = getContentPane();StudentManagerHeadPanel smhp = new StudentManagerHeadPanel(client); con.add(smhp,BorderLayout.NORTH); StudentManBody smb = new StudentManBody(client,ss,this); con.add(smb,BorderLayout.CENTER);JLabel lb = new JLabel();lb.setIcon(icon);con.add(lb,BorderLayout.SOUTH);void imageIcon()public void setJp(JPanel jp) 客户端教师管理界面:package Frames;public class StudentManager extends JFrameIcon icon =null;Client client = null;StudentService ss = null;JPanel jp =null;public StudentManager(Client client, StudentService ss)super(学生成绩管理系统); this.ss = ss; imageIcon();this.client = client;addcompoents(); this.setVisible(true);this.setBounds(400, 100, 500, 500);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);private void addcompoents() setLayout(new BorderLayout();Container con = getContentPane();StudentManagerHeadPanel smhp = new StudentManagerHeadPanel(client); con.add(smhp,BorderLayout.NORTH); StudentManBody smb = new StudentManBody(client,ss,this); con.add(smb,BorderLayout.CENTER);JLabel lb = new JLabel();lb.setIcon(icon);con.add(lb,BorderLayout.SOUTH);void imageIcon()添加学生信息类package Frames;public class AddStudentGrade extends JFrame implements ActionListenerLabel prompt=new Label(请 输 入 各 项 添 加 信 息);Label lbId,lbName,lbAge,TS;TextField txtId,txtName,txtAge,txtTs;Button btnAdd,btnQuit,btnreAdd; TeacherService tss =null;public AddStudentGrade(TeacherService ts)super(添加学生信息);this.tss= ts;setResizable(false);TS=new Label(学期:);lbId=new Label(学号:);lbName=new Label(课程:);lbAge=new Label(成绩:);txtTs=new TextField(8);txtId=new TextField(10);txtName=new TextField(10);txtAge=new TextField(10);btnAdd=new Button(添加到数据库);btnQuit=new Button(退出);btnreAdd=new Button(继续添加);btnAdd.addActionListener(this);btnQuit.addActionListener(this);btnreAdd.addActionListener(this);this.setLayout(new FlowLayout();add(prompt);this.add(lbId);this.add(txtId);this.add(lbName);this.add(txtName);this.add(lbAge);this.add(txtAge);this.add(TS);this.add(txtTs);this.add(btnAdd);this.add(btnreAdd);his.add(btnQuit);this.setSize(170, 400); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true); public void actionPerformed(ActionEvent e)if(e.getSource()=btnQuit)dispose();if(e.getSource()=btnAdd) String id=txtId.getText(); String name=txtName.getText(); String age=txtAge.getText(); String ts=txtTs.getText(); if(id.equals()|name.equals()|age.equals()|ts.equals() JOptionPane.showMessageDialog(this, 不允许有选项为空!); return; Grade grade = new Grade(); grade.setCourseName(name); grade.setGrade(Integer.parseInt(age); grade.setTerm(Integer.parseInt(age); boolean b = tss.addGrade(grade); if(b) JOptionPane.showMessageDialog(this, 添加成功!); /清空各选项,以便下次输入学生信息 if(e.getSource()=btnreAdd) txtId.setText(); txtName.setText(); txtAge.setText(); txtTs.setText();/列表时间监听以及做出的反应Grade 类package Bean;import java.io.Serializable;public class Grade implements Serializable/* * */private static final long serialVersionUID = 1L;String courseName = null ;String studentName = null ;String studentFaculty =null;public String getStudentFaculty() return studentFaculty;public void setStudentFaculty(String studentFaculty) this.studentFaculty = studentFaculty;int grade = 0;int term = 0;public String getCourseName() return courseName;public String getStudentName() return studentName;public int getGrade() return grade;public int getTerm() return term;public void setCourseName(String courseName) this.courseName = courseName;public void setStudentName(String studentName) this.studentName = studentName;public void setGrade(int grade) this.grade = grade;public void set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 押题宝典高校教师资格证之《高等教育法规》模考模拟试题及答案详解【夺冠】
- 基础强化人教版7年级数学上册期末试题及参考答案详解【能力提升】
- 考点解析华东师大版8年级下册期末试题【达标题】附答案详解
- 推拿治疗学考试题及答案详解【历年真题】
- 押题宝典高校教师资格证之《高等教育心理学》通关考试题库及答案详解(典优)
- 园林绿化作业人员题库检测试题打印附答案详解AB卷
- 2025版挖掘机买卖及安全培训与环保技术研发一体化服务合同
- 2025版智能化城市景观设计顾问服务合同范本
- 2025年新型电子商务股份合作框架合同
- 2025年工业喷漆生产线承包合作合同范本
- 2025年四川省辅警招聘考试题库及答案
- 湖南省长沙雅礼中学2025年化学高一下期末达标检测模拟试题含解析
- 2025吐鲁番辅警考试真题
- AI赋能自动化开发流程
- 2025至2030中国航空客运销售代理行业市场运行发展分析及前景趋势与投资报告
- 浙江杭州市2024-2025学年高一下学期6月期末考试英语试题及答案
- 愈见倾听师考试题及答案
- 2025至2030年中国液态食品包装机械行业市场供需态势及发展前景研判报告
- 首诊负责制试题及答案
- 渐进片试题及答案
- 2024浙江遂昌农商银行新员工招聘笔试历年典型考题及考点剖析附带答案详解
评论
0/150
提交评论