欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    学籍管理系统实验报告.docx

    • 资源ID:453143       资源大小:60.65KB        全文页数:10页
    • 资源格式: DOCX        下载积分:5
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要5
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学籍管理系统实验报告.docx

    1、加 UNI尼数据库课程设计学籍管理系统安徽大学计算机科学与技术1班陈斌E113140792023-9-6目录一、实验目的及要求11 .实验目的12 .实验要求1二、实验环境2三、实验内容与步骤23 .系统需求分析24 .概念结构设计45 .逻辑结构设计56 .数据库与应用系统的实施和维护7四、总结9目的及要求1 .实验目的(1)通过本次课程设计,熟练掌握一种开发语言(如C#)和一种数据库系统软件(如SQLserver2023)的使用。(2)加深对软件工程的理解,训练编写程序的良好习惯。包括:认真编写需求分析文档、做好系统功能和数据库设计、学会自己进行程序的算法、数据结构设计。(3)培养良好的程

    2、序设计风格(模块划分、接口设计、程序界面、应用系统设计)和习惯(程序备份、版本更新与控制),提高软件测试、调试的能力与技巧。(4)通过本次课程设计,应该到达具有独立完成小型应用系统设计的能力,具备编写较为标准的软件设计文档的能力。2 .实验要求设计本系统模拟学校学籍管理内容,包括学生入学登记、学生选课、考试成绩登记、补考处理及教师教学质量分析统计等,简化的系统需要管理的情况如下:(1)可随时查询出不同系及各系教师与各系学生情况,系、教师与学生各反映如下情况:系:系号、系名、系负责人、专业数等教师:工号、姓名、性别、职称、工龄、出生年月、根本工资等学生:学号、姓名、性别、年龄等(2)为简单起见教

    3、师与学生区分系别,而课程不分系,课程需反映如下信息:课程代号、课程名、课程数、必修课、学分。(3)学生入学时新生需录入登记,登记后即可选课学习课程(一学期约20学分)。(4)一门课只由一位教师上,一位教师可上多门课,满30人才开课。(5)学生选每门课有个成绩,假设成绩不及格那么补考后还需记录补考成绩。二、实验环境本系统开发平台及运行环境如下:系统开发平台:MicrosoftVisualStudio2023系统开发语言:C#数据库管理软件:SQLServer2023运行平台:WindowslO教育版运行环境:Microsoft.NETFrameworkSDKv4.5三、实验内容与步骤1.系统需求

    4、分析(1)信息要求:指用户需要从数据库中获得信息的内容与性质。数据库中需要存储哪些数据。本系统是针对学生学籍管理,主要涉及教师信息、学生选修课程信息、学校开设的课程信息、学校的院系信息、教师开设课程信息、学生选修课程成绩信息等多种数据信息。用户名和密码信息:字段名数据类型长度主键否描述Usernamevarchar16是用户名Passwordvarchar16密码Userclasschar1用户类别学生信息:字段名数据类型长度主键否描述Sidvarchar16是学号Snamevarchar16姓名Ssexchar1性别Sageint年龄Sdepvarchar16所属系别Stelchar11SI

    5、Dcardchar18身份证号教师信息:字段名数据类型长度主键否描述Tidvarchar16是工号Tnamevarchar16姓名Tsexchar1性别Tprotitlevarchar16职称Tworktimeint工龄Tbirthdate出生年月Tsalfloat工资Tdepvarchar16所属系别Ttelchar11TIDcardchar18身份证号院系信息:字段名数据类型长度主键否描述Didvarchar16是系号Dnamevarchar64系名Dchiefvarchar16负责人Dmajorcountint专业数Dareavarchar64地址课程信息:字段名数据类型长度主键否描述C

    6、idvarchar16是课程代号Cnamevarchar32课程名Ccountint课程数Ccompulsorychar1是否必修Ccreditfloat学分Tidvarchar16授课教师学生选课信息:字段名数据类型长度主键否描述Sidvarchar16是学号Cidvarchar16课程代号Fscoreint正考成绩Sscoreint补考成绩课程选修人数:字段名数据类型长度主键否描述Cidvarchar16是课程代号Numbersint选修人数(2)处理要求:用户需要完成什么处理功能,对处理的响应时间有什么要求(给出功能模块图)。学籍管理系统主要满足三类用户的要求,这三类用户分别是教务处的系

    7、统管理员、教师和学生。系统管理员能对学生信息、教师信息、课程信息等进行有效的管理和维护,包括增加、删除、修改等根本的维护功能和灵活的查询功能;教师和学生能够对个人根本信息、授课、选课所涉及的有关信息进行查询、更新等操作。具体的需求分析如下:1)系统管理员:维护学生的个人根本信息维护教师的个人根本信息维护课程信息新生入学登记2)学生用户:查询和修改个人信息进行选课操作查询当前所选课程信息和以前所选课程的成绩信息3)教师用户:查询和修改个人信息课程结束后,教师对所教授的学生进行成绩登记查询教学安排功能模块图如下所示:图1功能模块图(3)平安性与完整性要求。数据库的平安性是指保护数据库,防止不合法的

    8、使用所造成的数据泄露和破坏。数据库系统中保证数据平安性的主要措施是进行存取控制,即规定不同用户对于不同数据对象所允许执行的操作,并控制各用户只能存取他有权(操作权力)存取的数据。存取控制机制分为自主存取控制(DAC)与强制存取控制(MAC),主要包括两局部:一是定义用户权限,并将用户权限登记到数据字典中;二是合法权限检查。数据库完整性指数据的(逻辑而非物理)正确性和相容性。为了防止数据库中存在不合语义的数据,防止错误数据的输入和输出。数据库完整性技术包括完整性约束条件与完整性检查两局部。完整性约束条件指为维护数据库的完整性,DBMS提供加在数据库数据之上的语义约束条件,作为数据库模式的一局部存

    9、入数据库。完整性检查意味检查数据库是否满足完整性约束条件的机制。完整性约束条件作用的对象可以是关系、元组、列三种。其中列约束主要是列的类型、取值范围、精度、排序等的约束条件。元组的约束是元组中各个字段间的联系的约束。关系的约束是假设千元组间、关系集合上以及关系之间的联系的约束。完整性约束条件涉及这三类对象,其状态可以是静态的,也可以是动态的。完整性约束条件一般分为实体完整性、参考完整性自定义完整性。定义实体完整性约束条件要考虑修改关系中主码的问题;定义参考完整性约束条件要考虑外码能否接受空值问题、在被参照关系中删除元组的问题(级联删除或受限删除)、在参照关系中插入元组时的问题。2.概念结构设计

    10、根据分析,学籍管理系统包含学生、教师、院系及课程4个实体,各个实体的局部E-R图如下所示,其中学号是学生实体的主码,工号是教师实体的主码,系号是院系实体的主码,课程号是课程实体的主码,负责人是院系实体的外码(参照的是教师实体的工号)。图2学生实体及属性图3教师实体及属性图4院系实体及属性图5课程实体及属性(1)逐一设计分ER图,合并分ER图,生成根本ER图。根据需求分析的结果可以看到,在学籍管理系统中,一个学生可以选择多门课程,一个教师可以教授多门课程,一门课程可以被多个学生选修,只能由一位教师教授。由此可知,学生、教师、课程三者之间通过选课进行联系。教师和学生区分系别,因此学生与院系,教师与

    11、院系均存在联系。由以上分析可得各个局部的E-R图,如下所示(忽略各个实体的属性):图6学生与院系之间的E-R图图7教师与院系之间的E-R图图8学生与课程之间的E-R图图9学生与教师之间的E-R图10与I旬E-R(2)假设在合并中存在属性冲突、命名冲突以及结构冲突,给出解决方法,假设存在不必要的冗余,那么消除并给出设计方法。合并分E-R图并不是单纯地将各个分E-R图画在一起,而是必须消除各个分E-R图中的不一致,以形成一个能为全系统中所有用户共同理解和接受的统一的概念模型。各个分E-R图之间的冲突包括3种:属性冲突、命名冲突以及结构冲突。经过分析,得到学生、教师、院系和课程3者之间可以通过选课这

    12、个联系进行关联。因此,合并各个分E-R图,生成根本E-R图,如下所示:图U学籍管理系统根本E-R图(3)根本ER图中要求标明主码、外码、联系类型。根本E-R图中,各实体的主码用下划线加粗显示,外码倾斜加粗表示,联系类型说明于连接线上。3.逻辑结构设计(1)给出由ER得到的关系模型,并注明转换过程中应用的规那么。E-R图向关系数据模型转换的根本规那么如下:1) 一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键;2) 一不联系转化为一个关系模式,与该联系相连的各个实体的键以及联系的属性为该关系的属性,该关系的键分为3种情况:1:1联系:任一相连实体的键都可以作为该关系的主

    13、键。Im联系:n端(多端)实体的键作为该关系的主键。m:n联系:各端实体的键的组合为该关系的主键。其中,1:1联系可以和联系的任意一端实体的关系模式合并,将联系的属性和另一端关系模式的键参加该关系模式即可;l:n联系那么需要和多端的关系模式合并,在多端关系模式中参加联系的属性和1端关系模式的键即可;m:n联系不能与实体合并,必须转换为单独的关系模式。根据E-R图向关系数据模型转换的相关规那么,将图11所示的E-R图转换为关系数据模型,得到学籍管理系统的关系模式如下:教师(工,羞令,姓名,性别,职称,工龄,出生年月,工资,身份证),应用规那么2卜Ln联系。学生(生号,姓名,性别,年龄,身份证),

    14、应用规那么2)l:n联系。院系(系号,负责人工号,系名,专业数,地址),应用规那么2)41:1联系。课程课程代号,授课教师工号,课程名,课程数,是否必修,学分),应用规那么2)-Ln联系。选修(学号,课程号,正考成绩,补考成绩),应用规那么2)-m:n联系。(2)数据模型的优化。数据库的逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该根据应用需要适当地修改、调整数据模型的结构,这就是数据模型的优化。关系数据模型的优化通常以标准化理论为指导。(3)确定数据依赖。分别写出每个关系内部属性的以及不同关系模式属性间的数据依赖。根据需求分析可知:1 .教师关系模式的数据依赖:工号。系

    15、号,工号-姓名,工号-性别,工号-职称,工号工龄,工号。出生年月,工号-工资,工号,工号-身份证;2 .学生关系模式的数据依赖:学号系号,学号姓名,学号-性别,学号年龄,学号,学号身份证;3 .院系关系模式的数据依赖:系号负责人工号,系号系名,系号专业数,系号-地址;4 .课程关系模式的数据依赖:课程代号。授课教师工号,课程代号。课程名,课程代号。课程数,课程代号。是否必修,课程代号-学分;5 .选修关系模式的数据依赖:(学号,课程号)。正考成绩,(学号,课程号)。补考成绩;(4)对各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。采用分析方法,根据数据项之间逻辑关系的说明,已经消除了

    16、各个关系模式之间的数据冗余联系。(5)按照数据依赖的理论确定个关系模式分别属于第几范式。根据各个范式的定义:1)教师关系模式属于BCNF, 码,所以BCNF;2)学生关系模式属于BCNF, 码,所以BCNF;3)院系关系模式属于BCNF, 码,所以BCNF;4)课程关系模式属于BCNF, 包含码,所以BCNF;5)选修关系模式属于BCNF,因为该关系模式的码是工号,且每一个决定因素都包含因为该关系模式的码是学号,且每一个决定因素都包含因为该关系模式的码是系号,且每一个决定因素都包含因为该关系模式的码是课程代号,且每一个决定因素都因为该关系模式的码是(学号,课程号),且每一个决定因素都包含码,所

    17、以BCNF;(6)用户子模式设计。将概念模型转换为全局逻辑模型后,还应该根据局部应用需求,结合具体DBMS的特点设,计用户的外模式。学生查看课程信息,需要知道授课教师的姓名,建立视图:选修课程(课程号,课程名,课程数,是否必修,学分,授课教师姓名);学生查看课程成绩,建立相应视图:课程成绩(课程号,课程名,学分,是否必修,正考成绩,补考成绩);教师录入正考成绩,建立相应视图:正考成绩录入(学号,学生姓名,正考成绩);教师录入补考成绩,建立相应视图:补考成绩录入(学号,学生姓名,补考成绩);教师查看教学安排,建立相应视图:教学安排(课程号,课程名,课程数,是否必修,学分,已选人数);教师查看选课

    18、名单,建立相应视图:选课名单(课程号,课程名,课程数,是否必修,学分,授课教师姓名,学号,学生姓名,性别,院系);(7)对不同级别用户定义不同的视图保证系统平安性。学生只能查看个人根本信息,和个人选课及课程成绩信息;教师只能查看个人根本信息,和自己的教学安排信息,只能对选自己教授课程的学生进行成绩录入;管理员可以查询所有学生的信息、所有教师的信息、院系信息及课程信息。4.数据库与应用系统的实施和维护(1)应用程序的编码和调试。(2)给出截图(标明图号)简单阐述该模块的根本功能。给出该模块的设计思路,针对难点局部进行详细地阐述。首先是登录模块:输入用户名和密码,选择登录用户,点击登录。链接数据库

    19、检查数据库中是否存在该用户,以及密码是否正确,如果错误,提示用户名或密码错误,否那么进入相应的用户界面。相关数据库查询语句:stringsql=string.FormatCseiectcount(*)fromUserswhereUSername=0andPassword=*1andUSerCIaSS=name,pwd,type);管理员模块:登录管理员账号,进入管理员界面,管理员首先向数据库中添加相应的数据信息。院系信息管理:点击院系信息管理,可以进行添加院系信息操作。可以自动导入文件,也可以手动添加相关信息。以导入文件为例:点击导入文件按钮,选择相应文件,点击翻开。如果格式不正确,那么给出

    20、相应提示,否那么导入相应信息,点击提交,将数据存入数据库中。同理,学生信息、教师信息、课程信息均可按此方法导入数据库中。导入数据库的相关Sql语句(以院系信息为例):首先查找数据库中是否已存在即将导入的系号,如果有那么跳过,否那么进行插入操作。sql=string.FormalCselect*fromDepartmentwhereDid=0”,dataGridViewl.CeJls0.Value.TOStringO);sqll=string.FormatdnsertintoDepartmentvaluesC0*,1,*2*,3,f,4,)*,dataGridViewl.,orsi.CellsQ

    21、Value.ToString4,dataGridViewl.饱JFSi.Cells.Value.ToSlringO,dataGridViewl.EojFSi.Cells2.Value.ToSIring4,dataGridViewl.wsi.Cells3.Value.ToStringOtdataGridViewl.EOlFSi.CellsW.Value.TOStringa);此外,管理员可以查询相关信息。点击信息查询,会弹出相关子菜单,可以查询相应的信息。相应查询SqI语句为:stringsql=string.FonnatcSeIeClDid,Dname,Tname,Tid,Dmajorcou

    22、nt,DareafromDepartment,TeacherwhereDchief=Tid*);stringsql=string.FormatCselectTid,Tname,Tsex,Tprotitle,Tworktime,Tbirth,TsalfDname,Ttel,TIDcardfromTeacher,DepartmentwhereTdep=Did*);stringsql=string.FormatCselectSid,Sname,Ssex,Sage,Dname,Stel,SIDcardfromStudent,DepartmentwhereSdep=Did);在导入学生信息和教师信息时,

    23、会同时向USer表1即登录账号信息表)中插入用户名和密码,以及用户类型,默认初始密码和用户名相同。stringsql2=string.Format(insertintoUsersVaIUeS(0,1,2)”,dataGridViewl.EOjFSi.6s0.Value.ToString4,dataGridViewl.饱JFSi.CellsQi.Value.ToStringO,type-1);学生模块:输入学号和密码,登录系统,进入学生操作界面:点击个人信息查询可以查询个人根本信息:查询语句为:sq=string.FormatCseXect*fromStudentwhereSid=0,sid);

    24、但查询到的是院系编号,为了防止表的连接操作,先查询到所属院系编号,然后根据院系编号查询系名:Sql=string.FormalseeclDnamefromDepartmentwhereDid=0,label12.Text);label12.Textf了之前查询到的系编号。点击个人信息修改可修改号码(其他根本信息默认不可自己修改):号修改成功后点击个人信息查询,可以发现已修改成功:修改Sql语句为:stringSql=string.RzrCTat(updateStudentsetStel=0,whereSid=1,textBoxl.Text.ToStringOsid);IeXtBoXl.是修改后

    25、的号,S/d是该学生的学号。选课模块:点击选课菜单,再点击导入所有课程,此时系统会查询数据库,将数据库中课程信息显示出来,每一门课程后面都有一个选课按钮,点击按钮即可选课:再次点击该选课按钮后会提示已选过改门课程:导入所有课程的Sql语句为:Stringsql=*selectCid,Cname,CcountfCcompulsory,Ccredit,Tname,Teacher.TidfromCourselTeacherwhereCourse.Tid=Teacher.Tid”;选课操作的Sql语句为:stringsql=string,wf(*insertintoChooseCoursevalues

    26、0,/1,null,null)z,sid.HataGridViewl.Mse.Rowindex.CellsO.Value.ToStringO);选课表中存放了学生的学号,和该课程的课程号,以及正考成绩(初始为null)和补考成绩(初始为nullJo此外,如果改门课程第一次被选,那么选课人数置为1,否那么选课人数+1,相关Sql语句为:stringsql2=string,ib27zwf(*insertintoCStunumbervalues(,0,1)”,HataGridViewl.(wse.Rowindex.CesO.Value.ToStringO,1);stringsql3=string

    27、formatCupdateCStunumbersetNumbers=Numbers+1whereCid=0,dataGridViewl.wse.Rowindex.CesO.Value.ToStringO);点击成绩查询,老师未登记成绩前显示为空:成绩查询Sql语句:stringsql=string.FormatCselectCourse.Cid,Cname,Ccredit,Ccompulsory,Fscore,SscorefromChooseCourse,CoursewhereChooseCourse.Cid=Course.CidandSid=0,sid);教师模块:输入教师工号和密码,点击

    28、登录即可进入教师界面:教师个人信息查询以及个人信息修改和学生类似,故不赘述。教师成绩录入:点击成绩录入,首先进行正考成绩录入。在这之前,系统先查询数据库,查询该教师授课信息,该教师只能录入所授课程的成绩:查询该教师所授课程的Sql语句为:stringsql=string.FormatCseiectCname,CidfromCoursewhereTid=0,tid);以C语言为例:选择C语言后,会显示选修C语言课程的学生信息,然后录入该学生的成绩,点击提交。查询选修该课程的学生信息及首次成绩的Sql语句为:sql=string,zwf(,selectChooseCourse.Sid,Sname,

    29、FscorefromChooseCourse,StudentwhereChooseCourse.Sid=Student.SidandCid=0,cid);接着录入补考成绩:只有第一次成绩小于60分的学生才需要录入补考成绩,其Sql语句为:sql=string,waf(,selectChooseCourse.Sid,Sname,SscorefromChooseCourse,StudentwhereChooseCourse.Sid=Student.SidandFscore60andCid=0,cid);教学安排查询:教师可以查询自己所授课程的根本信息及选修该课程的学生信息(即名单):点击选课名单可

    30、显示名单信息:教师录完成绩后再次登录学生账号即可查询到成绩:四、总结通过这次课程设计,我对数据库的编程语言有了深刻的了解,对SQL语言的简洁性和高效性有了自己进一步的体会,同时对数据库的一些设计模式也有了一个大致的认识与了解。在整个程序的设计过程中,对软件编程的流程,包括需求分析、概要设计、详细设计等步骤又有了一个新的认识,尤其是需求分析的好坏在整个程序的设计中有着举足轻重的作用。需求分析没有做好,后面的步骤很容易受到负面的影响。此外,关于学籍管理系统:一、看似简单,其实不然一开始看题目要求只有几个模块觉得挺简单,但当真真正正地去把每一个模块完成时,很多意想不到的情况发生了。有时候会为了一个操作不能调试成功而消耗大量的时间,还需要查阅各种资料,好在最后成功解决了遇到的问题。二、冷静沉着、兢兢业业编程是一个很繁琐的过程,要考虑到很多错误转移情况,在这期间会有很多以前不曾想过的问题出现,次数多了,不免会有觉得做不下去的感觉。但是我从中发现,只要一步一步调试、静下心来看待问题,再复杂再微小的问题都会迎刃而解,当一个程序被调试出来时,那时的快乐相比与任何困难都值得的。


    注意事项

    本文(学籍管理系统实验报告.docx)为本站会员(peixunshi0)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!




    宁ICP备18001539号-1

    三一文库
    收起
    展开