

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C#程序设计 课程设计报告(20122013学年 第2学期)题目:学生成绩信息管理系统专业:计算机应用班级:11 计应姓名学号:1102040027指导教师:成绩:2012年12月17日目录摘 要 1第一章绪论 11.1 设计目的 11.2 开发工具选择 11.3 开发环境 11.4 本报告的主要内容2第二章需求分析 22.1 系统需求简介 22.1.1 系统目标 22.1.2 功能需求分析 22.1.3 性能需求分析 2第三章总体设计 33.1 设计概述 33.2 系统总体结构及功能模块划分33.2.1 学生信息查询模块33.2.2学生信息管理模块 33.3 系统数据库概念结构设计 33.3
2、.1系统 E-R 图 33.3.2系统数据库的设计 43.4 安全保密设计 43.4.1 用户登录安全性 4 第四章 详细设计 44.1 概述 44.2 系统程序流程图 44.3 系统主要功能模块简介 54.3.1 系统登录 54.3.2 学生信息查询模块 54.3.3 学生信息管理模块 5第五章 主要功能模块代码 65.1 公共类代码设计 65.2 登录界面代码设计 85.3 查询模块代码设计 95.4 添加模块代码设计 95.5 更新模块代码设计 115.6 删除模块代码设计 13 第六章 课程设计心得 14 第七章 设计日志 15C#学生成绩管理系统摘要本文描述的是基于Windows环境
3、的学生信息管理系统,主要功能模块包 括:学生信查询,学生信息管理,学生成绩录入,主要工具Microsoft Visual Studio 2010设计窗体,SQLserver2005建立数据库,实现学校信息管理的各个 功能。本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程 为,给出了学生信息管理系统的设计和技术实现的过程,特别在细节上分析功 能和函数的实现思想。涉及到学生信息管理的基本功能在本报告中都有相应的 描述。第一章绪 论1.1 设计目的本课程设计的目的是使学生能熟练掌握简单的简单Win dows窗体应用程序 的设计和ADO.net的应用,希望通过本次课程设计锻炼学生使用C
4、#语言解决实 际问题的能力。1.2 开发工具选择本系统后台数据库采用 Microsoft SQL Server 数据库,该数据库系统在安全性、准确性 和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用 Microsoft 公司的 Visual Studio 2005作为主要开发工具,可与 SQL Server 2005 数据库无缝链接。1.3 开发环境系统开发平台: Microsoft Visual Studio2005 系统开发语言: C#数据库管理软件: SQL Server 20051.4 本报告的主要内容本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如 下:
5、系统的需求分析、系统的总体设计、系统的概念设计、系统各模块的详细 设计、系统运行与测试。第二章需求分析2.1 系统需求简介2.1.1系统目标(1)根据查询条件实现学生信息的查询(2)学生选课信息查询、成绩信息的查询(3)学生信息、课程信息、成绩信息的增加、删除、修改(4)对基本信息完成增加、删除、修改时,需注意表与表之间的关联2.1.2功能需求分析本系统的功能需求分析如下:(1)学生信息查询:学生可以根据学号、姓名、专业进行查询.(2)学生信息管理:主要是用于学生信息更新、插入、删除;(3)学生成绩录入:用于学生成绩管理,录入学生成绩,也可以更 新;2.1.3性能需求分析(1)登录、用户界面需
6、求:简洁、易懂、易用、友好的用户界面。(2)安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管 理等。第三章总体设计3.1 设计概述根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能;3.2 系统总体结构及功能模块划分经过对系统的需求分析,学生信息管理系统主要划分为三个部分:学生信息查询,学生信息管理,学生成绩录入三个功能模块。如图3.2.1系统的总体结构。图学2生系息的3.2.1学生信息查询模块图3.3学生信息管理模块结构系统.E-R图可以将各个实体之间的关系显示出来,将各个实体间的属性依学生信息查询学学生可以根据学
7、信息查询模块结。生信息学、|姓名、 专业进行查询 生图3.2.2学生信息管理模块结构3.2.2学生信息管理模块 学生信息管管理模块结构。日,用于学R理息是学学 生成 绩录 删除,如图。如图3.2.2学生3.2.3学生3.3系统数据库概念结构设生殳学生根据对数据项与数据结构的分信,学生设计出能够满足系统需求的各种实体,息勺关系3.3.1系统E新及它们之间白,为后面的逻辑结构设计打下基础入息 。删除和、插入、姓王要号学生信息管理名 查查1系统E-R成绩录结构基本信赖表示明白成 绩昵基本信3学号入成绩表图33.系名学号新3.3.2系统数据库的设计综合以上分析,要实现上面的所有功能模块,主要设计表如下
8、:表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 系统程序流程图程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的 方法。它可将整个
9、程序的总体流程清楚明白的显示出来。如图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学生信息管理模块学生信息管理:通
10、过右击程序主界面的相应记录弹出的上下文菜单(如图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 MySqlpublic class mySqlpublic String conn
11、ectionString = SERVER=.SQLEXPRESS 。学习 课程设计 StuScoreManSystemStuScoreManSystemStuScoManSys.mdf 。 IntegratedSecurity=True 。 Connect Timeout=30 。 User Instance=True。 。public String commondText 。public bool flag 。 / 指示有条该条记录public System.Data.DataView table 。public void runSql() / 执行查询、删除 SQL 语句using (S
12、qlConnection 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.Ta
13、bles0.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 = t
14、rue 。 else flag = false 。reader.Close()。 connection.Close() 。return flag 。public String getContent(String require,String SNO) / 获取视图表的的指定单元格内容trycommondText = SELECT + require + FROM detail WHERE 学号 = + SNO 。if (require= up 课程名称 )commondText = SELECT 课程名称 FROM detail WHERE 学号 = + SNO 。 if (require=
15、up 成绩 )commondText = SELECT 成绩 FROM detail WHERE 学号 = + SNO 。 SqlDataAdaptersda = new SqlDataAdapter(commondText, connectionString) 。 DataSet ds = newDataSet() 。sda.Fill(ds) 。String result= 。 if(require= 课程名称 |require= 成绩 )int i=new int() 。for (i=0 。 i ds.Tables0.Rows.Count 。 i+)result = result+ds.T
16、ables0.Rowsirequire.ToString()+n 。else result=ds.Tables0.Rows0require.ToString().Trim() 。 return result 。catchreturn 无 。public void update()/ 添加、更新语句tryusing (SqlConnection connection = new SqlConnection(connectionString)connection.Open() 。SqlCommand cmdInsert = new SqlCommand(commondText, connectio
17、n) 。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() != & password.Text.ToString().Trim() != )mySql sql = new mySql() 。mondText
18、= SELECT * FROM userdata WHERE USERNAME= +username.Text.ToString().Trim() + AND PASSWORD= + password.Text.ToString().Trim() +nin 。trybool temp = new bool() 。temp = sql.getFlag() 。if (temp)this.Visible = false 。mainface main = new mainface(this) 。main.Show() 。catch(Exception ex)MessageBox.Show(ex.ToS
19、tring(), 提示 ) 。elseMessageBox.Show( 请输入用户名和密码 , 提示 ) 。5.3 查询模块代码设计private void btQuery_Click(object sender, EventArgs e)mySql query=new mySql() 。if (sNInput.Text.Trim() = & sNoinput.Text.Trim()!=) mondText = SELECT SNOAS 学号,SN AS 姓名,MN AS 专业名称,SEX AS 性别,BIRDAY AS 出生日 期,TS AS 总学分,COM AS备注 FROM S
20、WHERE SNO=+sNoinput.Text.Trim()+。if (sNInput.Text.Trim() != & sNoinput.Text.Trim() = ) mondText = SELECTSNO 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 = SELECTSNO A
21、S学号,SN AS姓名,MN AS专业名称,SEX AS性别,BIRDAY AS出生日 期,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(您输入的信息为空,请重新输入! , 错误信息 )。elseif (query.getFlag()query.runSql() 。dataGridView1.DataSour
22、ce = query.table 。else 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() 。mondText = SELECT CNO FROM C WHERE CN= +listmn.Text.ToString(
23、).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
24、 = 。else birTemp = addStuCom.Text.ToString().Trim() 。mondText = INSERT INTO S (SNO,SN,MN,SEX,BIRDAY ,COM) V ALUES(+addStuNo.Text.ToString().Trim()+,+addStuName.Text.ToString().Trim()+,+addStuMajor.Text.ToString().Trim()+,+sexTemp+,+birTemp+,+comTemp+) 。 。sql.update() 。if(score.Text.ToString().Trim()
25、!=)mondText = INSERT INTO SC(SNO,CNO,SCORE) VALUES(+addStuNo.Text.ToString().Trim()+,+temp+,+score.Text.ToString().Trim()+) 。 。sql.update() 。this.Close() 。elseMessageBox.Show( 学号、姓名和专业名称都不可以为空!, 错误! ) 。private void AddNew_Load(object sender, EventArgs e)/ 获取专业列表mySql sql = new mySql() 。mondText = SE
26、LECT 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 u
27、pbtOK_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)
28、 = DialogResult.OK)if (upStuNo.Text.Trim() != & upStuName.Text.Trim() != &upStuMajor.Text.Trim() != ) mySql sqlme = new mySql() 。mondText = SELECT CNO FROM C WHERE CN= +listmn.Text.ToString().Trim() + 。sqlme.runSql() 。String temp = sqlme.table.Table.Rows0CNO.ToString() 。 / 课程号String sexTemp
29、= 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,SE
30、X,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) V ALUES ( +upStuNo.Text
31、.ToString().Trim()+ , + temp + , + upStuScore.Text.ToString().Trim() + ) 。 。sqlme.update() 。this.Close() 。elseMessageBox.Show( 学号、姓名和专业名称都不可以为空!, 错误! )。elseif (upStuNo.Text.Trim() != & upStuName.Text.Trim() != & upStuMajor.Text.Trim() !=)mondText = SELECT CNO FROM C WHERE CN= +listmn.Text.To
32、String().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()
33、= ) birTemp = 。else birTemp = upStuBir.Text.ToString().Trim() 。 mondText = UPDA TE S SETSN= + upStuName.Text.ToString().Trim() + ,MN=+upStuMajor.Text.ToString().Trim()+,SEX= +sexTemp+,BIRDAY=+ upStuBir.Text.ToString().Trim() + ,COM= +comTemp+ WHERESNO=+upStuNo.Text.ToString().Trim() 。 sql.update() 。
34、bool scFlag = new bool() 。if (upStuScore.Text.ToString().Trim() != )trymySql 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 = UPDA TE SC SET SCORE= +upStuScore.Text.ToString().Trim() + WHERE SNO= + upStuNo.Text.ToString().Trim() + ANDCNO= + temp 。sql.update() 。catch mondText = I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025饮料供应合同协议书范本
- 2024年电缆桥架项目资金筹措计划书代可行性研究报告
- 2024年塑料加工专用设备项目资金筹措计划书代可行性研究报告
- 2025建筑陶瓷采购合同模板
- 2025合作生产协议合同格式
- 《信息化时代的档案管理:课件发展新篇章》
- 2025合作合同:加盟合同
- 2025电子产品买卖合同
- 2025授权银行代缴医疗保险费合同样本
- 2025年国际贸易合同范本参考
- 北京大学研修班通讯录
- 小学劳动教育教研活动记录(共7次)
- 2023年高速铁路隧道工程施工技术指南铁建设【2023年】241号
- 中国民族史智慧树知到答案章节测试2023年云南大学
- 德磐氢化丁腈橡胶
- 长输管道监理培训测试题(含答案)山东港通工程管理咨询有限公司
- 实习证明表模板
- 乙状结肠癌根治术的护理查房详解演示文稿
- 二手车购车合同范本2份(全国通用版)
- (3.1.2)-野外地质工作安全(二)
- GB/T 33170.3-2016大型活动安全要求 第3部分:场地布局和安全导向标识
评论
0/150
提交评论