毕业设计说明书计算机_第1页
毕业设计说明书计算机_第2页
毕业设计说明书计算机_第3页
毕业设计说明书计算机_第4页
毕业设计说明书计算机_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计说明书学生姓名姚诗熠学 号210801091学院 计算机科学与技术学院专 业计算机科学与技术题 目学生信息管理系统设计与实现指导教师杨 大 同 实验师 (姓 名) (专业技术职称/学位)2012年5月摘 要:随着计算机及网络技术的飞速发展,Internet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息系统的作用也越来越大。传统的学校学籍管理方法、由于分散管理,易发生数据丢失,劳动强度高,速度慢。使用计算机可以高速、快捷地完成以上工作。特别是在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。学籍管理信息系统以计算机

2、为工具,通过对教务管理所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,从而全面提高教学质量。针对目前学校发展迅速,学生信息管理要求不断加强与复杂化,信息管理系统由此诞生,为使学校管理各种各样学生信息,为老师与学生方便简捷的查询所需信息与资源,也为了后台的维护与更新。学生信息管理是一个教育单位不可缺少的部分,它的内容对于学校的管理与运行来说相当重要,所以本系统应该能够为用户提供充足的信息与快捷的查询方式。本系统主要采用SQL Server 2005数据库和C#开发的功能较为完善的学生信息管理系统。该系统主要包括用户登录、信息查询、成绩统计和选课等功能模块。关键词:学生信息管理系统,数据

3、库,C#Abstract: Along with the computer and network technology rapid development, Internet application in the global scope increasingly popular, today's society is fast forward to the information society, the role of information system is more and more big. The traditional school students' ide

4、ntity management method, because of decentralized management, easy happening data loss, labor strength, high speed. Use the computer can be high speed, quickly complete the above work. Especially in computer networking, online data transfer, data sharing can be realized, and avoid duplication, regul

5、ating the management of teaching behavior, and improve the management efficiency and level. Students' identity management information system to the computer as the tool, through to the educational administration management needed information management, management personnel from tedious data cal

6、culation released in processing, thus improve the quality of teaching.In view of the current rapid development of the school, students' information management requires the continuous strengthening and complicated, information management system born, to make the school management various student

7、information for the teacher and student convenient simple inquires information and resources needed and also to the maintenance and update. Students' information management is a education unit essential part, its content to the school's management and operation is important, so this system s

8、hould be able to provide users with sufficient information and quick searching method. This system mainly USES the SQL Server 2005 database and the c # development function is relatively perfect student information management system. The system mainly include user login, information query, achieveme

9、nts statistics and course selection function module.Keywords: students' information management system, database, to use c #目 录1 引言42 开发工具简介52.1 ASP.NET简介52.2 SQL语言基础简介和SQL语句介绍52.3 C#语言简介63 系统需求分析64 系统设计74.1 系统功能结构74.2实体关系E-R图设计84.3数据库设计85 系统详细设计105.1登录模块设计105.2学生模块设计155.3教师模块设计205.4管理员模块设计245.5系

10、统安全设计315.6报表设计336软件测试336.1软件测试的必要性336.2 调试35结 论35参 考 文 献361 引言随着计算机及网络技术的飞速发展,Internet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息系统的作用也越来越大。传统的学校学籍管理方法、由于分散管理,易发生数据丢失,劳动强度高,速度慢。使用计算机可以高速、快捷地完成以上工作。特别是在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。学籍管理信息系统以计算机为工具,通过对教务管理所需的信息管理,把管理人员从繁琐的数据计算处理中解脱出来,从而全面提高

11、教学质量。2 开发工具简介2.1 ASP.NET简介ASP.NET是.NTE框架层之一,负责处理对特定类型文件的Web请求,这些文件主要包括扩展名为.aspx,.ascx以及.asmx的文件以及其他一些文件(在Web Internet Services Manager 应用程序中,可以通过查看Web站点的Application Configuration属性得到所有文件类型的列表)。ASP.NET引擎为创建动态内容提供了强健的对象模型,同时松散地集成在.NET框架中。这种集成有利于把.NET框架移植到非Windows平台。2.2 SQL语言基础简介和SQL语句介绍SQL 的全称是Structu

12、red Query Language,即结构化查询语言。SQL语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。1986年ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准。SQL语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。(1)SQL语言的优点:1)非过程化语言SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。

13、当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。2)同一语言SQL可用于所有用户的数据库活动类型,包括数据库系统管理员、程序员等,它操作简单,使用方便。3)关系数据库的公共语言用户可将使用SQL的技能从一个远程数据库管理系统很容易的转到另一个系统。所有用SQL语言写的程序都具有可移植性。(2)SQL查询数据查询是关系运算理论在SQL语言中的主要体现,SELECT 语句是SQL查询的基本语句,当人们在对一个数据库进各种各样的操作时,使用的最多的就是数据查询,在以SQL为基础的关系数据库中,使用的最多的就是SELECT查询语句。

14、SELECT语句的完整句法如下:SELECT 目标表的列名或列表达式序列FROM   基本表和(或)视图序列WHERE 行条件表达式GROUP BY 列名序列ORDER BY列名 ASCDESCSQL语言还可以完成许多功能,例如:在数据库表格中插入、修改和删除记录;建立、修改和删除数据对象;控制对数据和数据对象的存取;确保数据库的一致性和完整性等。2.3 C#语言简介在过去的20年中,C/C+已经成为广泛应用于商业软件开发中的高级语言。但是C和C+都包含了一些容易使开发者产生错误的特性,通常我们可以认为,C/C+的灵活性是以牺牲开发效率为代价的。在基于C语言的所有衍生语言中

15、,C#是最近的演变结果。C#相对于C+而言,更现代、简单、完全面向对象和类型安全。最重要的是,它简化和现代化了C+在类、名字空间、方法重载和异常处理等领域的处理方法,摒弃了C+的复杂性,使它更易用、更少出错。在增强易用性的同时,C#也减少了C+的一些特性,如不再有宏、模板和多重继承等。事实上,特别是对企业开发者来说,上述功能只会产生更多的麻烦而不是效益。C#使编程更方便的新功能有严格的类型安全、版本控制、垃圾收集(garbage collection)等功能,所有这些功能的目标都瞄准了开发面向组件的软件。3 系统需求分析本系统属于小型的学生信息管理系统,可以有效地对学生信息进行管理。本系统应该

16、达到以下目标:(1) 系统采用人机交互方式,界面美观,信息查询灵活、方便,数据存储安全可靠。(2) 实现对学生选课、退学、个人信息及密码修改等操作。(3) 实现对教职工及学生管理(4) 实现成绩修改、查询、删除等操作。(5) 实现成绩统计的自动结算。(6) 实现对学生教师的历史信息记录进行查询,支持模糊查询。(7) 实现打印水晶报表(8) 系统应最大限度地实现易维护性和易操作性4 系统设计4.1 系统功能结构学生学籍管理系统个人信息查询学生管理教师管理教务管理选课管理成绩查询个人信息查询学生信息查询学生成绩管理授课信息管理教师信息管理学生信息管理课程信息管理记录添加、删除、修改系统设置组权限管

17、理根据管理系统的实际需求,可以将学生学籍管理系统划分为学生管理、教师管理、教务管理和系统设置4个部分。各个部分的具体功能的系统功能结构图如图4.1所示。图4.1 系统功能结构图4.2实体关系E-R图设计管理员课程教师学生成绩选课授课选择abefdc管理图4.2 系统实体关系E-R图4.3数据库设计在开发学生信息管理系统之前,分析了该系统的数据量。由于系统管理信息方面的数据较多,学生信息、课程信息以及成绩会占用较大的空间,因此选择Microsoft SQL Server 2005数据库存储这些信息,数据库命名为db_design,在数据库中创建了6个表,2个视图。表admin主要用于保存所有管理

18、员信息,该表的结构如表1所示。表1管理员信息表表course主要用于保存课程信息,该表的结构如表2所示表2课程信息表表teacher主要用于保存教师信息,该表的结构如表3所示表3教师信息表表student主要用于保存学生信息,该表的结构如表4所示表4学生信息表表teach主要用于保存学生选课信息,该表的结构如表5所示表5选课信息表表grade主要用于保存所有学生成绩,该表的结构如表6所示表6成绩信息表5 系统详细设计学生信息管理系统主要分登录、学生、教师、管理员四个模块。下面进行分别介绍。5.1登录模块设计为了使系统的安全性得到保障,大多数系统都开发登录模块。本模块的主要功能是对用户身份进行验

19、证,只有系统的合法用户才能进入系统。登录模块运行界面如图5.1.1所示图5.1.1 登录界面在进行系统登陆过程中,登陆模块将调用数据库里的用户信息表,并对用户名和密码进行验证,只有输入了正确的用户名和密码后,系统登陆才会成功。在输入了错误的或者是不存在的用户名和密码时,系统会给出出错信息提示,指明登陆过程中的错误输入或者错误操作,以便用户进行正确的登陆。关键代码如下:1、确认按钮:String userid = adminBox.Text;SqlCommand cmd = new SqlCommand();SqlDataReader datareader;cmd.Connection = cn

20、;if (cn.State = ConnectionState.Closed) cn.Open();string str;if (this.radiobtn.Checked = true) str = string.Format("select * from admin where username='0' and pwd='1'", adminBox.Text.Trim(), sd.Encrypt(pwdBox.Text.Trim(); cmd.CommandText = str; datareader = cmd.ExecuteReade

21、r(); if (datareader.Read() admin main = new admin(); this.Hide(); main.Show(); else MessageBox.Show("请正确输入:查无此人或密码输入错误!"); cn.Close();else if (this.radiobtnstu.Checked = true) str = string.Format("select * from student where sno='0' and pwd='1'", adminBox.Text.Tri

22、m(), sd.Encrypt(pwdBox.Text.Trim(); cmd.CommandText = str; / userid = adminBox.Text; datareader = cmd.ExecuteReader(); if (datareader.Read() student main = new student (); this.Hide(); main.Show(); else MessageBox.Show("请正确输入:查无此人或密码输入错误!"); cn.Close();else str = string.Format("select

23、 * from teacher where tno='0' and pwd='1'", adminBox.Text.Trim(), sd.Encrypt(pwdBox.Text.Trim(); cmd.CommandText = str; / userid = adminBox.Text; datareader = cmd.ExecuteReader(); if (datareader.Read() teacher main = new teacher(); this.Hide(); main.Show(); else MessageBox.Show(

24、"请正确输入:查无此人或密码输入错误!"); cn.Close();当输入用户名密码后,还能通过按Enter键登录系统,实现原理:在输入密码的文本框的KeyPress事件下,判断是否按了Enter,如果按了就激发“登录”按钮的Click事件。如果用户输入的用户名密码不正确系统会通过MessageBox.Show("用户名或密码错误")提示出错。关键代码如下:private void Form1_Load(object sender, EventArgs e) txtName.Focus(); private void txtPwd_KeyPress(ob

25、ject sender, KeyPressEventArgs e) if (e.KeyChar = 13) btnSubmit_Click(sender, e); 图5.1.2是新用户注册的界面图5.1.2注册界面 主要代码如下:Hash m_hash = new Hash("MD5"); cn.Open(); SqlCommand cmd = new SqlCommand(); if (radiobtnstu.Checked = true) cmd.CommandText = string.Format("select * from student where

26、sno='0'", this.textBox6.Text.Trim(); / textBox2.Text = textBox6.Text; else if (radiobtntea.Checked = true) cmd.CommandText = string.Format("select * from teacher where tno='0'", this.textBox6.Text.Trim(); / textBox2.Text = textBox6.Text; else / textBox2.ReadOnly = fals

27、e; cmd.CommandText = string.Format("select * from admin where username='0'", this.textBox6.Text.Trim(); cmd.Connection = cn; if (null = cmd.ExecuteScalar() string str; if (radioButton1.Checked = true) str = string.Format("insert into admin(username,pwd) values('0','

28、;1')", textBox6.Text.Trim(), m_hash.Encrypt(textBox7.Text.Trim(); else if (radiobtnstu.Checked = true) str = string.Format("insert into student(sno,sname,sage,entertime,sdept,connection,pwd,notice,sex) values('0','1',2,'3','4','5','6',

29、9;7','8')", textBox6.Text.Trim(), textBox1.Text.Trim(), textBox5.Text.Trim(), str1, comboBox2.Text.Trim(), textBox4.Text.Trim(), m_hash.Encrypt(textBox7.Text.Trim(), richTextBox1.Text.Trim(),comboBox1.Text.Trim(); else str = string.Format("insert into teacher(tno,tname,tage,ent

30、ertime,sdept,connection,pwd,notice,sex) values('0','1',2,'3','4','5','6','7','8')", textBox6.Text.Trim(), textBox1.Text.Trim(), textBox5.Text.Trim(), str1, comboBox2.Text.Trim(), textBox4.Text.Trim(), m_hash.Encrypt(textBox7.Text.T

31、rim(), richTextBox1.Text.Trim(),comboBox1.Text.Trim(); cmd = new SqlCommand(str, cn); cmd.ExecuteNonQuery(); MessageBox.Show("添加用户成功!", "提示"); else MessageBox.Show("用户" + login.userid.Trim() + "已经存在!", "提示"); cn.Close(); this.Hide();进入窗体后,通过register_

32、 Click()方法,将新用户的个人信息存入数据库,同时调用hash()函数将新用户设定的密码加密,保证密码的安全性。5.2学生模块设计学生模块主要包括学生选课、密码修改、成绩统计和个人信息查询。学生选课的功能是通过选课窗体实现的。如图5-2-1所示:图5-2-1学生选课界面主要代码如下:SqlConnection cn = BaseClass.DBConn.CyCon();DataSet ds = new DataSet();DataSet ds1 = new DataSet();数据刷新显示:private void display() SqlCommand cmd = new SqlCo

33、mmand(); cmd.CommandText = string.Format("select 课程号,课程名,成绩,教工号 from 选课的学生信息 where 学生学号='0' ",login.userid.Trim(); cmd.Connection = cn; SqlDataAdapter adapter = new SqlDataAdapter(cmd); ds.Clear(); adapter.Fill(ds, "s"); dataGridView1.DataSource = ds.Tables"s" c

34、omboBox1.Items.Clear(); string str = string.Format("select cname from course except (select 课程名 from 选课的学生信息,course where 选课的学生信息.课程号=o and 学生学号='0')", login.userid.Trim(); cmd = new SqlCommand(str, cn); cn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read() comboBox1.

35、Items.Add(dr0.ToString(); cn.Close(); private void display1() SqlCommand cmd = new SqlCommand(); cmd.CommandText = string.Format("select * from 选课信息 "); cmd.Connection = cn; SqlDataAdapter adapter = new SqlDataAdapter(cmd); ds1.Clear(); adapter.Fill(ds1, "s1"); dataGridView2.Data

36、Source = ds1.Tables"s1"选课:private void button1_Click(object sender, EventArgs e) BaseClass.DBConn.getsqlcmd("insert into grade(sno,cno,tno) values('"+login.userid.Trim()+"','"+dataGridView2.CurrentRow.Cells0.Value.ToString()+"','"+dataGridV

37、iew2.CurrentRow.Cells4.Value.ToString()+"')"); display();private void stucourse_Load(object sender, EventArgs e) display(); display1();查询:private void button2_Click(object sender, EventArgs e) SqlCommand cmd =new SqlCommand(); cmd.CommandText=string.Format("select * from 选课信息 wher

38、e 课程名 = '0'",comboBox1.Text.Trim(); cmd.Connection = cn; SqlDataAdapter adapter = new SqlDataAdapter(cmd); ds1.Clear(); adapter.Fill(ds1, "s1"); dataGridView2.DataSource = ds1.Tables"s1"退选:private void button3_Click(object sender, EventArgs e) if (dataGridView1.Curre

39、ntRow.Cells2.Value.ToString() != "") BaseClass.DBConn.getsqlcmd("delete from grade where sno="+login.userid.Trim()+" and cno="+dataGridView1.CurrentRow.Cells0.Value.ToString()+" and tno="+dataGridView1.CurrentRow.Cells3.Value.ToString(); display(); 进入窗体后,首先xua

40、n_Load()方法调用display()将选课的相关信息获得,以便显示在窗体。通过button2_Click()方法查询已选课程和待选课程,利用button1_Click()方法选择要选的课程,并把相关信息存入数据库的相关表中。密码修改有助于用户对自己信息的保护,实现该功能的界面如下图5-2-2:图5-2-2密码修改主代码如下:SqlConnection conn = BaseClass.DBConn.CyCon();public updatepwd() InitializeComponent();Hash sd = new Hash("MD5");private voi

41、d button1_Click(object sender, EventArgs e) if (textBox2.Text = "") MessageBox.Show("请输入密码"); /textBox2.Focus(); else if (textBox2.Text != textBox3.Text) MessageBox.Show("两次密码不一致"); / textBox3.Focus(); else SqlCommand cmd = new SqlCommand("update student set pwd=&#

42、39;" + sd.Encrypt(textBox2.Text.Trim() + "' where sno='" + login.userid.Trim() + "'", conn); try conn.Open(); cmd.ExecuteNonQuery(); if (MessageBox.Show("密码修改成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) = DialogResult.OK) this.Clo

43、se(); catch (SqlException ex) MessageBox.Show("错误:" + ex.Message); finally conn.Close(); private void button2_Click(object sender, EventArgs e) if (textBox4.Text = "") MessageBox.Show("请输入密码"); /textBox2.Focus(); else if (textBox1.Text != textBox4.Text) MessageBox.Show(

44、"两次密码不一致"); / textBox3.Focus(); else SqlCommand cmd = new SqlCommand("update teacher set pwd='" + sd.Encrypt(textBox4.Text.Trim() + "' where tno='" + login.userid.Trim() + "'", conn); try conn.Open(); cmd.ExecuteNonQuery(); if (MessageBox.Show(

45、"密码修改成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) = DialogResult.OK) this.Close(); catch (SqlException ex) MessageBox.Show("错误:" + ex.Message); finally conn.Close(); 依然使用Hash()函数,把密码由明文编为密文。5.3教师模块设计教师模块主要有查询选课的学生信息、成绩统计(包括成绩录入、修改、打印和查询等)和密码修改和个人信息查询。其中密码修改

46、与学生模块的类似,这里不再赘述。图5-3-1是选课的学生信息的界面,可以通过选择课程名查询具体课程的学生信息。图5-3-1学生选课信息主代码如下:SqlConnection cn = BaseClass.DBConn.CyCon();DataSet ds = new DataSet();private void display() SqlCommand cmd = new SqlCommand(); cmd.CommandText = string.Format("select * from 选课的学生信息 where 教工号 ='0'", login.us

47、erid.Trim(); cmd.Connection = cn; SqlDataAdapter adapter = new SqlDataAdapter(cmd); ds.Clear(); adapter.Fill(ds, "s"); dataGridView1.DataSource = ds.Tables"s" private void teastuinfo_Load(object sender, EventArgs e) display(); string str1 = string.Format("select 课程名 from 选课信

48、息 where 教工号='0'", login.userid.Trim(); SqlCommand cmd ; cmd = new SqlCommand(str1, cn); cn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read() comboBox1.Items.Add(dr0.ToString(); cn.Close();private void button1_Click(object sender, EventArgs e) string str1 = string.Format(&

49、quot;select * from 选课的学生信息 where 教工号='0' and 课程名='1'",login.userid.Trim(),comboBox1.Text.Trim(); SqlCommand cmd; cmd = new SqlCommand(str1, cn); SqlDataAdapter adapter = new SqlDataAdapter(cmd); ds.Clear(); adapter.Fill(ds, "xkdxsxx"); dataGridView1.DataSource = ds.Tab

50、les"xkdxsxx"进入窗体后,通过teastuinfo_Load()方法调用display()方法,获得选课的学生信息,并显示在窗体中。选择具体课程后,按下“查询”按钮以调用button1_Click()方法,可以查询具体课程学生选课信息。图5-3-2所示为成绩统计的界面。图5-3-2主代码如下:保存成绩:int n = dataGridView1.Rows.Count;try for (int i = 0; i < n; i+) int grade = Convert.ToInt32(dataGridView1.Rowsi.Cells5.Value); str

51、ing sno = Convert.ToString(dataGridView1.Rowsi.Cells2.Value); string cno = Convert.ToString(dataGridView1.Rowsi.Cells0.Value); BaseClass.DBConn.getsqlcmd("update 选课的学生信息 set 成绩=" + grade + " where 课程号=" + cno + " and 学生学号=" + sno); MessageBox.Show("成绩保存成功!");c

52、atch(SqlException ex) MessageBox.Show("错误:" + ex.Message);打印成绩:this.savaexcel.InitialDirectory = ""this.savaexcel.Filter = "XLS文件(*.XLS)|*.xls"this.savaexcel.FilterIndex = 1;this.savaexcel.RestoreDirectory = true;this.savaexcel.Title = "选择目标数据"if (savaexcel.Sh

53、owDialog() = DialogResult.OK) string filename = savaexcel.FileName; string str = string.Empty;/表示空字符串,此字段为只读 for (int i = 0; i <= dataGridView1.Columns.Count - 1; i+) str += dataGridView1.Columnsi.HeaderText + "t" if (i = dataGridView1.Columns.Count - 1) str += "r" for (int i = 0; i < dataGridView1.Rows.Count; i+) for (int j = 0; j <= dataGridView1.Columns.Count - 1; j+)

温馨提示

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

评论

0/150

提交评论