




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.../理工学院课程设计报告课程名称数据库课程设计设计题目教务管理系统专业计算机科学与技术班级学号姓名完成日期20XX12月30日课程设计任务书设计题目:教务管理系统设计内容与要求:类似于我校教务管理系统,有四类用户:教务员可以输入学生、教师、班级、课程信息,一个班级只属于一个专业,一个学生只属于一个班级。教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。教师可以查看学习该课程的学生名单。课程结束后,教师可以录入课程成绩。一个教师可以教授多个班的多门课程,每门课由多位老师讲授。课程分两类,必修课和选修课。系统要记录每个学生学习各门必修课的成绩,还要记录学生选修了哪些选修课以及课程成绩。学生可以查看自己各门课程的成绩。学生还可以进行评教,给老师打分。系统管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。指导教师:2013年课程设计评语成绩:指导教师:_______________年月日...目录1概述.21.1课程设计目标.21.2课程设计的背景和意义.21.1.2课程设计的背景22需求分析.32.1系统需求.32.2可行性分析.32.3用户要求.32.3.1信息需求.32.3.2处理需求.42.3.3.课程设计的意义43概念结构设计.63.1设计分析.63.2概念模型设计.63.2.1局部概念结构设计63.2.2全局概念结构模型<E-R图>74逻辑结构设计.85物理结构设计105.1数据表的设计105.2数据库完整性设计125.2.1数据库实体完整性设计125.2.2数据库参照完整性设计125.2.3数据库用户定义完整性设计135.3数据库安全性设计136应用程序设计146.1系统功能模块图146.2系统界面157设计总结288体会与收获29参考文献301概述1.1课程设计目标课程设计总的目标是衡量学生是否取得学习效果,培养学生具有专业网站初步的规划、设计、制作能力。具体表现在网站内容、功能、安全等方面合理策划和规划;培养具有主页和二级页面的创意、设计等方面的技术处理能力和具有强大的动态效果制作能力。培养学生具有基于后台数据库的编程技术,实现客户—服务器端交互式动态网页的制作能力,掌握实际网页设计与制作开发流程和开发方法。1.2课程设计的背景及意义现如今高等院校的招生人数越来越多,必然就会有大量的学生信息、教师信息及课程信息需要处理。如果只靠人力来完成,这将会变成一项非常繁琐、复杂的工作,而且还有可能出现很多意想不到的错误,给管理这些数据带来了极大的不便,越来越不适合高校的发展需要。教务管理系统是一个庞大而复杂的系统,它包括对教师信息的管理,对课程资料的管理,对学生信息的管理和对学生成绩的管理等主要功能。教务管理系统是每所高校的一项必不可少的内容,它的好坏直接影响到学校的主要工作,此系统一旦瘫痪,不仅会影响到学校的每一位学生,学校也会因此受到非常严重的损失。随着我校近几年来的快速发展,办学模式多元化,在校学生规模不断扩大,为了加速对教务管理的计算机化,我校需要开发出符合我校实际的教务管理系统,为学校教学管理提供一个快速、简单规范的管理平台,同时也方便教员查询相关信息,提高信息传播速度,扩大信息共享范围。所以,现在设计一个功能完整、操作简单以及界面友好的教务管理系统变得非常重要。通过这个系统,管理员能够对教师信息、课程信息、学生信息和学生成绩进行查询、添加、修改和删除等操作,用户也可以对自己的基本信息进行修改,学生还可以用该系统进行网上选课和成绩查询,非常的方便。因此,本系统开发的总体目标就是在教务管理中实现信息管理的系统化、自动化,减少工作繁琐度,增加效率、方便性。2需求分析2.1系统需求通过调查,要求系统需要有以下功能:=1\*GB2⑴由于操作人员的计算机知识普遍较差,要求有良好的人机界面;=2\*GB2⑵由于该系统的使用对象多,要求有较好的权限管理;=3\*GB2⑶原始数据修改简单方便,支持多条件修改=4\*GB2⑷方便的数据查询,支持多条件查询;=5\*GB2⑸在相应的权限下,删除数据方便简单,数据稳定性好;=6\*GB2⑹数据计算自动完成,尽量减少人工干预;2.2可行性分析由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。本系统的设计是在WindowXP操作系统环境下,使用VS开发成功的。在开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多、开发工具也很多。每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,在选择开发工具时也考虑它的健壮性、可移性、安全性等问题。2.3用户要求信息需求教务管理系统涉及的实体有:教师——工作证号、姓名、职称、电话等;学生——学号、姓名、性别、出生年月等;班级——班号、最低总学分等;系——系代号、系名和系办公室电话等;课程——课序号、课名、学分、上课时间及名额等。这些实体之间的联系如下:每个学生都属于一个班,每个班都属于一个系,每个教师也都属于一个系。每个班的班主任都由一名教师担任。一名教师可以教多门课,一门课可以有几位主讲老师,但不同老师讲的同一门课其课序号是不同的〔课序号是唯一的。一名同学可以选多门课,一门课可被若干同学选中。一名同学选中的课若已学完,应该记录有相应成绩。2.3.2教务系统主要提供数据维护、选课和信息查询。其中常见的查询有:系统中各对象的基本信息查询。查询指定班、系的学生信息〔名单、人数等。查询学生的成绩、学分情况。查询教师授课情况和学生选课情况……。2.3.3安全性要求:1.系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;2.系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;3.系统应对不同用户设置不同的权限,区分不同的用户,如学生,教师,系统管理员。完整性要求:1.各种信息记录的完整性,关键信息记录内容不能为空;2.各种数据间相互的联系的正确性;3.相同的数据在不同记录中的一致性。2.4需要的信息管理模块1、学生信息管理该模块是教务工作人员进行对学生信息的管理,进行学生信息的添加、修改、删除。2、教师信息管理教务工作人员通过此模块来管理教师信息,包括教师信息的添加、修改、删除等。信息的添加时,需要验证教师的编号是否重复;删除和和修改学生信息,和学生信息管理模块相同。院系管理此模块是用来管理院系的信息,包括班级院系的添加,修改,删除等。在进行信息的添加时,需要进行班级的编号是否重复的检查,如院系编号重复则对用户进行提示,不重复则添加成功。院系管理模块的删除和修改和学生信息管理模块相同。课程信息管理教务工作人员通过该模块来管理课程的基本信息,包括课程信息的添加,修改,删除和班级课程的设置等,具体做法同前面的模块。成绩管理教务工作人员通过该模块来进行学生成绩的管理,在进行学生成绩的添加时,可用它来为学生设置所在班级的课程表来直接输入成绩。综合查询通过该模块可以查询教务所需要的各种信息。如学生信息查询提供了包括学生学号、姓名、所在班级、班主任名字和宿舍等信息,学生信息进行查询的各种查询条件,用户可以根据单个的查询条件或者它们的组合来进行查询。同时,在查询的时候还提供了进行模糊查询的功能,即该模块能够利用读者输入的非完整的查询条件进行查询,这样更加方便了用户的查询管理。综合查询模块包括了学生信息查询、教师信息查询、班级信息查询、院系信息查询、课程信息查询和成绩查询等各种功能查询。3概念结构设计3.1设计分析在概念结构设计中,我采用自底向上设计概念结构的方法。即第一步抽象数据并设计局部视图,第二步是集成局部视图,得到全局的概念结构。3.2概念模型设计局部概念结构设计〔1、系内的关系模式图工资1工资1n1n1n教师班级属于最低总学分班号电话邮箱姓名工作证号系系办公室电话系名系代号属于工作学生学号年龄性别姓名系代号系代号图3-1系内关系模式图〔2、选课系统的关系模式图选修选修期中成绩平时成绩最后成绩总评成绩期末成绩年龄学号课名学分课序号年龄学号课名学分课序号nm姓名课程学生nm姓名课程学生名额性别名额性别系代号系代号图3-2选课系统的关系模式图课序号课名〔3、教师授课系统关系模型图课序号课名授课工资教师电话邮箱姓名工作证号授课工资教师电话邮箱姓名工作证号课程n1名额学分名额学分图3-3教师授课系统关系模型图〔4、教师与班级的关系模型图课名课名班级负责班级负责最低总学分班号教师电话工资姓名工作证号n1邮箱邮箱图3-4教师与班级的关系模型图全局概念结构模型〔E-R图选修平时成绩最后成绩总评成绩期中成绩期末成绩选修平时成绩最后成绩总评成绩期中成绩期末成绩课名课序号学分年龄学号姓名nm姓名nm课程学生课程学生名额性别n名额性别n系代号系代号属于属于nn11课名班号授课课名班号授课负责班级n负责班级n最低总学分n最低总学分n属于1属于11111工作n1工作n1工资系教师工资系教师系代号系名系办公室电话电话姓名工作证号系代号系名系办公室电话电话姓名工作证号邮箱图3-5全局概念结构模型图4逻辑结构设计关系模式的设计与优化E-R图向关系模型的转换:"教师"实体对应的关系模式:教师〔工作证号,姓名,工资,电话,邮箱,系代号代码表示为:Teacher〔Tno.Tname.Salary.Tel.Email.Dno其中,工作证号为其候选码,又因为教师与系别之间是n:1的工作关系,经过与系别关系模式的合并后,系别号Dno成为教师关系模式的外码,存在的关系依赖为Tno→<Tname,Salary,Tel,Email,Dno>,不存在对候选码的部分依赖与传递依赖,所以满足BCNF。"学生"实体对应的关系模式:学生〔学号,姓名,性别,年龄,班号,系代号代码表示:Student<Sno,Sname,Ssex,Sage.Class.Dno>其中,学号为其候选码,又因为学生与班级之间是n:1的属于关系,经过与班级关系模式的合并后,班号Class成为学生关系模式的外码,存在的关系依赖为Sno→<Sname,Ssex.Sage.Class.Dno>,Class→Dno,存在对候选码的传递依赖,所以满足2NF.系〔系代号,系名,系办公室电话代码表示:Sdept<Dno,Dname,Dphone>系代号为候选码,存在的函数依赖为Dno→〔Dname,Dphone,且不存在部分依赖与传递依赖,所以满足BCNF。"选修"联系对应的关系模式:选课〔学号,课序号,最后成绩,平时成绩,期中成绩,期末成绩,代码表示:SC<Sno,Cno,Grade.Daigrade.Midbrade.Lasgrade,>此为m:n联系"选修"所对应的关系模式。Sno和Cno均为外码。存在的函数依赖为完全函数依赖〔Sno,Cno→<Grade.Daigrade.Midbrade.Lasgrade.Fingrade>,且不存在部分依赖与传递依赖,所以满足BCNF。"课程"实体对应的关系模式:课程〔课序号,课名,学分,名额,工作证号代码表示:Course<Cno,Cname,Credit,Cnum,Tno>其中,课号为其候选码,又由于课程与教师之间是n:1的授课关系,所以经过关系模式的合并后,教师的工作证号被合并为课程关系模式中的外码。存在的函数依赖为Cno→〔Cname,Credit,Cnum,Tno,且不存在对候选码的部分依赖和传递依赖,所以,满足BCNF。"班级"实体对应的关系模式:班级〔班号,最低总学分,工作证号,系代号代码表示:Class<Class,Ccredit,Tno.Dno>其中,班号为其候选码,又由于班级与系别之间是n:1的"属于"关系,经过"班级"与"系别"两个实体关系模式的合并后,系号被合并为班级对应的关系模式的外码。而班级与教师之间是n:1的"负责"关系,所以按照规定,教师的工作证号也被合并为班级的外码。存在的函数依赖为Class→〔Ccredit,Tno.Dno>,其中Class→Tno,而Tno→Dno,即存在对候选码的传递依赖,所以只满足2NF。5物理结构设计5.1数据表的设计根据实体属性图可以建立以下各表,建表的同时定义表有关的完整性约束条件。1学生基本信息表表5-1学生基本信息表列名长度类型NULLDEFAULT主键学号10char<>nonoYes姓名20varchar<>nonono性别2char<>nonono所在专业2char<>yesnono所属院系2char<>yesnono11char<>yesnono2专业基本信息表表5-2专业基本信息表列名长度类型NULLDEFAULT主键专业编号2char<>nonoYes专业名称20varchar<>nonono所属院系2char<>yesnono总学分5char<>yesnono必修学分5char<>yesnono3学生成绩表表5-3学生成绩表列名长度类型NULLDEFAULT主键学号10char<>nonono姓名20char<>nonono课程名称10char<>nonono学期学年3char<>yesnono成绩2char<>yesnono授课教师2char<>yesnono4院系基本信息表表5-4院系基本信息表列名长度类型NULLDEFAULT主键院系号2char<>nonoyes院系名称20char<>yesnono负责人10char<>yesnono教务管理员10char<>yesnono5教师基本信息表表5-5教师基本信息表列名长度类型NULLDEFAULT主键教师编号10char<>nonoyes姓名20varchar<>nonono性别2char<>yesnono所属院系2char<>yesnono6评教基本信息表表5-6评教基本信息表列名长度类型NULLDEFAULT主键教师编号10char<>nonono教师姓名20varchar<>yesnono课程编号50varchar<>nonono课程名称10char<>yesnono满意度2char<>yesnono7课程基本信息表表5-7课程基本信息表列名长度类型NULLDEFAULT主键课程编号20varchar<>nonoyes课程名称10char<>nonono任课教师10char<>yesnono开设院系30varchar<>yesnono8班级基本信息表表5-8班级基本信息表列名长度类型NULLDEFAULT主键班级编号10char<>nonoyes班级人数3char<>yesnono所属院系2char<>yesnono9网上选课基本信息表表5-9网上选课基本信息表列名长度类型NULLDEFAULT主键课程号50varchar<>nonono开课院系30varchar<>yesnono已选人数3char<>nonono课程类别1char<>yesnono限选人数3char<>yesnono5.2数据库完整性设计数据库完整性是指数据库中数据的正确性和相容性。数据完整性包括三类:实体完整性,参照体完整性和用户定义完整性。数据库实体的完整性设计本教务管理系统数据库的实体有:学生,教师,专业,院系,教室,考试成绩,课程。为保证实体的完整性,将以上所有实体的主属性的属性值都设置为非空。数据库参照完整性设计1、学生与课程选修关系模式 学生信息〔学号,姓名,性别,年龄主键:学号 课程信息〔课程号,课程名称,学分 主键:课程号 选修<学号,课程号,考试成绩> 主键:学号,课程号2、学生与班级的从属关系模式: 学生信息<学号,姓名,班级编号> 主键:学号 班级信息<班级编号,班级名称,专业名称,院系名称> 主键:班级编号3、学生与考试成绩的考试关系模式 学生信息〔学号,姓名主键:学号 成绩信息〔成绩号,课程编号主键:成绩号4、班级与专业的从属关系模式 专业信息<专业编号,专业名称> 主键:专业编号班级信息<班级编号,班级名称,专业编号> 主键:班级编号5、专业与院系的从属关系模式院系信息<院系编号,专业名称> 主键:专业编号专业信息<专业编号,专业名称,院系编号> 主键:专业编号6、教师与课程的授课关系模式教师<教师编号,姓名> 主键:教师编号课程<课程编号,课程名称> 主键:课程编号授课〔课程名称,教师编号,课时 主键:课程名称,教师编号数据库的用户定义完整性设计学生基本信息表: 〔1性别必须是男或女〔2身份证号必须是18位〔3所在专业,所属院系必须是本系统提供的5.3数据库安全性设计数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库,操作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,"黑客"等因素。因此,为使本系统能够真正安全,可靠,稳定地工作,必须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏。系统要能重建系统应该是可审查的系统应能进行有效控制,抗干扰能力强系统使用者的使用权限是可识别的6应用程序设计6.1系统功能模块图本系统设计的并不复杂,模块划分也比较清楚。通过对不同的功能进行分析,就可以得到系统的模块划分:登录管理模块,又分为管理员登录、教师登录和学生登录三个子模块;管理员模块,包括对教师信息、课程信息、学生信息和学生成绩进行查询、添加、修改及删除等子模块;教师模块,包括对个人信息的查询及密码的修改、课表的查询等子模块;学生模块,包括对个人信息的查询及密码的修改、网上选课、课表的查询和个人成绩的查询等子模块教务管理系统教务管理系统学生教师管理员登录管理学生教师管理员登录管理成绩查询网上选课密码修改课表查询个人信息查询课表查询密码修改个人信息查询学生成绩管理学生信息管理课程信息管理教师信息管理学生登录教师登录管理员登录成绩查询网上选课密码修改课表查询个人信息查询课表查询密码修改个人信息查询学生成绩管理学生信息管理课程信息管理教师信息管理学生登录教师登录管理员登录修改学生信息添加学生信息查询学生信息删除课程信息修改课程信息添加课程信息查询课程信息删除教师信息修改教师信息添加教师信息查询教师信息删除学生信息删除学生成绩修改学生成绩添加学生成绩查询学生成绩修改学生信息添加学生信息查询学生信息删除课程信息修改课程信息添加课程信息查询课程信息删除教师信息修改教师信息添加教师信息查询教师信息删除学生信息删除学生成绩修改学生成绩添加学生成绩查询学生成绩图6-1系统模块图6.2系统界面1系统的主界面图6-2系统主界面部分设计代码如下:namespace教务管理系统{ publicMainForm<> { InitializeComponent<>; } protectedoverridevoidDispose<booldisposing> { if<disposing> { if<components!=null> { components.Dispose<>; } } base.Dispose<disposing>; } privateboolcheckChildFrmExist<stringchildFrmName> { foreach<FormchildFrminthis.MdiChildren> { if<childFrm.Name==childFrmName> { if<childFrm.WindowState==FormWindowState.Minimized> childFrm.WindowState=FormWindowState.Normal; childFrm.Activate<>; returntrue; } } returnfalse; } privatevoidmenuItem2_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"ClassInfo">==true> { return; } ClassInfonewFrm=newClassInfo<>; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem3_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"StudentInfo">==true> { return; } StudentInfonewFrm=newStudentInfo<>; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem4_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"CourseInfo">==true> { return; } CourseInfonewFrm=newCourseInfo<>; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem6_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"CourseElect">==true> { return; } CourseElectnewFrm=newCourseElect<>; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem7_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"CurriculumSchedule">==true> { return; } CurriculumSchedulenewFrm=newCurriculumSchedule<"">; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem8_Click<objectsender,System.EventArgse> { if<this.checkChildFrmExist<"ScoreInput">==true> { return; } ScoreInputnewFrm=newScoreInput<>; newFrm.MdiParent=this; newFrm.Show<>; } privatevoidmenuItem11_Click<objectsender,System.EventArgse> { this.Close<>; } }}2学生选课界面界面图6-3学生选课界面部分程序代码如下:privatevoidCourseElect_Load<objectsender,System.EventArgse> { dataGrid1.DataSource=this.electTable; stringstrConn="workstationid=localhost;IntegratedSecurity=SSPI;database=eisbook;"; SqlConnectioncn=newSqlConnection<strConn>; cn.Open<>; stringsql="selecta.课序号,a.课程编号,b.课程名称,b.教师,b.开课系别," +"a.上课地点,a.上课时间天,a.上课时间节,b.拼音码" +"from课程表a,课程信息b" +"where<b.本学期课程='Y'>and<a.课程编号=b.课程编号>"; SqlDataAdapterda2=newSqlDataAdapter<sql,cn>; da2.Fill<this.courseTable>; this.dv=courseTable.DefaultView; dataGrid2.DataSource=dv; } privatevoidShowInfo<>// { stringstrConn="workstationid=localhost;IntegratedSecurity=SSPI;database=eisbook;"; SqlConnectioncn=newSqlConnection<strConn>; cn.Open<>; SqlCommandcmd=cn.CreateCommand<>; cmd.CommandText="selecta.姓名,b.班级名称,a.学籍编号from学生信息a,班级信息b" +"where<a.班级编号=b.班级编号>and<学号='"+txt1.Text.Trim<>+"'>"; SqlDataReaderdr=cmd.ExecuteReader<>; dr.Read<>; if<!dr.HasRows> { MessageBox.Show<"无此学生,请重新输入学号","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; dr.Close<>; return; } if<dr.GetValue<2>.ToString<>.Trim<>!="1"> { MessageBox.Show<"该学生并非在籍学生,不能选课","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } txt2.Text=dr.GetValue<0>.ToString<>.Trim<>; txt3.Text=dr.GetValue<1>.ToString<>.Trim<>; dr.Close<>; stringsql="selecta.学号,a.课序号,b.课程名称,b.教师," +"b.开课系别,c.上课时间天,c.上课时间节,c.上课地点" +"from选课表a,课程信息b,课程表c" +"where<a.课序号=c.课序号>and<'200400000'+b.课程编号=a.课序号>" +"and<a.学号im<>+"'>"; SqlDataAdapterda=newSqlDataAdapter<sql,cn>; da.Fill<this.electTable>; this.studentID=txt1.Text.Trim<>; this.stduentName=txt2.Text.Trim<>; btnElect.Enabled=true; btnDelete.Enabled=true; btnView.Enabled=true; } privatevoidbtnElect_Click<objectsender,System.EventArgse> { if<dv.Count==0> { MessageBox.Show<"可选课表为空,无法选课","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } stringcourseID=dataGrid2[dataGrid2.CurrentCell.RowNumber,0].ToString<>.Trim<>; stringcourseDay=dataGrid2[dataGrid2.CurrentCell.RowNumber,6].ToString<>.Trim<>; stringcourseSec=dataGrid2[dataGrid2.CurrentCell.RowNumber,7].ToString<>.Trim<>; foreach<DataRowaRowinthis.electTable.Rows> { if<aRow["课序号"].ToString<>.Trim<>==courseID> { MessageBox.Show<"所选课程已经在课程表中","课程重复",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } if<aRow["上课时间天"].ToString<>.Trim<>==courseDay&&aRow["上课时间节"].ToString<>.Trim<>==courseSec> { stringmsg="所选课程和已选课程:"+aRow["课程名称"].ToString<>.Trim<>+"上课时间冲突"; MessageBox.Show<msg,"时间冲突",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } } stringstrConn="workstationid=localhost;IntegratedSecurity=SSPI;database=eisbook;"; SqlConnectioncn=newSqlConnection<strConn>; cn.Open<>; SqlCommandcmd=cn.CreateCommand<>; cmd.CommandText="insertinto选课表<[学号],[课序号]>values<'"+this.studentID+"','"+courseID+"'>"; cmd.ExecuteNonQuery<>; this.electTable.Clear<>; stringsql="selecta.学号,a.课序号,b.课程名称,b.教师," +"b.开课系别,c.上课时间天,c.上课时间节,c.上课地点" +"from选课表a,课程信息b,课程表c" +"where<a.课序号=c.课序号>and<'200400000'+b.课程编号=a.课序号>" +"and<a.学号='"+this.studentID+"'>"; SqlDataAdapterda=newSqlDataAdapter<sql,cn>; da.Fill<this.electTable>; }3学生信息的查询界面图6-4学生信息的增加、删除、修改部分代码如下:namespace教务管理系统{ protectedoverridevoidDispose<booldisposing> { if<disposing> { if<components!=null> { components.Dispose<>; } } base.Dispose<disposing>; } protectedvoidtoolBar1_ButtonClick<objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse> { if<e.Button.ToolTipText=="首记录"> { this.dataGrid1.UnSelect<cmOrders.Position>;//取消原选中的行 cmOrders.Position=0;elect<cmOrders.Position>;//选中当前行 this.dataGrid1.CurrentRowIndex=cmOrders.Position;//移动表头指示图标 return; } if<e.Button.ToolTipText=="上一记录"> { if<cmOrders.Position>=0> { this.dataGrid1.UnSelect<cmOrders.Position>; cmOrders.Position--; this.dataGrid1.Select<cmOrders.Position>; this.dataGrid1.CurrentRowIndex=cmOrders.Position; } return; } if<e.Button.ToolTipText=="下一记录"> { if<cmOrders.Position<=cmOrders.Count-1> { this.dataGrid1.UnSelect<cmOrders.Position>; cmOrders.Position++; this.dataGrid1.Select<cmOrders.Position>; this.dataGrid1.CurrentRowIndex=cmOrders.Position; } return; } if<e.Button.ToolTipText=="尾记录"> { this.dataGrid1.UnSelect<cmOrders.Position>; cmOrders.Position=cmOrders.Count-1; this.dataGrid1.Select<cmOrders.Position>; this.dataGrid1.CurrentRowIndex=cmOrders.Position; return; } if<e.Button.ToolTipText=="新增"> { cmOrders.AddNew<>;//新增一条记录SetDefaultValue<>;//设置默认值 SetModifyMode<true>;//设置控件只读等属性 } if<e.Button.ToolTipText=="修改"> { SetModifyMode<true>; } if<e.Button.ToolTipText=="删除"> { DialogResultresult=MessageBox.Show<"确认删除?","删除数据",MessageBoxButtons.OKCancel>; if<result==DialogResult.OK> if<cmOrders.Count>0> { cmOrders.RemoveAt<cmOrders.Position>; da1.Update<dataSet11>; } else MessageBox.Show<"表中为空,已无可删除数据","提示",MessageBoxButtons.OK,MessageBoxIcon.Error>; } if<e.Button.ToolTipText=="提交"> { boolcanSubmit; canSubmit=this.CheckNotNull<>; if<canSubmit==false> { return; } cmOrders.EndCurrentEdit<>; if<dataSet11.GetChanges<>!=null> { try { da1.Update<dataSet11>; SetModifyMode<false>; } catch<Exceptionexpress> { MessageBox.Show<express.ToString<>,"提示",MessageBoxButtons.OK,MessageBoxIcon.Error>; dataSet11.RejectChanges<>; } } return; } if<e.Button.ToolTipText=="取消"> { try { cmOrders.CancelCurrentEdit<>; SetModifyMode<false>; } catch<Exceptionexpress> { MessageBox.Show<express.ToString<>,"提示",MessageBoxButtons.OK,MessageBoxIcon.Error>; } return; } if<e.Button.ToolTipText=="退出"> { this.Close<>; } } protectedvirtualvoidSetModifyMode<boolblnEdit> { btnSearch.Enabled=!blnEdit; } protectedvirtualvoidSetDefaultValue<> { return; } protectedvirtualboolCheckNotNull<> { return<true>; }privatevoidbtnSearch_Click<objectsender,EventArgse> }}4成绩的输入界面图6-5成绩查询、输入、修改部分代码如下:namespace教务管理系统{ privatevoidbtnEndElect_Click<objectsender,System.EventArgse> { stringconStr="workstationid=localhost;IntegratedSecurity=SSPI;Database=eisbook"; SqlConnectioncn=newSqlConnection<conStr>; cn.Open<>; SqlCommandcmd=cn.CreateCommand<>; cmd.CommandText="execsf_终止选课"; try { cmd.ExecuteNonQuery<>; MessageBox.Show<"终止选课成功,将生成新的空成绩单","操作成功",MessageBoxButtons.OK,MessageBoxIcon.Information>; } } privatevoidbtnQuery_Click<objectsender,System.EventArgse> {stringsql="selecta.编号,a.课程编号,b.课程名称,a.学号,c.姓名,a.成绩from成绩表a,课程信息b,学生信息c" +"where<a.课程编号=b.课程编号>and<a.学号=c.学号>and<a.是否已确定成绩='N'>" +"and<a.课程编号like'%"+txt2.Text.Trim<>+"%'>and<b.拼音码like'%"+txt1.Text.Trim<> +"%'>and<b.课程名称like'%"+txt3.Text.Trim<>+"%'>"; stringconStr="workstationid=localhost;IntegratedSecurity=SSPI;Database=eisbook"; SqlConnectioncn=newSqlConnection<conStr>; cn.Open<>; da=newSqlDataAdapter<sql,cn>; this.scoreTable.Clear<>; da.Fill<this.scoreTable>; if<scoreTable.Rows.Count>0> { this.courseID=this.scoreTable.Rows[0][1].ToString<>.Trim<>; } else { stringmsg="该表中没有数据,可能原因有:\n"+"1.本学期没有该门课程\n"+"2.该课程无学生选课\n" +"3.该课程所有学生成绩已经被最终提交,不可再修改"; MessageBox.Show<msg,"操作失败",MessageBoxButtons.OK,MessageBoxIcon.Information>; return; } txt4.DataBindings.Clear<>; txt4.DataBindings.Add<"Text",this.scoreTable,"成绩">; } privatevoidbtnModify_Click<objectsender,System.EventArgse> { if<this.scoreTable.Rows.Count==0> { MessageBox.Show<"该门课程成绩单为空","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } if<txt4.Text.Trim<>=="">//检查成绩字段 { MessageBox.Show<"必须输入学生成绩","提示",MessageBoxButtons.OK,MessageBoxIcon.Stop>; return; } stringconStr="workstationid=localhost;IntegratedSecurity=SSPI;Database=eisbook"; SqlConnectioncn=newSqlConnection<conStr>; cn.Open<>; SqlCommandcmd=cn.CreateCommand<>; stringstudentNum=dataGrid1[dataGrid1.CurrentCell.RowNumber,0].ToString<>.Trim<>; cmd.CommandText="update成绩表set成绩='"+txt4.Text.Trim<>+"'where编号='"+studentNum+"'"; cmd.ExecuteNonQuery<>; this.scoreTable.Clear<>; da.Fill<this.scoreTable>; } privatevoidbtnSubmit_Click<objectsender,System.EventArgse> { stringconStr="workstationid=localhost;IntegratedSecurity=SSPI;Database=eisbook"; SqlConnectioncn=newSqlConnection<conStr>; cn.Open<>; SqlCommandcmd=cn.CreateCommand<>; cmd.CommandText="execsf_成绩提交"+this.courseID; DialogResultresult; result=MessageBox.Show<"最终提交后学生成绩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园电商推广合作合同(2篇)
- 2025企业员工劳动合同协议书
- 2025企业合同范本2
- 输卵管堵塞的临床护理
- 2025科技公司劳动合同样本参考
- 2025年监理工程师之合同管理提升训练试卷A卷附答案
- 2025年一级建造师之一建矿业工程实务基础试题库和答案要点
- 2025标准版商业店铺续租合同范本
- 藏医学专业就业能力展示
- 腹部创伤的临床护理
- 跨境数据传输与安全保护
- 制衣厂安全隐患排查项目清单及排查表
- ISO13485质量管理手册
- 辩论赛PPT模板模板
- 发电厂贮灰场突发环境事件应急预案
- 2023年高考全国乙卷作文“一花独放不是春百花齐放春满园”写作
- 建材公司质量管理手册(模板范文)
- 钳工中级知识培训课件
- GB/T 42706.2-2023电子元器件半导体器件长期贮存第2部分:退化机理
- 高考语文新题型+“文学短评”相关写作(真题+技法+练习)
- 幼儿园小班数学活动《认识里外》教学PPT课件【幼儿教案】
评论
0/150
提交评论