uml课程设计报告学生管理系统Word格式.docx
《uml课程设计报告学生管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《uml课程设计报告学生管理系统Word格式.docx(41页珍藏版)》请在冰豆网上搜索。
解决学校对学生信息进行处理时时,对各种数据的需求,并且能够学校方面对学生的管理。
主要解决学生信息查询困难等问题。
确定学生信息管理系统功能需求,数据需求及软、硬件需求。
确定学生信息管理系统所能实现的功能,本系统中主要是通过数据库对其进行操作,如学生信息等增加,删除,修改,查找等功能。
2.2.2参考资料
《软件工程技术及应用》——张贤坤徐翔主编东北林业大学出版社
《uml面向对象设计与分析》--------牛丽平主编清华大学出版社
《.net架构与程序设计》-----人民邮电出版社
《数据库原理》-----清华大学出版社
2.3对功能的规定
2.3.1功能划分和描述
学生管理其下的查询、增加、删除、修改模块及其相应管理的具体功能。
(1)增加功能:
系统不设置登陆界面,进入本系统后再首页选者添加学生后,可以对学生进行增加操作,输入学生信息,当信息重复或未输入时,系统使用对话框进行提示。
(2)删除功能:
进入界面即可对数据进行删除操作。
系统能够通过给出的条件查找出要删除的信息,并把相关信息从数据库中删除掉。
(3)修改功能:
对数据库中的信息进行修改。
系统能够通过给出的条件查找出所要修改的信息,对修改后的信息进行保存,并自动查找是否是重复信息。
(4)查询功能:
为了方便学生查找成绩等信息,在首页对所有信息进行了显示,在查询界面按照学号进行查询,当查询不合法时系统进行提示。
2.4安全性:
1)要能够抵御用户可能的误操作,保证软件的健壮性要对数据进行检验,保证数据有效性在数据被破坏时,具有数据恢复能力
2)数据要绝对安全防止有意无意的破坏数据。
若数据遭到破坏,系统具有数据恢复功能,不可恢复的数据仅限于当日录入和修改的数据。
2.5.成本估算
2.5.1时间成本
由于系统是由学生进行开发,所以所需要的软件开发时间也就相对要长一点。
但整个系统的功能较为简单,大概需要两个月左右时间。
2.5.2经济成本
一个完善的学生信息管理系统需要的硬件和软件参考“四,对软件环境的规定”,计算机价格,软件价格以及本人的各项费用大约合计为6000元左右。
2.6.版本记录及其他信息
2.6.1版本更新记录
版本号
创建者
创建日期
维护者
维护日期
维护纪要
V1.0
宋琛
2010/5/20
----
-----
------
V1.1
2010/5/25
2010/5/27
数据库维护
V2.0
2010/6/20
2010/6/25
浏览页面形式的改变
2.6.2尚未解决的问题
(1)学生众多,信息量大,在对其进行录入,修改,删除时需要大量时间。
(2)在对大量数据进行长时间操作时,操作人由于疲劳很容易造成数据误差。
2.7实验模型的建立
实验中使用RationalRose软件绘制各种模型图
模型图示例:
1.用例图:
图2-1
用例图说明:
本系统包括四个用例,一个参与者。
由于与类图进行关联,user显示了其属性。
add为添加学生用例,del为删除学生用例,update为修改学生用例,select为修改学生代码。
2.删除学生活动图:
图2-2
删除学生用例活动图说明:
该系统不需登陆,进入页面后在主界面选择“删除学生”功能,在弹出的添加学生模块中输入要删除学生的学号信息。
点击“确定”会将信息提交给系统,系统进行检查,若不为空且学号已存在,则数据库进行更新。
完成操作后会跳出对话框提示是否成功。
最后可以继续删除或者关闭该删除界面。
3.概要设计部分
3.1.系统建设目标
3.1.1要解决的问题:
(以某学校为参照)随着办公自动化水平的不断提高,现在学校管理学生信息也逐步从手工转到计算机自动化信息处理阶段。
设计一个功能完整、操作简便、界面友好的学生信息管理系统已经是势在必行的了。
3.1.2系统开发的目的
提高图书管理工作的效率,减少相关人员的工作量,使学校的学生管理工作真正做到科学、合理的规划,系统、高效的实施。
3.2运行环境规定
3.2.1硬件环境
要求操作系统用Windows2000以上的版本,WindowsXp最好。
因为本系统将在WindowsXp环境下开发。
要求支持并安装SQLServer2005、vs2008。
一台电脑,如果有大量数据的话要加一台服务器。
电脑要求CPU1.6GH以的的主频,内存1G,硬盘160。
3.2.2软件环境
数据库用MicrosoftSQLserver2005
运行时使用MicrosoftVisualStudio2008
建模工具使用RationalRose
3.2.3软件运行方式
学生信息管理系统为单击版软件(只运行在一台机器上),需连接网络,无需注册,可以直接安装使用,不过刚开始需要进行大量的数据录入工作。
3.3进一步功能描述
模块名称:
增加学生
输入数据流:
学生各项信息
输出数据流:
对数据库操作是否成功(脚本形式)
简要描述:
主要负责学生学号、姓名、班级、年龄方面的信息管理。
删除学生
学生学号
主要负责删除学生学号、姓名、班级、年龄方面的信息管理。
修改学生信息
查询学生
textbox中进行输入学生学号
3.4使用Rose建立的模型
3.4.1活动图
1.添加学生用例的活动图:
图3-1
添加学生用例活动图说明:
该系统不需登陆,进入页面后在主界面选择“添加学生”功能,在弹出的添加学生模块中输入要增加学生的基本信息。
点击“确定”会将信息提交给系统,系统进行检查,若符合规则满足数据库的各项约束条件,则数据库进行更新。
最后可以继续增加或者退出。
2.修改学生用例的活动图:
图3-2
修改学生用例活动图说明:
该系统不需登陆,进入页面后在主界面选择“修改学生”功能,在弹出的添加学生模块中输入要修改学生的基本信息和修改后的信息。
最后可以继续修改或者退出该界面。
3.查询学生用例的活动图:
图3-3
查询学生用例活动图说明:
进入首页后在主界面选择“查询学生”功能,在弹出的查询学生界面中输入要查询学生的学号信息。
点击“确定”会将信息提交给系统,系统进行检查,若不为空则继续检查,完成操作后若该生不存在会跳出对话框进行提示,若该生存在则显示该生的各项基本信息。
最后可以继续查询或者退出。
3.4.2时序图
1.增加学生类的时序图:
图3-4
添加学生时序图说明:
顺序图着重突出操作的时间顺序。
1.系统开始运行,调用shouye类2.构造函数等执行,shouye界面出现3.在首页中选择“添加学生”,add类中add()类被触发4.add界面出现5.在界面中输入信息并返回到该类中6.将数据插入到数据库中7.检查数据是否符合PK和CHECK约束8.更新数据库9.将添加的结果返回10.使用对话框向用户显示最终的处理结果。
2.删除类的时序图:
图3-5
删除学生时序图说明:
1.系统开始运行,调用shouye类2.构造函数等执行,shouye界面出现3.user在首页中选择“删除学生”,del类中del()类被触发4.del界面出现5.在界面中输入要删除的学生学号并返回到该类中6.检查数据是否存在7.更新数据库9.将添加的结果返回10.使用对话框向用户显示最终的处理结果。
3.修改类的时序图:
图3-6
修改学生时序图说明:
1.系统开始运行,调用shouye类2.构造函数等执行,shouye界面出现3.user在首页中选择“修改学生”,update类中update()类被触发4.update界面出现5.在界面中输入要修改的学生学号并返回到该类中6.检查数据是否存在7.更新数据库9.将修改的结果返回10.使用对话框向用户显示最终的处理结果。
4.查询类的时序图:
图3-7
查询学生时序图说明:
1.系统开始运行,调用shouye类2.构造函数等执行,shouye界面出现3.user在首页中选择“查询学生”,select类中select()类被触发4.select界面出现5.在界面中输入要查询的学生学号并返回到该类中6.检查数据是否存在7.从数据库中取数据9.将查询的结果显示在select界面上。
4.详细设计阶段
4.1使用Rose建立的类图模型
4.1.1对用例分析抽象得到的类图:
1.
图4-1
对该类图的说明:
在学生管理系统中用到的主要类有6个:
user,add,delete,update,select,shouye。
这6个类之间有一定的关系:
user是用户类,它的属性包括学生的ID(stuid)、姓名(stuname)、班级(class)、年龄(age)等。
它是从数据库抽象出的类,与其它五个类成关联关系。
add是增加学生类,包括在窗体中对数据库操作所需的主要参数和方法如:
sender(object类型),e(Eventargs类型),conn(SqlConnection类型),cmd(SqlCommand类型),da(DataAdapter类型),ds(DataSet类型),sqlconn(string类型,用于建立conn时作为参数),sql(string类型为sql语句)。
delete,select,update类与add类的处理方式类似。
youye是首页类,在系统启动时首页显示四个对象f1,f2,f3,f4分别是四个类的对象位于四个click()函数中,用于页面的跳转。
其它几个类都依赖于youye类,若该类无法实现,则其他几个亦无法连接到。
2.用户界面类的类图:
图4-2
对界面类的说明:
这四个界面类由上述类图中的对应类触发加载。
在相应界面进行系统的各项操作,执行类中的各项函数。
最终实现本系统的功能。
系统界面较为友好,但仍有一定的提高空间。
其中showInfo是依赖于firstWindow存在的。
于首页的下方显示。
4.2使用Rose建立的活动图模型:
图4-3
user状态图说明:
user进入系统,首页load()之后可以点击各按钮进入不同的页面状态。
根据不同的要求,输入数据完毕后进入infoReady状态。
提交数据对数据库进行相应的操作。
操作完毕后进入successful状态。
4.3包图
图4-4
business包的组件图
图4-5
包图和组件图的说明:
首先在ComponentView中建立相应的包,分别对应系统的各项操作。
上图对应的business是操作的集合。
组件图是对应用程序的可执行部件建模。
4.4部署图
图4-7
部署图说明:
部署图主要是用来说明如何配置系统的软件和硬件的。
系统主要3个节点构成,该系统是单机版系统,通过lan与数据库服务器端连接;
计算机需要有sql和c#支持。
用户在PC端进行请求操作。
另外还可以打印结果。
4.5数据库的建模
本系统只建立了一个tb_stu表格。
在Rose中建模如下:
表格说明:
该系统较为简单,因此只有一个表格。
User只有四个属性。
表格与用例图中的参与者相对应。
共有两个约束。
PK主键约束和对年龄的CHECK约束。
5.实现说明部分
5.1使用前向工程获得数据库代码
CREATETABLEtb_stu(
学生id,主键
stuidINTNOTNULL,
学生姓名
stunameVARCHAR(50)NOTNULL,
学生所在的班级
classVARCHAR(50)NOTNULL,
学生年龄
ageINT,
CONSTRAINTPK_tb_stu0PRIMARYKEYNONCLUSTERED(stuid),
CONSTRAINTcheckageCHECK(check(age>
0andage<
100))
)ONstudentRoseSpace
GO
5.2使用正向工程获得的部分代码
add类的生成代码:
//Sourcefile:
E:
\\business\\add.java
packagebusiness;
publicclassadd
{
/***函数中所需形参*/privateobjectsender;
/***函数形参*/privateEventargse;
/***数据库连接*/privateSqlConnectionconn;
/***数据库命令*/privateSqlCommandcmd;
/***数据适配器*/privateDataAdapterda;
/***数据集*/privateDataSetds;
/***数据集中表格*/privateDataTabledt;
publicusertheUser;
/***构造函数*@roseuid4C20222602BF*/publicadd(){}
/***添加学生按钮单击所触发的事件*@roseuid4C2022280167*/publicvoidaddbutton_Click(){}
}
5.3使用c#编写的部分代码
添加学生部分代码:
namespace数据库窗体
publicpartialclassadd:
Form
{
publicadd()
InitializeComponent();
}
privatevoidaddbutton_Click(objectsender,EventArgse)
if(textBox4.Text=="
"
)
MessageBox.Show("
请输入学号"
);
else
SqlConnectionconn=newSqlConnection(@"
server=(local)\sqlexpress;
database=student;
Trusted_Connection=True"
conn.Open();
DataSetds=newDataSet();
SqlDataAdapterda=newSqlDataAdapter("
select*fromtb_stuwherestuid='
+textBox1.Text+"
'
"
conn);
da.Fill(ds);
DataTabledt=ds.Tables[0];
if(dt.Rows.Count!
=0)
对不起,该生已存在"
stringSql="
INSERTINTOtb_stu(stuid,stuname,class,age)values('
'
+textBox2.Text+"
+textBox3.Text+"
+textBox4.Text+"
)"
;
SqlCommandcmd=newSqlCommand(Sql,conn);
cmd.ExecuteNonQuery();
conn.Close();
textBox1.Text=null;
textBox2.Text=null;
textBox3.Text=null;
textBox4.Text=null;
添加成功"
首页显示如下:
添加学生界面如下:
主要实现代码
用户登录代码实现:
protectedvoidbtn_login_Click(objectsender,EventArgse)
stringstrcmd="
inti;
DataAcessmydataAcess=newDataAcess()
if(txtUsername.Text.Trim()!
="
&
&
txtPassword.Text.Trim()!
if(DropDownList1.Text=="
管理员"
strcmd="
selectcount(*)fromadminwhere用户名='
+txtUsername.Text+"
and密码='
+txtPassword.Text+"
temp=1;
教师"
selectcount(*)fromteacherwhere教师编号='
temp=2;
学生"
strcmd="
selectcount(*)fromstudentwhere学号='
temp=3;
i=mydataAcess.ExecuteScalar(strcmd);
if(i==1)
Session["
Username"
]=txtUsername.Text.ToString();
if(temp==1)
Response.Redirect("
admin//stuadmin.aspx"
if(temp==2)
teacher//index.aspx"
if(temp==3)
student//index.aspx"
Response.Write("
<
scriptLANGUAGE='
javascript'
>
alert('
账号或密码错误!
history.go(-1);
/script>
请输入账号或密码!
txtUsername.Text="
txtPassword.Text="
实现用户管理模块功能的代码:
publicpartialclassadmin_index:
System.Web.UI.Page
publicstringCID;
publicstringsqlconn;
DataRowdtr;
SqlDataAdaptermyadapter;
SqlCommandBuilderscb;
DataSetmyDataSet;
SqlConnectionmysqlconnection;
intreturnValue;
privateSqlConnectionconn=newSqlConnection(System.Configuration.ConfigurationSettings.AppSettings["
Grademanage"
]);
protectedvoidPage_Load(objectsender,EventArgse)
if(Session["
username"
]==null||"
.Equals(Session["
].ToString()))
DataAcess.Alert("
你还未登陆请返回首页登陆!
"
../login.aspx"
CID=Session["
].ToString();
mysqlconnection=newSqlConnection(System.Configuration.ConfigurationSettings.AppSettings["
SqlCommandmysqlcommand=mysqlconnection.CreateCommand();
mysqlcommand.CommandText="
select用户名,密码,备注fromadminwhere用户名="
+"
+CID+"
myadapter=newS