数据库学生成绩管理系统课程设计报告.doc
《数据库学生成绩管理系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《数据库学生成绩管理系统课程设计报告.doc(28页珍藏版)》请在咨信网上搜索。
数据库学生成绩管理系统课程设计报告 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 洛 阳 理 工 学 院 课 程 设 计 报 告 课程名称 数据库课程设计 设计题目 学生成绩查询系统 专 业 计算机科学与技术 班 级 B100506 学 号 B10050634 姓 名 孙帅杰 完成日期 2013年1月6号 课 程 设 计 任 务 书 设计题目: 学生成绩管理系统 设计内容与要求: 设计内容: 教务员可以输入学生、教师、班级、课程信息,一个班级只属于一个专业,一个学生只属于一个班级。教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师.一个教师可以教授多个班的多门课程。 教师可以查看学习该课程的学生名单.课程结束后,教师可以录入课程成绩。 课程分两类,必修课和选修课。学生可以选修课程,每学期几门。学生可以查看自己各门课程的成绩。学生还可以进行评教,给老师打分。 系统管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。 设计要求: 要求完成需求分析,写出功能需求和数据需求描述; 在需求分析的基础上完成数据库的概念结构设计、逻辑结构设计、物理结构 设计; 用C#语言,完成管理系统的部分程序模块的界面设计。 指导教师: 陶 荣 2012年12月28日 课 程 设 计 评 语 成绩: 指导教师: 年 月 日 目 录 1.绪论 1 1。1 设计目的 1 1.2 开发工具选择 1 1.3 开发环境 1 1.4 本报告的主要内容 1 2.需求分析 1 2.1 系统需求简介 1 3。总体设计 2 3。1 设计概述 2 3.2 系统总体结构及功能模块划分 2 3.3 系统数据库概念结构设计 4 3.4 逻辑结构设计 7 4.主程序设计 10 4。1 登录系统 10 4。2 学生信息查询、保存、及修改 12 4.3 用户管理 18 5。设计总结与心得体会 22 6.参考文献 23 1。绪论 1.1 设计目的 本课程设计的目的是使学生能熟练掌握简单的简单Windows窗体应用程序的设计和ADO。net的应用,希望通过本次课程设计锻炼学生使用C#语言解决实际问题的能力。 1。2 开发工具选择 本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft 公司的Visual Studio 2010作为主要开发工具,可与SQL Server 2008数据库无缝链接. 1。3 开发环境 系统开发平台:Microsoft Visual Studio2010 系统开发语言:C# 数据库管理软件:SQL Server 2008 1。4 本报告的主要内容 本报告详细的介绍了学生成绩管理系统的开发过程,主要涉及到的工作如下:系统的需求分析、系统的总体设计、系统的概念设计、系统各模块的详细设计、系统运行与测试。 2。需求分析 2。1系统需求简介 (1)系统目标 1.根据查询条件实现学生信息的查询 2。学生选课信息查询、成绩信息的查询 3。学生信息、课程信息、成绩信息的增加、删除、修改 4.对基本信息完成增加、删除、修改时,需注意表与表之间的关联 (2)功能需求分析 本系统的功能需求分析如下: 1。学生信息查询:学生可以根据学号、姓名、专业进行查询. 2。学生信息管理:主要是用于学生信息更新、插入、删除; 3.学生成绩录入:用于学生成绩管理,录入学生成绩,也可以更新; (3)性能需求分析 1.登录、用户界面需求:简洁、易懂、易用、友好的用户界面。 2。安全保密性需求:只有凭借用户名和密码登陆系统,才能进行信息的管理等. 3。总体设计 3。1设计概述 根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能。 3。2系统总体结构及功能模块划分 经过对系统的需求分析,学生信息管理系统主要划分为三个部分:学生信息查询,学生信息管理,学生成绩录入三个功能模块.系统的总体结构如图3—1所示. 学 生 成绩录入 学 生 信 息 管理 学生信息管理系统 学 生 信 息 查询 图3-1 系统的总体结构示意图 (1)学生信息查询模块 学生信息查询 学号查询 姓名查询 学生信息查询:学生可以根据本人学号、姓名进行信息查询。学生信息查询模块结构如图3-2所示. 图3-2 学生信息管理模块结构示意图 (2)学生信息管理模块 学生信息管理:主要是用于学生信息更新、插入、删除。学生管理模块结构如图3—3所示. 基本信息录入 成绩录入 基本信息更新 成绩更新 学 生 信息删除 学 生 信 息 录入 学生信息管理 学生信息更新 图3—3 学生信息管理模块结构示意图 3。3系统数据库概念结构设计 根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础. (1)系统E—R图 系统E-R图可以将各个实体之间的关系显示出来,将各个实体间的属性依赖表示明白。 教师与课程之间的关系: 教师与课程之间是m: n的关系,即一个老师能教多门课程,一门课程可以由多个老师讲授。 图3—4教师与课程实体图 学生与教师之间的关系: 学生与教师之间是n:m的关系,即一名老师可以教授多个学生,而一个学生可以由多个教师来教。 图3-5教师与学生的实体图 学生与课程之间的关系: 学生与课程之间是n:m的关系,即一个学生可以选修多门课程,一门课程可以被多个学生选学。 图3-6学生与课程的实体图 学生与成绩之间的关系是n:m的关系: 图3—7学生与成绩的实体图 管理员与用户的关系: 图3-8管理员与用户的实体图 图3-9学生成绩管理全局E—R 图 3.4 逻辑结构设计 (1)将E-R图转化为关系模型为: 管理员(用户名,密码) 学生(学号,姓名,性别,系名,专业,出生日期) 教师(教师号,姓名,性别,院系,联系电话) 课程(课程号,课程名,学分,教师) 成绩(学号,课程号,姓名,课程名,成绩,授课老师) 管理(教师号,学号,密码) 教授(教师号,课程号,课程名) 选修(学号,课程号,成绩) 讲授(教师号,课程号) (2)将以上数据关系模型进行优化处理得关系模型: 学生信息(学号,姓名,性别,系名,专业,出生日期) 教师信息(教师号,姓名,性别,院系,联系电话) 管理员信息(用户名,密码,用户级别) 课程表(课程号,课程名,学分,教师) 成绩表(学号、课程号、成绩) (3)物理模型设计 学生信息表具体有学号,姓名,性别,系名,专业,出生日期,如表3-1所示 表3—1学生信息表 字段 类型 长度 约束 索引 学号 字符型 8 主键约束 有 姓名 字符型 10 性别 字符型 2 系名 字符型 20 专业 数值型 20 出生日期 字符型 8 教师信息具体有教师号,姓名,性别,院系,专业,联系电话,如表3—2所示 表3-2教师信息表 字段 类型 长度 约束 索引 教师号 字符型 8 主键约束 有 姓名 字符型 10 性别 字符型 2 院系 字符型 20 专业 数值型 20 联系电话 字符型 11 管理员信息具体有用户名、密码、用户级别,如表3—3所示 字段 类型 长度 备注 用户名 字符型 8 学号、教师号 密码 字符型 6 用户级别 字符型 10 一般操作员/系统管理员 表3-3管理员信息表 课程表信息具体有课程号,课程名,学分,教师,如表3-4所示 表3—4课程表信息 字段 类型 长度 约束 索引 课程号 字符型 10 主键约束 有 课程名 字符型 30 学分 字符型 2 教师 字符型 10 成绩表具体有学号,课程号,成绩,如表3-5所示 表3—5成绩表 字段 类型 长度 约束 索引 学号 字符型 8 主键 有 课程号 字符型 10 主键 有 成绩 数值型 5 4。主程序设计 4.1 登录系统 namespace CourseDesign { public partial class LoginForm : Form { #region 属性 /// <summary> /// 是否登录 /// 〈/summary> private bool _isLogin = false; public bool IsLogin { get { return _isLogin; } set { _isLogin = value; } } //用于记录当前登录用户名; private static string _currentUser; public static string CurrentUser { get { return _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, EventArgs 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 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 = '” + txtBoxPsw.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 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 = ””; } } } 图4—1用户登录界面 4.2 学生信息查询、保存、及修改 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; } } // private 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; InitializeComponent(); 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 = new Command(); string strClass = @”select classId from ClassInfo where className = '" + dataGridViewInfo。CurrentRow.Cells["classid"]。Value.ToString() + ”'”; string dtClass = com.GetScalar(strClass)。ToString(); string strdept = @"select sdeptNo from Sdept where name = '” + dataGridViewInfo.CurrentRow.Cells[”Sdept"].Value。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 (dataGridViewInfo["stuNum”, dataGridViewInfo。CurrentRow。Index].Value != null && dataGridViewInfo["name”, dataGridViewInfo。CurrentRow。Index].Value != null && dataGridViewInfo["sex”, dataGridViewInfo.CurrentRow。Index].Value != null && dataGridViewInfo["birthday”, dataGridViewInfo。CurrentRow。Index]。Value != null && dataGridViewInfo["nation”, dataGridViewInfo.CurrentRow.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。CurrentRow.Index].Value != null && dataGridViewInfo["intoSchoolDate”, dataGridViewInfo。CurrentRow.Index]。Value != null) { string sql = ”insert into StudentInfo (stuNum,name,sex ,birthday ,nation,address,phone,classid,intoSchoolDate,Sdept) values”; sql += ”('” + dataGridViewInfo。CurrentRow.Cells["stuNum”]。Value.ToString() + "’,'” + dataGridViewInfo.CurrentRow。Cells["name"]。Value.ToString() + ”’,'” + dataGridViewInfo。CurrentRow.Cells[”sex”].Value。ToString() + "',’" + dataGridViewInfo。CurrentRow。Cells[”birthday”]。Value.ToString() + "’,’" + dataGridViewInfo。CurrentRow.Cells["nation”].Value。ToString() + "',’” + dataGridViewInfo.CurrentRow.Cells[”address”].Value.ToString() + "’,'" + dataGridViewInfo。CurrentRow.Cells["phone"]。Value.ToString() + ”','" + dtClass + ”',’” + dataGridViewInfo.CurrentRow。Cells["intoSchoolDate”].Value。ToString() + ”',’" + dtDept + ”’)"; if (com.ExecuteCommand(sql) 〉 0) { dataGridViewInfo。Rows.Clear(); SelectStudentInfo(); MessageBox.Show("数据添加成功!"); } } 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; DataGridViewColumn 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 col0 = 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。dataGridViewInfo.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 DataGridViewTextBoxColumn(); 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 = "入学时间”; 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 (dataGridViewInfo["stuNum”, 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- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 学生 成绩管理系统 课程设计 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文