1、课程设计汇报 课程设计名称: 学生成绩管理系统 系部名称:中印计算机软件学院学生姓名: 班 级: 13级应1 学 号: 010700 成 绩: 指导老师: 开课时间:- 年第 二 学期 目 录第一章 绪论.11.1 设计目标.1.2 开发工具选择.1.3 开发环境.1.4 本汇报关键内容.第二章 需求分析.2.1系统需求介绍.12.1.1系统目标.2.1.2功效需求分析.22.1.3性能需求分析.2第三章 总体设计.23.1设计概述.23.2系统总体结构及功效模块划分.23.2.1学生信息查询模块.33.2.2学生信息管理模块.33.3系统数据库概念结构设计.43.3.1系统E-R图.43.3
2、.2系统数据库设计.43.4安全保密设计.53.4.1用户登录安全性.5第四章 具体设计.54.1概述.54.2系统程序步骤图.64.3系统关键功效模块介绍.64.3.1系统登录.64.3.2学生信息查询模块.74.3.3学生信息管理模块.8第五章 关键功效模块代码.105.1 公共类代码设计.105.2 登录界面代码设计.135.3 查询模块代码设计.155.4 添加模块代码设计.165.5 更新模块代码设计.185.6 删除模块代码设计.23第六章 课程设计心得.23第七章 参考文件.24 摘 要 本文描述是基于Windows环境学生信息管理系统,关键功效模块包含:学生信查询,学生信息管理
3、,学生成绩录入,关键工具Microsoft Visual Studio 设计窗体, SQL server建立数据库,实现学校信息管理各个功效。本篇汇报介绍一个学生信息管理系统从分析到设计最终到开发全过程为,给出了学生信息管理系统设计和技术实现过程,尤其在细节上分析功效和函数实现思想,包含到学生信息管理基础功效在本汇报中全部有对应描述。 第一章绪论1.1 设计目标 本课程设计目标是使学生能熟练掌握简单简单Windows窗体应用程序设计和ADO.net应用,期望经过此次课程设计锻炼学生使用C#语言处理实际问题能力。1.2 开发工具选择 本系统后台数据库采取Microsoft SQL Server
4、数据库,该数据库系统在安全性、正确性和运行速度方面有绝正确优势,而且处理数据量大,效率高;前台采取Microsoft 企业Visual Studio 作为关键开发工具,可和SQL Server 数据库无缝链接。1.3 开发环境系统开发平台:Microsoft Visual Studio系统开发语言:C#数据库管理软件:SQL Server 1.4 本汇报关键内容 本汇报具体介绍了学生信息管理系统开发过程,关键包含到工作以下:系统需求分析、系统总体设计、系统概念设计、系统各模块具体设计、系统运行和测试。 第二章析需求分析2.1.1系统目标依据查询条件实现学生信息查询学生选课信息查询、成绩信息查询
5、学生信息、课程信息、成绩信息增加、删除、修改对基础信息完成增加、删除、修改时,需注意表和表之间关联。2.1.2功效需求分析本系统功效需求分析以下:学生信息查询:学生能够依据学号、姓名、专业进行查询.学生信息管理:关键是用于学生信息更新、插入、删除;学生成绩录入:用于学生成绩管理,录入学生成绩,也能够更新。2.1.3性能需求分析登录、用户界面需求:简练、易懂、易用、友好用户界面。安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息管理等。 第三章总体设计3.1设计概述 依据需求把整个系统分化成不一样模块,每个模块完成一个特定子功效。把这些模块结合起来组成一个整体。逐一实现各个功效。3.2系
6、统总体结构及功效模块划分学生成绩录入学生信息管理学生信息管理系统学生信息查 经过对系统需求分析,学生信息管理系统关键划分为三个部分:学生信息查询,学生信息管理,学生成绩录入三个功效模块。图3.2.1 系统总体结构。 图3.2.1 系统总体结构3.2.1学生信息查询模块学生信息查询:学 生能够依据学号、姓名、专业进行查询。图3.2.2学生信息查询模块结构。学生信息查询学号查询姓名查询 图3.2.2 学生信息管理模块结构3.2.2学生信息管理模块学生信息管理:关键是用于学生信息更新、插入、删除,图3.2.3学生管理模块结构。基础信息录入成绩录入基础信息更新成绩更新学生信息删除学生信息录入学生信息管
7、理学生信息更新 图3.2.3 学生信息管理模块结构3.3系统数据库概念结构设计 依据对数据项和数据结构分析,设计出能够满足系统需求多种实体,及它们之间关系,为后面逻辑结构设计打下基础。3.3.1系统E-R图 系统E-R图能够将各个实体之间关系显示出来,将各个实体间属性依靠表示明白。图3.3.1系统E-R图结构。课程表成绩学号课程号号成绩表选课学生表学号姓名生日系名总成绩备注性别学分学生人数开课时间课程名课程号考评 图3.3.1系统E-R图结构3.3.2系统数据库设计综合以上分析,要实现上面全部功效模块,关键设计表以下: 表3.3.1 用户表(usedata) 表3.3.2成绩表(SC) 表3.
8、3.3课程表 (C) 表3.3.4学生表(S)3.4安全保密设计3.4.1用户登录安全性 系统设计了登录界面,每个正当用户有用户名及一个密码,只有当用户输入正确用户名及密码组合后才能够对学生信息进行操作。 第四章具体设计4.1概述 具体设计阶段根本目标是确定应该怎样具体实现所要求系统,也就是说,经过这个阶段设计工作,应该得出目标系统正确描述,从而在编码阶段能够把这个描述直接翻译成用某种程序设计语言书写程序。4.2系统程序步骤图 程序步骤图又称为程序框图,它是历史悠久使用最广泛描述软件设计方法。它可将整个程序总体步骤清楚明白显示出来。图4.2.1系统总步骤图结构。 图4.2.1系统总体步骤图 4
9、.3系统关键功效模块介绍4.3.1系统登录 用户凭借用户名及密码登录,成功登录后可对学生信息进行操作。用户界面图4.3.1 用户登录界面所表示。 图4.3.1 用户登录界面4.3.2学生信息查询模块 学生信息查询:在程序主界面(图4.3.2 程序主界面)学生能够依据学号、姓名进行查询。学生也能够只用一个条件进行信息查询,也能够多个条件查询。双击统计任一单元格可显示学生更具体信息(图4.3.3 具体信息窗口)。 图4.3.2 程序主界面 图4.3.3 具体信息窗口4.3.3学生信息管理模块 学生信息管理:经过右击程序主界面对应统计弹出上下文菜单(图4.3.4 上下文菜单)可对目前选定学生信息进行
10、具体信息查询(图4.3.3 具体信息窗口)、修改信息(图4.3.5 修改信息窗口)、删除信息(图 4.3.6 删除信息提醒)。更新时假如输入学号不存在,可选择是否添加学生信息。经过程序主界面新建信息统计可添加学生信息(图 4.3.7 添加信息窗口)。 图4.3.4 上下文菜单 图4.3.5 修改信息窗口 图4.3.6 删除信息提醒 图4.3.7 添加信息窗口 第五章关键功效模块代码5.1 公共类代码设计 namespace MySql public class mySql public String connectionString = SERVER=.SQLEXPRESS;AttachDbF
11、ilename=D:学习C#课程设计StuScoreManSystemStuScoreManSystemStuScoManSys.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True; public String commondText; public bool flag; /指示有条该条统计 public System.Data.DataView table; public void runSql() / 实施查询、删除SQL语句 using (SqlConnection connection = new Sql
12、Connection(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(SELECT) = 0) table = ds.Tables0.DefaultView; connection.C
13、lose(); 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.C
14、lose(); connection.Close(); return flag; public String getContent(String require,String SNO) /获取视图表指定单元格内容 try commondText = SELECT + require + FROM detail WHERE 学号= + SNO; if (require = up课程名称) commondText = SELECT 课程名称 FROM detail WHERE 学号= + SNO; if (require = up成绩) commondText = SELECT 成绩 FROM d
15、etail WHERE 学号= + SNO; SqlDataAdapter sda = new SqlDataAdapter(commondText, connectionString); DataSet ds = new DataSet(); sda.Fill(ds); String result=; if(require=课程名称|require=成绩) int i=new int(); for (i=0; i ds.Tables0.Rows.Count; i+) result = result+ds.Tables0.Rowsirequire.ToString()+n; else resu
16、lt=ds.Tables0.Rows0require.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(); connect
17、ion.Close(); catch(Exception ex) MessageBox.Show(ex.ToString(), 提醒); 5.2 登录界面代码设计 private void login_Click(object sender, EventArgs e) /用户名及密码组合判定 if (username.Text.ToString().Trim() != & password.Text.ToString().Trim() != ) mySql sql = new mySql(); mondText = SELECT * FROM userdata WHERE USERNAME=
18、+ username.Text.ToString().Trim() + AND PASSWORD= + password.Text.ToString().Trim() + ; try 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(请输入用户
19、名和密码,提醒); 5.3 查询模块代码设计 private void btQuery_Click(object sender, EventArgs e) mySql query=new mySql(); if (sNInput.Text.Trim() = & sNoinput.Text.Trim()!=) mondText = SELECT SNO AS 学号,SN AS 姓名,MN AS 专业名称,SEX AS 性别,BIRDAY AS 出生日期,TS AS 总学分,COM AS 备注 FROM S WHERE SNO=+sNoinput.Text.Trim()+; if (sNInput
20、.Text.Trim() != & sNoinput.Text.Trim() = ) mondText = SELECT SNO AS 学号,SN AS 姓名,MN AS 专业名称,SEX AS 性别,BIRDAY AS 出生日期,TS AS 总学分,COM AS 备注 FROM S WHERE SN= +sNInput.Text.Trim()+ ; if (sNInput.Text.Trim() != & sNoinput.Text.Trim() != ) mondText = SELECT SNO AS 学号,SN AS 姓名,MN AS 专业名称,SEX AS 性别,BIRDAY AS
21、出生日期,TS AS 总学分,COM AS 备注 FROM S WHERE SN= + sNInput.Text.Trim() + and SNO= + sNoinput.Text.Trim() + ; if (sNInput.Text.Trim() = & sNoinput.Text.Trim() = ) MessageBox.Show(您输入信息为空,请重新输入!, 错误信息); else if (query.getFlag() query.runSql(); dataGridView1.DataSource = query.table; else MessageBox.Show(您查找信
22、息不存在, 错误信息); 5.4 添加模块代码设计 private void addbtOK_Click(object sender, EventArgs e) if (addStuNo.Text.Trim() != & addStuName.Text.Trim() != & addStuMajor.Text.Trim()!=) mySql sql = new mySql(); mondText = SELECT CNO FROM C WHERE CN= + listmn.Text.ToString().Trim()+ ; sql.runSql(); String temp = sql.tab
23、le.Table.Rows0CNO.ToString(); String sexTemp=radioButton1.Checked ? 男:女; String comTemp; if (addStuCom.Text.ToString().Trim() = ) comTemp = ; else comTemp = addStuCom.Text.ToString().Trim(); String birTemp= ; if (addStuBir.Text.ToString().Trim() = ) comTemp = ; else birTemp = addStuCom.Text.ToString().Trim(); mondText = INSERT INTO S (SNO,SN,MN,SEX,BIRDAY,COM) VALUES( +addStuNo.Text.ToString().Trim()+, +addStuName.Text.ToString().Trim()+, +addStuMajor.Text.ToString().Trim()+, +sexTemp+, +birTemp+, +comTemp+); sql.update(); if(score.Text.ToString().Trim()!=) mondText =