系统分析实验报告

天津职业技术师范大学

课 程 设 计

    大学学籍管理系统的设计与开发

 

           专    业: 软件工程     

班级学号:  软件1002-17 

学生姓名:      靳利强   

指导教师:   龚良波  老师

二〇##年七月


一.需求分析

1.课程名称:大学教务信息系统的设计与开发

2.设计目的:

为方便学校做好学生学籍管理工作,设计一个学生学籍管理系统,在设计过程中作了系统分析和总体设计,软件设计采取模块化的设计思路。

3.需求概述

该学生学籍管理系统主要对学生学籍信息、成绩信息进行管理,提供一个平台,供学籍管理人员增删改查学生信息、学生成绩信息。系统分为学生信息管理、学生成绩管理、信息查询等几个模块。学籍管理人员登录成功后可以对学生信息管理、学生成绩管理、信息查询等模块进行操作,如学生信息添加、修改、删除和查询;学生成绩登记、修改、删除和查询;查询信息等。

4功能需求:

1)    功能齐全:界面操作灵活方便,设计包括以下基本功能:

2)    学生信息管理、教师信息管理、财务信息管理、班级信息管理、课程信息管理、成绩信息管理、打印信息管理、教室信息管理、综合信息查询、系统管理等,至少实现其中的三个功能,且每个功能至少包括两个子功能。

3)    按照软件工程的要求进行分析、设计和开发。

4)    界面友好:界面友好、输入有提示、尽量展示人性化。

5)    可读性强:源程序代码清晰、有层次、主要程序段有注释。

6)健壮性好:用户输入非法数据时,系统应及时给出警告信息。

二.概要设计

1.功能模块:

2数据流图:

(1)学生端

(2) 管理员端

学生端功能:

A 登录,学生登录后,验证成功,进入其信息展示页。

管理员端功能:

B 登录,管理员登录后,验证成功,进入学生信息列表,可以对学生信息进行修改,删除,按班级查询,按学号查询,按名字查询。上传图片,更新图片等操作。

三.详细设计及实现

数据库设计:

学生表:

教师表:

2.环境要求

1).软件支持:本软件开发是使用JAVA语言编写

2).数据库SQL企业版-MySQL GUI-[Mysql-root@localhost]

3).编写语言工具MyEclipse Java Enterprise

3).Ado Dreamweaver CS3

4).设备支持:WindowsXP,512MB内存

四.测试

测试可以写javascript方法。用到了正则表达式如:只能为中文:var patrn1 =/^[\u4E00-\u9FA5]+$/;//中文

身份证号码:var patrn3=/^[0-9]{17}([0-9]|[x])$/;     //身份证18位,前十七位是数字,最后一位是数字或字母x

电话号码:var patrn4=/^[0-9]{11,11}$/;  //电话是11位数字

1、用户名密码或验证码不匹配时无法登录。包括了一些输入项不为空,输入非法和不符合要求的数据。验证系统的健壮性和可维护性。

2、添加或更新学生信息时,名字必须为汉字,身份证号码必须为18位(最后一位是数字或字母)等。

五.难点:

显示checkbox选项时,要实现的功能为,勾选checkbox的选项,在下面的列表框中即可显示相应的选项。实现方法。通过Ajax将前台选项传给后台servlet进行处理,拼接成相应的字符串,获取信息转发给前台页面显示。要在servlet中定义数组接受多项checkBox的值。

六.参考资料

[1]《数据库系统概论》萨师煊、王珊编著  高等教育出版社

[2]《JAVA项目开发全程实录》苗春义 编著 清华大学出版社

[3]《JAVA》通用范例开发金典 李树青编著 电子工业出版社

[4]《网络数据库应用教程》袁枚编著 北京人民优点出版社

[5]《软件工程导论》张海潘编著 清华大学出版社

七.设计中的问题及解决方法

在设计的时候,遇到的最大的问题就是测试程序,系统是做好了,但是没能达到很便捷的操作,这点很让自己不满意,而且也发现自己掌握的知识真的很不牢固。开发一个系统,恒心和毅力也是不可缺少的,通过网络和同学的热心帮助,最终完成了调试。

八.课程设计感想

     做了两周的课程设计,有很多的体会,整个设计通过了软件的测试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于网上购物系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。

九.核心代码

    publicvoid doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

         request.setCharacterEncoding("UTF-8");

         response.setContentType("text/html;charset=utf-8");

         PrintWriter out = response.getWriter();

           

         String TStuClass=request.getParameter("stuclass");

         String StuClass=new String(TStuClass.getBytes("ISO8859-1"),"utf-8");

         String TStuName=request.getParameter("stuname");

         String StuName=new String(TStuName.getBytes("ISO8859-1"),"utf-8");

           String ToolscheckBox=request.getParameter("checkbox");

           System.out.println(ToolscheckBox);

         String TStuId=request.getParameter("stuid");

          String StuId=new String(TStuId.getBytes("ISO8859-1"),"utf-8");

         String sql=null;

        StudentDAOImpl sDaoImpl=new StudentDAOImpl();

        String temp[]=ToolscheckBox.split(",");

        out.print("<table width='100%' bordercolor='#CCCCCC' border='1' >");

        out.print("<tr height='30'  bgcolor='blue'>");

        out.print("<th>学号</th>"); 

        out.print("<th>姓名</th>"); 

        out.print("<th>所在班级</th>"); 

        out.print("<th>性别</th>");

        for(int i=0;i<temp.length;i++){

          

           if(temp[i].equals("Address")){

                out.print("<th>家庭住址</th >"); 

               }

           if(temp[i].equals("IDCard")){

                out.print("<th>身份证</th >"); 

               }

          

           if(temp[i].equals("Sort")){

                out.print("<th>综合排名</th >"); 

               }

           if(temp[i].equals("Father")){

                out.print("<th>父亲姓名</th >"); 

               }

           if(temp[i].equals("Mother")){

                out.print("<th>母亲姓名</th >"); 

               }

           if(temp[i].equals("Fnumb")){

                out.print("<th>父亲联系电话</th >"); 

               }

           if(temp[i].equals("Mnumb")){

                out.print("<th>母亲联系电话</th >"); 

               } 

        }

        out.print(" </tr>");

       

         if(StuClass!=""&&StuName==""&&StuId==""){

              sql="select * from studinfo where  Class='"+StuClass+"' and quanxian='学生'";

             }

             elseif(StuClass==""&&StuName!=""&&StuId==""){

                  sql="select * from studinfo where  Name='"+StuName+"' and quanxian='学生' ";

                 }

             elseif(StuClass==""&&StuName==""&&StuId!=""){

                  sql="select * from studinfo where  SId='"+StuId+"' and quanxian='学生'";

                 }

             elseif(StuClass!=""&&StuName!=""&&StuId==""){

                  sql="select * from studinfo where  Class='"+StuClass+"' and Name='"+StuName+"'  and quanxian='学生' ";

                 } 

             else {

               sql="select * from studinfo  where quanxian='学生'";

             }

       

       

       

        List<StudentInfo> stuList=sDaoImpl.getStudent(sql);

        for(int i=0;i<stuList.size();i++){

            StudentInfo student=stuList.get(i);

            String color=null;if (i%2==0){color="grey";}else{color=null;}

             out.print("<tr style='text-align:center;background:"+color+"' height='30px' >");

             out.print("<td>"+student.getSID()+"</td>");

             out.print(" <td><a href='ManagerShow?uname="+student.getName()+"' >"+student.getName()+"</a></td>");

             out.print("<td>"+student.getClassnow()+"</td>");

             out.print("<td>"+student.getSex()+"</td>");

             for(int j=0;j<temp.length;j++){

               

                     

                 

                 if(temp[j].equals("Address")){

                        out.print("<td>"+student.getAddress()+"</td>");

                     }

                 if(temp[j].equals("IDCard")){

                        out.print("<td>"+student.getIDcard()+"</td>");

                     }

                 if(temp[j].equals("Sort")){

                      out.print("<td>"+student.getSort()+"</td>"); 

                       }

                 if(temp[j].equals("Father")){

                       out.print("<td>"+student.getFather()+"</td>");

                       }

                 if(temp[j].equals("Mother")){

                       out.print("<td>"+student.getMother()+"</td>");

                       }

                   if(temp[j].equals("Fnumb")){

                       out.print("<td>"+student.getFnumb()+"</td>");

                       }

                   if(temp[j].equals("Mnumb")){

                       out.print("<td>"+student.getMnumb()+"</td>");

                       }

            }          

                     

             

               

                 out.print(" </tr>");

                 }

                out.print("</table>");

 

第二篇:网上银行系统分析(网上支付实验报告)

实验时间:   2010    11  11  3-4  

相关推荐