《数据库高级应用》课程设计-高校成绩管理系统.doc_第1页
《数据库高级应用》课程设计-高校成绩管理系统.doc_第2页
《数据库高级应用》课程设计-高校成绩管理系统.doc_第3页
《数据库高级应用》课程设计-高校成绩管理系统.doc_第4页
《数据库高级应用》课程设计-高校成绩管理系统.doc_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

安阳师范学院 数据库高级应用课程设计 数据库高级应用课程设计项 目 名 称:高校成绩管理系统 所 在 班 级: 物联网工程 小 组 成 员: 指 导 教 师: 起 止 时 间: 11月 16日 12月 20日 项目基本信息项目名称高校成绩管理系统项目简介背景分析-需求分析 管理信息系统正在向着网络化、智能化和集成化等趋势发展。学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。系统简介本系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化。达到提高学生成绩管理效率的目的。与传统管理方法相比有明显的优点:查找方便,可靠性高,保密性好,成本低。彻底改变了以前繁杂的管理模式,实现全面的、相对集中的、职能化的信息综合管理。计算机被用到信息管理系统的环境正是适应了当今时代飞速发展的信息时代。人们深刻的认识到了计算机功能的强大,对于复杂的信息管理,计算机充分发挥着它的优越性。检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低,这些优点极大地减轻了学院教学人员的工作量,缩小开支,提高了学生档案管理的效率和准确性,能够合理的安排时间,学生能够尽快的知道自己的考试成绩。同时,学生管理系统的应用也为今天的教育在未来市场的竞争力有所提高。小组成员李龙、刘赟任务分工李龙:前台界面,代码编写以及窗体设计刘赟:登录界面以及主窗体,代码编写和窗体设计问题描述及分析1.1 背景 21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便。1.2目的编写本文档的目的在于,让教务管理人员和任课教师了解学生成绩管理系统工作内容、参与的人员分工情况、课程实施、考试安排、学习计划等方面的具体情况。详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:系统的需求分析、系统的总体设计、系统的概念设计、系统各模块的详细设计、系统运行与测试。设计概述根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体,逐一实现各个功能。数据备份 学生信息化处理系统是 一个具有复杂功能、业务化程度高、数据处理和存储量大等特点的应用系统,对业务数据的可靠性有很高的要求。为了有效防范和抵御诸如人为、自然灾害、供电故障等可能遭遇的风险隐患,必须采用数据容灾备份措施,以确保减灾应用数据产品的安全性、可靠性和完整性。同时需要考虑建设成本、数据安全性等因素,要具有安全性高、数据恢复速度快、运行管理方便等特点。l 数据字典图(数据流图、E-R图、结构图、流程图)1.3数据字典定义:数据字典是数据库的重要部分。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典通常包括数据项,数据结构,数据流,数据存储和处理过程等五个部分。数据字典内容包括:数据库中所有模式对象的信息,如表、视图、簇、及索引等。数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。-老师表:T_teacher-学生表:S_student-课程表:C_course-成绩表:S_score 学生成绩管理系统1.4 数据流图 学生 老师 系统总体结构及功能模块划分学生成绩录入学生信息管理学生信息管理系统学生信息查询经过对系统的需求分析,学生信息管理系统主要划分为三个部分:学生信息查询,学生信息管理,学生成绩录入三个功能模块。如图2.2.1 系统的总体结构。图2.2.1 系统的总体结构2.1学生信息查询模块学生信息查询学号查询姓名查询学生信息查询:学生可以根据学号、姓名进行查询。如图2.2.2学生信息查询模块结构。图2.2.2 学生信息管理模块结构2.2学生信息管理模块基本信息录入成绩录入基本信息更新成绩更新学生信息删除学生信息录入学生信息管理学生信息更新学生信息管理:主要是用于学生信息更新、插入、删除,如图3.2.3学生管理模块结构。图2.2.3 学生信息管理模块结构2.3系统数据库概念结构设计根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础。2.3.1系统E-R图系统E-R图可以将各个实体之间的关系显示出来,将各个实体间的属性依赖表示明白。如图2.3.1系统E-R图结构。图2.3.1系统E-R图结构2.4 功能模块及结构描述重点模块的实现(文字描述、抓图、界面)综合以上分析,要实现上面的所有功能模块,主要设计表如下: 用户表(usedata)成绩表(SC)课程表 (C)学生表(S)主要流程描述 流程图、系统的实现过程(三层结构、)设计的过程3.1 数据准备、窗体设计、代码设计:界面层(UI)、实体访问层、数据访问层概述:详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。3.2系统程序流程图程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。它可将整个程序的总体流程清楚明白的显示出来。如下图:系统总流程图结构图 系统总体流程图3.3系统主要功能模块简介3.4系统登录用户凭借用户名及密码登录,成功登录后进行操作。管理员登录管理学生、课程及成绩信息;学生登录查询信息、选课、查询成绩等;用户界面如下图: 用户登录界面所示。 用户登录主窗体界面3.5学生信息查询模块学生信息查询:在程序主界面(如下图:选择窗口)学生可以根据班级、学号、姓名进行查询。学生可以只用一种条件进行信息查询,也可以多个条件查询,显示学生的更详细信息(如下图:查询条件窗口)。 图3.2 3.6学生信息管理模块学生信息管理:通过右击程序主界面的相应记录的菜单如:修改学生信息(如图 修改信息窗口)、删除信息(如图 删除信息窗口)。更新时如果输入的学号不存在,可选择是否添加学生信息。通过程序主界面的新建信息记录可添加学生信息(如图 3.3.7 添加信息窗口)。 修改信息窗口 添加信息窗口3.7使用说明(配置信息:账号、口令、数据库安全等) 管理员老师和学生的账号不同,口令不同。是为了实现数据库的安全。不同的身份账号登录,会有不同的内部口令,实现功能也就不相同。老师即管理员登录可修改内部数据、信息;实现学生成绩录入、学生成绩更改;学生课程录入、课程信息修改等等;学生只能修改本身的注册信息;选择自己的课程;查看自己的成绩情况;修改自己的密码等等;确保数据安全。问题及解决方法问题:验证码的功能还需要进一步的修改解决办法:图书馆查找资料以及上网搜寻课程设计总结 本学期的数据库课程设计结束了,在老师和同学的帮助下,我组基本完成了本系统的设计。按照数据库程序设计的要求,从需求分析,概念设计,总体设计,详细设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的学生信息查询,学生信息更新,学生信息添加,课程录入,课程编辑,选课,密码修改等模块的功能。下面是我们的体会:1、巩固和加深了对C#的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:1、认真上好专业实验课,多在实践中锻炼自己。2、写程序的过程中要考虑周到,严密。3、在做设计的时候要有信心,有耐心,切勿浮躁。4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。参考文献VisualC# 程序设计教程(第二版)数据库系统概论(第四版)源代码 登录窗体界面using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using System.IO;namespace Myscore public partial class login : Form / public UserClass myclass1=new UserClass(); public static string ss; public login() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) this.login_name.Focus(); private void button1_Click(object sender, EventArgs e) string userName = login_name.Text; string password = pwd.Text; string s = Data Source=.;Initial Catalog=Myscore;Integrated Security=True; SqlConnection conn = new SqlConnection(s); try conn.Open(); if (login_name.Text = | pwd.Text = ) MessageBox.Show(用户名和密码不能为空!请输入!); else String sql = string.Format(select count(*) from Sy_Use where uname=0and upwd=1, userName, password); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read() /UserClass.GlobAdminName = login_name.Text; /UserClass.GlobalPower = dr4.ToString(); /UserClass.GlobalCollage = dr5.ToString(); /UserClass.GlobaCollage_code = dr3.ToString(); dr.Close(); conn.Close(); this.Hide(); Score_Main fr = new Score_Main(); fr.Show(); else pwd.Text = ; MessageBox.Show(用户名或密码不正确!); return; catch (Exception ex) MessageBox.Show(ex.Message, 操作数据库出错, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Tag = false; finally conn.Close();/关闭数据库连接 private void button2_Click(object sender, EventArgs e) if (MessageBox.Show(您确定要退出本登陆吗?, 退出, MessageBoxButtons.YesNo) = DialogResult.Yes) Application.Exit(); private void timer1_Tick(object sender, EventArgs e) if (dtPicker.Left = this.Width) dtPicker.Left = 0; dtPicker.Left += 1; private void dtPicker_ValueChanged(object sender, EventArgs e) timer1.Enabled = true; timer1.Start(); private void lbllink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) this.Hide(); us_zhuce fs = new us_zhuce(); fs.ShowDialog(); 主窗体界面using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace Myscore public partial class Score_Main : Form public Score_Main() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) private void 记事本ToolStripMenuItem_Click(object sender, EventArgs e) System.Diagnostics.Process.Start(notepad.exe); private void 计算器ToolStripMenuItem_Click(object sender, EventArgs e) System.Diagnostics.Process.Start(calc.exe); private void word文档ToolStripMenuItem_Click(object sender, EventArgs e) System.Diagnostics.Process.Start(WINWORD.EXE); private void excel表格ToolStripMenuItem_Click(object sender, EventArgs e) System.Diagnostics.Process.Start(EXCEL.EXE); private void 修改学生作息ToolStripMenuItem_Click(object sender, EventArgs e) private void 层叠排列ToolStripMenuItem_Click(object sender, EventArgs e) this.LayoutMdi(System.Windows.Forms.MdiLayout.Cascade); /层叠排列 private void 垂直平铺ToolStripMenuItem_Click(object sender, EventArgs e) this.LayoutMdi(System.Windows.Forms.MdiLayout.TileVertical); /垂直平铺 private void 水平平铺ToolStripMenuItem_Click(object sender, EventArgs e) this.LayoutMdi(System.Windows.Forms.MdiLayout.TileHorizontal); /水平平铺 private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) System.Windows.Forms.DialogResult dr; dr = MessageBox.Show(this, 您确定要退出本系统吗?, 退出, MessageBoxButtons.YesNo, MessageBoxIcon.None); if (dr = System.Windows.Forms.DialogResult.Yes) this.Close(); Application.Exit(); private void 添加学生信息ToolStripMenuItem_Click(object sender, EventArgs e) stu_add fm = new stu_add(); fm.MdiParent = this; fm.Show(); private void 修改学生信息ToolStripMenuItem_Click(object sender, EventArgs e) stu_mod fm = new stu_mod(); fm.MdiParent = this; fm.Show(); private void 增加课程ToolStripMenuItem_Click(object sender, EventArgs e) skc_add fm = new skc_add(); fm.MdiParent = this; fm.Show(); private void 修改课程ToolStripMenuItem_Click(object sender, EventArgs e) skc_mod fm = new skc_mod(); fm.MdiParent = this; fm.Show(); private void 成绩录入ToolStripMenuItem_Click(object sender, EventArgs e) scj_add fm = new scj_add(); fm.MdiParent = this; fm.Show(); private void 成绩修改ToolStripMenuItem_Click(object sender, EventArgs e) scj_mod fm = new scj_mod(); fm.MdiParent = this; fm.Show(); private void 学生信息查找ToolStripMenuItem_Click(object sender, EventArgs e) stu_find fm = new stu_find(); fm.MdiParent = this; fm.Show(); private void 学生成绩查找ToolStripMenuItem_Click(object sender, EventArgs e) scj_find fm = new scj_find(); fm.MdiParent = this; fm.Show(); private void 课程信息查找ToolStripMenuItem_Click(object sender, EventArgs e) skc_find fm = new skc_find(); fm.MdiParent = this; fm.Show(); private void toolStripMenuItem1_Click(object sender, EventArgs e) pwd_mod fm = new pwd_mod(); fm.MdiParent = this; fm.Show(); private void 管理员设置ToolStripMenuItem_Click(object sender, EventArgs e) admin_add fm = new admin_add(); fm.MdiParent = this; fm.Show(); private void 添加学生信息ToolStripMenuItem_Click_1(object sender, EventArgs e) stu_add fm = new stu_add(); fm.MdiParent = this; fm.Show(); private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) protected override void OnClosing(CancelEventArgs e) base.OnClosing(e); e.Cancel = true; if (MessageBox.Show(您确定要退出本系统吗?, 退出, MessageBoxButtons.YesNo) = DialogResult.Yes) Application.Exit(); private void Score_Main_Load(object sender, EventArgs e) if (UserClass.GlobalPower = 1) menuStrip1.Items7.Visible = false; private void toolStripMenuItem2_Click(object sender, EventArgs e) course_add fm = new course_add(); fm.MdiParent = this; fm.Show(); private void tsmabout_Click(object sender, EventArgs e) tsmabout a = new tsmabout(); a.ShowDialog(); /tssMsg.Text = a.Text; 学生成绩录入查找修改using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace Myscore public partial class scj_add : Form private DataTable DT = new DataTable(); private SqlDataAdapter SDA = new SqlDataAdapter(); public scj_add() InitializeComponent(); private void scj_add_Load(object sender, EventArgs e) scollage_bind(); smajors_bind(); sclass_bind(); cname_bind(); scollage.Text = UserClass.GlobalCollage; if (UserClass.GlobalPower = 1) scollage.Enabled = false; private void smajors_bind() string s = Data Source=.;Initial Catalog=Myscore;Integrated Security=True; SqlConnection conn = new SqlConnection(s); conn.Open(); string s1 = SELECT smajors,smajors_code FROM Sy_Majors where scollage_code= + UserClass.GlobaCollage_code + ; SqlDataAdapter da = new SqlDataAdapter(s1, conn); DataSet dataset1 = new DataSet(); da.Fill(dataset1, Mytable); if (dataset1 != null & dataset1.Tables.Count != 0) smajors.DataSource = dataset1.Tables0; smajors.DisplayMember = smajors; smajors.ValueMember = smajors_code; conn.Close(); conn.Close(); private void sclass_bind() string s = Data Source=.;Initial Catalog=Myscore;Integrated Security=True; SqlConnection conn = new SqlConnection(s); conn.Open(); string s1 = SELECT sclass,sclass_code FROM Sy_Class where smajors_code= + smajors.SelectedValue + order by sclass; SqlDataAdapter da = new SqlDataAdapter(s1, conn); DataSet dataset1 = new DataSet(); da.Fill(dataset1, Mytable); if (dataset1 != null & dataset1.Tables.Count != 0) sclass.DataSource = dataset1.Tables0; sclass.DisplayMember = sclass; sclass.ValueMember = sclass_code; conn.Close(); conn.Close(); private void scollage_SelectedIndexChanged(object sender, EventArgs e) string s = Data Source=.;Initial Catalog=Myscore;Integrated Security=True; SqlConnection conn = new SqlConnection(s); conn.Open(); string s1 = SELECT smajors,smajors_code FROM Sy_Majors where scollage_code= + scollage.SelectedValue + ; SqlDataAdapter da = new SqlDataAdapter(s1, conn); DataSet dataset1 = new DataSet(); da.Fill(dataset1, Mytable); if (dataset1 != null & dataset1.Tables.Count != 0) smajors.DataSource = dataset1.Tables0; smajors.DisplayMember = smajors; smajors.ValueMember = smajors_code; conn.Close(); cname_bind(); data_bind(); conn.Close(); private void smajors_SelectedIndexChanged(object sender, EventArgs e) string s = Data Source=.;Initial Catalog=Myscore;Integrated Security=True; SqlConnection conn = new SqlConnection(s); conn.Open(); string s1 = SELECT sclass,sclass_code FROM Sy_Class where smajors_code= + smajors.SelectedValue + order by sclass; SqlDataAdapter da = new SqlDataAdapter(s1, conn); DataSet dataset1 = new DataSet(); da.Fill(dataset1, Mytable); if (dataset1 != null & dataset1.Tables.Count != 0) sclass.DataSource = dataset1.Tables0; sclass.DisplayMember = sclass; sclass.ValueMember = sclass_code; conn.Close(); conn.Close(); private void scollage_bind() string s = Data Source=.;Initial Catalog=Myscore;Integrated Security=True; SqlConnection conn = new SqlConnection(s); conn.Open(); string s1 = SELECT scollage,scollage_code FROM Sy_Collage; SqlDataAdapter da = new SqlD

温馨提示

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

评论

0/150

提交评论