本人的软件工程课程设计报告,可以作以参考,望读者不要全部照抄,仅为大家提供参考,感谢大家的支持!!!
目录
1. 相关文档
1.1 文档介绍
1.2 文档范围
1.3 读者对象
2. 需求分析报告
2.1 需求分析背景
2.2 需求分析过程
3. 原型设计与界面说明
3.1 确定参与者
3.3 用例描述
4. 设计概述
4.1 设计目的
4.2 子功能详细设计
5. 源代码展示
6. 详细设计及界面测试
6.1 详细设计及界面测试
6.2 界面测试结论
7. 参考文献
1. 相关文档
1.1 文档介绍
学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。推行学校信息管理系统的应用是进一步推进学生学籍管理规范化、电子化、控制辍学和提高义务教育水平的重要举措。
1.2 文档范围
本系统是以数据库为后台核心应用,以服务校园学生为目的的学生信息管理平台,对学生信息资源进行科学的加工整序和管理维护,为提高高校管理学生信息的效率而设计的系统。
1.3 读者对象
信息管理员可以对信息进行增加、查看、删除、查找、排序五个功能。
2. 需求分析报告
2.1 需求分析背景
学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整 ,我国高等院校大规模的扩招 ,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人工管理,而旦传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力和物力。随着科学技术的不断提高计算机科学与技术日渐成熟,计算机应用的普及已进入人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以计算机为物质基础的信息收起大方法所取代。
针对这些要求设计了学生信息管理系统,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除等。
2.2 需求分析过程
信息管理系统提供给用户WEB的界面,此界面要求操作清晰,页面简介,并尽可能的为用户的查询操作提供方便。系统管理员能通过此界面完成各种基本信息的录入、修改和删除的功能,也能通过此界面控制管理整个用户群;
学校学生管理信息系统是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统。它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的情况。
具体系统功能需求描述如下:
学生信息管理
每学期都有新生与毕业生的信息加入或删除,以及各类学生信息的更新;该模块支持学生的添加、删除、信息修改,以及老师可查询学生信息的功能
3. 原型设计与界面说明
3.1 确定执行者
执行者是指系统交互的人或者其他其他系统,执行者代表一种角色而不是指具体的某个人。一个人在同一个系统中可以扮演几个不同的执行者。本软件课程介绍网站包含的执行者有管理员。
3.2 确定用例
用例有以下特征:
1.用例总是被执行者启动的,执行者必须直接或者间接地指示系统去执行用况。
2.用例向执行者提供值,这些值必须是可识别的。
3.用例是完整的。
本学生信息管理系统包含以下几个用例:
1.登录 2.信息管理 3.添加学生 4.查看信息 5.删除学生
6.查找学生 7.排序 8.退出
具体用例图如图所示。
3.3 用例描述
用况通常用正文(text)来描述,正文是一份关于执行者与用况如何交互的简明和一致的规约。正文着眼于系统的外部行为,而忽略系统的内部实现。描述中使用客户所使用的语言和术语。
3.4 类图分析
类图由系统中使用的类以及他们之间的关系组成。类之间的关系具有关联、依赖、泛化、实现等。类图是一种静态模型,是其它图的基础。一个系统可以有多幅类图,一个类也可以出现在几副类图中。下面是软件课程介绍学生管理系统的类图。
4. 设计概述
4.1 设计目的
介绍了实现该系统需求的程序模块设计问题,把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在概要设计报告中对在本阶段中对系统所做的所有概要设计进行了详细的说明。
4.2 子功能详细设计
1.添加学生信息,根据学生属性通过Java后端代码把学生信息添加到数据库.
2.查看学生信息,可以在后端通过代码访问数据库查看学生信息,也可以根据web页面访问数据库.
3.删除学生信息,根据后端对数据库进行操作.
4.查找学生信息,根据后端代码对数据库进行查询,把数据库学生信息展示出来.
5.排序功能,根据Java后端操作数据库进行排序,可以根据ID和年龄进行排序.
6.退出,结束程序.
5.源代码
该网站的主要代码如下:
后端添加数据代码
public static void add()
{
System.out.println("请输入添加学生的ID:");
int id = sc.nextInt();
System.out.println("请输入添加学生的名字:");
String name = sc.next();
System.out.println("请输入添加学生的性别:");
String sex = sc.next();
System.out.println("请输入添加学生的年龄:");
int age=sc.nextInt();
Stu stu=new Stu(id,name,sex,age);
try {
String sql= "insert into student(ID,Name,Sex,Age) values(?,?,?,?)";
ps=conn.prepareStatement(sql);
ps.setInt(1,stu.getId());
ps.setString(2,stu.getName());
ps.setString(3,stu.getSex());
ps.setInt(4,stu.getAge());
if(!ps.execute()) //检查执行是否成功,true表示执行的是查询语句,false表示执行的是insert,delete,update等等
{
System.out.println("添加数据成功!");
return;
}
}catch (Exception e) {
e.printStackTrace();
}
System.out.println("添加数据失败!");
}
public static void delete()
{
System.out.println("请输入删除学生的ID:");
int id=sc.nextInt();
try {
String sql="delete from student where ID=?";
ps=conn.prepareStatement(sql);
ps.setInt(1,id);
int t=ps.executeUpdate();
if(t>0) {
System.out.println("删除信息成功!");
}else {
System.out.println("查无此人,删除信息失败!");
}
}catch(Exception e) {
e.printStackTrace();
}
}
public static void find()
{
System.out.println("请输入查找学生的ID:");
int id=sc.nextInt();
int flag=1;
try {
String sql="select * from student";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
if(id==rs.getInt("ID"))
{
System.out.println("ID"+" "+"Name"+"\t"+"Sex"+"\t"+"Age");
System.out.println(rs.getInt("ID")+" "+rs.getString("Name")+"\t"+rs.getString("Sex")+"\t"+rs.getInt("Age"));
flag=0;
break;
}
}
}catch(Exception e) {
e.printStackTrace();
}
if(flag==1) {
System.out.println("查无此人!");
}
}
public static void sort()
{
System.out.println("ID"+" "+"Name"+"\t"+"Sex"+"\t"+"Age");
try {
String sql="select * from student order by ID";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
int id=rs.getInt("ID");
String name=rs.getString("Name");
String sex=rs.getString("Sex");
int age=rs.getInt("Age");
Stu stu = new Stu(id,name,sex,age);
System.out.println(stu.print());
}
}catch(Exception e) {
e.printStackTrace();
}
}
public static void manager()
{
while(true) {
System.out.println();
System.out.println("*********欢迎使用学生管理系统**********");
System.out.println("功能:1.添加学生;2.查看信息;3.删除学生;4.查找学生;5.排序;0.退出登录;");
int n = sc.nextInt();
switch(n) {
case 1:
add();
break;
case 2:
show();
break;
case 3:
delete();
break;
case 4:
System.out.println("1.按ID查找;2.按名字查找;");
int s=sc.nextInt();
if(s==1)
find();
else
find();
break;
case 5:
System.out.println("1.按ID排序;2.按年龄排序;");
int a=sc.nextInt();
if(a==1)
sort();
else
sort();
break;
case 0:
System.exit(0);
default:
System.out.println("输入有误!");
break;
}
}
}
public static void main(String[] args) throws Exception {
init();
manager();
}
通过jdbc与数据库建立连接
private static Scanner sc=new Scanner(System.in);
private static Connection conn=null;
public static PreparedStatement ps = null;
static ResultSet rs = null;
private static String URL="jdbc:mysql://localhost:3306/java?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&useSSL=false"; //连接到指定参数
private static String USER="root"; //访问数据库用户名
private static String PASSWORD="123456"; //访问数据库密码
public static void init()throws Exception
{
if(conn!=null)
return;
Class.forName("com.Main"); //加载驱动器
conn=DriverManager.getConnection(URL,USER,PASSWORD); //获取数据库连接*/
System.out.println("jdbc已连接");
}
public static void close()throws Exception
{
if(conn!=null) {
conn.close();
}
}
数据库代码
create database java;
use java;
create table student(ID int,Name varchar(20),Sex varchar(10),Age int);
前端主要代码
<div class="wrapperBox">
<div class="header">
<div class="headerTitle">
<div class="headerLine">学生信息管理系统</div>
</div>
<div class="headerButton">
<button class="addButton">新增</button>
<button id="deleteButton">删除</button>
</div>
</div>
<div class="container">
<table id="containerTable">
<thead class="tableHeaher">
<tr>
<th><input type="checkbox"></th>
<th>ID</th>
<th>Name</th>
<th>Sex</th>
<th>Age</th>
<th>操作</th>
</tr>
</thead>
<tbody id="tdata">
<tr class="trHover">
<td><input type="checkbox"></td>
<td class="stuSequence">1</td>
<td class="stuName">冯日东</td>
<td class = "Sex">男</td>
<td class="stuAge">21</td>
<td>
<a class="viewInf ">查看</a>
<a class="updateInf ">修改</a>
</td>
</tr>
6. 详细设计以及界面测试
6.1 详细设计
1.编写java代码
创一个lib,文件夹,在lib中引入mysql连接压缩包
导入压缩包
编写jdbc代码,数据库与java代码建立连接.
添加信息
查看信息
查找学生
排序
删除学生
退出登录
2.编写web前端代码
前端与后端建立约定
6.2 界面测试结论
通过这次的实验,帮助我们对软件工程的结构化分析以及数据流图等知识有了更深刻的理解与认识,让我们对软件工程中的需求分析部分有了更好的理解,需求分析是对需求陈述进行分析,解决其中的歧义、不一致等问题,以系统化的形式表达用户的需求,即给出问题的形式化的描述。这次的实验过程让我理解了要在用户角度思考他们的需求,同时好的系统逻辑结构的构思也相当重要。
同时这次的实验也让我们明白了之前的项目制作过程的不足与不好之处,我们会继续好好学习软件工程课程,帮助自己对软件制作的整体过程有更加清晰的理解和认识。
7. 参考文献
参考资料:
[1]《软件工程技术与应用》姜楠 马蕾 [M] 上海交通大学出版社
[2]《数据库原理》丁宝康 [M] 经济科学出版社
[3]《数据库系统原理》王珊 陈红 [M] 清华大学出版社
最终解释权归小冯同学所有!!!