学生信息管理系统课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉工程大学
计算机科学与工程学院
课程设计报告
设计名称:《数据库原理及应用》课程设计
设计题目:学生信息管理系统
学生学号:
专业班级: 2013计算机工程01
学生姓名:何经纬
学生成绩:
指导教师(职称):刘黎志(副教授)
完成时间: 2016-1-6 武汉工程大学计算机科学与工程学院制
说明:
1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每
个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。
2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。
3、指导教师评语一栏由指导教师就学生在整个综合设计期间的表现、设
计完成情况、报告的质量及答辩等方面,给出客观、全面的评价。
4、所有学生必须参加综合设计的答辩环节。
凡不参加答辩者,其成绩一
律按不及格处理。
答辩小组成员应由2人及以上教师组成。
5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合
设计的情况另行规定。
6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。
7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适
用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。
答辩记录表
成绩评定表
学生姓名:何经纬学号:班级: 2013计算机工程01
目录
摘要
学生信息管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备、易使用、界面美观等特点。
本次开发使用了 Microsoft 公司的 visualstudio2010 开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
关键词:SQL2012;C#.NET;信息管理系统
Abstract
Student information management system is a typical information management system, Its development mainly includes the backstage database's establishment and maintenance as well as the onstage application procedure development. The former needs to establish a data consistency and integrity, data security database. The latter requires the application program function is complete, easy to use, the interface is beautiful and so on. The system uses the Microsoft company's visualstudio2010 development tools, using the various object-oriented development tools, Data window, in particular, First in a short period of time we build a prototype system application, then, the initial prototype system needs iteration, and constantly revised and improved, until the user satisfaction. Keywords:SQL2012; C#.NET; MIS
第一章绪论
需求分析
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。
面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。
通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。
语言
C#是发布的一种面向对象的、运行于之上的高级程序设计语言。
并定于在微软职业开发者论坛(PDC)上登台亮相。
C#是微软公司研究员Anders Hejlsberg的最新成果。
C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。
但是C#与Java有着明显的不同,它借鉴了Delphi 的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows 网络框架的主角。
C#是一种安全的、稳定的、简单的、优雅的,由C和衍生出来的的编程语言。
它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有以及不允许多重继承)。
C#综合了简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向编程的支持成为开发的首选语言。
C#是的编程语言。
它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的和服务来最大程度地开发利用计算与通讯领域。
数据库
SQL Server 是Microsoft 公司推出的关系型。
具有使用方便可伸缩性好与相关集成高等,可跨越从Microsoft Windows 98 的膝上型到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。
Microsoft SQL Server 是一个全面的数据库平台,使用的智能 (BI)提供了企业级的数据管理。
Microsoft SQL Server?为关系型数据和化数据提供了更安全的功能,使您可以和管理用于的高可用和高性能的数据。
开发工具特点
本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高。
本系统前台采用Microsoft 公司的Visual Studio 2010作为主要开发工具,可与SQL Server 2012数据库无缝链接。
第二章设计简介
系统流程图
该系统的流程图如图所示。
数据库设计
E-R图
通过E-R图分析,此学生成绩信息表中有2个表需要建立。
学生信息表(Student),包括学号(StudentId)、姓名(StudentName)、性别(Gender)、出生日期(Birthday)、身份证号(StudentIdNo)、年龄(Age)、手机号码(PhoneNumber)、家庭住址(StudentAddress)、卡号(CardNo)、班级号(ClassId)。
图学生信息表
专业班级表(StudentClass),包括班级号(ClassId),班级名称(ClassName)。
图专业班级表
第三章详细设计
创建数据库
建立std数据库SQL代码:
create database std
on (name = std,
FILENAME ='d:\')
LOG ON (name = std_Log ,
FILENAME ='d:\');
GO
create table StudentClass
(
ClassId int primary key,
ClassName varchar(20) not null
)
go
create table Students
(
StudentId int identity(100000,1),
StudentName varchar(20) not null,
Gender char(2) not null,
Birthday datetime not null,
StudentIdNo numeric(18,0) not null,
Age int not null,
PhoneNumber varchar(50),
StudentAddress varchar(500),
CardNo varchar(20) not null,
ClassId int not null
)
连接数据库
连接数据库代码如下:
string connString = "Server=.;DataBase=std;Uid=sa;Pwd=123456";
SqlConnection conn = new SqlConnection(connString);
登录界面设计
登录界面代码如下:
private void button1_Click(object sender, EventArgs e)
{
if == "123456" && == "123456")
{
("登陆成功,按确认键进入系统。
");
= ;
();
}
else
{
("密码错误!");
}
}
功能设计
添加学生信息
添加学生信息部分代码如下:
private void label2_Click(object sender, EventArgs e)
{
string connString =
"Server=.;DataBase=std;Uid=sa;Pwd=123456";
SqlConnection conn = new SqlConnection(connString);
string sql = "insert into
Students(StudentName,Gender,Birthday,StudentIdNo,Age,PhoneN
umber,StudentAddress,CardNo,ClassId)";
sql += "
values('{0}','{1}','{2}',{3},{4},'{5}','{6}','{7}',{8})";
Student objStudent = new Student()
{
};
sql = (sql, , , , , , , , , ;
SqlCommand cmd = new SqlCommand(sql, conn);
();
int result = ();
();
if (result == 1)
("添加成功!");
else
("添加失败!");
}
查询学生信息
查询学生信息部分代码如下:
private void button1_Click(object sender, EventArgs e)
{
string connString =
"Server=.;DataBase=std;Uid=sa;Pwd=123456";
SqlConnection conn = new SqlConnection(connString);
string sql = "select
StudentId,StudentName,Age,StudentIdNo,ClassName,Birthd
ay from Students";
sql += " inner join StudentClass on =";
SqlCommand cmd = new SqlCommand(sql, conn);
();
SqlDataReader objReader = ();
List<Student> list = new List<Student>();
while ())
{
(new Student()
{
StudentId =
(objReader["StudentId"]),
StudentName =
objReader["StudentName"].ToString(), Age = (objReader["Age"]),
ClassName =
objReader["ClassName"].ToString(), Birthday = (objReader["Birthday"])
});
}
();
();
}
删除学生信息
删除学生信息部分代码如下:
1、按班级删除
private void buttonDelete2_Click(object sender, EventArgs e)
{
string connString = "Server=.;DataBase=std;Uid=sa;Pwd=123456"; SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
();
int result = ();
if (result >= 1)
("删除成功!");
else
("无此学生信息!");
();
}
2、按学号删除
private void buttonDelete1_Click(object sender, EventArgs e)
{
string connString = "Server=.;DataBase=std;Uid=sa;Pwd=123456"; SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
();
int result = ();
if (result >= 1)
("删除成功!");
else
("无此学生信息!");
();
}
修改学生信息
修改学生信息部分代码如下:
private void Updatebutton_Click(object sender, EventArgs e)
{
string connString = "Server=.;DataBase=std;Uid=sa;Pwd=123456"; SqlConnection conn = new SqlConnection(connString);
string sql = "update Students set
StudentName='{0}',PhoneNumber={1},StudentAddress='{2}',Birthday
='{3}',ClassId={4},StudentIdNo='{5}',Gender='{6}'";
SqlCommand cmd = new SqlCommand(sql, conn);
();
int result = ();
();
if (result == 1)
("修改成功");
else
("修改失败");
}
第四章设计结果及分析
设计结果
4.1.1登录界面
登录界面运行截图如图所示。
图登录界面运行截图
4.1.2添加学生信息模块
添加学生信息运行截图如图所示。
图添加学生信息模块运行截图
添加后的学生信息可以在数据库找到,如图.所示。
图数据库信息截图
查询学生信息模块
查询学生信息运行截图如图所示。
图查询学生信息模块运行截图
删除学生信息模块
按学号删除学生信息运行截图如图所示。
图按学号删除学生信息模块运行截图
按班级删除学生信息运行截图如图所示。
图按班级删除学生信息模块运行截图
删除学生信息后数据库信息如图所示。
图删除学生信息后的数据库截图
修改学生信息模块
修改学生信息运行截图如图所示
图修改学生信息模块运行截图
设计分析
在设计登录界面时,由于使用了不适合的方法,导致在关闭程序时登录界面无法彻底关闭,造成程序无法再次运行,必须到任务管理器结束原程序进程才能使程序正常运行。
原错误程序如下:
private void button1_Click(object sender, EventArgs e)
{
if == "123456" && == "123456")
{
("登陆成功,按确认键进入系统。
");
();
FrmMain form = new FrmMain();
();
}
else
{
("密码错误!");
}
}
后来查询资料并对该部分的代码进行了修改,修改后的代码即为详细设计部分的登录界面代码,经过测试,登录界面可以彻底关闭,问题得以解决。
总结
这次课程设计差不多花了一周的时间,一周的时间有些仓促,自己原先设想好的部分功能没有实现,只是实现了基本的增、删、改、查功能,虽然有些小遗憾,但在做课程设计的时间里,我学会了很多东西,收获了很多。
在做课程设计的几天里,我上网搜集了很多相关资料,因为这次的课程设计是用C#和SQL完成的,我以前并没有学习过C#的相关知识,所以这次的课程设计是在一边学习、一边尝试的状态中进行的,遇到问题就查阅资料,实在自己不能解决的问题我会去向身边的同学求助,感谢同学们在这段时间给予我的帮助,最终通过不断的摸索,我初步完成了设计目标。
通过本次课程设计我明白了知识的获得是无止境的,只要想学,只要行动,没有什么是我们做不到的。
致谢
在这次课程设计过程中,我遇到了很多的问题,有的问题通过自己的努力可以得以解决,但有的问题实在是超出自己的能力范围,幸好有老师的悉心指导和同学们不厌其烦的讲解,这才使得我能顺利完成本次课程设计,在这里我向老师和同学表示衷心的感谢。
参考文献
[1] 黄明.C#+SQL Server中小型信息系统开发实例精选[M].机械工业出版社,2007
[2] 张跃廷,韩阳,张宏宇.C#数据库系统开发实例精选[M].人民邮电出版社,2007
[3] 王小科,吕双,梁冰.C#程序开发范例宝典.第二版[M].人民邮电出版社,2009
[4] 王珊,萨师煊.数据库系统概论 [M].高等教育出版社,2006
[5] 徐孝凯,贺佳英.数据库基础与SQL Server应用开发[M].清华大学出版社,2008。