C学生成绩管理系统课程设计报告

上传人:沈*** 文档编号:98360958 上传时间:2022-05-29 格式:DOC 页数:32 大小:877KB
收藏 版权申诉 举报 下载
C学生成绩管理系统课程设计报告_第1页
第1页 / 共32页
C学生成绩管理系统课程设计报告_第2页
第2页 / 共32页
C学生成绩管理系统课程设计报告_第3页
第3页 / 共32页
资源描述:

《C学生成绩管理系统课程设计报告》由会员分享,可在线阅读,更多相关《C学生成绩管理系统课程设计报告(32页珍藏版)》请在装配图网上搜索。

1、课程设计报告课程设计名称:学生成绩管理系统系部名称:中印计算机软件学院学生姓名:班级:13 级应1学号:2013010700成绩:指导教师:开课时间:201 3- 201 4学年第二学期目 录第一章绪论11.1设计目的丄.1.2开发工具选择1.1.3开发环境丄.1.4本报告的主要内容L第二章需求分析1.2.1系统需求简介 12.1.1系统目标1.2.1.2功能需求分析 22.1.3性能需求分析 2第三章总体设计2.3.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环境的学生信息管理系统,主要功能模块包括: 学生信查询,学生信息管理,学生成绩录入,主要工具Microsoft

3、Visual Studio 2010 设计窗体,SQL server2005建立数据库,实现学校信息管理的各个功能。本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程为,给出了学生信息管理系统的设计和技术实现的过程,特别在细节上分析功能和函数 的实现思想,涉及到学生信息管理的基本功能在本报告中都有相应的描述。第一章绪论1.1设计目的本课程设计的目的是使学生能熟练掌握简单的简单 Win dows窗体应用程序的 设计和ADO.net的应用,希望通过本次课程设计锻炼学生使用 C#语言解决实际 问题的能力。1.2开发工具选择本系统后台数据库采用Microsoft SQLServer数据库

4、,该数据库系统在安全 性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采 用Microsoft 公司的Visual Studio 2008作为主要开发工具,可与 SQLServer 2005数据库无缝链接。1.3开发环境系统开发平台:Microsoft Visual Studio2005系统开发语言:C#数据库管理软件:SQL Server 20051.4本报告的主要内容本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下: 系统的需求分析、系统的总体设计、系统的概念设计、系统各模块的详细设计、 系统运行与测试。第二章析需求分析2.1.1系统目标根据查询条件实

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

6、这些模块结合起来组成一个整体。逐一实现各个功能。3.2系统总体结构及功能模块划分经过对系统的需求分析,学生信息管理系统主要划分为三个部分:学生信息查询,学生信息管理,学生成绩录入三个功能模块。如图3.2.1系统的总体结图3.2.1系统的总体结构321学生信息查询模块学生信息查询:学 生可以根据学号、姓名、专业进行查询。如图 3.2.2学生信息 查询模块结构。图3.2.2学生信息管理模块结构3.2.2学生信息管理模块学生信息管理:主要是用于学生信息更新、插入、删除,如图3.2.3学生管理模块结构。图3.2.3学生信息管理模块结构3.3系统数据库概念结构设计根据对数据项与数据结构的分析,设计出能够

7、满足系统需求的各种实体,及 它们之间的关系,为后面的逻辑结构设计打下基础。3.3.1系统E-R图系统E-R图可以将各个实体之间的关系显示出来,将各个实体间的属性依赖 表示明白。如图3.3.1系统E-R图结构。姓系成绩表选课学分考核生日课程表总成绩备开课时间系统E-R图结构图 3.3.1成课程课程 名学生表学学性口【学生人数课程口、口、3.3.2系统数据库的设计综合以上分析,要实现上面的所有功能模块,主要设计表如下:表 3.3.1 用户表(usedata )別名允许右nulUSERIDnchan(6USERNAMEnchar(3sPASSWORDnchar(16)表332成绩表(SC)表3.3.

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

9、图4.2.1系统总体流程图4.3系统主要功能模块简介4.3.1系统登录用户凭借用户名及密码登录,成功登录后可对学生信息进行操作。用户界面 如图431用户登录界面所示。图4.3.1用户登录界面4.3.2学生信息查询模块学生信息查询:在程序主界面(如图 432 程序主界面)学生可以根据学 号、姓名进行查询。学生也可以只用一种条件进行信息查询,也可以多个条件查 询。双击记录任一单元格可显示学生的更详细信息 (如图433详细信息窗口)图4.3.2程序主界面图433详细信息窗口4.3.3学生信息管理模块学生信息管理:通过右击程序主界面的相应记录弹出的上下文菜单(如图4.3.4上下文菜单)可对当前选定学生

10、信息进行详细信息查询(如图433详细信息窗口)、修改信息(如图435修改信息窗口)、删除信息(如图436删 除信息提示)。更新时如果输入的学号不存在,可选择是否添加学生信息。通过 程序主界面的新建信息记录可添加学生信息(如图 4.3.7 添加信息窗口)。图4.3.4上下文菜单图435修改信息窗口图436删除信息提示图437添加信息窗口145.1公共类代码设计n amespace MySqlpublic class mySqlpublic第五章主要功能模块代码Stri ngconnection Stri ngStuScoreMa nSystemStuScoreMa nSystemStuScoMa

11、 nSys.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;public String com mon dText;public bool flag; /指示有条该条记录public System.Data.DataView table;public void run Sql() /执行查询、删除SQL语句using(SqlC onn ecti onconnectionnewSqlC onn ecti on(conn ecti on Stri ng)connection. Ope n();SqlComma n

12、dcmdQuerynewSqlComma nd(com mon dText,conn ecti on);SqlDataAdaptersdanew SqlDataAdapter(com mon dText,conn ecti on);DataSet ds = new DataSet();sda.Fill(ds);if (commo ndText .In dexOf(SELECT) = 0)table = ds.TablesO.DefaultView;i oif (require = up成绩”)connection. Close();public bool getFlag() /判断是否有该条记

13、录using(SqlC onn ecti onconnection=newSqlC onn ecti on(conn ecti on Stri ng)connection. Ope n();SqlComma ndcmdQuery = newSqlComma nd(com mon dText,conn ecti on);SqlDataReader reader = cmdQuery.ExecuteReader();if (reader.Read() flag = true;else flag = false;reader.Close();connection. Close();retur n f

14、lag;public Stri ng getCo nte nt(Stri ng require,Stri ng SNO) /获取视图表的的指定单元格内容trycommo ndText = SELECT + require + FROM detail WHERE学号=+ SNO;if (require = up课程名称)commondText= SELECT 课程名称 FROMdetail WHERE学号=+SNO;common dText= SELECT 成绩 FROMdetail WHERE学号=+ SNO;SqlDataAdaptersda = newSqlDataAdapter(com

15、mon dText,conn ecti on Stri ng);DataSet ds = new DataSet();sda.Fill(ds);String result=;if(require=课程名称|require= 成绩)in t i=new in t();for (i=0; i ds.Tables0.Rows.Count; i+)result=result+ds.Tables0.Rowsirequire.ToStri ng()+n;elseresult=ds.Tables0.Rows0require.ToStri ng().Trim();return result;catchretu

16、rn 无;public void update()/添加、更新语句tryusing(SqlC onnectionconnection=new12SqlC onn ecti on(conn ecti on Stri ng)conn ecti on. Ope n();SqlComma ndcmdl nsert = new SqlComma nd(com mon dText,conn ecti on);cmdI nsert.ExecuteN on Query();conn ecti on. Close();catch(Excepti on ex)MessageBox.Show(ex.ToString

17、(),提示);5.2登录界面代码设计private void logi n_Click(object sen der, Even tArgs e)/用户名及密码组合判断if(username.Text.ToStri ng().Trim()!=&password.Text.ToStri ng().Trim() !=)mySql sql = new mySql();mondText= SELECT * FROMuserdata WHEREUSERNAME= +username.Text.ToStri ng().Trim()+AND PASSWORD+password.Text.ToStri ng(

18、).Trim() + ;trybool temp = new bool();temp = sql.getFlag();if (temp)this.Visible = false;mainface main = new mainface(this);mai n.Show();catch(Excepti on ex)MessageBox.Show(ex.ToString(),提示);elseMessageBox.Show(”请输入用户名和密码,”提示);5.3查询模块代码设计private void btQuery_Click(object sen der, Even tArgs e)mySql

19、query=new mySql();if(sNI nput.Text.Trim()=&sNoi nput.Text.Trim()!=)mondText = SELECT SNO AS 学号,SN AS 姓名,MN AS 专业名称,SEX AS 性 别,BIRDAY AS出生日期,TS AS总学分,COM AS备注 FROM S WHERE SNO=+sNoi nput.Text.Trim()+;if(sNInput.Text.Trim()!=& sNoinput.Text.Trim()=)mondText = SELECT SNO AS 学号,SN AS 姓名,MN AS 专业名称,SEX A

20、S 性 别,BIRDAY AS 出生日期,TS AS 总学分,COM AS 备注 FROM S WHERESN=+sNI nput.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 WHERESN= + sNI nput.Text.Trim() + and SNO= + sNoi nput.Text.Trim() + ;if

21、(sNInput.Text.Trim()= & sNoinput.Text.Trim()=)MessageBox.Show(”您输入的信息为空,请重新输入! ,错误信息”);elseif (query.getFlag()query.r un Sql();dataGridView1.DataSource = query.table;else MessageBox.Show(”您查找的信息不存在 ,错误信息”);5.4添加模块代码设计private void addbtOK_Click(object sen der, Even tArgs e)if(addStuNo.Text.Trim() !=

22、& addStuName.Text.Trim() !=&addStuMajor.Text.Trim()!=)mySql sql = new mySql();mondText= SELECT CNO FROM C WHERE CN=+listm n.Text.ToStri ng().Trim()+ ;sql.ru nSql();Stri ng temp = sql.table.Table.Rows0CNO.ToStri ng();String sexTemp=radioButton1.Checked ?男:女;String comTemp;if (addStuCom.Text.ToStri ng

23、().Trim()=)comTemp =;else comTemp = addStuCom.Text.ToStri ng().Trim();Stri ng birTemp=;if (addStuBir.Text.ToStri ng().Trim()=)comTemp =;else birTemp = addStuCom.Text.ToStri ng().Trim();mondText= INSERT INTO S (SNO,SN,MN,SEX,BIRDAY,COM)VALUES(”+addStuNo.Text.ToStri ng().Trim()+,+addStuName.Text.ToStr

24、i ng().Trim()+,+addStuMajor.Text.ToStri ng().Trim()+,+sexTemp+,+birTemp+,+comTemp+);sql.update();if(score.Text.ToStri ng().Trim()!=)mondText= INSERT INTO SC(SNO,CNO,SCORE) VALUES(+addStuNo.Text.ToStri ng().Trim()+,+temp+,+score.Text.ToStri ng().Trim()+);sql.update();this.Close();elseMessageBox.Show(

25、”学号、姓名和专业名称都不可以为空!!,错误! ”);private void AddNew_Load(object sen der. Even tArgs e)/获取专业列表mySql sql = new mySql(); mon dText = SELECT DISTINCT CN FROM C;SqlDataAdaptersda = newSqlDataAdapter( mon dText,sql.c onn ecti on Stri ng);DataSet ds = new DataSet();sda.Fill(ds);list mn .DataSource = ds.TablesO.

26、DefaultView;listm n.DisplayMember = CN;list mn .DisplayMember = listm n.DisplayMember.ToStri ng().Trim();5.5更新模块代码设计private void upbtOK_Click(object sen der, Even tArgs e)mySql sql = new mySql();mondText= SELECT 学号 FROM detail WHERE 学号=+upStuNo.Text.ToStri ng().Trim();bool flagtemp = sql.getFlag();i

27、f (!flagtemp) /如果表中无该条记录,提示是否进行添加新记录操作if(MessageBox.Show(”查无当前记录,无法进行更新操作!n是否进行添加新记录的操作?, 提示, MessageBoxButtons.OKCancel) = DialogResult.OK)if (upStuNo.Text.Trim() != & upStuName.Text.Trim() !=& upStuMajor.Text.Trim() !=)mySql sqlme = new mySql();1 8mondText= SELECT CNO FROMC WHERECN=” +list mn .Tex

28、t.ToStri ng().Trim() + ;sqlme.ru nSql();Stri ngtemp=sqlme.table.Table.Rows0CNO.ToStri ng();课程号Stri ng sexTemp = radioButto n1.Checked ?男”: 女;String comTemp;if (upStuCom.Text.ToStri ng().Trim()=)comTemp =;else comTemp = upStuCom.Text.ToStri ng().Trim();String birTemp;if (upStuBir.Text.ToStri ng().Tri

29、m()=)birTemp =;else birTemp = upStuCom.Text.ToStri ng().Trim(); mon dText=INSERTINTOS(SNO,SN,MN,SEX,BIRDAY,COM) VALUES(”+upStuNo.Text.ToStri ng().Trim()+II III5+upStuName.Text.ToStri ng().Trim() + upStuMajor.Text.ToStri ng().Trim()+ sexTemp + ,+ birTemp + ,+ comTemp + );sqlme.update();if (upStuScore

30、.Text.ToStri ng().Trim() !=)mondText= INSERT INTO SC(SNO,CNO,SCORE)+,+ temp +,+upStuScore.Text.ToStri ng().Trim() + );sqlme.update();this.Close();elseMessageBox.Show(”学号、姓名和专业名称都不可以为空! !,”错误! ”);elseif (upStuNo.Text.Trim() != & upStuName.Text.Trim() != & upStuMajor.Text.Trim() !=)mondText= SELECT CN

31、O FROM C WHERE CN=+list mn .Text.ToStri ng().Trim() + ;sql.ru nSql();Stri ngtemp = sql.table.Table.Rows0CNO.ToStri ng();获取课程号String sexTemp = radioButt on.Checked ?男”: 女;String comTemp;if(upStuCom.Text.ToStri ng().Trim()=)comTemp=;else comTemp=upStuCom.Text.ToStri ng().Trim();String birTemp;if (upSt

32、uBir.Text.ToStri ng().Trim()=)1 10else birTemp = upStuBir.Text.ToStri ng().Trim();birTemp =;mo ndText= UPDATE S SET SN=+upStuName.Text.ToStri ng().Trim() + ,MN=+upStuMajor.Text.ToStri ng().Trim()+,SEX=”+sexTemp+,BIRDAY=upStuBir.Text.ToStri ng().Trim()+,COM=+comTemp+SNO=+upStuNo.Text.ToStri ng().Trim

33、();sql.update();bool scFlag = new bool();if (upStuScore.Text.ToStri ng().Trim() !=)trymySql scTemp = new mySql();scT mon dText =list mn .Text.ToStri ng().Trim() + ;scTemp.r un Sql();Stri ngscTemp.table.Table.Rows0CNO.ToStri ng();WHERESELECT CNO FROM C WHERE* +cn temp获取课程号upStuScore.Text.ToString().T

34、rim()+ WHERBNO=+ upStuNo.Text.ToString().Trim()2 11else birTemp = upStuBir.Text.ToStri ng().Trim();upStuScore.Text.ToString().Trim()+ WHERBNO=+ upStuNo.Text.ToString().Trim()2 #else birTemp = upStuBir.Text.ToStri ng().Trim();scTmo ndText = SELECT SNO FROM SC WHERE SNO=+ upStuNo.Text.ToStri ng().Trim

35、() + AND CNO= + cntemp;scFlag = scTemp.getFlag();if (scFlag)mondText= UPDATE SC SET SCORE= +upStuScore.Text.ToString().Trim()+ WHERBNO=+ upStuNo.Text.ToString().Trim()2 #+ AND CNO= + temp;sql.update();catch mondText= INSERT INTO SC(SNO,CNO,SCORE)VALUES ( + upStuNo.Text.ToStri ng().Trim()+,+ temp +,+

36、upStuScore.Text.ToStri ng().Trim() + );sql.update();this.Close();elseMessageBox.Show(”学号、姓名和专业名称都不可以为空! !,错误! ”);5.6删除模块代码设计private void 删 除记录 ToolStripMenultem_Click(objectsender,Even tArgs e)mySql del = new mySql();Stri ngtemp=this.dataGridView1.Curre ntRow.Cells0.Value.ToStri ng();if(MessageBox.S

37、how(”确定要删除此条记录?II”,MessageBoxButt on s.OKCa ncel)=DialogResult.OK) mon dText = DELETE FROM SC WHERE SNO= + temp;del.ru nSql(); mon dText = DELETE FROM S WHERE SNO= + temp;del.ru nSql();this.dataGridView1.Rows.Remove(this.dataGridView1.Curre ntRow)第六章课程设计心得为期一周的课程设计结束了,在老师和同学的帮助下,我基本完成系统的设 计。我按照系统工程软

38、件设计的要求,从需求分析,概念设计,总体设计,详细 设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的学生信 息查询,学生信息更新,学生信息添加等模块的功能。在这短短的五天里我收获如下:1、巩固和加深了对C#的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研 究,分析问题、解决问题的能力。3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程 设计方法。根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:1、认真上好专业实验课,多在实践中锻炼自己。2、写程序的过程中要考虑周到,严密。3、在做设计的时候要有信心,有耐心,切勿浮躁。4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误, 以便能节省调试程序的时间。第七章参考文献Visual Studio.NET 2008开发一册通:C#3.0从基础到项目实战李海涛化学工业出版社。Visual C#开发技术大全 明日科技 人民邮电出版社。Visual C# 2008 入门经典(美)James Foxall 人民邮电出版社。Visual C#通用范例开发金典王超,潘杨电子工业出版社。C#程序设计 孙践知,张迎新,肖媛媛 清华大学出版社。2 3

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!