还剩51页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《数据库原理课程设计》任务书题目高校学生信息管理系统学生姓名学号班级题目类型软件工程(R) 指导教师
一、数据库课程设计题目简介该设计要求学生以兰州理工大学学生档案管理业务为背景,设计、开发一套“高校学生信息管理系统”软件通过该题目的设计、开发,使学生初步得到数据库开发的训练,全面培养软件开发过程中的分析、设计、编码、测试及文档规范书写的能力,得到软件开发的综合训练,提高解决实际问题的能力
二、数据库课程设计的任务
1、查阅文献资料,一般在10篇以上;
2、以客户关系管理系统为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;
3、完成软件结构设计、数据库设计和算法设计;
4、完成客户关系管理系统的软件开发和测试工作
5、撰写设计说明书;
6、做好答辩工作
三、数据库课程设计的主要内容、功能及技术指标
1、系统功能的基本要求
(1)整个系统由学生基本信息管理子系统、学生奖励惩罚信息管理子系统、学生毕业工作信息管理子系统等组成;
(2)系统要实现基本信息录入、修改、查询等功能;
2、数据库要求(在数据库中至少应该包含下列数据表)
(1)学生基本表包括的数据项有学号、姓名、性别、民族、出生年月、籍贯、培养方式、政治面貌、所在院系、专业、家庭住址、通讯地址、邮政编码、联系人、联系电话等
(2)奖励惩罚信息表包括的数据项有奖励、惩罚名称、原因、各种评价等
(3)毕业工作信息表包括的数据项有毕业情况、毕业去向、档案派遣地、户口派遣地等
3、其它要求
(1)系统要实现满足多种条件的统计分析功能,有些统计数据要采用图表的格式呈现;
(2)系统要有一定的安全控制策略;
(3)系统要采用实际数据进行测试
四、数据库课程设计提交的成果
1.课程设计说明书一份,A4打印稿,正文部分要求不少于20页,所有英文字体采用Arial正文及目录格式参考(毕业设计论文格式要求)正文内容包括1需求分析;2数据库概念结构设计;3数据库逻辑结构设计;4数据流图及程序结构框图;5程序源代码及其说明;6总结;7参考文献
2.刻制光盘一张,把完成的所有电子文档(设计说明书文档、打包后可运行程序及源程序)一并交由指导老师处注文档目录按照如下统一命名规则建立,“课设题目名称/学号姓名/”,比如“公司人事管理系统/12730101周欢欢/”
五、主要参考文献
[1]王珊著数据库系统概论(第四版).高等教育出版社
2002.3
[2]刘金岭等著数据库原理及应用实验与课程设计指导,清华大学出版社出版,
2010.6
[3]钱雪忠等著数据库原理及技术课程设计全新正版),清华大学出版社出版,
2009.2
[4]周屹著数据库原理及开发应用-实验与课程设计指导清华大学出版社出版,
2008.12
[5]李春葆等著VisualBasic数据库系统设计与开发,清华大学出版社出版,
2003.8
[6]唐红亮著SQLServer数据库设计与系统开发教程,清华大学出版社出版,
2007.10
[7]丁忠俊著数据库系统原理及应用,清华大学出版社出版,
2012.4
[8]李晓峰等著数据库系统原理及应用,水利水电出版社,
2011.2
[9]万常选著数据库系统原理与设计第2版,清华大学出版社出版,
2012.9
[10]冯健华等著数据库系统设计与原理(第2版),清华大学出版社出版,
2012.8
[11](美)罗摩克里希纳,格尔基著,周立栋译数据库管理系统原理与设计第3版,清华大学出版社出版,
2004.3
[12](美)西尔伯沙茨等著,杨冬青等译数据库系统概念(原书第6版•本科教学版),机械工业出版社,
2013.1
[13]《Access2010数据库应用从入门到精通》何先军编中国铁道出版社,
2013.10
[14]《数据库系统概念、设计及应用》[印]辛赫(Singh.S.K)著何玉洁王晓波,车蕾,等译.机械工业出版社,
2010.1
六、各阶段时间安排(共2周)2015年12月30日摘要目前,我国的大中专院校的学生信息管理水平普遍不高在当今的信息时代,传统的管理方法必然要被以计算机为基础的信息管理系统所代替,而且目前很多重点院校都已经有了自己的教务管理系统已有的大都比较偏向学生档案管理,学籍管理等,而本案例则把重点放在信息管理上,从整体上进行分析设计,这对于其他类似的管理系统的设计有很高的参考意义 采用学生信息管理系统进行C#程序开发,将C#程序中的所有概念和技术应用到学生信息管理系统的开发当中,按照软件工程的思想来进行网站开发分别进行学生信息管理系统需求分析、学生信息管理系统数据库设计、学生信息管理系统主菜单设计、学生信息管理系统中类的应用、学生信息管理系统数据访问方法、学生信息管理系统窗体和事件应用和学生信息管理系统应用部署等几个模块来完成关键词C#;数据库;信息管理;管理系统1系统简介
1.1设计思想
1.2可行性分析
1.3小组分工2需求分析
2.1需求调查
2.2数据流程图
2.3数据字典3概念结构设计
3.1系统E-R图
3.2表/字段分析4逻辑结构设计
4.1模块分析
4.2数据访问方法5物理结构设计
5.1 模块任务
5.2 模块实施6系统主要查询功能及SQL语句7系统实现
7.1系统功能模块图
7.2部分程序代码
7.3系统运行截图8设计小结
8.1心得与体会
8.2存在的问题及建议参考文献致谢源代码1系统简介
1.1设计思想
1.掌握C#的主要语法和MicrosoftVisualstudio2008开发环境
2.通过C#语言编写学生信息管理系统从而牢固掌握C#程序设计
3.通过编写程序实现学生信息管理系统进一步掌握.NET架构,加深对C#的熟练与认识
4.程序界面美观
1.2可行性分析
1.技术可行性本系统采用Windows7及其以上版本作为操作平台数据库管理系统选用SQL,该数据库管理系统,提供数据库之间的数据复制功能,可代替现有系统单据数据的手工传递工作,降低出错率,提高数据的可用性本系统的应用程序开发平台选用MicrosoftVisualstudio20082经济可行性采用前台学籍信息管理系统可取代原系统的单手工传递工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期提高学生信息的利用率,使教学质量更上一个台阶3营运可行性本系统操作简单,易于理解,只需通过简单培训,上手较快,学校学籍管理处的教职员以及相关教师均能进行操作,营运环境要求低面对于系统设计还应该以“标准性、安全性、高效性、保密性、可维护性”为标准,在着眼于当前实用的基础上,为将来系统的扩展,升级留有余地软件的开发应能在较长时间内满足学校的发展需要标准性系统编写与运行必须符合标准,既可以保证系统运行又可以在此标准上每一项功能运行可靠性由于学籍信息的重要性,系统必须稳定可靠,从而避免或减少数据损失安全性通过系统权限控制使用者,从而确保使用者无法操作与其无关的数据高效性由于学校学生信息每次处理信息量较大,系统对信息处理能力响应能力都应是快捷有效的可维护性采用结构化模块设计,便于开发与维护,也有利于情况随时修复处理
1.3小组分工本小组2个人共同完成学生信息管理系统,具体分工如下:
1.组长杜政毅主要负责代码的编写和调试;
2.组员曹冠平负责建立数据库和文档编写
2.需求分析
2.1范围 本指南用于指导软件开发者为学生信息管理系统的开发过程,通过规范软件项目承担软件的开发过程达到提高软件质量,降低维护成本的目的开发者应根据本指南进行软件开发和编制软件开发文档本指南是对软件项目承担单位的基本要求在进行具体软件开发时,开发者可根据实际情况采编写
2.2信息需求我们将管理体制和建立各种管理规范与开发信息系统有机地结合起来,通过几个功能模块进行统一管理,要求管理系统满足以下几个方面的要求从用户角度来看,系统首先应该能够提供便捷与强大的信息查询功能;对于学校的全体教师而言,他们应该能够对系统的不同部分有各自不同的权限具有较强的灵活性及可扩展性,能够存储一定数量的学生信息,并方便有效地进行相应的数据操作和管理这主要包括学生信息的录入、删除及修改,各种信息的单条件查询和多条件的组合查询,以及学生各科信息的多关键字检索查询具有较高的安全性,系统登录有各自的安全账户系统管理员可添加用户信息,更改用户信息和删除用户信息,同时可以针对其他的信息具有所有的权限;任课教师可以录入信息;学生只能对所有的信息具有查询的功能,不具有修改、删除和录入的权限系统能够提供数据信息授权访问,防止随意删改等
2.3总体功能要求学生信息管理系统的用户主要有两类学生用户、管理员用户学生信息管理系统主要分为四种模块录入模块、删除模块、修改模块、查找模块逐步对各个模块的代码书写,实现多种功能,让用户快速而便捷地使用学生信息管理系统用户可以录入学生信息,输入学生的学号从而删除学生信息、查找学生信息、修改学生信息
1.功能模块总图(图
2.1)图
2.1功能模块总图
2.学生用户主要具备的功能需求1学生只是利用此系统进行与自己有关的信息查询、输入等;2浏览个人基本信息,具体内容包括姓名、学号、民族、出生日期、籍贯、所在班级、备注等;3浏览课程信息,具体内容包括课程名、课程类型、学时、学分和课程具体描述;4学生利用此系统选修课程、在选课过程中,可查询待选课程基本信息;5浏览个人选课情况
3.管理员用户主要具备的功能需求1管理员权限最大,可以对学生、班级、课程情况进行统一的管理,细分如下2添加、修改、删除管理员;3有关学生信息的浏览,包括学生姓名、性别、民族、出生日期、入学时间、所在班级、籍贯和备注信息;4学生信息的添加、修改和删除;5学校基本课程的浏览,包括课程名、课程类型、学时、学分和课程具体描述;6学校基本课程的添加、修改和删除;7学生成绩信息的浏览与统计,可按成绩具体范围对成绩进行统计;8学生成绩信息的添加、修改和删除;9学生选课信息的管理,包括修改与删除;10学生选课人数的统计
2.4 运行环境
1. 硬件平台普通电脑;
2.操作系统Windows7以上版本;
3. 支撑环境和版本主程序采用C#语言编写,数据库支持access与SQLsever;
2.5数据定义
1.用户信息数据表Users用户名User_id;用户密码User_password;用户类型User_power.
2.学生信息数据表Student学生学号Student_id;学生姓名Student_name;学生性别Student_sex;学生民族Student_nation;学生出生日期Student_birthday;学生入学时间Student_time;学生所在班级Student_class;学生住址Student_home;备注:Student_else.
3.课程信息数据表Course课程号Course_id;课程名Course_name;课程学分Course_credit;课程学时Course_period;课程描述Course_describe.
4.学生选课记录数据表Student_Course:学生选课记录ID ID;学生成绩Student_grade;年度学期Course_year.3数据库设计
3.1系统E-R图
1.学生管理系统实体间关系E-R图图
3.1图
3.1学生管理系统实体间关系
2.学生管理系统用户信息实体(图
3.2)图
3.2学生管理系统用户信息实体图
3.学生管理系统学生信息实体(图
3.3)图
3.3学生管理系统学生信息实体
4.学生管理系统课程信息实体(图
3.4)图
3.4学生管理系统课程信息实体
5.学生管理系统学生-课程信息实体(图
3.5)图
3.5学生管理系统学生-课程信息实体
3.2表/字段分析
1.用户信息数据表Users
2.学生信息数据表Student
3.课程信息数据表Course
4.学生选课记录数据表Student_Course:
4.程序设计模块学生信息管理系统是一个典型的数据库应用程序由用户管理、课程管理、选课管理和成绩管理四大模块组成;这四大模块针对管理员和学生角色其功能也不一样
4.1模块分析
1.用户管理模块该模块的主要任务是管理员对系统的使用权限进行设定,从而来管理管理员与学生的系统登录权限其模块图如图
4.1所示图
4.1用户登录模块图
2.课程管理模块该模块的使用角色为管理员,管理员对课程进行管理;如添加、修改、删除课程其模块图如图
4.2所示图
4.2课程管理模块图
3.选课管理模块该模块的角色为管理员和学生学生可以进行合理的选课、退选课,管理员则通过此模块查看学生选课信息其模块图如图
4.3所示图
4.3选课模块图
4.成绩管理模块该模块的角色为管理员,管理员通过此模块进行合理的成绩添加
4.2数据访问方法
1.模块任务创建学生信息管理系统中的各个操作类
2.模块指标 创建学生信息管理系统的操作类DataAccess类、StudentInfoOperation类、和UserInfoOperation类 针对数据表中的数据信息进行实体类的定义之后,需要针对这些数据表中的内容,定义针对数据的增、删、改和查等数据访问操作类
3. 模块实施 1数据访问类 DataAccess.cs类的访问修饰符设为public,设置为公开的,这样才可以被其他类访问但是在定义DataAccess.cs类之前,需要引用命名空间,如下所示 using System.Data; using System.Data.SqlClient; DataAccess.cs类主要是实现数据库连接及对SQL命令的执行 public class DataAccess { } 首先在DataAccess.cs类中定义静态连接字符串ConnectionString,其代码如下所示 public static string ConnectionString = data source=.;database=SSCGGL;integrated security=true;; public bool ExecuteSQLstring sql public SqlDataReader GetReaderstring sql public DataSet GetDataSetstring sql string tablename public int GetCountstring sql public bool CheckAdminstring strname string strpwd 2学生操作类 StudentInfoOperation.cs类的访问修饰符设为public,设置为公开的,这样才可以被其他类访问 StudentInfoOperation.cs类主要是实现对学生信息的操作,针对数据库中的StudentInfo表进行增删改查操作定义StudentInfoOperation.cs类的形式如下所示 public class StudentInfoOperation { } 在该类中,定义的方法都是需要调用数据访问类DataAccess.cs中的方法,因此需要首先实例化数据访问类DataAccess类的对象定义的代码如下所示 private static DataAccess dataAccess = new DataAccess; public static bool insertStudentInfoStudentInfoData studentInfoDatapublic static bool updateStudentInfoStudentInfoData studentInfoDatapublic static bool deleteStudentInfostring sno public static DataSet getStudentInfoStudentInfoData studentInfoData 3用户操作类 UserInfoOperation.cs类的访问修饰符设为public,设置为公开的,这样才可以被其他类访问 UserInfoOperation.cs类主要是实现对用户信息的操作,针对数据库中的UserInfo表进行增删改查操作定义UserInfoOperation.cs类的形式如下所示 Public class UserInfoOperation { } 在该类中,定义的方法都是需要调用数据访问类DataAccess.cs中的方法,因此需要首先实例化数据访问类DataAccess类的对象定义的代码如下所示 private static DataAccess dataAccess = new DataAccess; public static bool insertUserInfoUserInfoData data public static bool updateUserInfoUserInfoData datapublic static bool deleteUserInfostring userid public static DataSet getUserInfoUserInfoData data public static DataSet getUserInfoAllUserInfoData data 5窗体和事件应用
5.1 模块任务
1. 创建学生信息管理系统中的各个窗体
2.实现对用户、学生信息的增删改查功能 创建学生信息管理系统的窗体Longin.cs登录窗体、Form
3.cs主窗体、AddGrade.cs添加学生成绩窗体、Form
7.cs课程信息查询窗体、Form
8.cs用户修改密码窗体、Form
1.cs学生查询窗体、Form
9.cs用户注册窗体
3.模块的提出 窗体是进行用户体验的最好方式,当用户使用学生信息管理系统的时候,窗体是用户直接使用的界面,因此需要设计合理并便于用户操作
5.2 模块实施
1. Longin.cs登录窗体 Longin.cs窗体是用户进行登录所使用的窗体,主要包含Label标签、TextBox文本框和Button按钮用户输入用户名和密码之后,点击“登录”按钮,可以验证用户身份的合理性,用户身份有效可以登录到主界面中如图
5.1所示 图
5.1学生信息管理系统的主界面
2.Form
3.cs主窗体 Form
3.cs窗体为主窗体,窗体上包含了所有模块的菜单项,但是系统根据用户的权限,来设置菜单项中的哪些模块是可以使用的,哪些模块是不可以使用的 首先在Form
3.cs主窗体主界面的构造函数中,进行用户权限的判断,如果是学生或者教师登录,那么只允许部分模块进行操作,只有管理员可以所有模块都进行操作首先创建UserInfoData用户实体类的对象data,并且将Form
3.cs窗体中用户登录的名字赋值给data对象的Userid属性,创建数据集ds来获取UserInfoOperation用户操作类中的getUserInfoAll方法中用户记录如果用户记录不为空,那么获取该用户的Userlevel字段的值,该值如果为学生或者教师,那么部分模块的Enabled属性设置为false,让这些模块不可用如果为管理员,那么默认的所有的模块都是可用的,也就是所有模块菜单的Enabled属性的初值均为true如图
5.2所示 图
5.2学生信息显示界面
3. AddGrade.cs添加学生成绩窗体 AddGrade.cs窗体主要是用来添加学生的成绩,输入学号、姓名、性别、出生日期、家庭住址、家庭电话和所在班级,点击“保存”按钮即可录入或者修改学生信息记录,点击“取消”按钮,退出学生信息添加窗体如图
5.3所示 图
5.3 AddGrade.cs窗体
4. Form
7.cs课程信息查询窗体 Form
7.cs窗体主要是实现登录用户的课程信息查询使用该窗体可以查询某一学科的各种信息如图
5.4所示 图
5.4Form
7.cs窗体
5.Form
8.cs用户修改密码窗体 Form
8.cs窗体主要是实现用户修改密码的功能该窗体中,可以通过输入用户名和原密码,然后输入新密码和确认新密码,来修改用户的登录密码如图
5.5所示 图
5.5Form
8.cs窗体
6. Form
1.cs学生查询窗体 Form
1.cs窗体主要是实现学生信息查询功能该窗体中,可以通过学生学号、学生姓名、性别或班级信息进行查询,窗体中有一个DataGridView控件,当查询出结果后,可以选中控件中的一条记录,进行删除或者修改操作如图
5.6所示 图
5.6 Form
1.cs窗体
7.Form
9.cs用户注册窗体Form
9.cs窗体主要是实现用户信息查询功能该窗体中,可以通过用户名或者用户类型进行查询,窗体中有一个DataGridView控件,当查询出结果后,可以选中控件中的一条记录,进行删除或者修改操作如图
5.7所示图
5.7Form
9.cs窗体总结在进行本次课程设计时,我遇到了很多困难和学习到了很多知识下面我将主要总结我所遇到的困难,及自己的解决方法以及自己学到的知识点开始着手在C#中建立与SQL数据库连接时,连接数据库时在连接句前加上@字符相对于单一的连接语句更容易连接得上在对DataAdapter数据集中数据表的行数据、列名进行修改时,可以通过数据集中表的行二维数组dataset.Tables[t].Rows[i][j].ToString来实现,其中i为行标,j为列标在对数据行数进行读取时,可采用dataset.Tables[t].Rows.Count来实现学生在从第一个登录界面窗体登录学号进入信息查看界面窗体时,要保证学号信息能准确无误的传输到信息查看界面窗体才可以在信息查看窗体中查看该学生的个人信息开始时我只是在信息窗体Form8中实例化Form1对象,结果无法获取Form1窗口中的textBox
1.Text中的学生学号信息经过进一步查找资料,我明白了在信息窗体Form8中调用Form1中的属性或函数,与在Form1中调用Form8中的属性或函数不一样窗体Form1下,其中的属性和函数都有确定的值或表达式,直接调用Form8将值传进去可行,因为此时Form1中的数据存在;而在Form8窗体中调用Form1窗体中的函数和属性,则Form1窗体已经关闭,改窗体中的textBox
1.Text也就无值了,获取该窗体中textBox
1.Text中的学生学号信息也就无法实现通过编写代码,使我很熟练的可以运用C#中的数据集Dataset、Connection对象、Command对象、DataResder对象和DataAdapter对象并对SQL的select、insert、delete、update熟练掌握参考文献
[1]张海潘.软件工程导论(第四版)[M].清华大学出版社
2003.12
[2]萨师煊王珊.数据库系统概论[M].高等教育出版社
2002.3
[3]陈承欢彭勇.管理信息系统基础与开发技术[M].人民邮电出版社2005
[4]刘云生卢正鼎卢炎生.数据库系统概论[M].华中科技大学出版社2002
[5]郑人杰殷人昆陶永雷.实用软件工程[M].清华大学出版社1997
[6]唐政,房大伟.C#项目开发全程实录[M].清华大学出版社,
2008.6
[7]黄锐军.C#程序设计项目实训教程[M].化学工业出版社,
2010.2
[8]吕高旭.VisualC#范例精要解析[M].清华大学出版社,
2008.1致谢时间如白驹过隙转瞬即逝,不经意间两周的时间已经过去但是这短短的两周时间里我感受到了最真诚的青春,最纯真的岁月,最美丽的大学生活我们的动手能力得到提升感谢朱老师对我们的帮助使我们不但丰富了知识,更使我们提高了动手能力您对我们孜孜不倦的教导让我顺利的完成了这次课程设计在这次的课程设计中我运用了我在课堂上所学到的文化知识和技能,让我重新认识到编程的乐趣在此,我再次感谢朱老师的帮助和教导跟小伙伴的协作源代码
1.AddGrade.Cs窗体usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{publicpartialclassAddGrade:Form{publicAddGrade{InitializeComponent;}privatevoidstudent_CourseBindingNavigatorSaveItem_ClickobjectsenderEventArgse{this.Validate;this.student_CourseBindingSource.EndEdit;this.tableAdapterManager.UpdateAllthis.学生信息管理系统DataSet;}privatevoidAddGrade_LoadobjectsenderEventArgse{//TODO:这行代码将数据加载到表“学生信息管理系统DataSet.Student_Course”中您可以根据需要移动或删除它this.student_CourseTableAdapter.Fillthis.学生信息管理系统DataSet.Student_Course;}privatevoidlabel1_ClickobjectsenderEventArgse{this.Hide;newserchStudent.Show;}privatevoidstudent_CourseDataGridView_CellContentClickobjectsenderDataGridViewCellEventArgse{}}}
2.学生个人信息窗体usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{publicpartialclassForm1:Form{publicForm1{InitializeComponent;}privatevoidstudentBindingNavigatorSaveItem_ClickobjectsenderEventArgse{this.Validate;this.studentBindingSource.EndEdit;this.tableAdapterManager.UpdateAllthis.学生信息管理系统DataSet;}privatevoidForm1_LoadobjectsenderEventArgse{//TODO:这行代码将数据加载到表“学生信息管理系统DataSet.Student”中您可以根据需要移动或删除它this.studentTableAdapter.Fillthis.学生信息管理系统DataSet.Student;}}
3.Form
3.cs窗体usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{publicpartialclassForm3:Form{publicstringsno;publicForm3stringsno{this.sno=sno;InitializeComponent;}privatevoidForm3_LoadobjectsenderEventArgse{}privatevoidbutton1_ClickobjectsenderEventArgse{this.Hide;Form1form1=newForm1;form
1.Show;}privatevoidbutton2_ClickobjectsenderEventArgse{this.Hide;Form5form5=newForm5;form
5.Show;}privatevoidbutton3_ClickobjectsenderEventArgse{this.Hide;Form6form6=newForm6;form
6.Show;}privatevoidbutton4_ClickobjectsenderEventArgse{this.Hide;Form7form7=newForm7;form
7.Show;}privatevoidbutton5_ClickobjectsenderEventArgse{this.Hide;Form8xiugai=newForm8sno;xiugai.Show;}privatevoidbutton6_ClickobjectsenderEventArgse{System.Environment.Exit0;this.Close;}}}
4.课程信息窗体usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{publicpartialclassForm5:Form{publicForm5{InitializeComponent;}privatevoidcourseBindingNavigatorSaveItem_ClickobjectsenderEventArgse{this.Validate;this.courseBindingSource.EndEdit;this.tableAdapterManager.UpdateAllthis.学生信息管理系统DataSet;}privatevoidForm5_LoadobjectsenderEventArgse{//TODO:这行代码将数据加载到表“学生信息管理系统DataSet.Course”中您可以根据需要移动或删除它this.courseTableAdapter.Fillthis.学生信息管理系统DataSet.Course;}privatevoidbutton1_ClickobjectsenderEventArgse{this.Close;}}}
5.成绩信息窗体usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{publicpartialclassForm6:Form{publicForm6{InitializeComponent;}privatevoidForm6_LoadobjectsenderEventArgse{DataTabletable=SqlHelPer.ExecuteDataTableSELECTCourse_nameFROMCourse;foreachDataRowrowintable.Rows{foreachDataColumncolintable.Columns{comboBox
1.Items.Addrow[col];}}}privatevoidbutton2_ClickobjectsenderEventArgse{stringStudentID=textBox
2.Text;stringCourseName=comboBox
1.Text;stringCourseID=null;DataTabletable1=SqlHelPer.ExecuteDataTableselectCourse_idfromCoursewhereCourse_name=@namenewSqlParameter@nameCourseName;DataRowrow1=table
1.Rows
[0];CourseID=stringrow1
[0];DataTabletable2=SqlHelPer.ExecuteDataTableselectStudent_gradefromStudent_CoursewhereStudent_id=@SidandCourse_id=@CidnewSqlParameter@SidStudentIDnewSqlParameter@CidCourseID;iftable
2.Rows.Count=0{MessageBox.Show查找错误!;}else{DataRowrow2=table
2.Rows
[0];textBox
4.Text=Convert.ToStringrow2
[0];}}privatevoidbutton1_ClickobjectsenderEventArgse{this.Close;}}}
6.选课查询窗体usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{publicpartialclassForm7:Form{publicForm7{InitializeComponent;}privatevoidbutton1_ClickobjectsenderEventArgse{stringStudentId=textBox
4.Text;DataTabletable=SqlHelPer.ExecuteDataTableselectCourse_idfromStudent_CoursewhereStudent_id=@SidnewSqlParameter@SidStudentId;foreachDataRowrowintable.Rows{foreachDataColumncolintable.Columns{comboBox
1.Items.Addrow[col];}}stringcomx=comboBox
1.Text;DataTabletable2=SqlHelPer.ExecuteDataTableselect*fromCoursewhereCourse_id=@CidnewSqlParameter@Cidcomx;iftable
2.Rows.Count=0{}else{DataRowrow2=table
2.Rows
[0];textBox
1.Text=stringrow2
[1];textBox
2.Text=row2
[2].ToString;textBox
3.Text=row2
[3].ToString;//comboBox
1.Items.Clear;}}privatevoidForm7_LoadobjectsenderEventArgse{}}}
7.密码修改窗体usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{publicpartialclassForm8:Form{privatestringsno;publicForm8{InitializeComponent;}publicForm8stringsno{//TODO:Completememberinitializationthis.sno=sno;InitializeComponent;}privatevoidForm8_LoadobjectsenderEventArgse{}privatevoidbutton1_ClickobjectsenderEventArgse{ifthis.textBox
2.Text.Trim.ToString==||this.textBox
2.Text.Trim.ToString==null{MessageBox.Show新密码不能为空!操作提示MessageBoxButtons.OKMessageBoxIcon.Error;this.textBox
2.Focus;return;}elseifthis.textBox
4.Text.Trim.ToString==||this.textBox
4.Text.Trim.ToString==null{MessageBox.Show确认密码不能为空!操作提示MessageBoxButtons.OKMessageBoxIcon.Error;this.textBox
4.Focus;return;}elseifthis.textBox
2.Text.Trim.ToString!=this.textBox
4.Text.Trim.ToString{MessageBox.Show您输入的两次密码不一致!操作提示MessageBoxButtons.OKMessageBoxIcon.Error;this.textBox
2.Text=;this.textBox
4.Text=;return;}else{intn=SqlHelPer.ExecuteNonQueryupdateUserssetUser_password=@pwdwhereUser_id=@idnewSqlParameter@pwdtextBox
2.TextnewSqlParameter@idsno;ifn=1{MessageBox.Show修改密码成功!;}}}}}
8.信息修改窗体usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{publicpartialclassForm9:Form{publicForm9{InitializeComponent;}privatevoidbutton1_ClickobjectsenderEventArgse{/*iftextBox
2.Text.EqualstextBox
3.Text{iftextBox
1.Text.Equals||textBox
2.Text.Equals{MessageBox.Show用户名或密码不能为空!提示MessageBoxButtons.OKMessageBoxIcon.Information;}else{ifRadioButton
1.checked==true{this.Hide;MessageBox.Show您已成功注册,请重新登录!提示MessageBoxButtons.OK;}else{this.Hide;Form1form1=newForm1;form
1.Show;}}}*/iftextBox
2.Text==textBox
3.Text{intn=SqlHelPer.ExecuteNonQueryinsertinto[Users][user_id][User_password][User_power]values@user@pwd@pownewSqlParameter@usertextBox
1.TextnewSqlParameter@pwdtextBox
2.TextnewSqlParameter@pow2;ifn0{MessageBox.Show您已成功注册,请重新登录!提示MessageBoxButtons.OK;}else{MessageBox.Show注册失败!;}}else{MessageBox.Show您两次输入的密码不匹配,请重新操作!;}}privatevoidbutton2_ClickobjectsenderEventArgse{this.Hide;Longinform1=newLongin;form
1.Show;}privatevoidForm9_LoadobjectsenderEventArgse{}}}
9.登录窗口窗体usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{publicpartialclassLongin:Form{publicLongin{InitializeComponent;}privatevoidbutton1_ClickobjectsenderEventArgse{DataTabletable=SqlHelPer.ExecuteDataTableselect*fromUserswhereUser_id=@idnewSqlParameter@idtextBox
1.Text;iftable.Rows.Count=0{MessageBox.Show用户名不存在!;}elseiftable.Rows.Count1{thrownewException用户名重复!;}else{DataRowrow=table.Rows
[0];stringpwd=stringrow
[1];iftextBox
2.Text==pwd{longpower=Convert.ToInt64row
[2];ifpower==1{this.Hide;//管理员窗口newAddGrade.Show;}elseifpower==2{//学生界面this.Hide;newForm3textBox
1.Text.Show;}else{MessageBox.Show非法操作!系统退出!;this.Close;}}else{MessageBox.Show密码错误!;}}}privatevoidbutton2_ClickobjectsenderEventArgse{radioButton
1.Checked=true;textBox
1.Text=;textBox
2.Text=;textBox
1.Focus;//光标集中于textBox1上}privatevoidbutton3_ClickobjectsenderEventArgse{this.Hide;Form9form9=newForm9;form
9.Show;}privatevoidradioButton2_CheckedChangedobjectsenderEventArgse{textBox
1.Focus;}privatevoidForm1_LoadobjectsenderEventArgse{textBox
1.Focus;//光标集中于textBox1的位置}}}
10.Program.cs窗体usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{staticclassProgram{///summary///应用程序的主入口点////summary[STAThread]staticvoidMain{Application.EnableVisualStyles;Application.SetCompatibleTextRenderingDefaultfalse;Application.RunnewLongin;}}}
11.Serchstudent.cs窗体usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceWindowsFormsApplication2{publicpartialclassserchStudent:Form{publicserchStudent{InitializeComponent;}privatevoidstudentBindingNavigatorSaveItem_ClickobjectsenderEventArgse{this.Validate;this.studentBindingSource.EndEdit;this.tableAdapterManager.UpdateAllthis.学生信息管理系统DataSet;}privatevoidserchStudent_LoadobjectsenderEventArgse{//TODO:这行代码将数据加载到表“学生信息管理系统DataSet.Student”中您可以根据需要移动或删除它this.studentTableAdapter.Fillthis.学生信息管理系统DataSet.Student;}privatevoidlabel1_ClickobjectsenderEventArgse{this.Close;}}}
12.Sqlhelper.cs窗体usingSystem;usingSystem.Collections.Generic;usingSystem.Configuration;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceWindowsFormsApplication2{publicclassSqlHelPer{//SQL工具类privatestaticstringconnStr=ConfigurationManager.ConnectionStrings[shujuku].ConnectionString;/*无多参数的执行insert、update、delete方式*/publicstaticintExecuteNonQuerystringsql{usingSqlConnectionconn=newSqlConnectionconnStr{conn.Open;usingSqlCommandcmd=conn.CreateCommand{cmd.CommandText=sql;returncmd.ExecuteNonQuery;}}}/*第一版多参数的执行insert、update、delete方式publicstaticintExecuteNonQuerystringsqlSqlParameter[]parameters{usingSqlConnectionconn=newSqlConnectionconnStr{conn.Open;usingSqlCommandcmd=conn.CreateCommand{cmd.CommandText=sql;foreachSqlParameterparaminparameters{cmd.Parameters.Addparam;}returncmd.ExecuteNonQuery;}}}*//*第二版多参数长度可变的执行insert、update、delete方式*/publicstaticintExecuteNonQuerystringsqlparamsSqlParameter[]parameters{usingSqlConnectionconn=newSqlConnectionconnStr{conn.Open;usingSqlCommandcmd=conn.CreateCommand{cmd.CommandText=sql;foreachSqlParameterparaminparameters{cmd.Parameters.Addparam;}returncmd.ExecuteNonQuery;}}}/*无多参数的执行select方式*/publicstaticObjectExecuteScalarstringsql{usingSqlConnectionconn=newSqlConnectionsql{conn.Open;usingSqlCommandcmd=conn.CreateCommand{cmd.CommandText=sql;returncmd.ExecuteScalar;}}}/*可变参数的select执行方式*/publicstaticObjectExecuteScalarstringsqlparamsSqlParameter[]parameters{usingSqlConnectionconn=newSqlConnectionsql{conn.Open;usingSqlCommandcmd=conn.CreateCommand{cmd.CommandText=sql;foreachSqlParameterparaminparameters{cmd.Parameters.Addparameters;}returncmd.ExecuteScalar;}}}publicstaticDataTableExecuteDataTablestringsqlparamsSqlParameter[]paramters{usingSqlConnectionconn=newSqlConnectionconnStr{conn.Open;usingSqlCommandcmd=conn.CreateCommand{cmd.CommandText=sql;foreachSqlParameterparaminparamters{cmd.Parameters.Addparam;}SqlDataAdapteradapter=newSqlDataAdaptercmd;DataSetdataset=newDataSet;adapter.Filldataset;returndataset.Tables
[0];}}}}}周次日期内容地点第1周星期一分组、选题、收集与整理资料教室星期二数据库分析与设计教室星期三~星期五用户界面设计及系统功能实现教室第2周星期一星期二用户界面设计及系统功能实现教室星期三测试程序上机演示教室星期四撰写课程设计说明书教室星期五答辩教室。