学生信息管理系统报告及总结_第1页
学生信息管理系统报告及总结_第2页
学生信息管理系统报告及总结_第3页
学生信息管理系统报告及总结_第4页
学生信息管理系统报告及总结_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库课程设计说明书数据库系统课程设计报告题目:学生学籍信息管理系统 课程代号: 课程名称:数据库系统课程设计学号:姓名:班级: 指导教师: 完成日期:2011年12月目录第一章 引言4第二章 系统分析与设计4 2.1 需求分析.4 2.1.1 用户需求 4 2.1.2 划分功能模块.5 2.1.3 数据流图.5 2.1.4 数据字典.62.2 数据库概念结构设计.82.3 数据库逻辑结构设计92.3.1 关系模型10 2.3.1关系模式的优化.102.4 数据库创建.10 2.5 系统总体结构设计.12第三章 系统开发及实现123.1 连接数据库.123.1.1 连接数据库的字符串.12 3.1.2 打开和关闭数据库的语句133.2 登录界面.14 3.2.1 关键实现算法.143.2.2 设计算法163.3 主界面19 3.3.1 显示当前时间栏193.4权限设置.203.5修改登录密码.21第四章 总结.24参考文献.24第一章 引言21世纪是信息产业的时代,全球信息电子化的潮流势不可挡,计算机被广泛应用使我们的经济和社会生活因此发生了深刻的变革。与此同时,我国的教育事业蓬勃发展,升学率普遍提高,各类学校校规模不断扩大,对于学生管理工作的高效性和规范性提出了更高的要求。随着我国教育体制改革的深入进行,教育系统得到了前所未有的发展。学生管理正在逐步迈向管理信息现代化。但是我国的学生管理信息化水平还处在初级阶段,主要表现在对学生的交费管理、学生的档案管理还是采用原有的人工管理方式。学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。由于大学生类别和专业的设置的多样化,大学生的学籍管理历来是非常繁琐和复杂的工作。面对庞大的信息量, 这时的人工管理几乎无法实现,在这种情况下用数据库进行管理变的尤为必要,这可以发挥计算机的优势,就需要有学生信息管理系统来提高学生管理工作的效率.通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量和减少人为的错误。本文的设计是依据C#的“三层架构”的关键技术,参考了国内学校的学生学籍管理信息系统,并结合本学校的实际情况,提出“设计简单、使用方便、安全性高”的设计理念,且依据现代化校园的发展而设计的基于C#的学生学籍管理软件开发。系统分为学生信息管理、学生成绩管理、系统管理和用户管理三大模块,具备信息录入/修改/删除/查询、成绩录入/修改/删除/查询、添加/修改/删除系统用户和账户密码管理等功能。它能方便老师、学生查询信息。整体上实现了全校学生信息的数字化、信息化管理。该系统是在Windows XP系统下完全采用C#+SQL2008开发的一套学生学籍管理系统。用户需要到指定的计算机上使用本系统。第二章 系统分析与设计2.1需求分析2.1.1 用户需求本系统是针对高等院校的学生学籍管理,因此学籍信息管理系统的用户包括系统管理员和学生。主要涉及学生信息、成绩信息以及用户信息。实现的具体功能如下:l 基本信息管理系统管理员负责对各种基本信息的录入、修改、删除等操作。l 学生成绩管理系统管理员负责对学生成绩的录入、修改、删除等操作,学生可以查询各科成绩。l 信息查询学生可以查询基本信息和各科的考试成绩。l 系统用户管理系统管理员负责用不同的权限来限制不同用户对系统的使用。以上是用户对系统的基本的功能要求,此外用户还要求系统的效率要高,查询速度要快,比较小的冗余,易维护,具有较高的数据安全性。2.1.2 划分功能模块根据系统功能的需求分析和高等院校学籍管理的特点,经过模块化的分析得到如下系统功能模块:学生模块:查询成绩、选课信息教师模块:修改学生成绩、选课信息、查询成绩、选课信息管理员模块:修改用户权限、密码、修改学生成绩、选课信息、查询成绩、选课信息2.1.3数据流图学生管理员管理员学生记录成绩毕业送进信息录入查询计算统计更新录入新生?学生信息批准?成绩单批准?核对信息学生名单提交申请审核信息合格2.1.4 数据字典数据项数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果,数据字典是对系统所用到的所有表结构的描述,学籍管理的主要数据见下表。表 1. 学生基本信息表序号字段别名数据类型数据长度码1Stu_Id学生编号char8Y2Stu_Name姓名nvarchar10N3Stu_Gender性别nvarchar2N4Stu_Nation民族nvarchar10N5Stu_Birth出生年月nvarchar30N6Stu_Statuse状态nvarchar10N7Class_Id班级nvarchar10N8Stu_Remark备注nvarchar50N表 2 课程信息表序号字段别名数据类型数据长度码1Cour_Id课程号char6Y2Cour_Name课程名称nvarchar20N3Cour_Xuefen学分nchar10N4Cour_Collo学院nvarchar30N5Cour_Dept系别nvarchar10N6Cour_Teacher教师nvarchar10N7Cour_Remark备注nvarchar50N表 3 学生成绩信息表序号字段别名数据类型数据长度码1Stu_Id学生编号char8Y(PK)2Cour_Id课程号char6Y(PK)3Grade成绩intN 4Sco_Time考试时间datetimeN 表 4 用户信息表序号字段别名数据类型数据长度码1User_Name用户名nvarchar10Y2User_Pwd登陆密码nvarchar8N 3User_Statues状态nvarcharN 4User_Power权限nvarchar20N2.2数据库概念结构设计(给出E-R图)分的E-R图: 总的E-R图:2.3数据库逻辑结构设计(给出关系模式并用表格描述关系模式的属性名、类型、完整性约束等)将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体型间的联系则有以下不同的情况:(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的个实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的侯选码。如果与某一端实体对应的关系模式合并,则需要在关系模式的属性中加入另一个关系模式的码和联系本身的属性。(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的个各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。(3)一个m:n联系转换为一个关系模式。与该联系相连的个实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。(5)具有相同码的关系模式可合并。由ER图可见:图中有四个实体:学生,管理员,考试和科目;四个关系:管理员管理学生关系,学生选课关系,学生参加考试关系,科目与考试成绩的对应关系。2.3.1 关系模型将概念结构设计阶段设计好的基本E-R图转换为关系模型,如下所示:学生基本信息表: S(Stu_Id Stu_Name Stu_Gender Stu_Nation Stu_Birth Stu_Statuse Class_Id Stu_Remark)课程基本信息表:C(Cour_Id Cour_Name Cour_Xuefen Cour_Collo Cour_Dept Cour_Teacher Cour_Remark )学生成绩信息表:P (Stu_Id Cour_Id Grade Sco_Time )管理员信息表: U (User_Name User_Pwd User_Statues User_Power )对应的属性分别为:学生编号,姓名,性别,民族,出生年月,状态,班级,备注 课程号,课程名称,学分 ,学院 , 系别 ,教师,备注学生编号,课程号,成绩,考试时间用户名,登陆密码,状态,权限2.3.2关系模式的优化学生基本信息表: S(Stu_Id Stu_Name Stu_Gender Stu_Nation Stu_Birth Stu_Statuse Class_Id Stu_Remark)该关系模式的码为Stu_Id,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为: Stu_Id Stu_Name Stu_Id Stu_Gender Stu_Id Stu_Nation Stu_Id Stu_Birth Stu_Id Stu_Statuse Stu_Id Class_Id Stu_Id Stu_Remark ,其间不存在传递依赖,故学生表可达到3NCF. 2.4数据库创建(创建表的界面、创建外码的界面)Users 表:Student 表:Score 表:Course 表:2.5系统总体结构设计(给出系统总体结构图)学生学籍信息管理系统基本信息管理学生成绩管理系统用户管理基本信息删除基本信息修改基本信息录入学生成绩删除学生成绩修改学生成绩录入修改密码查询账户信息学生成绩查询基本信息查询增加用户删除用户第三章 系统开发及实现3.1连接数据库3.1.1连接数据库的字符串: private void DBConnect() conn = Data Source=.;Initial Catalog=StudentManage;Integrated Security=True; sqlconn = new SqlConnection(conn); 其中,. 为本机服务器名,StudentManage为数据库名。3.1.2 打开和关闭数据库的语句 根据参数传来的SQL语句,执行增、删、改操作;class DataAccess protected SqlConnection conn = new SqlConnection(Data Source=.;Initial Catalog=StudentManage;Integrated Security=True); public SqlDataReader GetReader(string sql) SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader myDataReader = null; try conn.Open(); myDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); catch (Exception ex) if (myDataReader != null) myDataReader.Close(); conn.Dispose(); cmd.Dispose(); throw new Exception(ex.ToString(); return myDataReader; 3.2登录界面3.2.1关键实现算法using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace StudentManage public partial class FrmLogin : Form public FrmLogin() InitializeComponent(); private void btnOK_Click(object sender, EventArgs e) if (this.txtName.Text = string.Empty) MessageBox.Show(请输入用户名!); this.txtName.Focus(); return; else if (this.txtPwd.Text = string.Empty) MessageBox.Show(请输入密码!); this.txtPwd.Focus(); return; else /设置数据库连接字符串 string connectionString = Data Source=.;Initial Catalog=StudentManage;Integrated Security=True; /建立连接 SqlConnection conn; conn = new SqlConnection(connectionString); conn.Open(); /读入所输入的用户名的密码 SqlCommand cmd; cmd = conn.CreateCommand(); String sql = select User_Name,User_Pwd from Users where (User_Name = + txtName.Text.Trim() + ); cmd.CommandText = sql; SqlDataReader myDataReader = cmd.ExecuteReader(); /判断用户是否存在 if (myDataReader.HasRows) MessageBox.Show(用户不存在,请重新输入!); /读取数据库中的内容,并与当前输入比较 while (myDataReader.Read() /判断用户输入与数据库内容是否匹配 if (myDataReaderUser_Pwd.ToString().Trim() != txtPwd.Text.Trim() MessageBox.Show(用户名密码不正确,请重新输入!); txtName.Focus(); return; FrmMain frmmain = new FrmMain(); frmmain.Show(); this.Hide(); myDataReader.Close(); conn.Close(); private void btnCancel_Click(object sender, EventArgs e) this.Close(); 3.2.2设计算法namespace StudentManage partial class FrmLogin / / Required designer variable. / private System.ComponentModel.IContainer components = null; / / Clean up any resources being used. / / true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) if (disposing & (components != null) components.Dispose(); base.Dispose(disposing); #region Windows Form Designer generated code / / Required method for Designer support - do not modify / the contents of this method with the code editor. / private void InitializeComponent() this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.txtName = new System.Windows.Forms.TextBox(); this.txtPwd = new System.Windows.Forms.TextBox(); this.btnOK = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button(); this.SuspendLayout(); / / label1 / this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(32, 51); this.label1.Name = label1; this.label1.Size = new System.Drawing.Size(53, 12); this.label1.TabIndex = 0; this.label1.Text = 用户名:; / / label2 / this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(34, 105); this.label2.Name = label2; this.label2.Size = new System.Drawing.Size(41, 12); this.label2.TabIndex = 1; this.label2.Text = 密码:; / / txtName / this.txtName.Location = new System.Drawing.Point(99, 48); this.txtName.Name = txtName; this.txtName.Size = new System.Drawing.Size(100, 21); this.txtName.TabIndex = 2; / / txtPwd / this.txtPwd.Location = new System.Drawing.Point(99, 102); this.txtPwd.Name = txtPwd; this.txtPwd.PasswordChar = *; this.txtPwd.Size = new System.Drawing.Size(100, 21); this.txtPwd.TabIndex = 3; / / btnOK / this.btnOK.Location = new System.Drawing.Point(34, 172); this.btnOK.Name = btnOK; this.btnOK.Size = new System.Drawing.Size(75, 23); this.btnOK.TabIndex = 4; this.btnOK.Text = 登录; this.btnOK.UseVisualStyleBackColor = true; this.btnOK.Click += new System.EventHandler(this.btnOK_Click); / / btnCancel / this.btnCancel.Location = new System.Drawing.Point(161, 172); this.btnCancel.Name = btnCancel; this.btnCancel.Size = new System.Drawing.Size(75, 23); this.btnCancel.TabIndex = 5; this.btnCancel.Text = 取消; this.btnCancel.UseVisualStyleBackColor = true; this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); / / FrmLogin / this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(284, 262); this.Controls.Add(this.btnCancel); this.Controls.Add(this.btnOK); this.Controls.Add(this.txtPwd); this.Controls.Add(this.txtName); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Name = FrmLogin; this.Text = FrmLogin; this.ResumeLayout(false); this.PerformLayout(); #endregion private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox txtName; private System.Windows.Forms.TextBox txtPwd; private System.Windows.Forms.Button btnOK; private System.Windows.Forms.Button btnCancel; 3.3主界面3.3.1显示当前时间栏关键代码:private void timer1_Tick(object sender, EventArgs e) toolStripStatusLabel2.Text =现在时间是:+ DateTime.Now.ToString(); 3.4权限设置关键算法:private string SetUserPowersByCheckBox() string powers = ; Char ch = new Char18; int i = 13; foreach (Control o in this.gbChecks.Controls) if (o.Name.Substring(0, 4) = check) if (CheckBox)o).Checked = true) chi = 1; else chi = 0; i-; foreach (Char c in ch) powers += c.ToString(); return powers; 3.5修改登录密码 在修改密码的时候,有一关键的算法就是得先验证原密码的正确性,这是为了防止他人改变用户的密码,这样保证了信息的安全性。关键算法:private void btnUpdate_Click(object sender, EventArgs e) if(txtNewPwd.Text.Trim().Length = 0|txtOldPwd.Text.Trim().Length = 0|txtNewPwdOk.Text.Trim().Length =0) MessageBox.Show(请输入完整信息!); txtOldPwd.Text = null; txtNewPwd.Text = null; txtNewPwdOk.Text = null; return; if(txtNewPwd.Text.Trim()!=txtNewPwdOk.Text.Trim() MessageBox.Show(两次密码输入不一样!重新输入!); txtOldPwd.Text = null; txtNewPwd.Text = null; txtNewPwdOk.Text = null; return; DBConnect(); DataTable dt = new DataTable(); string sql = select User_Name,User_Pwd from Users where User_Name= + comboBoxUser.Text.Trim() + and User_Pwd = + txtOldPwd.Text.Trim() + ; try SqlDataAdapter da = new SqlDataAdapter(sql, sqlconn); da.Fill(dt); comboBoxUser.DataSource = dt; comboBoxUser.DisplayMember = dt.ColumnsUser_Name.ToString(); catch(Exception Err) MessageBox.Show(Err.Message); if (dt.Rows.Count = 0) MessageBox.Show(原-密码输入错误!请重新输入!); txtOldPwd.Text = null; txtNewPwd.Text = null; txtNewPwdOk.Text = null; dt.Dispose(); else sql = update Users set User_Pwd = + txtNewPwd.Text.Trim() + where User_Name = + comboBoxUser.Text.Trim() + ; SqlCommand cmd = new SqlCommand(); cmd.CommandText = sql; cmd.Connection = sqlconn; try sqlconn.Open(); cmd.ExecuteNonQuery(); catch (Exception Err) MessageBox.Show(错误: + Err.Message, 错误提示:密码更新异常!, MessageBoxButtons.OK, MessageBoxIcon.Information); txtOldPwd.Text = null; txtNewPwd.Text = null; txtNewPwdOk.Text = null; finally sqlconn.Close(); txtOldPwd.Text = null; txtNewPwd.Text = null; txtNewPwdOk.Text = null; MessageBox.Show(密码更新成功!); comboBoxUser.Text = null; txtOldPwd.Text = null; txtNewPwd.Text = null; txtNewPwdOk.Text = null; 第四章 总结在设计一个系统的时候,前期的准备工作是非常重要的。前期的需求分析的好坏,很大程度得决定了整个系统的好坏,所以一定要做好需求分析。都说细节决定成败,这一点在系统设计的时候,更加体现了细节的重要性,看起来微不足道的东西,有时候甚至会影响整个系统,包括数据库的完整性,准确性,真实性。课程设计的过程中,遇到了很多困难,但通过我们的努力,在看了很多的参考书,也请教了同学后,最终顺利地完成了这个学生学籍信息管理系统。可能做的不是那么完善,但至少我们尽了最大的努力去做了。我一直都相信,付出不一定会有回报,但不付出,那就一定不会有回报。这次课程设计,学到了很多,感慨很多,有艰难,有疲惫,有烦恼,有努力,也有成功时的喜悦。总之,收获很多!参考文献(不少于5篇 )1 王小科 梁冰 吕双. C#开发典型模块大全 北京:人民邮电出版社, 2009;2 张健沛.数据库原理及应用系统开发M. 北京:水利水电出版社,1999;3 李瑞旭. ASP实例教程M. 北京:中国电力出版社,2000:360-4104 萨师煊等.数据库系统概略M北京:高等教育出版社,2001:90-3005 丁宝康 董健全 数据库使用教程M.北京.清华大学出版社,2003:12-2106 彭万波 景丽 周宏敏. ASP开发基础与范例M 北京:电子工业出版社 , 2001;7 志凌团队,陈世明,江高举. ASP从入门到精通M 北京:中国铁道出版社,2001.清水混凝土的配合比设计中,要针对当地水泥、砂石、外掺料及外加剂等原材料影响混凝土质量的多种因素进行分析,确定主要控制因素,并从经济性和使用要求综合考虑,优选出符合生产条件的最优方案组合。obstacles

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论