收藏 分销(赏)

数据库学生成绩管理系统课程设计报告.doc

上传人:天**** 文档编号:2227900 上传时间:2024-05-23 格式:DOC 页数:28 大小:570.54KB
下载 相关 举报
数据库学生成绩管理系统课程设计报告.doc_第1页
第1页 / 共28页
数据库学生成绩管理系统课程设计报告.doc_第2页
第2页 / 共28页
数据库学生成绩管理系统课程设计报告.doc_第3页
第3页 / 共28页
数据库学生成绩管理系统课程设计报告.doc_第4页
第4页 / 共28页
数据库学生成绩管理系统课程设计报告.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、数据库学生成绩管理系统课程设计报告 作者: 日期:2 个人收集整理 勿做商业用途洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 数据库课程设计 设计题目 学生成绩查询系统 专 业 计算机科学与技术 班 级 B100506 学 号 B10050634 姓 名 孙帅杰 完成日期 2013年1月6号 课 程 设 计 任 务 书设计题目: 学生成绩管理系统 设计内容与要求: 设计内容:教务员可以输入学生、教师、班级、课程信息,一个班级只属于一个专业,一个学生只属于一个班级。教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师.一个教师可以教授多个班的多门课程。教师可以查看学习该

2、课程的学生名单.课程结束后,教师可以录入课程成绩。课程分两类,必修课和选修课。学生可以选修课程,每学期几门。学生可以查看自己各门课程的成绩。学生还可以进行评教,给老师打分。系统管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。设计要求:要求完成需求分析,写出功能需求和数据需求描述;在需求分析的基础上完成数据库的概念结构设计、逻辑结构设计、物理结构设计;用C语言,完成管理系统的部分程序模块的界面设计。 指导教师: 陶 荣 2012年12月28日课 程 设 计 评 语 成绩: 指导教师: 年 月 日 目 录1.绪论11。1 设计目的11.2 开发工具选择11.3 开发环境11.4 本

3、报告的主要内容12.需求分析12.1 系统需求简介13。总体设计23。1 设计概述23.2 系统总体结构及功能模块划分23.3 系统数据库概念结构设计43.4 逻辑结构设计74.主程序设计104。1 登录系统104。2 学生信息查询、保存、及修改124.3 用户管理185。设计总结与心得体会226.参考文献23 1。绪论1.1 设计目的本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和ADO。net的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。1。2 开发工具选择本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统

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

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

6、一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能。3。2系统总体结构及功能模块划分经过对系统的需求分析,学生信息管理系统主要划分为三个部分:学生信息查询,学生信息管理,学生成绩录入三个功能模块.系统的总体结构如图31所示.学生成绩录入学生信息管理学生信息管理系统学生信息查询 图3-1 系统的总体结构示意图(1)学生信息查询模块学生信息查询学号查询姓名查询学生信息查询:学生可以根据本人学号、姓名进行信息查询。学生信息查询模块结构如图3-2所示. 图3-2 学生信息管理模块结构示意图(2)学生信息管理模块学生信息管理:主要是用于学生信息更新、插入、删除。学生管理模块结构如图33所

7、示.基本信息录入成绩录入基本信息更新成绩更新学生信息删除学生信息录入学生信息管理学生信息更新图33 学生信息管理模块结构示意图3。3系统数据库概念结构设计根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础.(1)系统ER图系统E-R图可以将各个实体之间的关系显示出来,将各个实体间的属性依赖表示明白。 教师与课程之间的关系:教师与课程之间是m: n的关系,即一个老师能教多门课程,一门课程可以由多个老师讲授。 图34教师与课程实体图 学生与教师之间的关系:学生与教师之间是n:m的关系,即一名老师可以教授多个学生,而一个学生可以由多个教师来

8、教。 图3-5教师与学生的实体图 学生与课程之间的关系:学生与课程之间是n:m的关系,即一个学生可以选修多门课程,一门课程可以被多个学生选学。 图3-6学生与课程的实体图 学生与成绩之间的关系是n:m的关系: 图37学生与成绩的实体图 管理员与用户的关系: 图3-8管理员与用户的实体图图3-9学生成绩管理全局ER 图3.4 逻辑结构设计(1)将E-R图转化为关系模型为:管理员(用户名,密码)学生(学号,姓名,性别,系名,专业,出生日期)教师(教师号,姓名,性别,院系,联系电话)课程(课程号,课程名,学分,教师)成绩(学号,课程号,姓名,课程名,成绩,授课老师)管理(教师号,学号,密码)教授(教

9、师号,课程号,课程名)选修(学号,课程号,成绩)讲授(教师号,课程号) (2)将以上数据关系模型进行优化处理得关系模型:学生信息(学号,姓名,性别,系名,专业,出生日期)教师信息(教师号,姓名,性别,院系,联系电话)管理员信息(用户名,密码,用户级别)课程表(课程号,课程名,学分,教师)成绩表(学号、课程号、成绩)(3)物理模型设计 学生信息表具体有学号,姓名,性别,系名,专业,出生日期,如表3-1所示 表31学生信息表字段类型长度约束索引学号字符型8主键约束有姓名字符型10性别字符型2系名字符型20专业数值型20出生日期字符型8 教师信息具体有教师号,姓名,性别,院系,专业,联系电话,如表3

10、2所示 表3-2教师信息表字段类型长度约束索引教师号字符型8主键约束有姓名字符型10性别字符型2院系字符型20专业数值型20联系电话字符型11 管理员信息具体有用户名、密码、用户级别,如表33所示字段类型长度备注用户名字符型8学号、教师号密码字符型6用户级别字符型10一般操作员/系统管理员 表3-3管理员信息表 课程表信息具体有课程号,课程名,学分,教师,如表3-4所示 表34课程表信息字段类型长度约束索引课程号字符型10主键约束有课程名字符型30学分字符型2教师字符型10 成绩表具体有学号,课程号,成绩,如表3-5所示 表35成绩表字段类型长度约束索引学号字符型8主键有课程号字符型10主键有

11、成绩数值型5 4。主程序设计4.1 登录系统namespace CourseDesign public partial class LoginForm : Form #region 属性 / / 是否登录 / /summary private bool _isLogin = false; public bool IsLogin get return _isLogin; set _isLogin = value; /用于记录当前登录用户名; private static string _currentUser; public static string CurrentUser get retur

12、n _currentUser; /用于记录当前登录用户密码; private static string _currentPsw; public static string CurrentPsw get return _currentPsw; endregion public LoginForm() InitializeComponent(); this.labelInfo.Text = ”; this.txtBoxUser.Text = admin; this。txtBoxPsw。Text = 0; /登录 private void btnOK_Click(object sender, Ev

13、entArgs e) if (txtBoxUser.Text.Trim() = ”) this.labelInfo.Text = ”请输入您的用户名!”; else if (txtBoxPsw.Text.Trim() = ”) this。labelInfo。Text = ”请输入您的密码!”; /MessageBox.Show(请输入您的密码, ”错误提示:”, MessageBoxButtons.OK, MessageBoxIcon。Warning); else Command com = new Command(); string str = ”select * from UserInfo

14、 where userId = + txtBoxUser。Text。ToString() + ”; DataTable table = com。GetDataSet(str); if (table.Rows.Count = 0) this.labelInfo.Text = ”用户名不存在!”; txtBoxUser。Text = ”; txtBoxPsw.Text = ”; return; str = ”select * from UserInfo where userId = + txtBoxUser。Text.ToString() + ” and passWard = ” + txtBox

15、Psw.Text。ToString() + ; DataTable tableUser = com.GetDataSet(str); if (tableUser.Rows。Count 0) _currentUser = txtBoxUser。Text; _currentPsw = txtBoxPsw.Text; IsLogin = true; this。Close(); else this.labelInfo。Text = 密码错误!”; txtBoxPsw。Text = ”; /取消 private void btnCencle_Click(object sender, EventArgs

16、e) this.Close(); /重置 private void btnReset_Click(object sender, EventArgs e) txtBoxUser.Text = ”; txtBoxPsw。Text = ”; private void txtBoxUser_Click(object sender, EventArgs e) this。labelInfo.Text = ”; private void txtBoxPsw_Click(object sender, EventArgs e) this.labelInfo。Text = ”; 图41用户登录界面4.2 学生信息

17、查询、保存、及修改namespace CourseDesign public partial class frmViewInfo : Form #region 属性 private DBHelper。TypeOfOperationForBill _mOperTypeOfBill = DBHelper.TypeOfOperationForBill。nNull; public DBHelper.TypeOfOperationForBill OperTypeOfBill get return _mOperTypeOfBill; set _mOperTypeOfBill = value; / priv

18、ate bool _isNew = false; public bool IsNew get return _isNew; set _isNew = value; private bool _isModified = false; public bool IsModified get return _isModified; set _isModified = value; #endregion public frmViewInfo(DBHelper。TypeOfOperationForBill OperType) _mOperTypeOfBill = OperTypeOfBill; Initi

19、alizeComponent(); SetFromText(); public virtual void SetFromText() if (OperTypeOfBill = TypeOfOperationForBill.nView) this.Text = ”查看学生信息”; else this.Text = 编辑学生信息”; /添加 private void toolStripBtnAdd_Click(object sender, EventArgs e) /this。dataGridViewInfo.Rows。Add(); /_isNew = true; Command com = ne

20、w Command(); string strClass = ”select classId from ClassInfo where className = + dataGridViewInfo。CurrentRow.Cellsclassid。Value.ToString() + ”; string dtClass = com.GetScalar(strClass)。ToString(); string strdept = select sdeptNo from Sdept where name = ” + dataGridViewInfo.CurrentRow.Cells”Sdept.Va

21、lue。ToString() + ”; string dtDept = com。GetScalar(strdept).ToString(); string str = select from StudentInfo where stuNum = + dataGridViewInfo。CurrentRow。Cells”stuNum”.Value。ToString() + ”; DataTable dtable = com.GetDataSet(str); if (dtable.Rows.Count = 0) if (dataGridViewInfostuNum”, dataGridViewInf

22、o。CurrentRow。Index.Value != null & dataGridViewInfoname”, dataGridViewInfo。CurrentRow。Index.Value != null & dataGridViewInfosex”, dataGridViewInfo.CurrentRow。Index.Value != null & dataGridViewInfobirthday”, dataGridViewInfo。CurrentRow。Index。Value != null & dataGridViewInfonation”, dataGridViewInfo.C

23、urrentRow.Index.Value != null dataGridViewInfo”address, dataGridViewInfo.CurrentRow。Index。Value != null & dataGridViewInfo”phone”, dataGridViewInfo。CurrentRow.Index。Value != null dataGridViewInfo”classid”, dataGridViewInfo.CurrentRow.Index.Value != null & dataGridViewInfo”Sdept, dataGridViewInfo。Cur

24、rentRow.Index.Value != null & dataGridViewInfointoSchoolDate”, dataGridViewInfo。CurrentRow.Index。Value != null) string sql = ”insert into StudentInfo (stuNum,name,sex ,birthday ,nation,address,phone,classid,intoSchoolDate,Sdept) values”; sql += ”(” + dataGridViewInfo。CurrentRow.CellsstuNum”。Value.To

25、String() + ,” + dataGridViewInfo.CurrentRow。Cellsname。Value.ToString() + ”,” + dataGridViewInfo。CurrentRow.Cells”sex”.Value。ToString() + , + dataGridViewInfo。CurrentRow。Cells”birthday”。Value.ToString() + , + dataGridViewInfo。CurrentRow.Cellsnation”.Value。ToString() + ,” + dataGridViewInfo.CurrentRow

26、.Cells”address”.Value.ToString() + , + dataGridViewInfo。CurrentRow.Cellsphone。Value.ToString() + ”, + dtClass + ”,” + dataGridViewInfo.CurrentRow。CellsintoSchoolDate”.Value。ToString() + ”, + dtDept + ”); if (com.ExecuteCommand(sql) 0) dataGridViewInfo。Rows.Clear(); SelectStudentInfo(); MessageBox.Sh

27、ow(数据添加成功!); else MessageBox。Show(信息填写不完整!请补充完整!); else MessageBox.Show(该学生已存在,请审核信息!); protected virtual void frmViewInfo_Load(object sender, EventArgs e) this。dataGridViewInfo。Rows。Clear(); this.dataGridViewInfo.Columns。Clear(); /this.dataGridViewInfo.EditMode = DataGridViewEditMode.EditOnEnter; D

28、ataGridViewColumn col = null; col = new DataGridViewTextBoxColumn(); col。Name = ”stuNum”; col.HeaderText = ”学号; this。dataGridViewInfo.Columns。Add(col); col = new DataGridViewTextBoxColumn(); col.Name = name”; col.HeaderText = ”姓名”; this。dataGridViewInfo。Columns。Add(col); DataGridViewComboBoxColumn c

29、ol0 = new DataGridViewComboBoxColumn(); col0.FlatStyle = FlatStyle。Flat; col0。HeaderText = ”性别; col0.Name = ”sex”; col0.Items.Add(”男”); col0.Items。Add(”女); this.dataGridViewInfo。Columns.Add(col0); col = new DataGridViewTextBoxColumn(); col.Name = ”birthday”; col.HeaderText = ”出生年月; this。dataGridView

30、Info.Columns。Add(col); col = new DataGridViewTextBoxColumn(); col.Name = nation”; col.HeaderText = 民族”; this.dataGridViewInfo。Columns。Add(col); col = new DataGridViewTextBoxColumn(); col.Name = address”; col.HeaderText = ”籍贯”; this.dataGridViewInfo.Columns。Add(col); col = new DataGridViewTextBoxColu

31、mn(); col。Name = ”phone”; col。HeaderText = ”联系电话”; this.dataGridViewInfo。Columns。Add(col); col = new DataGridViewTextBoxColumn(); col.Name = classid”; col.HeaderText = ”班级; this。dataGridViewInfo。Columns.Add(col); col = new DataGridViewTextBoxColumn(); col.Name = ”intoSchoolDate”; col.HeaderText = 入学

32、时间”; this.dataGridViewInfo.Columns.Add(col); col = new DataGridViewTextBoxColumn(); col.Name = Sdept; col。HeaderText = ”系别”; this.dataGridViewInfo。Columns。Add(col); /删除 private void toolStripBtnDelete_Click(object sender, EventArgs e) Command com = new Command(); if (dataGridViewInfostuNum”, dataGridViewInfo.CurrentRow。Index。Value != null) string numRow = dataGridViewInfo.CurrentRow。Cells”stuNum。Value。ToString(); string str = delete from StudentInfo where stuNum = ” + dataGridViewInfo。CurrentRow。Cells”stuNum”。Va

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服