C#实验报告最新版.doc_第1页
C#实验报告最新版.doc_第2页
C#实验报告最新版.doc_第3页
C#实验报告最新版.doc_第4页
C#实验报告最新版.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

C#课程设计 安徽工业大学计算机学院 姓 名: 专 业:计算机科学与技术 班 级:计 134 班 学 号: 指导教师:李 伟 . 部分内容来源于网络,有侵权请联系删除! 目录目录 : 一 绪 论3 1.1 设计目的 1.2 开发工具选择 1.3 开发环境 1.4 本报告的主要内容 二 需求分析3 2.1 系统需求简介 2.2 系统目标 三 总体设计4 3.1 设计概述 3.2 系统总体结构及功能模块划分 3.3 系统数据库概念结构设计 3.4 安全保密设计 四 详细设计7 4.1 概述 4.2 系统程序流程图 4.3 系统登录 五 主要功能模块代码12 5.1 公共类代码设计 5.2 登录界面代码设计 5.3 查询模块代码设计 5.4 添加模块代码设计 5.5 更新模块代码设计 5.6 删除模块代码设计 六 课程设计心得23 七 实验指导书、参考书23 . 部分内容来源于网络,有侵权请联系删除! 摘摘 要要 本文描述的是基于 Windows 环境的学生信息管理系统!主要功能模块包括,学生信查 询!学生信息管理!学生成绩录入,主要工具 Microsoft Visual Studio 2010 设计窗体, SQL server2005 建立数据库,实现学校信息管理的各个功能。 本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程为!给出了 学生信息管理系统的设计和技术实现的过程!特别在细节上分析功能和函数的实现思想。 涉及到学生信息管理的基本功能在本报告中都有相应的描述。 一、绪一、绪 论论 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.1 系统需求简介 2.1.1 系统目标 (1) 根据查询条件实现学生信息的查询 (2) 学生选课信息查询、成绩信息的查询 (3) 学生信息、课程信息、成绩信息的增加、删除、修改 . 部分内容来源于网络,有侵权请联系删除! (4) 对基本信息完成增加、删除、修改时!需注意表与表之间的关联 2.1.2 功能需 求分析 本系统的功能需求分析如下, (1) 学生信息查询,学生可以根据学号、姓名、专业进行查询. (2) 学生信息管理,主要是用于学生信息更新、插入、删除( (3) 学生成绩录入,用于学生成绩管理!录入学生成绩!也可以更新( 2.1.3 性能需 求分析 (1) 登录、用户界面需求,简洁、易懂、易用、友好的用户界面。 (2) 安全保密性需求,只有凭借用户名和密码登陆系统!才能进行信息的管理等。 三、三、 总体设计总体设计 3.1 设计概述 根据需求把整个系统分化成不同的模块!每个模块完成一个特定的子功能。把这些模 块结合起来组成一个整体。逐一实现各个功能. 3.2 系统总体结构及功能模块划分 经过对系统的需求分析!学生信息管理系统主要划分为三个部分,学生信息查询!学 生信息管理!学生成绩录入三个功能模块。如图 3.2.1 系统的总体结构。 学生信息管理系统 学 生 信 息 查 询 学 生 信 息 管 理 学 生 成 绩 录 入 . 部分内容来源于网络,有侵权请联系删除! 图 3.2.1 系统的总体结构。 学生信息查询,学生可以根据学号、姓名、专业进行查询。如图 3.2.2 学生信息查询模 块结构。 3.2.2 学生信息管理模块 学生信息管理,主要是用于学生信息更新、插入、删除!如图 3.2.3 学生管理模块结构。 . 部分内容来源于网络,有侵权请联系删除! 图 3.2.3 学生信息管理模块结构 3.3 系统数据库概念结构设计 根据对数据项与数据结构的分析!设计出能够满足系统需求的各种实体!及它们之间 的关系!为后面的逻辑结构设计打下基础。 3.3.1 系统 E-R 图 系统 E-R 图可以将各个实体之间的关系显示出来!将各个实体间的属性依赖表示明白。 如图 3.3.1 系统 E-R 图结构。 . 部分内容来源于网络,有侵权请联系删除! 3.3.2 系统数据库的设计 综合以上分析!要实现上面的所有功能模块!主要设计表如下, 表 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 系统程序流程图 程序流程图又称为程序框图!它是历史悠久使用最广泛的描述软件设计的方法。它可 将整个程序的总体流程清楚明白的显示出来。如图 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 学生信息管理模块 学生信息管理,通过右击程序主界面的相应记录弹出的上下文菜单(如图 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 public 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 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(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 = 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 = 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); 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 result=ds.Tables0.Rows0require.ToString().Trim(); return result; catch return 无; 13 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() != mondText = SELECT * FROM userdata WHERE USERNAME= + 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(请输入用户名和密码,提示); 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 (sNInput.Text.Trim() = else 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() != mondText = SELECT CNO FROM C WHERE CN= + listmn.Text.ToString().Trim()+ ; sql.runSql(); String temp = sql.table.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 = INSERT INTO SC(SNO,CNO,SCORE) VALUES (+addStuNo.Text.ToString().Trim() +,+temp+,+score.Text.ToString().Trim()+); sql.update(); this.Close(); Else MessageBox.Show(学号、姓名和专业名称都不可以为空(,错误(); 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; 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 = sql.getFlag(); if (!flagtemp) /如果表中无该条记录!提示是否进行添加新记录操作 if (MessageBox.Show(查无当前记录!无法进行更新操作(n 是否进行添 加新记录的操作;, 提示, MessageBoxButtons.OKCancel) = DialogResult.OK) if (upStuNo.Text.Trim() != mondText = SELECT CNO FROM C WHERE CN= + listmn.Text.ToString().Trim() + ; sqlme.runSql(); String temp = sqlme.table.Table.Rows0CNO.ToString();/课程 号 String sexTemp = radioButton1.Checked ? 男 : 女; 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 = INSERT INTO S (SNO,SN,MN,SEX,BIRDAY,COM) VALUES( + upStuNo.Text.ToString().Trim() + , + upStuName.Text.ToString().Trim() + , + upStuMajor.Text.ToString().Trim() + , + sexTemp + , . 部分内容来源于网络,有侵权请联系删除! + birTemp + , + 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() + ); sqlme.update(); this.Close(); else MessageBox.Show(学号、姓名和专业名称都不可以为空(, 错误(); else if (upStuNo.Text.Trim() != sql.runSql(); String temp = sql.table.Table.Rows0CNO.ToString();/获取课程号 String sexTemp = radioButton1.Checked ? 男 : 女; String comTemp; if(upStuCom.Text.ToString().Trim()=) . 部分内容来源于网络,有侵权请联系删除! comTemp= ; else comTemp=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.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().Trim() != ) try mySql scTemp = new mySql(); scTmondText = SELECT CNO FROM C WHERE CN= + listmn.Text.ToString().Trim() + ; scTemp.runSql(); String cntemp = scTemp.table.Table.Rows0CNO.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() + WHERE SNO= + upStuNo.Text.ToString().Trim() + AND CNO= + temp; . 部分内容来源于网络,有侵权请联系删除! sql.update(); catch mondText = INSERT INTO SC(SNO,CNO,SCORE) VALUES ( + upStuNo.Text.ToString().Trim() + , + temp + , + upStuScore.Text.ToString().Trim() + ); sql.update(); this.Close(); else MessageBox.Show(学号、姓名和专业名称都不可以为空(, 错误( ); 5.6 删除模块代码设计 private void 删除记录 ToolStripMenuItem_Click(object sender,

温馨提示

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

评论

0/150

提交评论