C#学生信息管理系统_第1页
C#学生信息管理系统_第2页
C#学生信息管理系统_第3页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、洛阳理工学院课程设计报告课程名称高级语言C#课程设计设计题目 学生信息管理系统专业计算机科学与技术班级 B130506学号 B13050624姓名张葵完成日期 课程设计任务书设计题目:学生信息管理系统教务员可以输入学生、教师、班级、课程信息,一个班级只属于一 个专业,一个学生只属于一个班级。教务员负责输入每个专业、每个班 级需要学习哪些课程,指定课程的任课教师。一个教师可以教授多个班 的多门课程。教师可以查看学习该课程的学生名单。课程结束后,教师可以录入 课程成绩。课程分两类,必修课和选修课。学生可以选修课程,每学期几门。学生可以查看自己各门课程的成绩。学生还可以进行评教,给老师打分。系统管理

2、员可以输入教室信息,并结合班级、课程、教室信息实现 自动排课。指导教师:张文学2015年12月27日课程设计评语成绩:指导教师:2015年12月31日目录第1章需求和可行性分析31.1需求分析31.1.1 功能需求3性能需求31.2可行性分析41.2.1 技术可行性41.2.2 经济可行性4第2章系统设计概述52.1整体设计概述5设计流程5设计思路62.2功能模块介绍6学生信息模块6教师模块7教务员模块 8管理员登录 9第3章 数据库的搭建和实现 103.1数据库设计概述 103.2 E-R图的设计103.3数据库表的创建12学生表的创建123.3.2 教师表的创建133.3.3 课程表的创建

3、13成绩表的创建143.4存储过程的创建143.4.1 分配班级存储过程 143.4.2 班级信息的存储过程 153.4.3 学生课程的存储过程 15学生成绩存储过程 16第4章C#高级语言的实现 174.1概述174.2数据库的连接174.3开始界面的设计 184.4系统管理员184.4.1 登录功能和界面184.4.2 管理员显示界面214.5学生功能介绍和实现 264.5.1 登录界面和功能实现 264.5.2 学生用户界面27第5章结论29第6章谢辞30参考文献31第1章需求和可行性分析1.1需求分析学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于 学校的决策者和管理者来说都

4、至关重要。学校的管理人员可以通过电 脑对学生信息进行有效的管理,避免了以往人工管理的复杂和耗时费 力的劳动,也大大的能够减少管理人员的工作量,可以有效的节约学 校的开支。功能需求作为一个学生的信息管理系统,必须要有管理人员能够进行对学生的信息进 行有效的管理,因此,系统必须预留一个管理员的登录窗口和登录之后所能进行 的操作,在学生信息管理系统中,管理员具有最高的权限,可以对学生、老师、 班级、专业等等进行添加、删除、修改个查询。除了拥有管理员之外,还应该拥 有教务处对学生进行管理,例如:对学生课程,成绩等等具有一定的权限。此外, 还应该有老师的一个权限,老师在带完一门课之后可以对学生进行一个成

5、绩录入 和平时布置作业的功能。最后是学生自己拥有的功能,学生在考试结束后可以利 用系统登录自己的账户对成绩进行查询。性能需求在学生信息管理系统中,要明确各类用户所能拥有的最高权限,如果一旦权 限的问题搞错以后,整个系统就会变得没有价值。例如:学生只有对成绩的查询 功能,而不能对成绩拥有修改和删除以及插入的功能。老师只能够对学生进行成 绩的录入和平时布置作业,而不能删除学生的个人信息等权限。要设立不同的异常机制,这样不会因为用户的错误的操作而使得系统瞬时奔 溃。我们要在代码中设置不同的异常抛出机制,这样就可以使得用户在进行了错 误的或者违反规则的操作之后,系统不会出现突然的停止运转。1.2可行性

6、分析随着计算机语言和数据服务的不断发展,使得许多的现实问题都可以利用计 算机来帮助人类实现轻巧,方便的管理。在教育上,学生是一个庞大的群体,因 此技术人员早早就开始想办法解决这个问题,因此,目前对于学生信息的管理各 种语言都能够编写出一套完整的、可用的学生信息管理系统。技术可行性在这套系统的开发中,采用的是开发语言是C#,软件是Visio Studio2010, C#是微软对问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序 员可以快速地编写各种基于 Microsoft .NET平台的应用程序,Microsoft .NET提供 了一系列的工具和服务来最大程度地开发利用计算与通讯领

7、域。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选-无论 是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上 通过In ternet进行调用。最重要的是,C#使得C+程序员可以高效的开发程序,而绝不损失C/C+原有的强大的功能。因为这种继承关系,C#与 C/C+具有极大的相似性,熟悉类似 语言的开发者可以很快的转向 C#。数据库采用的是SQL Server2008R2这个SQL数据库版本是微软公司推出的 针对微软用户的一种关系型数据库,语言简单,实用。与Visio Studio 2010

8、结合相对简单实用。经济可行性现在随着互联网络、计算机技术的发展,数字城市成为当前热点话题。同时 在国家政策给予大力支持的条件下,这些技术热点给社会产生了极大的影响,不 仅给生活、学习和管理带来了新的体验,同时也带动了经济的增长。学生管理系统使用比较简单的 C#语言开发,而且目前中国的学校和教育机构众多,许多的地方都需要用到这套学生信息管理系统,因此学生信息管理系统具 有广阔的市场前景和发展动力。第2章系统设计概述2.1整体设计概述这套学生信息管理系统旨在为用户提供更加有效的、方便的和快捷的学生的管理系统。本套系统在结构上由数据库和高级语言两部分组成,数据库部分负责 此套系统所要用到的所有的数据

9、库的表的创建和所用到的存储过程的创建。C#部分是具体的设计UI界面和具体的逻辑实现,用户可以通过在自己电脑上点击UI上的控件进行操作。设计流程图1整体设计思路图设计思路这套学生信息管理系统是由数据库和业务逻辑层和UI层三部分构成,用户在UI层上进行操作,数据通过业务逻辑层数据传至数据库,对数据库中的数据进行 修改,在用户需要用到数据库中的数据时,数据会从数据库中提出经过业务逻辑 层上传至UI层,以供用户查阅和进行其他的操作。 业务逻辑层主要负责的工作就 是将UI传来的数据进行分析,并且做出判断,然后根据判断出的结果进行对数据 库的访问。数据库的主要任务就是为系统提供数据的存储。2.2功能模块介

10、绍以下会对本套系统中的主要模块做一个简单的介绍与分析。学生信息模块学生模块的主要功能是对自己的成绩能够有效的进行查询和能够对教师做出 有效的评价在学期末。每个学生只能够对自己的成绩进行有效的查询,在登录自己的账户之后,其 他的同学的成绩是不可见的,这样也是起到了一种隐私的保护作用,而且学生在 登录自己的账户之后没有成绩修改和添加以及删除的功能。图2学生用户登录教师模块教师在使用该系统时,主要的任务是向学生下达作业任务和在期末考试结束 之后给给学生录入成绩,使得学生能够通过自己的账户登录该系统之后能够看到 自己的成绩。在录入成绩之后不能对学生的成绩进行修改。9 tea chershow1 r 回

11、课琨:计算机科学与申杳看名单录入成绩图3教师用户登录223教务员模块教务员使用该套系统的主要目的是对教室进行管理,以及能够根据各个班级的具体课程情况对班级进行排课。图4教务员登录224管理员登录管理员是此套系统的拥有最高的权限,他可以添加学生、老师和教务员的信 息,以及进行修改和删除等等。图5管理员登录第3章 数据库的搭建和实现3.1数据库设计概述数据库在现代的系统的开发中,起到了非常重要的作用。数据库可以对数据 起到一种长期保存的效果,而且可以利用终端随时随地的通过网络来访问服务器, 进而访问数据库,找到自己想要的数据和信息。3.2 E-R图的设计ER图在设计数据图的时候起到了非常关键的作用

12、,可以从 ER图中清晰的看 到各个对象之间的关系和它具有的属性,因此,在创建数据库的时候会更加的方 便和得心应手。图6学生的ER图课程图11课程ER图成绩3.3数据库表的创建数据库中的数据都是通过表来进行存储的,因此,要将数据存储到数据库中, 必须将表的结构进行合理化的设计,ER图为表的创建提供了良好的理论支撑, 在在建表的时候要考虑的是数据的存储大小,我们现在采用可以变换大小的 varchar()类型进行存储,这样不会导致内存的无故浪费。J 7tudent_adimin+i _ dbo.scde-mic +1 二 dbo.admin *i _ dboxhaose +i _ dbQ,d可吊*+

13、j 一 dbo.e&ur +1 _3 dboievaluate+1dt>o.g占討己ti _ dboprofessional+1 3 dbo.student+i _3 dbo.teacherF i_j USSLL LJ面女词千I可扁程性L |_j Service Broker(f LJ WSi J荽锂图13整体表的创建学生表的创建学生表中主要是学生的一些属性,例如学生的学号,姓名,年龄和性别等等, 在学生管理系统中,学号作为该表的主键,设计如下:vardiar(20)姓屯vardiar(15性别vsirchar(2)ntvardiar(lB)也话vardiar(lb)varcha

14、r(20)varchar(20>vorchar(20j图14学生表的创建332教师表的创建教师表中也是教师的一些属性,例如教工号、姓名和教室名等等,教工号为 主键,设计如下:vanchar(2O)warcharCiOi期帀名varcharflb)ffl更称varchar2O团主修varcharC2O)7图15教师表的创建课程表的创建在课程表中,属性是关于课程的一些信息,例如课程号、课程名和该课程的学时和学分。课程号是主键,设计如下:泸代能瘁矢迄/uur num IBvarchaf20)B课程名varrhsrfSO)int学分int®l n图16课程表的创建334成绩表的创建在创

15、建完学生表和课程表之后,需要一个成绩表来显示学生的成绩信息,成 绩要与学生个人和课程能够匹配上,在这里,需要设置学号和课程号为主键,而 学生表中的学号和课程表中的课程号都是外键,设计如下:vardiar(20) |9 课HEvardiar(2Q)Q?选课号varcharfO)' |分裁intH选修分数intW图17成绩表的创建3.4存储过程的创建在使用数据库的时候有时候不是一个表所能完成的一项任务,我们往往会采 用存储过程进行多表的结合使用,例如:要查询某个专业下的某个年级的某个班 的一位同学的信息并且把这些信息显示出来,这样就会涉及到专业表、年级表、 班级表和学生表。因此,在这个时候

16、我们需要将多表进行结合使用,这里就会使 用到存储过程。在本套系统中,我采用了几个存储过程来对学生的信息进行管理dbo,CLASS_CHOOSE+ B dbo.das5_messdge 田 圍 dbo.5tude-nt_course + 自 dbo.图18整体的存储过程分配班级存储过程在分配班级的时候要用到班级和专业两个表,因此要通过这两个表进行分配, 从而确定某一个班是属于哪一个专业,代码如下:USE stude nt_admi nGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE dbo.CLASS_CHOOSEpro

17、 varchar(20), cla varchar(20)asselect professi on al.专业名,class.班级号 course.课程名 course.课时数 course.学分from professi on al,course,classwhere professi on al.专业号 =class.专业号 and professi on al.专业名 =pro and class.班级 号=cla班级信息的存储过程查询某一个班级信息的功能,这个功能函数既可以在数据库中用存储过程实 现也可以在C#中通过语言的逻辑来实现,在这套系统中,我采用的是利用在数据 库中建立了一般班

18、级信息的存储过程来实现的,在C#中通过调用该存储过程,然后向其中传递一个参数就可以实现。代码如下:USE stude nt_admi nGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure dbo.class_messageclass no varchar(20)asselect班级号,专业名,班主任,班长,人数from classwhere 班级号=classno学生课程的存储过程学生的课程信息不仅仅包含了学生类,而且还包含了课程类,我们需要将这 两个表进行有效的结合进行使用,在这套系统中我采用的是利用在数据库中建立 一

19、个学生课程的存储过程来显示学生的课程信息,预留一个输入参数一学生的学号,可以利用学号就可以查询到该学生的课程信息。代码如下:USE stude nt_admi nGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure dbo.stude nt_coursecourse no varchar(20)asselect student.学号,student.姓名,student.班级号,course课程名,grade.分数from stude nt,course,gradewhere student.学号 =grade.学号 an

20、d course.课程号 =grade.课程号 and 课程名 =course no学生成绩存储过程在学生管理系统中,非常重要的一环就是学生可以查看自己的成绩,在这套 系统中,采用的也是在数据库中建立一个关于学生的存储过程,是按照学号进行 查询的,在C#中,调用该存储过程,输入一个学号的参数,便可以查询该学生的 成绩信息,防止查询了其他人成绩,起到隐私保护的作用。代码如下:USE stude nt_admi nGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER procedure dbo.stude nt_gradestude nt_id

21、varchar(20)asselect student.学号,student.姓名,course.课程名,grade.分数,choose选课名,grade选修分数 from stude nt,course,grade,choosewhere student.学号 =grade.学号 and choose.选课号 =grade.选课号 and student.学号 = stude nt_id第4章C#咼级语言的实现4.1概述在数据库进行完设计之后,就要使用 C#这种高级语言将他真正的能够和用户 产生联系,用户接触到的是 UI层面,因此我们的任务就是通过 UI层进行数据传 递到业务逻辑层然后进行数

22、据的转化和业务逻辑的实现。4.2数据库的连接在本套系统中,连接数据库我采用的是利用数据源来连接数据库,这样就可 以将连接数据库的字符串和commod都封装在数据源中,为每个表都创建好数据 源和数据适配器,这样可以减少代码量,而且也会使得程序变得简洁明了,在使 用一个数据库中的某一个表的时候只需要创建一个该表的数据适配器和一个共有 的dataset即可。关系图如下:紅汙3M4-«radaajTmaHrinv O0S»no)$ 斤iQ图19数据源图示4.3开始界面的设计开始界面主要是让用户选择自己的身份类型进行系统的登录。如果用户选择 的是系统管理员的登录方式,系统会自动的进行

23、页面的跳转,跳转到系统管理员 的登录界面。图20登录类型选择4.4系统管理员441登录功能和界面登录界面主要是让用户输入账号和密码进行登录,界面的风格是一致的,只 是通过调用不同的数据库的信息进行不同的登录。图21登录界面用户在输入账号和密码的时候,系统会调用数据中的相应的表进行查看是否 与表中的数据匹配,如果匹配则能够登录成功,否则不成功。如果登录成功,该 账号和密码会被记录到本地的文件中进行存储,以此达到下次登录时的快捷和方 便,代码如下:private void butt on 1_Click(object sen der. Even tArgs e)/登 1?录?到 i?管 '

24、1理 Oa员?0的?界?面 ?stri ng n ame = n ull;stri ng pass = n ull;StringBuilder sname = new StringBuilder(” 管'1理 Oa账?号?='");sn ame.Appe nd(comboBox1.Text);sname.Append(""');if (comboBox1.Text !="")try DataRow row = table1.Select(sname.ToString();row1 = row0;n ame = row10

25、.ToStri ng(); pass = row12.ToStri ng();catch (Excepti on ex) MessageBox.Show(ex.Message);if (n ame = comboBox1.Text)萌sffl31*耶«就萍斗申 =MessageBox.show(name)八 if (CDxsoxl .Texf HH pass)宀vBTATf.直 si?nn.7n>7s adminlshow a H new adminlshowo八a.showo八if (checkBOX.canFOCUS) 宀ifmCD.EXisfsaxu) 宀s=ringu

26、ss"name- pass 乂 Fi-e.wriCDA=Lines(txL ss)八 e-se 宀Fi-e.creaCD(txf)八e-se宀SMn吕 ss H=八 Fi-e.wriCDA=Lines(txL ss)八e-se宀MessageBox.show(=7M7Djt 4 磕 £e_se 二<$舟一.偉7> 7宀MessageBox.show(=w747諂 77grud八 -_abe_4.Texf H =w744na商養 7孑7 冃童rur 必逋?遵 7 鸯 e-se宀MessageBox.show(=ilfr7鸯 算747£442管理员显示界面

27、在管理员登录自己的账号之后,可以对学生、老师、课程和班级进行查询, 添加、删除、修改和保存。这套系统中,可以根据学号和姓名进行查找,输入学 号或者姓名,会进一步的调用数据库进行查询,如果数据库中有该成员的信息, 则会被现实在右边的显示框中,在 datagaridview中显示的是该类成员所有的数据 信息。在管理员查到成员信息之后,可以根据现在的情况进行对成员的信息进行相 应的操作,例如:有一个学生退学,管理员可以查询到该生之后将该生信息进行 删除。如果有一个老师的登录密码忘记了,管理员可以登录系统进行对该教师密 码的一个重置。图22管理员查询学生信息按照学号查询学生信息的代码如下:privat

28、e void butt on 3_Click(object sen der, Even tArgs e)/按???学?1号?查T找“/Stri ngBuilder stri ngBuilder = new Stri ngBuilder();if (comboBox1.Text.Le ngth!=O)DataRow row = dataset.Tables"student".Select(” 学?i 号?='" + comboBox1.Text.Trim()+""');trydatarowl = row0;textBox5.Tex

29、t = datarow10.ToStri ng(); textBox6.Text = datarow11.ToStri ng(); textBox7.Text = datarow12.ToStri ng(); textBox8.Text = datarow13.ToStri ng(); textBox9.Text = datarow14.ToStri ng(); textBox10.Text = datarow15.ToStri ng(); textBox11.Text = datarow16.ToStri ng(); textBox12.Text = datarow17.ToStri ng(

30、); textBox13.Text = datarow18.ToStri ng();catch(Exceptio n ex)MessageBox.Show(ex.Message);按照姓名查询学生信息的代码如下:private void butt on 4_Click(object sen der, Even tArgs e) II按??姓?名?查找“if (textBoxl.TextLength != 0)StringBuilder name = new StringBuilder(” 姓?名?='");n ame.Appe nd(textBoxl.Text);name.A

31、ppend(""');DataRow row = st_table.Select( name.ToStri ng(); tryStri ng str = row0.ToStri ng();II DataRow row = dataset.Tables"admin".Select("姓?名?=" + textBox8.Text).ToStri ng();datarowl = row0;textBox5.Text = datarow10.ToStri ng(); textBox6.Text = datarow11.ToStri n

32、g(); textBox7.Text = datarow12.ToStri ng(); textBox8.Text = datarow13.ToStri ng(); textBox9.Text = datarow14.ToStri ng();textBoxIO.Text = datarow15.ToStri ng();textBoxll.Text = datarow16.ToStri ng();textBox12.Text = datarow17.ToStri ng(); textBox13.Text = datarow18.ToStri ng();catch (Excepti on ex)

33、MessageBox.Show(ex.Message);添加学生信息代码:private void butt on 5_Click(object sen der, Even tArgs e) /添? a加?DataRow row = st_table.NewRow();if (textBox5.Text ="")row0 = DBNull.Value;elserow0 = textBox5.Text.Trim();if (textBox6.Text ="")row1 = DBNull.Value;elserow1 = textBox6.Text.Trim

34、(); if (textBox7.Text ="")row2 = DBNull.Value;elserow2 = textBox7.Text.Trim();if (textBox8.Text ="")row3 = DBNull.Value;elserow3 = textBox8.Text.Trim(); if (textBox9.Text ="")row4 = DBNull.Value;elserow4 = textBox9.Text.Trim(); if (textBox10.Text ="")row5 = DB

35、Null.Value;row5 = textBox10.Text.Trim();if (textBoxll.Text = ”)row6 = DBNull.Value;elserow6 = textBox11.Text.Trim();if (textBox12.Text = ”)row7 = DBNull.Value;elserow7 = textBox12.Text.Trim();if (textBox13.Text = ”)row8 = DBNull.Value;elserow8 = textBox13.Text.Trim();tryst_table.Rows.Add(row);catch

36、(Excepti on ex) MessageBox.Show(ex.Message);修改学生信息代码如下:private void butt on 6_Click(object sen der, Even tArgs e)/修T改?tryif (textBox5.Text ="")datarow10 = DBNull.Value;elsedatarow10 = textBox5.Text.Trim(); if (textBox6.Text = ”)datarow11 = DBNull.Value; elsedatarow11 = textBox6.Text.Trim()

37、; if (textBox7.Text ="")datarow12 = DBNull.Value;elsedatarow12 = textBox7.Text.Trim(); if (textBox8.Text = ”)datarow13 = DBNull.Value; elsedatarow13 = textBox8.Text.Trim(); if (textBox9.Text = ”)datarow14 = DBNull.Value;elsedatarow14 = textBox9.Text.Trim(); if (textBoxIO.Text =""

38、)datarow15 = DBNull.Value;elsedatarow15 = textBox10.Text.Trim(); if (textBoxll.Text ="")datarow16 = DBNull.Value;elsedatarow16 = textBox11.Text.Trim(); if (textBox12.Text ="")datarow17 = DBNull.Value;elsedatarow17 = textBox12.Text.Trim(); if (textBox13.Text ="")datarow1

39、8 = DBNull.Value;elsedatarow18 = textBox13.Text.Trim();catch (Excepti on ex)MessageBox.Show(ex.Message);删除学生信息代码如下:private void butt on 7_Click(object sen der, Even tArgs e) 删I?除yDataView view = new DataView(dataset.Tables"student"); Strin gBuilder bulid = new Stri ngBuilder(” 学?i号 ?='

40、");trybulid.Appe nd(datarow10);bulid.Append("'");view.RowFilter = bulid.ToStri ng();view.Delete(0);view.E ndl nit();ds1.Tables0.Rows.Remove(row4);catch (Excepti on ex)MessageBox.Show(” 没?有?D 此??学?1生 | '2 + ex.Message,"提?示 o?", MessageBoxButt on s.OK, MessageBoxIc on.ln formati on);textBox5.Text =""textBox6.Text =""textBox7.Text =""textBox8.Text =""textBox9.Text =""textBox10.Text =""textBox11.Text =""textBox12.Text =""textBox13.Text =&q

温馨提示

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

评论

0/150

提交评论