数据库技术及应用项目设计报告学生成绩管理系统姓名:Celia Yan2015-01-07一.设计目的及意义在如今的高校日常管理中,学生成绩管理系统是其中非常重要的一环,特别是当前学校规模不断扩大,学生人数日益增加,课程门类多,校区分散等实际情况,学生成绩统计功能越来越繁重,稍有疏忽就会出现差错。
因此,学生成绩管理系统更具有非常大的实际应用意义。
在互联网快速崛起的今天,改革传统的手工录入方式,公正,准确,及时反映学生的信息和成绩的情况,以适应信息时代的要求,是学生成绩管理系统的一个新的理念。
通过成绩管理可以大大提高学校的工作效率。
学生成绩管理系统应该完成以下两个方面的内容:学生档案资料的管理、学生成绩的管理。
通过学生成绩管理系统可以做到信息的规范管理,科学统计和快速查询、修改、增加、删除等,减少管理方面的工作量。
二.主要功能该系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生信息进行日常管理,如查询、修改、增加、删除,另外还考虑到用户登录的权限,针对学生信息和权限登录的学生成绩管理系统。
本系统主要包括注册管理、教师管理、学生信息查询、添加、修改、删除等部分。
其主要功能有:(1)学生信息的添加,包括输入学生基本信息和成绩。
(2)学生信息的查询,包括查询学生的基本信息和成绩。
(3)学生信息的修改,包括修改学生基本信息和成绩。
(4)学生信息的删除,包括删除学生基本信息和成绩。
(5)登录用户密码修改,用户登录到系统可进行相应的用户密码修改。
(6)管理员用户对用户名的管理,包括添加新用户、删除用户。
学生成绩管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。
对于后者则要求应用程序功能完备,易使用。
该管理系统我使用的是Microsoft Visual Studio 2012 及 Microsoft SQL Server 2008。
系统功能流程图图 2.1 系统功能流程三.数据库设计3.1本系统的数据库采用的是SQL Server2008 。
该数据库包括学生成绩表、用户登录表用于纪录学生的基本信息数据库表结构如下:成绩表物理结构图3.1图3.2用户登录表物理结构:图3.3图3.43.2触发器删除DLB中的记录时同时删除CJB中姓名相同的记录USE[studentscore]GO/****** Object: Trigger [dbo].[dlb_delete] Script Date: 01/07/2015 12:42:17 ******/ SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger[dbo].[dlb_delete]on[dbo].[dlb]after deleteasbegindeclare@leib varchar(50)select@leib='学生'from deleteddelete from cjbwhere姓名in(select用户名from deleted)End3.3数据库连接string constr = "Password=617804;Persist Security Info=True;User ID=ywj;Initial Catalog=studentscore;Data Source=YANJING";SqlConnection conn = new SqlConnection(constr);string sqlstr = "select * from cjb";SqlCommand cmd = new SqlCommand(sqlstr, conn);SqlDataReader reader = cmd.ExecuteReader();DataSet ds = new DataSet();while (reader.Read()){string id = reader["学号"].ToString();string name = reader["姓名"].ToString();MessageBox.Show(string.Format("id={0},name={1},学号,姓名"));}四.系统实现4.1.登录界面图4.1该界面是学生成绩管理系统的登录界面,可以选择作为学生,管理员或者教师身份登录。
每一个进入系统的人都会看到当前的时间,在登录时只有用户名,密码,与身份相符合时才能进入系统,否则登录无法成功。
using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsFormsApplication1{public partial class Form1 : Form{static public string sn, sub;public Form1(){InitializeComponent();}Form2 fr2 = new Form2(); Form3 fr3 = new Form3(); Form4 fr4 = new Form4();private void Form1_Load(object sender, EventArgs e){timer1.Start();}private void label1_Click(object sender, EventArgs e){}private void button1_Click(object sender, EventArgs e){string constr = "Password=617804;Persist Security Info=True;UserID=ywj;Initial Catalog=studentscore;Data Source=YANJING";SqlConnection conn = new SqlConnection(constr);conn.Open();if (textname.Text == "" || textpassword.Text == "")MessageBox.Show("信息不全,请不要遗漏信息!");if (rbtnmanager.Checked){string cstr = "select * from dlb where 类别='管理员' and 用户名='" + textname.Text.Trim() + "'and 密码='" + textpassword.Text.Trim() + "'";SqlCommand comm = new SqlCommand(cstr, conn);SqlDataReader dr = comm.ExecuteReader();if (dr.Read()){sn = textname.Text.Trim(); fr4.Show(); this.Visible = false; ;}else{MessageBox.Show("密码或用户名出错,请重新输入!");textname.Text = ""; textpassword.Text = "";}}if (rbtnteacher.Checked){string cstr = "select * from dlb where 类别='教师' and 用户名='" + textname.Text.Trim() + "'and 密码='" + textpassword.Text.Trim() + "'";SqlCommand comm = new SqlCommand(cstr, conn);SqlDataReader dr = comm.ExecuteReader();if (dr.Read()){sn = textname.Text.Trim(); sub = dr.GetValue(3).ToString(); fr3.Show(); this.Visible = false;}else{MessageBox.Show("密码或用户名出错,请重新输入!");textname.Text = ""; textpassword.Text = "";}}if (rbtnstudent.Checked){string cstr = "select * from dlb where 类别='学生' and 用户名='" + textname.Text.Trim() + "'and 密码='" + textpassword.Text.Trim() + "'";SqlCommand comm = new SqlCommand(cstr, conn);SqlDataReader dr = comm.ExecuteReader();if (dr.Read()){sn = textname.Text.Trim(); fr2.Show(); this.Visible = false;}else{MessageBox.Show("密码或用户名出错,请重新输入!");textname.Text = ""; textpassword.Text = "";}}conn.Close(); conn.Dispose();}private void button2_Click(object sender, EventArgs e){Application.Exit();}private void timer1_Tick(object sender, EventArgs e){label4.Text = "当前时间:" + DateTime.Now.ToLongDateString() + "" + DateTime.Now.ToLongTimeString();}}}4.2学生成绩管理图4.2设计过程:此部分主要针对学生信息的管理,可以查询学生的所有成绩信息,实现成绩的添加、删除、修改、计算平均分等功能。