




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
附件4:课程设计报告书面向对象方法学课 程 设 计 报 告设计题目:学生信息管理系统课程班 级:13软件工程1班学 号:20130*姓 名:何*指导教师:庄*老师设计时间:2014年12月摘 要本文描述的是基于windows环境的学生信息管理系统,主要功能模块包括:学生信息的增删改查,学生课程的增删改查, 学生成绩的增删改查,用户的增删改查。所用体系构架client/server结构。主要工具microsoft visual studio 2010 设计窗体, mysql建立数据库,实现学生信息管理的各个功能。运用语言c#与sql语法编程。本篇报告介绍一个学生信息管理系统的从分析到设计最后到开发的全过程为,给出了学生信息管理系统的设计和技术实现的过程,特别在细节上分析功能和函数的实现思想。关键词:面向对象,学生信息管理系统,win7,mysql,vs2012,c/sthis article describes the windows environment based student information management system , the main function modules include: additions and deletions to change search student information , additions and deletions to change search student curriculum , student achievement crud user crud. the system architecture client / server structure . the main tool for microsoft visual studio 2012 design form , mysql database was established to achieve the various functions of the student information management . sql syntax and use of c # programming language .this report describes a student information management system from analysis to design and finally to the whole process of development , the process gives the student information management system design and technology , in particular, to achieve ideological analysis functions and functions in detail.keywords: object oriented, student information management system,win7, mysql, vs2012, c/s目 录摘 要2绪论41.1 设计目的41.2 开发工具选择41.3 开发环境41.4 本报告的主要内容4需求分析52.1系统需求简介52.1.1系统目标52.1.2功能需求分析52.1.3性能需求分析5总体设计63.1设计概述63.2系统总体结构及功能模块划分63.2.1学生信息管理模块63.2.2学生课程管理模块73.2.3学生成绩管理模块73.2.4系统用户管理模块83.3系统数据库概念结构设计83.3.1系统e-r图83.3.2系统数据库的设计93.4安全保密设计103.4.1用户登录安全性10详细设计114.1概述114.2系统程序流程图114.3系统主要功能模块简介124.3.1系统登录124.3.2学生信息管理模块124.3.3学生课程管理模块144.3.4学生成绩管理模块164.3.5系统用户管理模块184.3.6版权关于20主要功能模块代码215.1 登录界面代码设计215.2 主页面代码265.3 系统用户管理模块代码设计385.4 课程信息管理模块代码设计455.5成绩信息管理模块代码设计52总结61参考文献61课程设计心得62 绪论1.1 设计目的本课程设计的目的是使学生能熟练掌握简单的简单windows窗体应用程序的设计和ado.net的应用,希望通过本次课程设计锻炼学生使用c#语言解决实际问题的能力。1.2 开发工具选择本系统后台数据库采用mysql 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用microsoft 公司的visual studio 2012作为主要开发工具,可与mysql 数据库无缝链接。1.3 开发环境 开发系统:win7系统开发平台:microsoft visual studio 2012系统开发语言:c#数据库管理软件:mysql 1.4 本报告的主要内容本报告详细的介绍了学生信息管理系统的开发过程,主要涉及到的工作如下:系统的需求分析、系统的总体设计、系统的概念设计、系统各模块的详细设计、系统运行与测试。 需求分析2.1系统需求简介2.1.1系统目标(1) 根据查询条件实现学生信息的查询(2) 学生选课信息查询、成绩信息和用户信息的查询(3) 学生信息、课程信息、成绩信息、用户信息的增加、删除、修改(4) 对基本信息完成增加、删除、修改时,需注意表与表之间的关联2.1.2功能需求分析本系统的功能需求分析如下:(1) 学生信息查询:可以根据学号进行查询.(2) 学生信息管理:主要是用于学生信息添加、删除、修改;(3) 学生成绩查询:可以根据学号进行查询.(4) 学生成绩管理:主要是用于学生成绩添加、删除、修改;(5) 课程信息查询:可根据菜单进行查询.(6) 课程信息管理:主要是用于课程信息添加、删除、修改;(7) 用户信息查询:可根据菜单进行查询.(8) 用户信息管理:主要是用于用户信息添加、删除、修改;2.1.3性能需求分析(1) 登录、用户界面需求:简洁、易懂、易用、友好的用户界面。(2) 安全保密性需求:只有凭借用户名和密码登陆系统,只有管理员才能进行信息的管理,非管理员只能查看信息。 总体设计3.1设计概述根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能;3.2系统总体结构及功能模块划分经过对系统的需求分析,学生信息管理系统主要划分为三个部分:学生信息查询,学生信息管理,学生成绩录入三个功能模块。如图3.2.0 系统的总体结构。图3.2.0 系统的总体结构3.2.1学生信息管理模块学生信息管理:主要是用于学生信息添加、删除、修改,如图3.2.1学生信息管理模块结构。 图.2学生课程管理模块学生课程管理:主要是用于学生课程添加、删除、修改,如图3.2.2学生课程管理模块结构。 图.3学生成绩管理模块 学生成绩管理:主要是用于学生成绩添加、删除、修改,如图3.2.3学生成绩管理模块结构。 图.4系统用户管理模块 系统用户管理:主要是用于系统用户添加、删除、修改,如图3.2.4系统用户管理模块结构。 图系统数据库概念结构设计根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础。3.3.1系统e-r图系统e-r图可以将各个实体之间的关系显示出来,将各个实体间的属性依赖表示明白。如图3.3.1系统e-r图结构。 图3.3.1系统e-r图结构3.3.2系统数据库的设计综合以上分析,要实现上面的所有功能模块,主要设计表如下: 表 用户表(user)表成绩表(grade)表课程表 (course)表学生表(stu)3.3.3数据库的连接配置先在项目中引用mysqldrivercs.dll类添加 using mysqldrivercs; mysqlconnection conn = new mysqlconnection(new mysqlconnectionstring(数据库名, server帐号, 密码).asstring);3.4安全保密设计3.4.1用户登录安全性系统设计了登录界面,每个合法用户有用户名及一个密码,只有当用户输入正确的用户名及密码组合后才能够对学生信息进行操作。 详细设计4.1概述详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。4.2系统程序流程图程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。它可将整个程序的总体流程清楚明白的显示出来。如图4.2.1系统总流程图结构。图4.2.1系统总体流程图4.3系统主要功能模块简介4.3.1系统登录用户凭借用户名及密码登录,成功登录后可对学生信息进行操作。用户界面如图4.3.1 用户登录界面所示。 图4.3.1 用户登录界面4.3.2学生信息管理模块学生信息管理:通过程序主界面的添加学生信息按钮可添加学生信息(如图 4.3.2添加信息窗口)。学生信息进行详细信息管理(如图4.3.3 信息管理)包括删除信息(如图 4.3.4删除信息提示)和修改信息(如图4.3.5 修改信息窗口)。图4.3.2添加信息窗口图4.3.3 信息管理 图4.3.4删除信息提示 图4.3.5 修改信息窗口4.3.3学生课程管理模块学生课程管理:通过程序主界面的菜单-系统-课程管理 可添加课程信息(如图 4.3.5信息管理)和 详细的课程管理(如图4.3.6 添加信息窗口)和(如图4.3.7 删除信息提示)和(如图4.3.8 修改信息窗口)。 图 4.3.5信息管理 4.3.6 添加信息窗口 图4.3.7 删除信息提示 图4.3.8 修改信息窗口4.3.4学生成绩管理模块学生信息管理:选择一行学生信息通过程序主界面的查看-学生成绩按钮,查看该学生的成绩信息(如图 4.3.7查看信息窗口)。查看后还可以添加该学生的成绩(如图 4.3.8添加信息窗口)、删除该学生的成绩(如图 4.3.9删除提示窗口)和修改该学生的成绩(如图 4.3.10修改信息窗口) 图4.3.7成绩管理 4.3.8添加信息窗口 图 4.3.9删除提示窗口 图 4.3.10修改信息窗口4.3.5系统用户管理模块系统用户管理:通过程序主界面的菜单-系统-用户管理,查看该系统用户的信息(如图 4.3.11查看信息窗口)。查看后还可以添加该系统的用户(如图 4.3.12添加信息窗口)、删除该系统的用户(如图 4.3.13删除提示窗口)和修改该系统的用户(如图 4.3.14修改信息窗口) 4.3.11查看信息窗口 图 4.3.12添加信息窗口 图 4.3.13删除提示窗口 图 4.3.14修改信息窗口4.3.6版权关于 版权关于:图4.3.15版权关于 图4.3.15版权关于 主要功能模块代码5.1 登录界面代码设计namespace sims_1 public partial class log : form string check = abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz1234567890; string check_4 = ; random r = new random(); public log() initializecomponent(); for (int i = 0; i 4; i+) int n=r.next(0,61); check_4 += + checkn; l_check.text = check_4; private static string id, password, type; public static int flag = 1; string flag = ; mysqlconnection con = new mysqlconnection(new mysqlconnectionstring(students, root, 123456).asstring); private void bt_log_click(object sender, eventargs e) try id = txt_id.text.trim(); password = txt_password.text.trim(); if (this.rb_log_manager.checked) type = 管理员; if (this.rb_log_not_manager.checked) type = 非管理员; / 如果输入的帐号和密码与系统的帐号密码一致就进入本系统 con.open(); mysqlcommand setformat = new mysqlcommand(set names gb2312, con); setformat.executenonquery(); setformat.dispose(); string sql = select * from user where 用户名= + id + and 用户密码= + password + and 用户类型= + type + ; mysqldataadapter adapter = new mysqldataadapter(sql, con); dataset set = new dataset(); adapter.fill(set,user); this.dataview.datasource = set.tablesuser; int rowcount = dataview.rowcount - 1; if (rowcount = 1) try if (string.compare(check_4,txt_check.text,true)=0) mysqlcommand setformat1 = new mysqlcommand(set names gb2312, con); setformat1.executenonquery(); setformat1.dispose(); string sql1 = select 用户类型 from user where 用户名= + id + and 用户密码= + password + ; mysqldataadapter adapter1 = new mysqldataadapter(sql1, con); dataset ds = new dataset(); adapter1.fill(ds); datarow dr = ds.tables0.rows0; /得到行数据集,实际是个数组 flag = dr.itemarray0.tostring(); con.close(); if (flag.equals(非管理员) flag = 0; else flag = 1; students s = new students(); s.show(); this.setvisiblecore(false); else messagebox.show(验证码错误!); catch (mysqlexception) messagebox.show(数据库链接出错了); else messagebox.show(您输入的帐号或密码不正确或没有选择用户类型,请重新输入!, 警告!, messageboxbuttons.ok, messageboxicon.error); catch (system.io.filenotfoundexception) messagebox.show(未找到数据库!); private void bt_cancel_click(object sender, eventargs e) /询问是否退出本系统 if (messagebox.show(是否取消本次登录?, 确认, messageboxbuttons.yesno, messageboxicon.question) = dialogresult.yes) application.exit(); private void linklabel1_linkclicked(object sender, linklabellinkclickedeventargs e) registered_add r_add = new registered_add(); r_add.show(); private void l_check_click(object sender, eventargs e) check_4 = ; for (int i = 0; i 4; i+) int n = r.next(0, 61); check_4 += + checkn; l_check.text = check_4; 5.2 主页面代码namespace sims_1 public partial class students : form public static mysqlconnection con = null; public students() try initializecomponent(); con = new mysqlconnection(new mysqlconnectionstring(students, root, 123456).asstring); if (log.flag = 0) this.bt_add.hide(); bt_delete.hide(); bt_change.hide(); catch (system.io.filenotfoundexception) messagebox.show(未找到数据库!); private void bt_searchall_click(object sender, eventargs e) con.open(); mysqlcommand setformat = new mysqlcommand(set names gb2312, con); setformat.executenonquery(); setformat.dispose(); string sql1 = select * from stu; mysqldataadapter adapter = new mysqldataadapter(sql1, con); dataset set = new dataset(); adapter.fill(set, stu); this.dataview.datasource = set.tables0; int rowcount = dataview.rowcount-1; messagebox.show(查找到+rowcount+个学生的信息!); if (rowcount = 0) messagebox.show(您还未添加学生!); con.close(); private void bt_search_click(object sender, eventargs e) try int64 id = convert.toint64(txt_search.text); con.open(); mysqlcommand setformat = new mysqlcommand(set names gb2312, con); setformat.executenonquery(); setformat.dispose(); string sql = select * from stu where 学号= + id + ; mysqldataadapter adapter = new mysqldataadapter(sql, con); dataset set = new dataset(); adapter.fill(set, stu); dataview.datasource = set.tables0; int rowcount = dataview.rowcount-1; if (rowcount = 0) messagebox.show(未找到您要查找的学号的学生!); con.close(); catch (formatexception) messagebox.show(输入的学生学号格式有误n请重新输入!, 警告!, messageboxbuttons.ok); private void bt_add_click(object sender, eventargs e) add a = new add(); a.show(); private void bt_delete_click(object sender, eventargs e) try string id = dataview.selectedrows0.cells0.value.tostring(); if (messagebox.show(是否要删除学号为: + id + 的学生?, 确认, messageboxbuttons.yesno, messageboxicon.question) = dialogresult.yes) con.open(); mysqlcommand setformat = new mysqlcommand(set names gb2312, con); setformat.executenonquery(); setformat.dispose(); string sql = delete from stu where 学号= + id + ; mysqlcommand command= new mysqlcommand(sql, con); command.executenonquery(); con.close(); messagebox.show(删除成功!, 提示!, messageboxbuttons.ok); catch (argumentoutofrangeexception) messagebox.show(您还没有选择一行要删除的数据!); catch (nullreferenceexception) messagebox.show(您选择行的数据无效!); private void bt_change_click(object sender, eventargs e) try string id = dataview.selectedrows0.cells0.value.tostring(); string name = dataview.selectedrows0.cells1.value.tostring(); string sex = dataview.selectedrows0.cells2.value.tostring(); string age = dataview.selectedrows0.cells3.value.tostring(); string depart = dataview.selectedrows0.cells4.value.tostring(); string nation = dataview.selectedrows0.cells5.value.tostring(); con.open(); mysqlcommand setformat = new mysqlcommand(set names gb2312, con); setformat.executenonquery(); setformat.dispose(); string sql = delete from stu where 学号= + id + ; mysqlcommand command = new mysqlcommand(sql, con); command.executenonquery(); con.close(); add a1 = new add(); a1.show(); /将要修改的数据添加到修改的窗体 a1.txt_id.text = + id; a1.txt_name.text = name; / a1.txt_sex.text = sex; if (sex.trim().equals(男) a1.rbt_man.checked =true; else a1.rbt_wonam.checked = true; a1.txt_age.text = age; a1.txt_depart.text = depart; a1.txt_nation.text = nation; a1.text = 修改; a1.bt_add_cancel.hide(); catch (argumentoutofrangeexception) messagebox.show(您还没选择一行要修改的数据!); catch (nullreferenceexception) messagebox.show(您选择行的数据无效!); private void bt_exit_click(object sender, eventargs e) /询问是否要退出本系统,结束整个运行程序 if (messagebox.show(是否退出本系统?, 确认, messageboxbuttons.yesno, messageboxicon.question) = dialogresult.yes) application.exit(); /退成整个程序 private void txt_search_keypress(object sender, keypresseventargs e) if (e.keychar.equals(r) bt_search_click(sender, e); private void students_load(object sender, eventargs e) / this.bt_searchall_click(sender, e); con.open(); mysqlcommand setformat = new mysqlcommand(set names gb2312, con); setformat.executenonquery(); setformat.dispose(); string sql1 = select * from stu; mysqldataadapter adapter = new mysqldataadapter(sql1, con); dataset set = new dataset(); adapter.fill(set, stu); this.dataview.datasource = set.tables0; private void bt_course_click(object sender, e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生污水处理厂工程节能评估报告
- 轻型钢结构防腐蚀施工方案
- 电梯师傅考试题库及答案
- 机电设备安装工程环保管理方案
- 2025年焊锡培训考试试题及答案
- 选煤厂生产线自动化控制设备选型方案
- 废水零排放系统技术研究与应用方案
- 离婚双方子女抚养及财产分配协议
- 离婚协议附带财产分割及债务偿还标准合同
- 专业市场租赁合同范本及市场品牌形象提升协议
- 精神科护理学练习题
- 2024年司法考试历年真题及答案
- 工程机械租赁技术支持保障措施
- 肿瘤科常见药物及注意事项
- 机组资源管理(CRM)训练指南
- 2025-2030中国甘草酸铵行业市场现状供需分析及投资评估规划分析研究报告
- 基于图像生成对抗网络的加密技术研究-洞察阐释
- 2024年广东省生态环境厅下属事业单位真题
- 我的教育故事:高中数学老师
- 天然药物活性成分的发现与筛选课件
- 干部选拔任用全流程解析
评论
0/150
提交评论