安徽 课 题 班 专 姓学
指导师日
课程设计报告
程 : 软件工程导论 目 : 级 :
业 : 计算机科学与技术 名 : 号 :
教
:
期 : 2014.05.05
摘 要
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
本系统是在管理信息系统的理论和方法指导下、数据库技术支持下完成的。本文在结构上首先论述了程序设计目的和意义,然后叙述了开发环境、开发平台以及数据库技术,接着用图片、说明和代码的方式介绍了系统的整体规划,接下来是系统在具体实现中的详细内容,最终本系统能够完成信息的添加、修改、删除、查询等功能,本系统界面友好,操作简单,比较实用,思路缜密严谨,管理起来方便快捷,能有效的达到学生信息的管理的目的。
关键词:Microsoft Visual C#2008 Express Edition,SQL server2005,界面,权限
目 录
摘 要„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„2 目 录„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 1 绪 论„„„„„„„„„„„„„„„„„„„„„„„„„„„„4
1.1 设计目的„„„„„„„„„„„„„„„„„„„„„„„„„„5 1.2 开发工具选择„„„„„„„„„„„„„„„„„„„„„„„„5 1.3 开发环境„„„„„„„„„„„„„„„„„„„„„„„„„„5 1.4 本报告的主要内容„„„„„„„„„„„„„„„„„„„„„„6 2 需求分析„„„„„„„„„„„„„„„„„„„„„„„„„„„„6
2.1系统任务描述„„„„„„„„„„„„„„„„„„„„„„„„6
2.1.1系统目标„„„„„„„„„„„„„„„„„„„„„„„„6 2.1.2系统设计与功能分析„„„„„„„„„„„„„„„„„„„7 2.1.3性能需求分析„„„„„„„„„„„„„„„„„„„„„„7 2.1.4开发环境和软件„„„„„„„„„„„„„„„„„„„„7 2.2 系统概要设计„„„„„„„„„„„„„„„„„„„„„„„7 2.2.1 数据需求„„„„„„„„„„„„„„„„„„„„„„7 2.2.1.1 数据字典„„„„„„„„„„„„„„„„„„„„7 2.2.1.2 数据流图„„„„„„„„„„„„„„„„„„„„8 2.2.2 功能需求„„„„„„„„„„„„„„„„„„„„„„10
2.3 系统详细设计„„„„„„„„„„„„„„„„„„„„„„10
2.3.1 概念结构设计„„„„„„„„„„„„„„„„„„„„10 2.3.2 逻辑结构设计„„„„„„„„„„„„„„„„„„„„12 2.3.3 物理结构设计„„„„„„„„„„„„„„„„„„„„错误!未定义书签。
2.3.4 系统功能设计„„„„„„„„„„„„„„„„„„„„错误!未定义书签。
3 总体设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„15
3.1设计概述„„„„„„„„„„„„„„„„„„„„„„„„„„15 3.2系统总体结构及功能模块划分„„„„„„„„„„„„„„„„15
3.2.1学生信息查询模块„„„„„„„„„„„„„„„„„„15 3.2.2学生信息管理模块„„„„„„„„„„„„„„„„„16
3.4安全保密设计„„„„„„„„„„„„„„„„„„„„„„„„16
3.4.1用户登录安全性„„„„„„„„„„„„„„„„„„„„17
4 详细设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„17
4.1概述„„„„„„„„„„„„„„„„„„„„„„„„„„„„17 4.2系统程序流程图„„„„„„„„„„„„„„„„„„„„„„18 4.3系统主要功能模块简介„„„„„„„„„„„„„„„„„„„„18
4.3.1系统登录„„„„„„„„„„„„„„„„„„„„„„18 4.3.2学生信息查询模块„„„„„„„„„„„„„„„„„„18 4.3.3学生信息管理模块„„„„„„„„„„„„„„„„„„„19
4.3.4管理员信息管理模块„„„„„„„„„„„„„„„„„„20 4.3.5教师信息管理模块„„„„„„„„„„„„„„„„„„21 5 系统测试及难点分析„„„„„„„„„„„„„„„„„„„„„„23
5.1 公共类代码设计„„„„„„„„„„„„„„„„„„„„„„23 5.2 登录界面代码设计„„„„„„„„„„„„„„„„„„„„„„26 5.3 查询模块代码设计„„„„„„„„„„„„„„„„„„„„„„277
5.4 添加模块代码设计„„„„„„„„„„„„„„„„„„„„„„28 5.5 更新模块代码设计„„„„„„„„„„„„„„„„„„„„„„29 5.6 删除模块代码设计„„„„„„„„„„„„„„„„„„„„„„32 结 论„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„错误!未定义书签。2
参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„33
1 绪 论
人类有几千年的历史,计算机从产生到现在只不过50多年,而网络的迅速发展也不过10年的时间。但是,计算机和网络对社会的影响已经迅速扩大,甚至在改变人们的生活。特别是90年代以来,多媒体和网络技术的飞速发展正在以惊人的速度改变着人们的工作方式、交往方式和生活方式。正像著名的未来学家尼葛洛庞帝(1997)所说的:“数字不再只和计算有关,它决定我们的生存。”科学技术是第一生产力,是最先进的生产力。现在,已经没有人怀疑信息技术的发展将会引起人类社会全面和深刻的变革,使人类社会由工业社会迈向信息社会。目前,在社会各个方面都呈现出了与工业社会显著不同的特点。网上书店,网上医院,网上学校,网上购物,网上银行,政府上网等新事物如雨后春笋般涌现出来,对人们的传统生活方式、工作方式产生极大的冲击。使人们感受到技术发展的脉搏和信息时代前进的步伐。
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。
1.1 设计目的
本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和ADO.net的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。
1.2 开发工具选择
本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft 公司的
Visual Studio 2008作为主要开发工具,可与SQL Server 2005数据库无缝链接。
1.3 开发环境
系统开发平台:Microsoft Visual Studio2005 系统开发语言:C#
数据库管理软件:SQL Server 2005
1.4 本报告的主要内容
本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:系统的需求分析、系统的总体设计、系统的概念设计、系统各模块的详细设计、系统运行与测试。
2 需求分析
需求分析是一组活动的总称,作为系统分析员,必须协同软件用户共同完成。而需求分析的任务是定义待开发的软件的功能、性能等指标。首先要了解用户的相关事务,如果你给一家网站做在线书店系统,除了参考现在已经存在的类似和相关的系统外,你还需要通过用户的演示、讲解和有关文档,与用户进行交流协商。在这个过程中,可以提出自己有建设性的想法和建议,只有这样,用户和系统设计人员才会在系统提供的事务上达成一致,这对于软件来说是相当重要的。其次要分析用户的事务流程,前面了解的用户事务只是一些离散的事务活动,而事务流程是一种重要的信息,比如用户登录这个流程,他需要经历用户名和密码的输入,正确用户类型的选择这些活动,然后将了解到的用户活动加以整理并按照这些活动所固有的次序形成业务流程。还要了解用户对软件的期望值,除了需要能够正确处理用户的事务外,还需要了解用户对系统的其他需求,比如系统的安全性。这些对于用户而言也显得尤为重要。最后整理出用户需求并评审需求。
2.1系统任务描述
系统模块的设计应该遵循整个系统总体设计思路,基于C#开发工具与数据库SQL设计,主要完成的设计如下:
2.1.1系统目标
(1) 根据查询条件实现学生信息的查询 (2) 学生选课信息查询、成绩信息的查询
(3) 学生信息、课程信息、成绩信息的增加、删除、修改
(4) 对基本信息完成增加、删除、修改时,需注意表与表之间的关联
2.1.2系统设计与功能分析
学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2000数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。SQLServer2000数据库高效安全,两者结合可相互利用各自的优势。
该系统实现的大致功能:
1.用户登陆界面。该界面可以选择使用者的身份,“管理员,教师,学生”。不同的身份有不同的操作界面和功能权限。ID号和密码输入正确即可登录。学生管理界面。提供了学生学籍信息的查询,修改登录密码等功能。 2.教师管理界面。提供了对学生学籍信息的查询,添加,修改,删除。修改密码等功能。
3.管理员管理界面。拥有最高的权限。允许添加教师信息。
4.登录的用户信息分别存储在SQL数据库的“管理员信息表”, “教师信息表”, “学生表”中,如果用户信息不存在则三张表中,将会无权利登录本管理系统。
保证了本学生管理系统的安全性。
2.1.3性能需求分析
(1) 登录、用户界面需求:简洁、易懂、易用、友好的用户界面。 (2) 安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管
理等。
2.2 系统概要设计
2.2.1.数据需求:
2.2.1.1数据字典
实体属性表:
教师信息表:
管理员信息表:
学生表:
2.2.1.2 数据流图
第一层
第二层
第三层
统计成绩
第五层
学生信息
2.2.2.功能需求:
(1)实现学生基本情况的录入,修改,删除等基本操作。 (2)对学生基本信息提供灵活的查询方式。 (3)完成一个班级的学期选课功能。
(4)实现学生成绩的录入,修改,删除等基本操作。 (5)能方便的对学生的个人学期成绩进行查询。 (6)具有成绩统计,排名等功能。
(7)具有留级,休学等特殊情况的处理功能。 (8)能输出常用的各种报表。
(9)具有数据备份和数据恢复功能。
2.3系统详细设计
2.3.1.概念结构设计
局部ER图
整体的ER图
2.3.2. 逻辑结构设计
(1)ER图转换为关系模型
由ER图可见:图中有三个实体:学生,课程,和专业;三个关系:学生选课关系,学生与专业之间的属于关系,专业的课程设置。
由于每个实体必须构造表,所以可以先得到三个实体的信息表,实体的码就是关系的码,实体的属性即关系模型的属性:
学生基本信息表: S (sno, sname, ssex, sbirth, spasw) 课程基本信息表: C (cno, cname, cperiord)
专业基本信息表: P (pno, pname, pnum, psdept)
对应的属性分别为:学号,姓名,性别,出生日期,登陆密码 课程编号,课程名,学期
专业编号,专业名,专业人数,所在院系
对于多对多的关系来说,与该联系相连的实体的码以及本身的属性均转换为关系的属性,各实体之间的码组成关系的码或者关系的码的一部分。 以上ER图的三个联系为多对多,所以转换为关系模式为:
课程设置表:pc ( pno, psenior, cno) 与设置相连的实体有专业和课程,根据多对多的转换原则:专业的码pno,课程的码cno以及设置本身的属性共同构成该关系模式的码,所以该关系模式的码为全码。
学生选课表:SC (sno, psenior, cno, grade)与选课相连的实体有学生和课程,同上由学生的码sno,课程的码cno以及选课本身的码psenior构成该关系模式的码,即(sno,cno,psenior)。此外,选课表还有一个非主属性grade。
学生与专业的属于表:SP(sno,pno)与属于关系相联的实体是学生和专业。同上由学生的码sno,专业的码pno构成该关系模式的码,由于此关系没有其他的码也就没有非主属性。 (2)关系模式的优化:
学生表 s (sno,sname,ssex,sbirth,spasw)
该关系模式的码为sno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为: sno -> sname, sno -> ssex, sno -> ssex,
sno -> sbirth, sno -> spasw,其间不存在传递依赖,故学生表可达到3NCF.
课程表 C ( cno ,cname , cperiod) 该关系模式的码为cno, cname,设主码为cno,因为该关系模式中的码都是单一的,即不存在有两个或者两个以上的属性组成的码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为:cno->cname, cno->cperiod, cname ->cno ,cname ->
因为
cno -> cname,cname -> cperiod cno -> cperiod, 不能达到3NCF。故优化该表为:C1(cno,period),C2().从而两表都达到了3NCF。
专业表 P (pno,pname,pnum,pdept)
该关系模式的码为pno,pname,其中设定pno为主码。同课程表,该表不存在有两个或者两个以上属性组成的码,即不存在非主属性对码的部分函数依赖,故可达到2NCF。另外,此关系模式的函数依赖为:pno->pname, pno-> pnum, pno -> pdept , pname -> pno, pname->
pnum, pname -> pdept; 由于存在传递依赖:pno -> pnum., 所以未能达到3NCF。优化分解为:(pname,pnum,pdept)
明显,两表都达到了3NCF.
课程设置表PC(pno,psenior,cno),
该关系模式的码为:(pno,psenior,cno)为全码,所以可直接达到3NCF 学生选课表 SC(sno,psenior,cno,grade) 该关系模式的码为:(sno,psenior,cno),因为不存在非主性grade对码的部分函数依赖,所以可达到2NCF,由于不存在函数依赖(表中的函数依赖只有(sno,psenior,cno)-> grade)故也达到了3NCF
属于表 SP(sno,pno)
该关系模式的码(sno,pno)也是全码,所以也达到了3NCF
用户表 U(uname,upasw)
该表的码为uname,明显upasw对码uname是完全函数依赖的,从而达到2NCF。另外因为只有两个属性,所以不存在传递函数依赖,该表达到了3NCF
2.3.3物理结构设计
(1)基本表
课程表c2 专业表p1 专业表p2
课程设置表 pc
管理人员密码表u
(2)视图,索引
a.索引:本数据库中的表除了主键本身生成的主索引外,没有定义其他的索引。在查询时即引用主索引即可。
表s的主索引列为:sno 表c1的主索引列为:cno 表c2的主索引列为:cname 表p1的主索引列为:pno 表p2的主索引列为:pname
表sc的主索引列为:(pno,psenior,cno) 表sp的主索引列为:(sno,pno) 表u的主索引列为:uname
b.视图:虽然关系数据模型分析的结果表示该数据库需要定义不同的用户视图,但考虑到数据库与前台开发程序的连接比较复杂,所以该数据库中没有单独定义用户视图,不同的用户视图被有选择性的的select语句的结果集取.
2.3.4系统功能设计
3总体设计
3.1设计概述
根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能;
3.2系统总体结构及功能模块划分
经过对系统的需求分析,学生信息管理系统主要划分为三个部分:学生信息查询,学生信息管理,学生成绩录入三个功能模块。如图3.2.1 系统的总体结构。
图3.2.1 系统的总体结构
3.2.1学生信息查询模块
学生信息查询:学生可以根据学号、姓名、专业进行查询。如图3.2.2学生
信息查询模块结构。
图3.2.2 学生信息管理模块结构
3.2.2学生信息管理模块
学生信息管理:主要是用于学生信息更新、插入、删除,如图3.2.3学生管
图3.2.3 学生信息管理模块结构
3.4安全保密设计 3.4.1用户登录安全性
系统设计了登录界面,每个合法用户有用户名及一个密码,只有当用户输入正确的用户名及密码组合后才能够对学生信息进行操作。
4详细设计
4.1概述
详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
4.2系统程序流程图
程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。它可将整个程序的总体流程清楚明白的显示出来。如图4.2.1系统总流程图结构。
图4.2.1系统总体流程图
4.3系统主要功能模块简介 4.3.1系统登录
用户凭借用户名及密码登录,成功登录后可对学生信息进行操作。用户界面
如图4.3.1 用户登录界面所示。
图4.3.1 用户登录界面
4.3.2学生信息查询模块
学生信息查询:在程序主界面(如图4.3.2 程序主界面)学生可以根据学号、姓名进行查询。学生也可以只用一种条件进行信息查询,也可以多个条件查询。双击记录任一单元格可显示学生的更详细信息。
图4.3.2 程序主界面
4.3.3学生信息管理模块
学生信息管理:通过右击程序主界面的相应记录弹出的上下文菜单可对当前选定学生信息进行详细信息查询、修改信息、删除信息。更新时如果输入的学号不存在,可选择是否添加学生信息。通过程序主界面的新建信息记录可添加学生信息。
图4.3.4 上下文菜单
图4.3.6 学生信息增删改查界面
4.3.4管理员信息管理模块
管理员信息管理:通过右击程序主界面的相应记录弹出的上下文菜单可对当前选
定学生信息进行详细信息查询、修改信息、删除信息。更新时如果输入的学号不存在,
可选择是否添加学生信息。通过程序主界面的新建信息记录可添加学生信息。
图4.3.7管理员显示界面
图4.3.8 管理员添加界面
4.3.5管理员信息管理模块
教师信息管理:通过右击程序主界面的相应记录弹出的上下文菜单可对当前选定
学生成绩进行详细信息录入,更改。更新时如果输入的学号不存在,可选择是否添
加学生成绩。通过程序主界面的新建信息记录可添加学生成绩。
图4.3.9教师显示界面
5主要功能模块代码
5.1 公共类代码设计
namespace MySql {
public class mySql {
public String connectionString = @
Integrated Security=True;Connect Timeout=30;User Instance=True;
public bool flag; //指示有条该条记录 public System.Data.DataView table;
public void runSql() // 执行查询、删除SQL语句 {
using (SqlConnection connection = new SqlConnection(connectionString)) {
connection.Open();
SqlCommand cmdQuery = new SqlCommand(commondText,
connection);
SqlDataAdapter sda = new SqlDataAdapter(commondText, connection);
DataSet ds = new DataSet(); sda.Fill(ds);
if (commondText.IndexOf(
table = ds.Tables[0].DefaultView; }
connection.Close(); } }
public bool getFlag() //判断是否有该条记录 {
using (SqlConnection connection = new SqlConnection(connectionString)) {
connection.Open();
SqlCommand cmdQuery = new SqlCommand(commondText, connection);
SqlDataReader reader = cmdQuery.ExecuteReader(); if (reader.Read()) flag = true; else flag = false; reader.Close(); connection.Close(); return flag; } }
public String getContent(String require,String SNO) //获取视图表的的指定单元格内容 {
try {
commondText =
if (require ==
commondText =
if (require ==
commondText =
SqlDataAdapter sda = new SqlDataAdapter(commondText,
connectionString);
DataSet ds = new DataSet(); sda.Fill(ds); String result=
if(require==
int i=new int();
for (i=0; i
result = result+ds.Tables[0].Rows[i][require].ToString()+
result=ds.Tables[0].Rows[0][require].ToString().Trim(); return result; }
catch {
return
public void update() {//添加、更新语句 try {
using (SqlConnection connection = new SqlConnection(connectionString)) {
connection.Open(); SqlCommand cmdInsert = new SqlCommand(commondText, connection);
cmdInsert.ExecuteNonQuery(); connection.Close();
} }
catch(Exception ex) {
MessageBox.Show(ex.ToString(),
}
}
5.2 登录界面代码设计
private void login_Click(object sender, EventArgs e)
{//用户名及密码组合判断 if (username.Text.ToString().Trim() !=
mySql sql = new mySql();
sql.commondText =
bool temp = new bool(); temp = sql.getFlag(); if (temp) {
this.Visible = false;
mainface main = new mainface(this); main.Show(); } }
catch(Exception ex) {
MessageBox.Show(ex.ToString(),
} else {
MessageBox.Show(
5.3 查询模块代码设计
private void btQuery_Click(object sender, EventArgs e)
{
mySql query=new mySql();
if (sNInput.Text.Trim() ==
if (sNInput.Text.Trim() !=
if (sNInput.Text.Trim() !=
if (query.getFlag()) {
query.runSql();
dataGridView1.DataSource = query.table; }
else MessageBox.Show(
5.4 添加模块代码设计
private void addbtOK_Click(object sender, EventArgs e)
{
if (addStuNo.Text.Trim() !=
mySql sql = new mySql();
sql.commondText =
String temp = sql.table.Table.Rows[0][
String sexTemp=radioButton1.Checked ?
if (addStuCom.Text.ToString().Trim() ==
else comTemp = addStuCom.Text.ToString().Trim(); String birTemp=
if (addStuBir.Text.ToString().Trim() ==
else birTemp = addStuCom.Text.ToString().Trim(); sql.commondText =
+addStuNo.Text.ToString().Trim()+
+sexTemp+
if(score.Text.ToString().Trim()!=
sql.commondText =
+
this.Close(); } else {
MessageBox.Show(
private void AddNew_Load(object sender, EventArgs e) {//获取专业列表
mySql sql = new mySql();
sql.commondText =
SqlDataAdapter sda = new SqlDataAdapter(sql.commondText, sql.connectionString);
DataSet ds = new DataSet();
sda.Fill(ds);
listmn.DataSource = ds.Tables[0].DefaultView; listmn.DisplayMember =
listmn.DisplayMember = listmn.DisplayMember.ToString().Trim(); }
5.5 更新模块代码设计
private void upbtOK_Click(object sender, EventArgs e)
{
mySql sql = new mySql();
sql.commondText =
bool flagtemp = sql.getFlag();
if (!flagtemp) //如果表中无该条记录,提示是否进行添加新记录操作
{
if (MessageBox.Show(
if (upStuNo.Text.Trim() !=
mySql sqlme = new mySql();
sqlme.commondText =
String sexTemp = radioButton1.Checked ?
if (upStuCom.Text.ToString().Trim() ==
else comTemp = upStuCom.Text.ToString().Trim(); String birTemp;
if (upStuBir.Text.ToString().Trim() ==
else birTemp = upStuCom.Text.ToString().Trim();
sqlme.commondText =
+
upStuNo.Text.ToString().Trim() +
+ upStuName.Text.ToString().Trim() +
+ upStuMajor.Text.ToString().Trim() +
+ sexTemp +
if (upStuScore.Text.ToString().Trim() !=
sqlme.commondText =
+
sqlme.update(); }
this.Close(); } else {
MessageBox.Show(
if (upStuNo.Text.Trim() !=
sql.commondText =
String temp = sql.table.Table.Rows[0][
String sexTemp = radioButton1.Checked ?
if(upStuCom.Text.ToString().Trim()==
else comTemp=upStuCom.Text.ToString().Trim(); String birTemp;
if (upStuBir.Text.ToString().Trim() ==
else birTemp = upStuBir.Text.ToString().Trim();
sql.commondText =
+upStuMajor.Text.ToString().Trim()+
+sexTemp+
+ upStuBir.Text.ToString().Trim() +
+comTemp+
sql.update();
bool scFlag = new bool();
if (upStuScore.Text.ToString().Trim() !=
{
try
{
mySql scTemp = new mySql();
scTemp.commondText =
scTemp.runSql();
String cntemp = scTemp.table.Table.Rows[0][
scTemp.commondText =
if (scFlag)
{
sql.commondText =
sql.update();
}
}
catch
{
sql.commondText =
+
sql.update();
}
}
this.Close();
}
else
{
MessageBox.Show(
}
}
}
5.6 删除模块代码设计
private void 删除记录ToolStripMenuItem_Click(object sender, EventArgs e)
{
mySql del = new mySql();
String temp = this.dataGridView1.CurrentRow.Cells[0].Value.ToString();
if(MessageBox.Show(
{
del.commondText =
del.runSql();
del.commondText =
del.runSql();
this.dataGridView1.Rows.Remove(this.dataGridView1.CurrentRow);
}
}
结论
课程设计结束了,在老师和同学的帮助下,我们基本完成系统的设计。我们按照系统工程软件设计的要求,从需求分析,概念设计,总体设计,详细设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的学生信息查询,学生信息更新,学生信息添加等模块的功能。
在这我们收获如下:
1、巩固和加深了对C#的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深
入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:
1、认真上好专业实验课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信心,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。
参考文献
软件工程基础 汤淮 西安交通大学出版社
软件工程-----技术,方法与环境 王立福,张世琨,朱冰 编著 北京大学出版社
软件开发技术 倪秉营 电子科技大学出版社
软件工程 张权范 清华大学出版社
安徽 课 题 班 专 姓学
指导师日
课程设计报告
程 : 软件工程导论 目 : 级 :
业 : 计算机科学与技术 名 : 号 :
教
:
期 : 2014.05.05
摘 要
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
本系统是在管理信息系统的理论和方法指导下、数据库技术支持下完成的。本文在结构上首先论述了程序设计目的和意义,然后叙述了开发环境、开发平台以及数据库技术,接着用图片、说明和代码的方式介绍了系统的整体规划,接下来是系统在具体实现中的详细内容,最终本系统能够完成信息的添加、修改、删除、查询等功能,本系统界面友好,操作简单,比较实用,思路缜密严谨,管理起来方便快捷,能有效的达到学生信息的管理的目的。
关键词:Microsoft Visual C#2008 Express Edition,SQL server2005,界面,权限
目 录
摘 要„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„2 目 录„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 1 绪 论„„„„„„„„„„„„„„„„„„„„„„„„„„„„4
1.1 设计目的„„„„„„„„„„„„„„„„„„„„„„„„„„5 1.2 开发工具选择„„„„„„„„„„„„„„„„„„„„„„„„5 1.3 开发环境„„„„„„„„„„„„„„„„„„„„„„„„„„5 1.4 本报告的主要内容„„„„„„„„„„„„„„„„„„„„„„6 2 需求分析„„„„„„„„„„„„„„„„„„„„„„„„„„„„6
2.1系统任务描述„„„„„„„„„„„„„„„„„„„„„„„„6
2.1.1系统目标„„„„„„„„„„„„„„„„„„„„„„„„6 2.1.2系统设计与功能分析„„„„„„„„„„„„„„„„„„„7 2.1.3性能需求分析„„„„„„„„„„„„„„„„„„„„„„7 2.1.4开发环境和软件„„„„„„„„„„„„„„„„„„„„7 2.2 系统概要设计„„„„„„„„„„„„„„„„„„„„„„„7 2.2.1 数据需求„„„„„„„„„„„„„„„„„„„„„„7 2.2.1.1 数据字典„„„„„„„„„„„„„„„„„„„„7 2.2.1.2 数据流图„„„„„„„„„„„„„„„„„„„„8 2.2.2 功能需求„„„„„„„„„„„„„„„„„„„„„„10
2.3 系统详细设计„„„„„„„„„„„„„„„„„„„„„„10
2.3.1 概念结构设计„„„„„„„„„„„„„„„„„„„„10 2.3.2 逻辑结构设计„„„„„„„„„„„„„„„„„„„„12 2.3.3 物理结构设计„„„„„„„„„„„„„„„„„„„„错误!未定义书签。
2.3.4 系统功能设计„„„„„„„„„„„„„„„„„„„„错误!未定义书签。
3 总体设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„15
3.1设计概述„„„„„„„„„„„„„„„„„„„„„„„„„„15 3.2系统总体结构及功能模块划分„„„„„„„„„„„„„„„„15
3.2.1学生信息查询模块„„„„„„„„„„„„„„„„„„15 3.2.2学生信息管理模块„„„„„„„„„„„„„„„„„16
3.4安全保密设计„„„„„„„„„„„„„„„„„„„„„„„„16
3.4.1用户登录安全性„„„„„„„„„„„„„„„„„„„„17
4 详细设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„17
4.1概述„„„„„„„„„„„„„„„„„„„„„„„„„„„„17 4.2系统程序流程图„„„„„„„„„„„„„„„„„„„„„„18 4.3系统主要功能模块简介„„„„„„„„„„„„„„„„„„„„18
4.3.1系统登录„„„„„„„„„„„„„„„„„„„„„„18 4.3.2学生信息查询模块„„„„„„„„„„„„„„„„„„18 4.3.3学生信息管理模块„„„„„„„„„„„„„„„„„„„19
4.3.4管理员信息管理模块„„„„„„„„„„„„„„„„„„20 4.3.5教师信息管理模块„„„„„„„„„„„„„„„„„„21 5 系统测试及难点分析„„„„„„„„„„„„„„„„„„„„„„23
5.1 公共类代码设计„„„„„„„„„„„„„„„„„„„„„„23 5.2 登录界面代码设计„„„„„„„„„„„„„„„„„„„„„„26 5.3 查询模块代码设计„„„„„„„„„„„„„„„„„„„„„„277
5.4 添加模块代码设计„„„„„„„„„„„„„„„„„„„„„„28 5.5 更新模块代码设计„„„„„„„„„„„„„„„„„„„„„„29 5.6 删除模块代码设计„„„„„„„„„„„„„„„„„„„„„„32 结 论„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„错误!未定义书签。2
参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„33
1 绪 论
人类有几千年的历史,计算机从产生到现在只不过50多年,而网络的迅速发展也不过10年的时间。但是,计算机和网络对社会的影响已经迅速扩大,甚至在改变人们的生活。特别是90年代以来,多媒体和网络技术的飞速发展正在以惊人的速度改变着人们的工作方式、交往方式和生活方式。正像著名的未来学家尼葛洛庞帝(1997)所说的:“数字不再只和计算有关,它决定我们的生存。”科学技术是第一生产力,是最先进的生产力。现在,已经没有人怀疑信息技术的发展将会引起人类社会全面和深刻的变革,使人类社会由工业社会迈向信息社会。目前,在社会各个方面都呈现出了与工业社会显著不同的特点。网上书店,网上医院,网上学校,网上购物,网上银行,政府上网等新事物如雨后春笋般涌现出来,对人们的传统生活方式、工作方式产生极大的冲击。使人们感受到技术发展的脉搏和信息时代前进的步伐。
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。
1.1 设计目的
本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和ADO.net的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。
1.2 开发工具选择
本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft 公司的
Visual Studio 2008作为主要开发工具,可与SQL Server 2005数据库无缝链接。
1.3 开发环境
系统开发平台:Microsoft Visual Studio2005 系统开发语言:C#
数据库管理软件:SQL Server 2005
1.4 本报告的主要内容
本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:系统的需求分析、系统的总体设计、系统的概念设计、系统各模块的详细设计、系统运行与测试。
2 需求分析
需求分析是一组活动的总称,作为系统分析员,必须协同软件用户共同完成。而需求分析的任务是定义待开发的软件的功能、性能等指标。首先要了解用户的相关事务,如果你给一家网站做在线书店系统,除了参考现在已经存在的类似和相关的系统外,你还需要通过用户的演示、讲解和有关文档,与用户进行交流协商。在这个过程中,可以提出自己有建设性的想法和建议,只有这样,用户和系统设计人员才会在系统提供的事务上达成一致,这对于软件来说是相当重要的。其次要分析用户的事务流程,前面了解的用户事务只是一些离散的事务活动,而事务流程是一种重要的信息,比如用户登录这个流程,他需要经历用户名和密码的输入,正确用户类型的选择这些活动,然后将了解到的用户活动加以整理并按照这些活动所固有的次序形成业务流程。还要了解用户对软件的期望值,除了需要能够正确处理用户的事务外,还需要了解用户对系统的其他需求,比如系统的安全性。这些对于用户而言也显得尤为重要。最后整理出用户需求并评审需求。
2.1系统任务描述
系统模块的设计应该遵循整个系统总体设计思路,基于C#开发工具与数据库SQL设计,主要完成的设计如下:
2.1.1系统目标
(1) 根据查询条件实现学生信息的查询 (2) 学生选课信息查询、成绩信息的查询
(3) 学生信息、课程信息、成绩信息的增加、删除、修改
(4) 对基本信息完成增加、删除、修改时,需注意表与表之间的关联
2.1.2系统设计与功能分析
学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2000数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。SQLServer2000数据库高效安全,两者结合可相互利用各自的优势。
该系统实现的大致功能:
1.用户登陆界面。该界面可以选择使用者的身份,“管理员,教师,学生”。不同的身份有不同的操作界面和功能权限。ID号和密码输入正确即可登录。学生管理界面。提供了学生学籍信息的查询,修改登录密码等功能。 2.教师管理界面。提供了对学生学籍信息的查询,添加,修改,删除。修改密码等功能。
3.管理员管理界面。拥有最高的权限。允许添加教师信息。
4.登录的用户信息分别存储在SQL数据库的“管理员信息表”, “教师信息表”, “学生表”中,如果用户信息不存在则三张表中,将会无权利登录本管理系统。
保证了本学生管理系统的安全性。
2.1.3性能需求分析
(1) 登录、用户界面需求:简洁、易懂、易用、友好的用户界面。 (2) 安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管
理等。
2.2 系统概要设计
2.2.1.数据需求:
2.2.1.1数据字典
实体属性表:
教师信息表:
管理员信息表:
学生表:
2.2.1.2 数据流图
第一层
第二层
第三层
统计成绩
第五层
学生信息
2.2.2.功能需求:
(1)实现学生基本情况的录入,修改,删除等基本操作。 (2)对学生基本信息提供灵活的查询方式。 (3)完成一个班级的学期选课功能。
(4)实现学生成绩的录入,修改,删除等基本操作。 (5)能方便的对学生的个人学期成绩进行查询。 (6)具有成绩统计,排名等功能。
(7)具有留级,休学等特殊情况的处理功能。 (8)能输出常用的各种报表。
(9)具有数据备份和数据恢复功能。
2.3系统详细设计
2.3.1.概念结构设计
局部ER图
整体的ER图
2.3.2. 逻辑结构设计
(1)ER图转换为关系模型
由ER图可见:图中有三个实体:学生,课程,和专业;三个关系:学生选课关系,学生与专业之间的属于关系,专业的课程设置。
由于每个实体必须构造表,所以可以先得到三个实体的信息表,实体的码就是关系的码,实体的属性即关系模型的属性:
学生基本信息表: S (sno, sname, ssex, sbirth, spasw) 课程基本信息表: C (cno, cname, cperiord)
专业基本信息表: P (pno, pname, pnum, psdept)
对应的属性分别为:学号,姓名,性别,出生日期,登陆密码 课程编号,课程名,学期
专业编号,专业名,专业人数,所在院系
对于多对多的关系来说,与该联系相连的实体的码以及本身的属性均转换为关系的属性,各实体之间的码组成关系的码或者关系的码的一部分。 以上ER图的三个联系为多对多,所以转换为关系模式为:
课程设置表:pc ( pno, psenior, cno) 与设置相连的实体有专业和课程,根据多对多的转换原则:专业的码pno,课程的码cno以及设置本身的属性共同构成该关系模式的码,所以该关系模式的码为全码。
学生选课表:SC (sno, psenior, cno, grade)与选课相连的实体有学生和课程,同上由学生的码sno,课程的码cno以及选课本身的码psenior构成该关系模式的码,即(sno,cno,psenior)。此外,选课表还有一个非主属性grade。
学生与专业的属于表:SP(sno,pno)与属于关系相联的实体是学生和专业。同上由学生的码sno,专业的码pno构成该关系模式的码,由于此关系没有其他的码也就没有非主属性。 (2)关系模式的优化:
学生表 s (sno,sname,ssex,sbirth,spasw)
该关系模式的码为sno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为: sno -> sname, sno -> ssex, sno -> ssex,
sno -> sbirth, sno -> spasw,其间不存在传递依赖,故学生表可达到3NCF.
课程表 C ( cno ,cname , cperiod) 该关系模式的码为cno, cname,设主码为cno,因为该关系模式中的码都是单一的,即不存在有两个或者两个以上的属性组成的码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为:cno->cname, cno->cperiod, cname ->cno ,cname ->
因为
cno -> cname,cname -> cperiod cno -> cperiod, 不能达到3NCF。故优化该表为:C1(cno,period),C2().从而两表都达到了3NCF。
专业表 P (pno,pname,pnum,pdept)
该关系模式的码为pno,pname,其中设定pno为主码。同课程表,该表不存在有两个或者两个以上属性组成的码,即不存在非主属性对码的部分函数依赖,故可达到2NCF。另外,此关系模式的函数依赖为:pno->pname, pno-> pnum, pno -> pdept , pname -> pno, pname->
pnum, pname -> pdept; 由于存在传递依赖:pno -> pnum., 所以未能达到3NCF。优化分解为:(pname,pnum,pdept)
明显,两表都达到了3NCF.
课程设置表PC(pno,psenior,cno),
该关系模式的码为:(pno,psenior,cno)为全码,所以可直接达到3NCF 学生选课表 SC(sno,psenior,cno,grade) 该关系模式的码为:(sno,psenior,cno),因为不存在非主性grade对码的部分函数依赖,所以可达到2NCF,由于不存在函数依赖(表中的函数依赖只有(sno,psenior,cno)-> grade)故也达到了3NCF
属于表 SP(sno,pno)
该关系模式的码(sno,pno)也是全码,所以也达到了3NCF
用户表 U(uname,upasw)
该表的码为uname,明显upasw对码uname是完全函数依赖的,从而达到2NCF。另外因为只有两个属性,所以不存在传递函数依赖,该表达到了3NCF
2.3.3物理结构设计
(1)基本表
课程表c2 专业表p1 专业表p2
课程设置表 pc
管理人员密码表u
(2)视图,索引
a.索引:本数据库中的表除了主键本身生成的主索引外,没有定义其他的索引。在查询时即引用主索引即可。
表s的主索引列为:sno 表c1的主索引列为:cno 表c2的主索引列为:cname 表p1的主索引列为:pno 表p2的主索引列为:pname
表sc的主索引列为:(pno,psenior,cno) 表sp的主索引列为:(sno,pno) 表u的主索引列为:uname
b.视图:虽然关系数据模型分析的结果表示该数据库需要定义不同的用户视图,但考虑到数据库与前台开发程序的连接比较复杂,所以该数据库中没有单独定义用户视图,不同的用户视图被有选择性的的select语句的结果集取.
2.3.4系统功能设计
3总体设计
3.1设计概述
根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能;
3.2系统总体结构及功能模块划分
经过对系统的需求分析,学生信息管理系统主要划分为三个部分:学生信息查询,学生信息管理,学生成绩录入三个功能模块。如图3.2.1 系统的总体结构。
图3.2.1 系统的总体结构
3.2.1学生信息查询模块
学生信息查询:学生可以根据学号、姓名、专业进行查询。如图3.2.2学生
信息查询模块结构。
图3.2.2 学生信息管理模块结构
3.2.2学生信息管理模块
学生信息管理:主要是用于学生信息更新、插入、删除,如图3.2.3学生管
图3.2.3 学生信息管理模块结构
3.4安全保密设计 3.4.1用户登录安全性
系统设计了登录界面,每个合法用户有用户名及一个密码,只有当用户输入正确的用户名及密码组合后才能够对学生信息进行操作。
4详细设计
4.1概述
详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
4.2系统程序流程图
程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。它可将整个程序的总体流程清楚明白的显示出来。如图4.2.1系统总流程图结构。
图4.2.1系统总体流程图
4.3系统主要功能模块简介 4.3.1系统登录
用户凭借用户名及密码登录,成功登录后可对学生信息进行操作。用户界面
如图4.3.1 用户登录界面所示。
图4.3.1 用户登录界面
4.3.2学生信息查询模块
学生信息查询:在程序主界面(如图4.3.2 程序主界面)学生可以根据学号、姓名进行查询。学生也可以只用一种条件进行信息查询,也可以多个条件查询。双击记录任一单元格可显示学生的更详细信息。
图4.3.2 程序主界面
4.3.3学生信息管理模块
学生信息管理:通过右击程序主界面的相应记录弹出的上下文菜单可对当前选定学生信息进行详细信息查询、修改信息、删除信息。更新时如果输入的学号不存在,可选择是否添加学生信息。通过程序主界面的新建信息记录可添加学生信息。
图4.3.4 上下文菜单
图4.3.6 学生信息增删改查界面
4.3.4管理员信息管理模块
管理员信息管理:通过右击程序主界面的相应记录弹出的上下文菜单可对当前选
定学生信息进行详细信息查询、修改信息、删除信息。更新时如果输入的学号不存在,
可选择是否添加学生信息。通过程序主界面的新建信息记录可添加学生信息。
图4.3.7管理员显示界面
图4.3.8 管理员添加界面
4.3.5管理员信息管理模块
教师信息管理:通过右击程序主界面的相应记录弹出的上下文菜单可对当前选定
学生成绩进行详细信息录入,更改。更新时如果输入的学号不存在,可选择是否添
加学生成绩。通过程序主界面的新建信息记录可添加学生成绩。
图4.3.9教师显示界面
5主要功能模块代码
5.1 公共类代码设计
namespace MySql {
public class mySql {
public String connectionString = @
Integrated Security=True;Connect Timeout=30;User Instance=True;
public bool flag; //指示有条该条记录 public System.Data.DataView table;
public void runSql() // 执行查询、删除SQL语句 {
using (SqlConnection connection = new SqlConnection(connectionString)) {
connection.Open();
SqlCommand cmdQuery = new SqlCommand(commondText,
connection);
SqlDataAdapter sda = new SqlDataAdapter(commondText, connection);
DataSet ds = new DataSet(); sda.Fill(ds);
if (commondText.IndexOf(
table = ds.Tables[0].DefaultView; }
connection.Close(); } }
public bool getFlag() //判断是否有该条记录 {
using (SqlConnection connection = new SqlConnection(connectionString)) {
connection.Open();
SqlCommand cmdQuery = new SqlCommand(commondText, connection);
SqlDataReader reader = cmdQuery.ExecuteReader(); if (reader.Read()) flag = true; else flag = false; reader.Close(); connection.Close(); return flag; } }
public String getContent(String require,String SNO) //获取视图表的的指定单元格内容 {
try {
commondText =
if (require ==
commondText =
if (require ==
commondText =
SqlDataAdapter sda = new SqlDataAdapter(commondText,
connectionString);
DataSet ds = new DataSet(); sda.Fill(ds); String result=
if(require==
int i=new int();
for (i=0; i
result = result+ds.Tables[0].Rows[i][require].ToString()+
result=ds.Tables[0].Rows[0][require].ToString().Trim(); return result; }
catch {
return
public void update() {//添加、更新语句 try {
using (SqlConnection connection = new SqlConnection(connectionString)) {
connection.Open(); SqlCommand cmdInsert = new SqlCommand(commondText, connection);
cmdInsert.ExecuteNonQuery(); connection.Close();
} }
catch(Exception ex) {
MessageBox.Show(ex.ToString(),
}
}
5.2 登录界面代码设计
private void login_Click(object sender, EventArgs e)
{//用户名及密码组合判断 if (username.Text.ToString().Trim() !=
mySql sql = new mySql();
sql.commondText =
bool temp = new bool(); temp = sql.getFlag(); if (temp) {
this.Visible = false;
mainface main = new mainface(this); main.Show(); } }
catch(Exception ex) {
MessageBox.Show(ex.ToString(),
} else {
MessageBox.Show(
5.3 查询模块代码设计
private void btQuery_Click(object sender, EventArgs e)
{
mySql query=new mySql();
if (sNInput.Text.Trim() ==
if (sNInput.Text.Trim() !=
if (sNInput.Text.Trim() !=
if (query.getFlag()) {
query.runSql();
dataGridView1.DataSource = query.table; }
else MessageBox.Show(
5.4 添加模块代码设计
private void addbtOK_Click(object sender, EventArgs e)
{
if (addStuNo.Text.Trim() !=
mySql sql = new mySql();
sql.commondText =
String temp = sql.table.Table.Rows[0][
String sexTemp=radioButton1.Checked ?
if (addStuCom.Text.ToString().Trim() ==
else comTemp = addStuCom.Text.ToString().Trim(); String birTemp=
if (addStuBir.Text.ToString().Trim() ==
else birTemp = addStuCom.Text.ToString().Trim(); sql.commondText =
+addStuNo.Text.ToString().Trim()+
+sexTemp+
if(score.Text.ToString().Trim()!=
sql.commondText =
+
this.Close(); } else {
MessageBox.Show(
private void AddNew_Load(object sender, EventArgs e) {//获取专业列表
mySql sql = new mySql();
sql.commondText =
SqlDataAdapter sda = new SqlDataAdapter(sql.commondText, sql.connectionString);
DataSet ds = new DataSet();
sda.Fill(ds);
listmn.DataSource = ds.Tables[0].DefaultView; listmn.DisplayMember =
listmn.DisplayMember = listmn.DisplayMember.ToString().Trim(); }
5.5 更新模块代码设计
private void upbtOK_Click(object sender, EventArgs e)
{
mySql sql = new mySql();
sql.commondText =
bool flagtemp = sql.getFlag();
if (!flagtemp) //如果表中无该条记录,提示是否进行添加新记录操作
{
if (MessageBox.Show(
if (upStuNo.Text.Trim() !=
mySql sqlme = new mySql();
sqlme.commondText =
String sexTemp = radioButton1.Checked ?
if (upStuCom.Text.ToString().Trim() ==
else comTemp = upStuCom.Text.ToString().Trim(); String birTemp;
if (upStuBir.Text.ToString().Trim() ==
else birTemp = upStuCom.Text.ToString().Trim();
sqlme.commondText =
+
upStuNo.Text.ToString().Trim() +
+ upStuName.Text.ToString().Trim() +
+ upStuMajor.Text.ToString().Trim() +
+ sexTemp +
if (upStuScore.Text.ToString().Trim() !=
sqlme.commondText =
+
sqlme.update(); }
this.Close(); } else {
MessageBox.Show(
if (upStuNo.Text.Trim() !=
sql.commondText =
String temp = sql.table.Table.Rows[0][
String sexTemp = radioButton1.Checked ?
if(upStuCom.Text.ToString().Trim()==
else comTemp=upStuCom.Text.ToString().Trim(); String birTemp;
if (upStuBir.Text.ToString().Trim() ==
else birTemp = upStuBir.Text.ToString().Trim();
sql.commondText =
+upStuMajor.Text.ToString().Trim()+
+sexTemp+
+ upStuBir.Text.ToString().Trim() +
+comTemp+
sql.update();
bool scFlag = new bool();
if (upStuScore.Text.ToString().Trim() !=
{
try
{
mySql scTemp = new mySql();
scTemp.commondText =
scTemp.runSql();
String cntemp = scTemp.table.Table.Rows[0][
scTemp.commondText =
if (scFlag)
{
sql.commondText =
sql.update();
}
}
catch
{
sql.commondText =
+
sql.update();
}
}
this.Close();
}
else
{
MessageBox.Show(
}
}
}
5.6 删除模块代码设计
private void 删除记录ToolStripMenuItem_Click(object sender, EventArgs e)
{
mySql del = new mySql();
String temp = this.dataGridView1.CurrentRow.Cells[0].Value.ToString();
if(MessageBox.Show(
{
del.commondText =
del.runSql();
del.commondText =
del.runSql();
this.dataGridView1.Rows.Remove(this.dataGridView1.CurrentRow);
}
}
结论
课程设计结束了,在老师和同学的帮助下,我们基本完成系统的设计。我们按照系统工程软件设计的要求,从需求分析,概念设计,总体设计,详细设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的学生信息查询,学生信息更新,学生信息添加等模块的功能。
在这我们收获如下:
1、巩固和加深了对C#的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深
入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:
1、认真上好专业实验课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信心,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。
参考文献
软件工程基础 汤淮 西安交通大学出版社
软件工程-----技术,方法与环境 王立福,张世琨,朱冰 编著 北京大学出版社
软件开发技术 倪秉营 电子科技大学出版社
软件工程 张权范 清华大学出版社