免费预览已结束,剩余30页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计(论文)学生信息管理系统系 别 :计算机系专业(班级): 计算机科学与技术2010级3班作者(学号):冯深海(51002013036)指导教师: 王 磊完成日期: 2011年6月12日蚌埠学院教务处制摘 要 随着科学技术的不断进步,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一个重要部分,信息查询系统是一个由用户和计算机组成的进行信息管理、信息收集、存储处理、传递使用和维护的软件系统。学生信息管理系统是学校管理学生信息的一种必不可少的的工具,它相对与手工书写管理更加便利,快捷,节约大量时间,大幅提高日常查询效率。 关于学生信息管理系统,论文主要分几个重点部分来介绍它的功能的实现。对各个功能的描述,内容简洁,明了,结构紧凑 。学生信息管理系统可以满足用户的需求,具体体现在对学生信息的录入,修改,查询,修改等操作。实现其中的操作除了对各个类中代码书写,更重要的还需要书写与后台数据库交互的代码, 满足数据库信息的输入和输出。学生信息管理系统的开发目的是为了实现学生个人信息的信息化管理。本系统需要完成功能有:1.登录学生管理系统;2.录入学生信息,包括学号,姓名,性别,出生日期;3.修改已知学号的学生信息;4.删除已知学号的学生信息; 5.查询已知学号的学生信息; 关键词 登录(login),录入(formaddstudent),修改(studentmodify),删除(studentdelete) ,查询(studensearch)第一章 引言(或概述)第一章 引言(或概述) 学生信息管理系统开发我们需具备对后台数据库表的建立,插入,查询,删除,更新,visual studio2005 工具的使用 和面向对象c#语言等知识。通过对学生信息管理系统的设计慢慢了解,深入学习,从而达到熟练掌握.net基本结构以及c#语言的基本知识和技能;基本掌握面向对象程序开发的基本思路和方法;掌握ado.net数据库开发基本知识;能够利用所学的基本知识和技能,进行简单数据库应用程序设计。根据课题的要求,给出解决问题的方案,通过分析问题、分解问题来解决问题,最终达到熟练掌握c#语言的运用和visual studio2005工具的使用。第二章 设计预案第二章2.1 学生信息管理系统的介绍2.1 学生信息管理系统的介绍 学生信息管理系统主要分为四种模块:录入模块、删除模块、修改模块、查找模块。逐步对各个模块的代码书写,实现多种功能,让用户快速而便捷地使用学生信息管理系统。用户可以录入学生信息,输入学生的学号从而删除学生信息、查找学生信息、修改学生信息。 2.222.1 开发方案 2.2.1开发方案 本人计划编写一个人学生信息管理系统,主要功能是满足用户对学生信息的管理,包括录入、删除、修改、查询功能。2. 2.2 模块设计及分析 本次设计主要分为四种模块:录入模块、删除模块、修改模块、查找模块、详细可以参考下图:formmain界面用户登录formmain界面操作指令录 入 学 生 基 本 信 息注 销 学 生 信 息 管 理 系 统按 学 号 查 找 学 生 信 息按 学 号 删 除 学 生 信 息按 学 号 修 改 学 生 信 息学生基本信息表图2-1第三章 设计步骤和要点设计步骤和要点本次设计和数据库紧密相连,首先我们根据题意设计相关的数据库以及相关的数据表(book,manager,user)。然后我们把这次的设计内容分成了若干个模块,逐次实现各个模块的功能,这样不仅便于功能的实现,而且外观美观,层次清晰。制作过程主要是页面的设计和相关代码的编写。3.1 数据库设计说明学生信息数据表 列名数据类型数据长度允许null备注 snonchar9不允许学生学号snamenvarchar20允许学生姓名sexnchar2允许学生性别sbirthdaynchar10允许出生日期图 3-1 学生信息数据表用户登录表 列名数据类型数据长度允许null备注idint不允许usernamenvarchar10允许用户名passwordnvarchar10允许登录密码图 3-2 用户登录表3.2 数据库的完整性和安全性数据库中关系模型完整性约束:实体完整性、参照完整性、和用户定义完整性。其实实体完整性和参照完整性是关系模型中必须满足的完整性条件。因此用户在使用数据库必须遵守完整性规则:实体完整性规则、参照完整性规则、用户定义完整性规则。在关系模型中以主码作为唯一标识,因此主码不能为空。总的来说数据库完整性是指数据的正确性和相容性。例如本系统中学生学号必须唯一;性别只能是男或女等.数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的. 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露,更改,或者破坏。安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题,只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全问题更为突出,系统安全保护措施是否有效是数据库系统的主要指标之一.3.3 登录模板设计 为了系统的安全,在进入系统之前首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。 用户登录窗体中放置了两个文本框(textbox),用来输入用户名和密码;两个按钮(button)用来登录、取消。截图 1 图 3-3 登录窗口 登录代码的关键部分和代码的简单说明:private void button1_click(object sender, eventargs e)/构造函数,返回值空类型, /调用dataaccesslayer层的login()方法,类实例化 sqlhelper sqlhelper = new sqlhelper(); int total = sqlhelper.login(textboxusername.text.trim(), textboxpasword.text.trim();/返回一个整型 if (total 0) formmain main = new formmain(); main.show(); this.hide(); else textboxusername.text = ; textboxpasword.text = ;/用户名和密码清空 textboxusername.focus();/光标恢复原位 messagebox.show(用户名或密码错误, 警告, messageboxbuttons.ok); 3.4 formmain主界面设计登陆成功后即可进入formmain主界面模块。窗体名称为学生信息管理系统,有两大主要控件:系统、档案。其中系统中包括注销,退出按钮。 点击注销按钮返回到登录界面,点击退出按钮退出学生管理系统;点击档案按钮进入到操作指令(录入学生信息、删除学生信息、查找学生信息、修改学生信息)按钮,点击一下进入到各个窗口,使用相应的功能。截图2 图 3-4 学生信息管理系统图 3-5 学生信息管理系统 设计formmain主界面的关键代码和代码的简单说明: 1.private void 注销toolstripmenuitem_click(object sender, eventargs e) formlogin login = new formlogin(); login.showdialog();/显示登录窗口 2.private void 退出toolstripmenuitem_click(object sender, eventargs e) this.close();/退出学生信息管理系统 3.private void 录入学生信息toolstripmenuitem_click(object sender, eventargs e) formaddstudent addstudent = new formaddstudent(); addstudent.showdialog();/显示录入学生信息窗口 if (addstudent.dialogresult=dialogresult .ok)/判断显示窗口时用的标识是否与 系统中的一样bind();/调用bind方法4. bindingsource bs = new bindingsource();/绑定数据源这样的一个类,进行类的实例化 5. public void bind()/构造函数 bs.datasource = new sqlhelper().createtable(); datagridview1.datasource = bs;/通过数据源(datasource)这个渠道把控件 (datagridview1)与反馈数据绑定在一起6. private void 删除学生信息toolstripmenuitem_click(object sender, eventargs e) formdeletestudent delete = new formdeletestudent(); delete.showdialog();/刷新网格 if ( delete.dialogresult = dialogresult.ok) bind(); 7. 进入查询窗口的实现两句代码:studentserch search = new studentserch(); search.showdialog(); 8.studentmodify modify = new studentmodify(); modify.showdialog();if (modify.dialogresult = dialogresult.ok) bind(); 3.5 录入学生信息模块设计 创建一个新的窗体form2,将form2改名为录入学生信息,在该窗体中设置控件,点击其中的控件按钮进入相应代码编写的地方,进行代码的编写。截图 3图3-6 录入学生信息代码编写要点和代码说明:1. string 学号= textboxsno.text.trim();string 姓名= textboxsname.text.trim();string 性别= comboboxsex.text.trim();string 日期= textboxbirthday.text.trim();/定义4个字符串型变量(学号,姓名,性别,日期),分别把控件的内容赋给他们2.try你的代码;catch ()检验并给出提示;3. close();/取消录入 3.6 删除学生信息模块设计创建一个新的窗体,将该窗体命名为删除学生信息,在该窗体中设置控件,点击其中的控件按钮进入相应代码编写的地方,进行代码的编写。将各个控件中属性名改为易于识别名字,这样在编写代码时不会被混淆。删除学生信息是已知学号进行删除的。系统通过录入功能录入了学生信息,在通过输入学号与后台数据库中已存的学号进行比较,若相等则删除,否则不删除并给出相应提示。 截图4图3-7 删除学生信息 代码编写要点和代码说明: new studentdao().delete(textboxsno.text.trim();这行代码是把输入的学号(textboxsno中的内容)作为一个参数传到studentdao类中delete构造函数中,然后与 后台中已存在的学号进行比较。public void delete(string sno) string sql = delete from student where sno=sno;/定义一个字符串变量并赋值 sqlparameter para = new sqlparameter/sqlparameter是系统中的类,属于不能继承的类。值引用是不能够继承的。此行是类的实例化new sqlparameter(sno,sqldbtype.nchar)/ sqldbtype指定特定的字段和数据类型 ;int i = 0;parai+.value = sno;sqlhelper.executenonquery(sql, para)/传递参数到sqlhelper中,与后台已存数据进行比较之后做出相应的参考。 3.7 查找学生信息模块设计查找学生信息是以知道学生的学号为前提,只要后台数据库中已经录入一些学生的信息,正确输入学生学号即可查找到要查找的学生信息。实现这个功能,首先要创建一个窗体,设置一些控件。点击这些控件进行代码的编写。下面是查找学生信息模块的截图。 截图 5图3-8 查询学生信息查询关键代码的设计和简单说明:点击确定按钮进入代码编辑位置,进行代码的编写。if (textbox1sno.text = )/判断学号输入处是否为空bind();/调用构造函数else bs.datasource = new sqlhelper().createtable1(textbox1sno.text.trim();datagridview2.datasource = bs;/不相等时, 通过数据源(datasource)这个渠道把控件(datagridview1)与反馈数据绑定在一起,在控件(datagrrridview1)中显示table表。 private void bind()messagebox.show(查询失败,请重新输入!, 提示);textbox1sno.focus()/光标返回到开始; return;3.8 修改学生信息模块设计用户录入学生信息之后并且发现录入有误,这时就可以使用修改功能。点击修改按钮进入修改界面,输入要修改的学生的学号,再修改学生的其他的信息。点击确定按钮,进入编辑位置,进行代码的编写。下面是修改界面的的截图。截图 6 图 3-9 修改学生信息修改关键代码的设计和简单说明: 点击确定按钮进入编写代码位置,进行代码编写。(string sno = textboxsno.text.trim();string sname = textboxsname.text.trim();string sex = comboboxsex.text.trim();string sbirthday = textboxsbirthday.text.trim();)这几段代码是定义字符串变量,将各种控件中的内容赋值给变量。这句“new studentdao().modify(sno, sname, sex, sbirthday)”代码含义是指将参数传入到modify构造函数中,进行相应的操作。 “update student set sname=sname where sno=sno update student set sex=sex” 这串代码是用于后台数据库的更新,从而实现系统删除功能的实现。 第四章 系统测试第四章 系统测试 4.1 登录测试图41 登录测试输入用户名和密码,进入学生信息管理系统: 图41 登录测试4.2 录入测试 现在系统中有五个学生信息,使用录入功能录入一个学号为“006号”的学生信息,如图所示:图 4-2 录入测试 4.3 删除测试 上图已存在六个学生的信息,现要删除学号为”002号、006号“的学生信息。操作结果如图所示:图4-3 删除测试4.4 查找测试 查询学号为”001号“学生的信息,查询结果如图所示:图4-4 查询学生信息4.5 修改测试 修改学号为”003号“的学生信息。如图所示:分别将姓名、性别、出生日期中信息改为“王小宝、女、1990-12-01”。修改后的结果如图所示:图4-5 修改学生信息第五章 设计感悟第5章 结论 通过这段时间的学习,让我对c#有了新的认识。要想学好这门语言,需要长期的知识积累和上机实践并且不断地总结经验。在用c#开发一个项目时,遇到自己不能解决的问题可以通过积极思考、查询资料、询问老师、同学这些方式来解决。 这次我设计的课题是学生信息管理系统。在设计这个课题的过程中,面对着许多问题,,在本次设计过程中,我是逐步对每个模块进行编码设计,完成每个功能。要求在每个阶段结束之前通过人工检查,完善每个模块的功能,尽早发现错误并纠正,完成每个模块测试之后再进行系统测试。 致谢致谢 这次课程设计主要感谢我们的指导老师(王磊)。在这个项目刚刚确定下来,我们一头雾水,不知如何开发。因此前期的制作,主要是老师和我们一起开发并且给我们讲解。在老师的引导下,我们逐步完成了整个项目的研发。在这里我们感谢指导老师。参考文献参考文献1王珊,萨师煊数据库系统概述,高等教育出版社2 c#高级程序设计,清华大学出版社 附录:程序清单附录:程序清单/登录using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using dataaccesslayer;namespace studentmis public partial class formlogin : form public formlogin() initializecomponent(); private void button1_click(object sender, eventargs e) /调用dataaccesslayer层的login()方法, sqlhelper sqlhelper = new sqlhelper(); int total = sqlhelper.login(textboxusername.text.trim(), textboxpasword.text.trim(); if (total 0) formmain main = new formmain(); main.show(); this.hide(); else textboxusername.text = ; textboxpasword.text = ; textboxusername.focus(); messagebox.show(用户名或密码错误, 警告, messageboxbuttons.ok); private void label2_click(object sender, eventargs e) private void formlogin_load(object sender, eventargs e) private void textboxpasword_textchanged(object sender, eventargs e) /formmain主界面using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using dataaccesslayer;namespace studentmis public partial class formmain : form public formmain() initializecomponent(); private void 录入学生信息toolstripmenuitem_click(object sender, eventargs e) formaddstudent addstudent = new formaddstudent(); addstudent.showdialog(); if (addstudent.dialogresult=dialogresult .ok) bind(); bindingsource bs = new bindingsource(); public void bind() bs.datasource = new sqlhelper().createtable(); datagridview1.datasource = bs private void formmain_load(object sender, eventargs e) bind(); private void 删除学生信息toolstripmenuitem_click(object sender, eventargs e) formdeletestudent delete = new formdeletestudent(); delete.showdialog(); /刷新网格 if ( delete.dialogresult = dialogresult.ok) bind(); private void datagridview1_cellcontentclick(object sender, datagridviewcelleventargs e) private void 档案toolstripmenuitem_click(object sender, eventargs e) private void 查询学生信息toolstripmenuitem_click(object sender, eventargs e) studentserch search = new studentserch(); search.showdialog(); private void 修改学生信息toolstripmenuitem_click(object sender, eventargs e) studentmodify modify = new studentmodify(); modify.showdialog(); if (modify.dialogresult = dialogresult.ok) bind() private void 退出toolstripmenuitem_click(object sender, eventargs e) application.exit(); private void 注销toolstripmenuitem_click(object sender, eventargs e) formlogin login = new formlogin(); login.showdialog(); /录入using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using dataaccesslayer;using system.data.sqlclient;namespace studentmis public partial class formaddstudent : form public formaddstudent() initializecomponent(); private void buttonok_click(object sender, eventargs e) string 学号= textboxsno.text.trim(); string 姓名= textboxsname.text.trim(); string 性别= comboboxsex.text.trim(); string 日期= textboxbirthday.text.trim(); try new studentdao().insert(学号, 姓名, 性别, 日期); this.dialogresult = dialogresult.ok; messagebox.show(录入成功, 提示); catch (sqlexception ex) switch (ex.number) case 2627: messagebox.show(已经存在此学号!请检查。, 错误:, messageboxbuttons.ok, messageboxicon.error); break; default: string info = string.format(访问数据库出错!n具体原因为:0n错误代码:1, ex.message, ex.number); messagebox.show(info); break; return; catch (exception err) messagebox.show(err.message, 出错了:, messageboxbuttons.ok, messageboxicon.error); return; private void label1_click(object sender, eventargs e) private void formaddstudent_load(object sender, eventargs e) private void textboxsno_textchanged(object sender, eventargs e) private void buttoncancel_click(object sender, eventargs e) close(); /删除using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using dataaccesslayer;using system.data.sqlclient;namespace studentmis public partial class formdeletestudent : form public formdeletestudent() initializecomponent(); private void buttonok_click(object sender, eventargs e) new studentdao().delete(textboxsno.text.trim(); this.dialogresult = dialogresult.ok; messagebox.show(删除成功, 提示); private void formdeletestudent_load(object sender, eventargs e) private void textboxsno_textchanged(object sender, eventargs e) private void button2_click(object sender, eventargs e) close(); /查找 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 dataaccesslayer;namespace studentmis public partial class studentserch : form public studentserch() initializecomponent(); private void stdentselect_load(object sender, eventargs e) private void textbox1_textchanged(object sender, eventargs e) bindingsource bs = new bindingsource(); private void buttonok_click(object sender, eventargs e) if (textbox1sno.text = ) bind(); else bs.datasource = new sqlhelper().createtable1(textbox1sno.text.trim(); datagridview2.datasource = bs; private void bind() messagebox.show(查询失败,请重新输入!, 提示); textbox1sno.focus(); return; private void textbox1_textchanged_1(object sender, eventargs e) private void buttoncancle_click(object sender, eventargs e) private void textboxsno_textchanged(object sender, eventargs e) private void textboxsname_textchanged(object sender, eventargs e) private void datagridview1_cellcontentclick(object sender, datagridviewcelleventargs e) private void button1_click(object sender, eventargs e) close(); /修改using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国永磁电机行业发展状况投资策略研究报告
- 2024-2030年中国水果罐头市场竞争态势及运营效益预测报告
- 2024-2030年中国水产苗种培育市场运营状况及投资战略研究报告
- 2024-2030年中国氨甲环酸行业发展态势及投资价值评估报告
- 2024-2030年中国格蓬酯境外融资报告
- 2024-2030年中国木制家具制品行业发展模式及投资规划分析报告
- 2024-2030年中国有源电力滤波器APF行业发展现状及运营模式分析报告版
- 2024-2030年中国智能交通市场发展规模及前景趋势分析报告
- 2024-2030年中国无针血糖测试仪市场竞争动态与需求规模预测报告
- 甲指分包管理措施
- 新人教版小学三年级数学上册期末总复习提纲资料
- XX系实验室安全隐患自查台账
- 龙门吊轨道基础计算书汇总
- 项目工程管理流程图
- 宿舍热水设计计算
- 2021年山东省东营市中考物理试卷
- 架空输电线路杆塔位移计算
- “杜仲壮骨丸”产品召回评估报告
- 简易注销全体投资人承诺书
- 一年级拼音竞赛题
- 转炉副枪探头_贺力士提供
评论
0/150
提交评论