天津职业技术师范大学
课 程 设 计
专 业: 软件工程
班级学号: 软件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 节
水泥中MgOCaOAl2O3Fe2O3含量的测定一实验目的1学习复杂物质分析的方法2掌握尿素均匀沉淀法二实验原理本实验采用硅酸盐水…
1亚硝酸钠测定结果标准液质量与吸光度表亚硝酸钠标准液质量000123457510125吸光度0002600430068005701…
研究生实验报告范本实验课程实验名称实验地点学生姓名学号指导教师范本实验时间年月日一实验目的熟悉电阻型气体传感器结构及工作原理进行基…
程序分析第二次实验报告13091372代树理开发环境语言java编译器myeclipse操作系统windowsXP另外使用的ANT…
经济分析方法与手段实验分析报告附件一1陶瓷产量与城镇住宅建筑面积的相关分析散点图2与新增医疗卫生机构面积的关系3与新增办公楼面积的…
本科实验报告课程名称系统分析与设计实验项目网上书店系统实验实验地点学生姓名荆婉指导教师20xx年11月17日目录1实验准备熟悉UM…
实验项目案例名学生饭卡管理系统一实验目的能够正确运用系统设计的过程与方法结合一个模拟课题复习巩固管理信息系统中系统设计知识提高系统…
图书馆图书管理信息系统设计报告姓名班级学号指导老师报告日期一开发背景本系统是为了方便用户对图书的管理开发的要求系统界面友好使用简单…
课程名称实验项目实验地点专业班级学生姓名指导教师本科实验报告系统分析与设计ATM自动取款机系统实验逸夫楼402学号1一实验目的通过…