C#学生成绩管理系统课程设计报告_第1页
C#学生成绩管理系统课程设计报告_第2页
C#学生成绩管理系统课程设计报告_第3页
C#学生成绩管理系统课程设计报告_第4页
C#学生成绩管理系统课程设计报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、C#课程设计报告2015年1月1日目录第一章 绪论11.1 设计目的11.2 开发工具选择11.3 开发环境11.4 本报告的主要内容1第二章 需求分析22.1系统需求简介22.1.1系统目标22.1.2功能需求分析22.1.3性能需求分析2第三章 总体设计33.1设计概述33.2系统总体结构及功能模块划分33.2.1学生信息查询模块33.2.2学生信息管理模块43.3系统数据库概念结构设计43.3.1系统E-R图43.3.2系统数据库的设计53.4安全保密设计63.4.1用户登录安全性6第四章 详细设计74.1概述74.2系统程序流程图74.3系统主要功能模块简介84.3.1系统登录84.3

2、.2学生信息查询模块84.3.3学生信息管理模块9第五章 主要功能模块代码115.1 公共类代码设计115.2 登录界面代码设计135.3 查询模块代码设计145.4 添加模块代码设计155.5 更新模块代码设计165.6 删除模块代码设计19第六章 课程设计心得20第一章 绪论1.1 设计目的本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和ADO.net的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。1.2 开发工具选择本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势

3、,并且处理数据量大,效率高;前台采用Microsoft 公司的Visual Studio 2008作为主要开发工具,可与SQL Server 2005数据库无缝链接。1.3 开发环境系统开发平台:Microsoft Visual Studio2005系统开发语言:C#数据库管理软件:SQL Server 20051.4 本报告的主要内容本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:系统的需求分析、系统的总体设计、系统的概念设计、系统各模块的详细设计、系统运行与测试。第二章 需求分析2.1系统需求简介2.1.1系统目标(1) 根据查询条件实现学生信息的查询(2) 学生选课信

4、息查询、成绩信息的查询(3) 学生信息、课程信息、成绩信息的增加、删除、修改(4) 对基本信息完成增加、删除、修改时,需注意表与表之间的关联2.1.2功能需求分析本系统的功能需求分析如下:(1) 学生信息查询:学生可以根据学号、姓名、专业进行查询.(2) 学生信息管理:主要是用于学生信息更新、插入、删除;(3) 学生成绩录入:用于学生成绩管理,录入学生成绩,也可以更新;2.1.3性能需求分析(1) 登录、用户界面需求:简洁、易懂、易用、友好的用户界面。(2) 安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管理等。第三章 总体设计3.1设计概述根据需求把整个系统分化成不同的模块,每

5、个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能;3.2系统总体结构及功能模块划分学生成绩录入学生信息管理学生信息管理系统学生信息查询经过对系统的需求分析,学生信息管理系统主要划分为三个部分:学生信息查询,学生信息管理,学生成绩录入三个功能模块。如图3.2.1 系统的总体结构。图3.2.1 系统的总体结构3.2.1学生信息查询模块学生信息查询学号查询姓名查询学生信息查询:学生可以根据学号、姓名、专业进行查询。如图3.2.2学生信息查询模块结构。图3.2.2 学生信息管理模块结构3.2.2学生信息管理模块基本信息录入成绩录入基本信息更新成绩更新学生信息删除学生信息录入

6、学生信息管理学生信息更新学生信息管理:主要是用于学生信息更新、插入、删除,如图3.2.3学生管理模块结构。图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系统数据库的设计综合以上分析,要实现上面的所有

7、功能模块,主要设计表如下: 表3.3.1 用户表(usedata)表3.3.2成绩表(SC)表3.3.3课程表 (C)表3.3.4学生表(S)3.4安全保密设计3.4.1用户登录安全性系统设计了登录界面,每个合法用户有用户名及一个密码,只有当用户输入正确的用户名及密码组合后才能够对学生信息进行操作。第四章 详细设计4.1概述详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。4.2系统程序流程图程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的

8、方法。它可将整个程序的总体流程清楚明白的显示出来。如图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.3 详细信息窗口)。图4.3.2 程序主界面图4.3.3 详细信息窗口4.3.3学生信息管理模块学

9、生信息管理:通过右击程序主界面的相应记录弹出的上下文菜单(如图4.3.4 上下文菜单)可对当前选定学生信息进行详细信息查询(如图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 publ

10、ic String connectionString = "SERVER=.SQLEXPRESS;AttachDbFilename=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 v

11、oid 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 (commondT

12、ext.IndexOf("SELECT") >= 0) table = ds.Tables0.DefaultView; connection.Close(); public bool getFlag() /判断是否有该条记录 using (SqlConnection connection = new SqlConnection(connectionString) connection.Open(); SqlCommand cmdQuery = new SqlCommand(commondText, connection); SqlDataReader reader =

13、 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 = "SELECT " + require + " FROM detail WHERE 学号=" + SNO; if (require =

14、"up课程名称") commondText = "SELECT 课程名称 FROM detail WHERE 学号=" + SNO; if (require = "up成绩") commondText = "SELECT 成绩 FROM detail WHERE 学号=" + SNO; SqlDataAdapter sda = new SqlDataAdapter(commondText, connectionString); DataSet ds = new DataSet(); sda.Fill(ds); St

15、ring 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 result=ds.Tables0.Rows0require.ToString().Trim(); return result; catch return "无" p

16、ublic 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(), "提示"

17、); 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='" + username.Text

18、.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(),"提

19、示"); else MessageBox.Show("请输入用户名和密码","提示"); 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 专业名

20、称,SEX AS 性别,BIRDAY AS 出生日期,TS AS 总学分,COM AS 备注 FROM S WHERE SNO="+sNoinput.Text.Trim()+"" 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 W

21、HERE SN='" +sNInput.Text.Trim()+ "'" 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 SN='" + sNInput.Text.Trim() +

22、"' and SNO=" + sNoinput.Text.Trim() + "" if (sNInput.Text.Trim() = "" && sNoinput.Text.Trim() = "") MessageBox.Show("您输入的信息为空,请重新输入!", "错误信息"); else if (query.getFlag() query.runSql(); dataGridView1.DataSource = query.table; els

23、e MessageBox.Show("您查找的信息不存在", "错误信息"); 5.4 添加模块代码设计 private void addbtOK_Click(object sender, EventArgs e) if (addStuNo.Text.Trim() != "" && addStuName.Text.Trim() != ""&& addStuMajor.Text.Trim()!="") mySql sql = new mySql(); mondTex

24、t = "SELECT CNO FROM C WHERE CN='" + listmn.Text.ToString().Trim()+ "'" sql.runSql(); String temp = sql.table.Table.Rows0"CNO".ToString(); String sexTemp=radioButton1.Checked ? "男":"女" String comTemp; if (addStuCom.Text.ToString().Trim() = &q

25、uot;") 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) VA

26、LUES(" +addStuNo.Text.ToString().Trim()+",'" +addStuName.Text.ToString().Trim()+"','" +addStuMajor.Text.ToString().Trim()+"','" +sexTemp+"','" +birTemp+"','" +comTemp+"');" sql.update(); if(score

27、.Text.ToString().Trim()!="") mondText = "INSERT INTO SC(SNO,CNO,SCORE) VALUES ("+addStuNo.Text.ToString().Trim() +","+temp+","+score.Text.ToString().Trim()+");" sql.update(); this.Close(); else MessageBox.Show("学号、姓名和专业名称都不可以为空!","错误!&

28、quot;); private void AddNew_Load(object sender, EventArgs e) /获取专业列表 mySql sql = new mySql(); mondText = "SELECT DISTINCT CN FROM C" SqlDataAdapter sda = new SqlDataAdapter(mondText, sql.connectionString); DataSet ds = new DataSet(); sda.Fill(ds); listmn.DataSource = ds.Tables0.DefaultView

29、; listmn.DisplayMember = "CN" listmn.DisplayMember = listmn.DisplayMember.ToString().Trim(); 5.5 更新模块代码设计 private void upbtOK_Click(object sender, EventArgs e) mySql sql = new mySql(); mondText = "SELECT 学号 FROM detail WHERE 学号="+upStuNo.Text.ToString().Trim(); bool flagtemp = sq

30、l.getFlag(); if (!flagtemp) /如果表中无该条记录,提示是否进行添加新记录操作 if (MessageBox.Show("查无当前记录,无法进行更新操作!n是否进行添加新记录的操作?", "提示", MessageBoxButtons.OKCancel) = DialogResult.OK) if (upStuNo.Text.Trim() != "" && upStuName.Text.Trim() != "" && upStuMajor.Text.Trim

31、() != "") mySql sqlme = new mySql(); mondText = "SELECT CNO FROM C WHERE CN='" + listmn.Text.ToString().Trim() + "'" sqlme.runSql(); String temp = sqlme.table.Table.Rows0"CNO".ToString();/课程号 String sexTemp = radioButton1.Checked ? "男" : &quo

32、t;女" String comTemp; if (upStuCom.Text.ToString().Trim() = "") comTemp = " " else comTemp = upStuCom.Text.ToString().Trim(); String birTemp; if (upStuBir.Text.ToString().Trim() = "") birTemp = " " else birTemp = upStuCom.Text.ToString().Trim(); mondText =

33、 "INSERT INTO S (SNO,SN,MN,SEX,BIRDAY,COM) VALUES(" + upStuNo.Text.ToString().Trim() + ",'" + upStuName.Text.ToString().Trim() + "','" + upStuMajor.Text.ToString().Trim() + "','" + sexTemp + "','" + birTemp + "',&

34、#39;" + comTemp + "');" sqlme.update(); if (upStuScore.Text.ToString().Trim() != "") mondText = "INSERT INTO SC(SNO,CNO,SCORE) VALUES (" + upStuNo.Text.ToString().Trim() + "," + temp + "," + upStuScore.Text.ToString().Trim() + ");"

35、 sqlme.update(); this.Close(); else MessageBox.Show("学号、姓名和专业名称都不可以为空!", "错误!"); else if (upStuNo.Text.Trim() != "" && upStuName.Text.Trim() != "" && upStuMajor.Text.Trim() != "") mondText = "SELECT CNO FROM C WHERE CN='"

36、; + listmn.Text.ToString().Trim() + "'" sql.runSql(); String temp = sql.table.Table.Rows0"CNO".ToString();/获取课程号 String sexTemp = radioButton1.Checked ? "男" : "女" String comTemp; if(upStuCom.Text.ToString().Trim()="") comTemp=" " else c

37、omTemp=upStuCom.Text.ToString().Trim(); String birTemp; if (upStuBir.Text.ToString().Trim() = "") birTemp = " " else birTemp = upStuBir.Text.ToString().Trim(); mondText = "UPDATE S SET SN='" + upStuName.Text.ToString().Trim() + "',MN='" +upStuMajor

38、.Text.ToString().Trim()+"',SEX='" +sexTemp+"',BIRDAY='" + upStuBir.Text.ToString().Trim() + "',COM='" +comTemp+"' WHERE SNO="+upStuNo.Text.ToString().Trim(); sql.update(); bool scFlag = new bool(); if (upStuScore.Text.ToString().Tri

39、m() != "") try mySql scTemp = new mySql(); scTmondText = "SELECT CNO FROM C WHERE CN='" + listmn.Text.ToString().Trim() + "'" scTemp.runSql(); String cntemp = scTemp.table.Table.Rows0"CNO".ToString();/获取课程号 scTmondText = "SELECT SNO FROM SC WHERE SNO=" + upStuNo.Text.ToString().Trim() + " AND CNO=" + cntemp; scFlag = scTemp.getFlag(); if (scFlag) mondText = "UPDATE SC SET SCORE='" + upStuScore.Text.ToString().Trim() + "'

温馨提示

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

评论

0/150

提交评论