学生信息管理_第1页
学生信息管理_第2页
学生信息管理_第3页
学生信息管理_第4页
学生信息管理_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

天津职业技术师范大学TianjinUniversityofTechnologyandEducation《数据库系统概论》课程设计报告学生信息管理系统专业:计算机科学与技术班级学号:学生姓名:指导教师:二0一一年六月一、实验名称:学生信息管理系统张彩娟:负责主体框架模块,登录权限验证模块,院系数据管理模块。张盼盼:负责学生数据管理模块,课程成绩管理模块,课程成绩统计模块,帮助的制作。数据库与vc++MFC的链接二人共同负责:数据库e--R图设计、建表、课程设计报告。二、实验目的及功能(需求分析):1、目的:掌握设计小型数据库信息管理系统的设计方法和设计过程。2、系统主要功能:在该系统中主要对学生的基本信息、学生成绩等进行管理,系统主要功能如下:1)学生信息管理用来管理学生基本信息,包括浏览、查询、添加、修改和删除。学生基本信息包括:学号、姓名、性别、出生年月、籍贯、自然班级、学院。2)课程信息管理一门课程有一个班级,也可能有几个上课班级,因此课程信息里的授课教师是不确定的,所以把授课教师添加到了班级信息中。课程信息管理包括:浏览、查询、添加、修改和删除。课程基本信息包括:课程编号、课程名称、课程类型、课程学时、课程学分、所属院系。3)班级信息管理对于学分制管理下的选课而言,学生选择上课教师,上课不再采用自然班上课,而是由学生选择教师上课后组成上课班级。因此这里的上课班级和自然班是不同的。这里主要是对班级基础信息进行管理,包括浏览、查询【按班级号查询,按课程号查询】、添加、修改和删除。班级基本信息包括:班级编号、所属课程、授课教师、开始日期、结束日期、班级人数。4)成绩信息管理用来管理学生成绩,包括浏览、查询【按成绩自动编号、课程号、班级号查询】、添加、修改和删除。成绩基本信息包括成绩自动编号、学生学号、上课班级编号、课程成绩。5)成绩统计分析统计一个上课班级的成绩分段百分比、平均成绩、均方差。可以分别统计每个课程班级的成绩和整个课程的成绩。6)权限管理对于不同层次的使用者应该开放不同的权限。管理者:维护学生基本信息,管理院系、课程、成绩各种数据。教师:可以录入学生成绩信息,查询学生基本信息和成绩统计信息。学生:可以查询成绩信息和成绩统计信息。7)使用要求需要提供方便灵活的数据查询功能,友好的人机界面,满足繁杂、多样的用户需求。

3、数据流数据流图是一种面向数据流的分析方法,主要采用自顶向下逐层分解的分析思想和原则,下图为顶层数据流图,由于成绩管理数据流较为复杂,因此再给出成绩管理数据流图。(a)系统数据流顶层图不合法的学生(b)成绩管理数据流图三、系统设计通过上述需求分析,出于对执行部门的单一性和系统的安全考虑,此系统的初步设计成单,多机环境两种工作模式。单机模式推荐使用ACCESS数据库;分布式多机环境下使用SQLServer数据库,并且所有客户端和数据库必须在一个局域网内。1、系统的功能模块根据需求分析的结果,系统的总体功能模块如下图所示

2、业务流程设计业务流程是为实现业务的某一特定目的所采取的一系列有控制的步骤。如不能给某门不存在的课程添加班级,不能删除下挂有授课班级的课程等。下图为本系统的业务流程图,它是建立关系数据库的又一重要依据。四、数据库设计1、概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。设计教室管理数据库包括系统管理员、院系信息、课程、课程班级、学生、成绩六个关系。分实体及其属性图如下系统管理员(a)(b)(c)(d)(f)(f)信息管理系统的总体E-R图如下:2、逻辑结构设计阶段针对学生管理信息系统的功能图、数据流图以及业务流程图,采用ACCESS或SQLServer作为后台数据库,数据库命名为StuMIS,整个系统包含6张数据表,分别如下:系统管理员表:UserTab列名数据类型允许空2?nvarchar(20)rPasswordnvarchar(50)wPowerintar课程班级表:ClassTab列名数据类型允许空8S3nvarchar(20)rCourselDnvarchar(20)17ClassTeachernvarchar(20)向ClassDate5tartnvarchar(20)ClassDateEndnvarchar(20)17ClassNumint17r院系信息表:CallegeTab列名|数据类型允许空nvarchar(20)厂:CollegeMemonvarchar(255)课程表:CourseTab列名数据类型|允许空2?nvarchar(20)rCourseNamenvarchar(50)17CourseTypenvarchar(lO)17CourseHourstinyint向CourseCreditreal17CollegelDnvarchar(20)17学生表:StudentTab■列名1数据类型|允许空nvarchar(20)StuNamenvarchar(lO)5tu5exnvarchar(lO)5tuBirthdaynvarchar(50)StuNativePlacenvarchar(20)StuClassnvarchar(20)CollegelDnvarchar(20)成绩表:ScoreTab列名数据类型|允许空wintr5core5tuIDnvarchar(20)rClassIDnvarchar(20)r5corereal17r外键也称为关系,外键约束是关系数据库的一个重要特征,建立外键是减少数据库冗余的重要手段,可以有效地保证数据库的完整性与有效性。比如在ScoreTab表ScoreStuID字段中,不能输入StudentTab表StuID字段中没有的值;同样如果StudentTab表StuID字段中的某个值被引用了,则不能随意地更改或删除它(取决于在设计数据库关系时的设置)。在ACCESS中建立外键的方法非常简单:1)点击进入数据库,在表视图的空白区域内点击鼠标右键2)点击选择【关系】3)单击右键选择【显示表】,选择要设计的外键【关系】的表单击选中需要受到约束的字段,拖放到外键查询的字段。实施参照完整性有两个选项:a)级联更新相关字段:即如果外键中的值发生了改变,则受它约束的相关字段会相应地更新。实际操作中我们一般选择此项,以简化数据库更新操作。b)级联删除相关记录:即如果外键中的某个值被删除,则受它约束的相关字段会自动地删除。为了确保数据安全,防止误操作,一般不选此项。此时,则完成了一个外键【关系】的制作。关系的引用,在减小了数据库的冗余的同时,也带来了查询与更新上的麻烦,比如要查询ScoreTab中的某项成绩的课程是哪个院系开的,就需要依据外键进行三次连接查询,即:ScoreTab->ClassTab->CourseTab->CollegeTab。为了降低这种查询所带来的书写SQL语句的难度和提高执行效率,在SQLServer中一般会采用通过建立视力或存储过程的方法来实现,但为了确保能支持ACCESS数据库,此系统使用了直接写SQL语句的方法。3、物理设计阶段数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库的逻辑结构选择合适的应用环境的物理结构,既确定有效地实现逻辑结构模式的数据库存储模式,确定在物理设备上所采用的存储结构和存取方法,然后对该存储模式进行性能评价、修改设计,经过多次反复,最后得到一个性能较好的存储模式。数据库物理设计内容包括记录存储结构的设计,存储路径的设计。4、数据库实现数据库实施是指建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。1、创建数据库打开MicrosoftAccess,在启动首画面中选择“空Access数据库”单击“确定”按钮后,在弹出的“文件新建数据库”对话框中输入或选择文件名、文件类型和保存路径。2、创建数据表一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。创建数据表的过程其实就是定义字段的过程。(1)单击“创建”按钮,弹出“职员档案:数据库”对话框,在左侧的“对象”列表框中选择“表”,在右侧的列表框中选择“使用设计器创建表”(2)单击工具栏上的“设计”按钮,或者双击“使用设计器创建表”,弹出“表1:表”对话框,开始设计一个职员档案数据表。使用工具栏上的“主键”(钥匙形状)按钮将“序号”设为主键。(3)关闭并保存该表,在“另存为”对话框中将表命名为“职员档案”。这样,在数据库对话框的右侧列表框中就增加了一个表.以同样的方法创建系统管理员表,院系信息表,课程表,课程班级表,学生表,成绩表。(4)双击打开相应表并编辑,如下图所示:

课程班级表表-dbo.ClassTab摘要ClassIDCourselDClassTeacherClassDateStartClassDateEndClassNum►11000110001龙好2007-3-12007-5-12510001210002龙好2007-09-012007-11-152510001310002龙好2007-3-12007-5-12510001410002活竹2007-09-012007-11-152510003110003李震2007-05-012007-07-012710003210003王华2007-5-12007-1-12510003310003王华2007-05-012007-01-0125来AfUL.W;.WZ.W;MULL院系信息表课程表/表-dbo.CourseTab表-dbo.CollegeTab表-dbo.ClassTab摘要CourselDCourseNameCourseTypeCourseHoursCourseCreditCollegelD►此++编程选修422.5机械动力与工…10002c程序设计[一]必修644机械动力与工…10003VB必修583信息工程学院10004C程序设计[二]必修644机械动力与工…10005数据结构必修644信息工程学院10006软件工程必修402.5信息工程学院10007数据结构£必修604信息工程学院来AfULLA/ULLA/ULL.WZ学生表,/表-dbo.StudentTab表-dbu.StudentTab表・db口.5coreTdb表・db口.CourseTab表-db。.CollegeTab表・1北心.ClassTab表-c5tuID|5tuName|5tu5ex|StuBirthday|StuNativePlace5tuClass|CollegelDU0001张健男1980-1-4福建4班机械动力与工…►・」硕1口李震男1980-1-1江西5班信息工程学院U00012王刚男1989-1-1内裁巳班信息工程学院U0002女1986-4-7湖北4班信息工程学院U0003李焉男1986-4-7江西S班信息工程学院U0004王刚男1989-04-29内蕴6班信息工程学院U0006齐山男2008-01-22河北S班机械动力与工…U0008李华女1983-1-1河南5班信息工程学院U0009张龙男1982-07-01河北巳班信息工程学院*AU.L血也..WZ..WZ

成绩表表-dbo.ScoreTab表-dbo.CourseTab表-dbo.CollegeTab表-dbo.ClassT<ScorelD5core5tuIDClassIDScore►ElU0001100011103U0002100011564U0003100031755U0003100012456U0003100011507U00010100032708U00010100031609U000101000126011U00021000126012U00041000116023U000910003275米MLML用户表-dbo.UserTab广表■dbo.UserTab广表-'UsernamePasswordPower13guest10student11teacher12zd1230米A/ULA/ULA/UL五、程序简介及运行环境1.程序概况简介整体程序概况调用帮助及附属工具2、运行环境介绍VisualC++6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。VisualC++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000、WindowsXP和WindowsNT4.0。所以实际中,更多的是以VisualC++6.0为平台⑷。VisualC++6.0由Microsoft开发,它不仅是一个C++编译器而且是一个基于Windows操作系统的可视化集成开发(Integrateddevelopmentenvironment,IDE)。VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。Microsoft的主力软件产品[4。1.建立C++源文件的步骤:1).新建C++源文件2)选择“文件”页,选中“C++SourceFile”,给文件命名,确定文件路径。在编辑区编辑源文件保存源文件5)编译源文件,建立活动工作区

6)生成目标文件7)链接并生成可执行文件并生成可执行文件2、程序运行过程中变量值的查看)利用printf()输出到屏幕)利用debug方式下的断点检查功能R又件M“IU工理整HR叫弑voidaypri«t(int«fi)Cppl.ne-Ierrtr(s),Iwraingfs)R又件M“IU工理整HR叫弑voidaypri«t(int«fi)Cppl.ne-Ierrtr(s),Iwraingfs)/>.IRlff:A2]«||Reatfy\•if天中IX[r”i~tpp]prLatf(a>//print"僦5n;,llllij...Cppl.cppm-i'i|...lieclade"sMin.trIlBclvile"sUlib.rgCp»1lM壤址:,(尸'1心.(尸2)*\・".p.p*1.p*2);"2]8ir.pill,p[1],ipi);大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢?

NevFilesPrnjedsWorkspaces^ATLCOMAppWizardSIClusterResourceTypeWizardNevFilesPrnjedsWorkspaces^ATLCOMAppWizardSIClusterResourceTypeWizardJ]CustomAppWizard^DatabaseProject^DevSludioAdd-inWlsardExtendedStoredProcWizardifilSAPIExlcnsionWizard解MFCActiveXConirolWizardMFCAppWizard(dll|gjMFCAppWizard(exe]y^NewDatabaseWizard机UtilityProject自Win32Application二]Win32ConsoleApplvcslion^b]V/in32Dynamic-LinkLibrarySWin32StaticLibrary1项目类型说明项目类型说明ATLCOMAppWizard以建AFL应用程序DatabaseProject创建数据库项目Win32DynamicLinkLibrary习建Win32助杰DcvStudioAdd-inWizard创建自动化定CustomAppWizard司建自定义的AppWizardISAFIExtension啪zard创建Internet.服务器或过滤嚣Makefile创建Make文件MFCActiveXConfrolWizard创建ActiveX控件程序MFCAppWizard(dll)创建MFC动态持接库MFCAppWizard(exe)创建MFC可执行程序Win32Application匀建Win32应用程序Wn32CansoleApplication创建Win32控制台应用程序ClusterResourceTypeWizard通过它可以创建两种项目类型(ResourceDLL和ClusterAdministratorExtensionDLL)UtilityProject通过它可以创建一个放用顼目,-衰项目天作为其他子项目的一人包容器,减少子项耳的蝙联时间.但它壬'身捧不也至任K文件W5ji32StaticLjhrary创建而m静态库1、VisualC++的Build设置1.)CompileTEST.cpp选项只编译当前文件而不调用链接器或其它工具。输出窗口将显示编译过程检查出的错误或警告信息,在错误信息处单击鼠标右键,可以得到错误代码的位置2)BuildTEST.exe选项对最后修改过的源文件进行编译和链接)RebuildAll选项该选项允许用户编译所有的源文件,而不管它们何时曾经被修改过)BatchBuild选项该选项能单步重新建立多个工程文件,并允许用户指定要建立的项目类型.VC提供了两种目标应用程序类型Win32Release(发行版)、Win32Debug(调试版)。我们先来看一下VC的处理流程,大致分为两步:编译和连接。源文件通过编译生成7.obj文件;所有.obj文件和.lib文件通过连接生成.exe文件或.dll文件。下面,我们分别讨论这两个步骤的一些细节。工程配置对话框在这个对话框中,左上方的下拉列表框用于选择一种工程配置,包括有Win32Debug、Win32Release和AllConfigurations(指前两种配置一起),某些选项在不同的工程配置中有不同的缺省值。左边的树形视图给出了当前工程所有的文件及分类情况。如果我们把工程“Schedule”置为高亮显示(正如图9-1那样),对话框的右边就会出现总共十个选项卡,其中列出了与工程有关的各种选项,不少选项卡中有一个Reset按钮,按下它后可以把选项卡内的各项设置恢复到生成工程时的初始值。如果我们在树形视图中选择一个文件类或一个文件,那么对话框右边的选项卡会自动减少到一个或两个,其中列出的都是与选中的文件类或文件有关的选项。编译参数的设置。主要通过VC的菜单项Project->Settings->C/C++页来完成。我们可以看到这一页的最下面ProjectOptions中的内容,一般有:/nologo/MDd/W3/Gm/GX/ZI/Od/D"WIN32"/D〃—DEBUG"/D〃—WINDOWS"/D"_AFXDLL"/D"_MBCS"/Fp"Debug/WritingDlgTest.pch"/Yu"stdafx.h"/Fo"Debug/"/Fd"Debug/"/FD/GZ/c1)General:一些总体设置。Warninglevel用来控制警告信息,None表示不显示任何警告,表示只显示严重的警告,表示显示比次严重的警告,则表示显示出所有的警告,包括那些安全忽略的警告;Warningsaserrors将警告信息当作错误处理,这样在编译完毕后就无法启动连接器来进行连接;Optimizations是代码优化,可以在Category的Optimizations项中进行更细的设置;Generatebrowseinfo用以生成.sbr文件,记录类、变量等符号信息,可以在Category的ListingFiles项中进行更多的设置。Debuginfo,生成调试信息:None,不产生任何调试信息(编译比较快);LineNumbersOnly,仅生成全局的和外部符号的调试信息到.0BJ文件或.EXE文件,减小目标文件的尺寸;C7.0-Compatible,记录调试器用到的所有符号信息到.OBJ文件和.EXE文件;ProgramDatabase,创建.PDB文件记录所有调试信息;ProgramDatabasefor"Edit&Continue",创建.PDB文件记录所有调试信息,并且支持调试时编辑。2)C++Language:pointer_to_memberrepresentation用来设置类定义引用的先后关系,一般为Best-CaseAlways表示在引用类之前该类肯定已经定义7;EnableExceptionHandling,进行同步的异常处理;EnableRun-TimeTypeInformation迫使编译器增加代码在运行时进行对象类型检查;DisableConstructionDisplacements,设置类构造/析构函数调用虚函数问题。3)CodeGeneration:Processor表示代码指令优化,可以为80386、80486、Pentium、PentiumPro,或者Blend表示混合以上各种优化。Userun-timelibrary用以指定程序运行时使用的运行时库(单线程或多线程,Debug版本或Release版本),有一个原则就是,一个进程不要同时使用几个版本的运行时库。Single-Threaded,静态连接LIBC.LIB库;DebugSingle-Threaded,静态连接LIBCD.LIB库;Multithreaded,静态连接LIBCMT.LIB库;DebugMultithreaded,静态连接LIBCMTD.LIB库;MultithreadedDLL,动态连接MSVCRT.DLL库;DebugMultithreadedDLL,动态连接MSVCRTD.DLL库。连接了单线程库就不支持多线程调用,连接了多线程库就要求创建多线程的应用程序。Callingconvention可以用来设定调用约定,有三种:―cdecl、__fastcall和—stdcal各种调用约定的主要区别在于,函数调用时,函数的参数是从左到右压入堆栈还是从右到左压入堆栈;在函数返回时,由函数的调用者来清理压入堆栈的参数还是由函数本身来清理;以及在编译时对函数名进行的命名修饰(可以通过ListingFiles看到各种命名修饰方式)。Structmemberalignment用以指定数据结构中的成员变量在内存中是按几字节对齐的,根据计算机数据总线的位数,不同的对齐方式存取数据的速度不一样。这个参数对数据包网络传输等应用尤为重要,不是存取速度问题,而是数据位的精确定义问题,一般在程序中使用#pragmapack来指定。4)Customize:DisableLanguageExtensions,表示不使用微软为标准C做的语言扩展;EliminateDuplicateStrings,主要用于字符串优化(将字符串放到缓充池里以节省空间),使用这个参数,使得char*sBuffer="Thisisacharacterbuffer";char*tBuffer="Thisisacharacterbuffer";sBuffer和tBuffer指向的是同一块内存空间;EnableFunction-LevelLinking,告诉编译器将各个函数按打包格式编译;Enablesminimalrebuild,通过保存关联信息到.IDB文件,使编译器只对最新类定义改动过的源文件进行重编译,提高编译速度;EnableIncrementalCompilation,同样通过.IDB文件保存的信息,只重编译最新改动过的函数;SuppressStartupBannerandInformationMessages,用以控制参数是否在output窗口输出。5)ListingFiles:Generatebrowseinfo的功能上面已经提到过。这里可以进行更多的设置。ExcludeLocalVariablesfromBrowseInfo表示是否将局部变量的信息放到.SBR文件中。Listingfiletype可以设置生成的列表信息文件的内容:Assembly-OnlyListing仅生成汇编代码文件(.ASM扩展名);AssemblyWithMachineCode生成机器代码和汇编代码文件(.COD扩展名);AssemblyWithSourceCode生成源代码和汇编代码文件(.ASM扩展名);Assembly,MachineCode,andSource生成机器码、源代码和汇编代码文件(.COD扩展名)。Listingfilename为生成的信息文件的路径,一般为Debug或Release目录下,生成的文件名自动取源文件的文件名。6)Optimizations:代码优化设置。可以选择MaximizeSpeed生成最快速的代码,或MinimizeSize生成最小尺寸的程序,或者Customize定制优化。定制的内容包括:AssumeNoAliasing,不使用别名(提高速度);AssumeAliasingAcrossFunctionCalls,仅函数内部不使用别名;GlobalOptimizations,全局优化,比如经常用到的变量使用寄存器保存,或者循环内的计算优化,如i=-100;while(i<0)(i+=x+y;}会被优化为i=-100;t=x+y;while(i<0)(i+=t;}GenerateIntrinsicFunctions,使用内部函数替换一些函数调用(提高速度);ImproveFloatConsistency,浮点运算方面的优化;FavorSmallCode,程序(exe或dll)尺寸优化优先于代码速度优化;FavorFastCode,程序(exe或dll)代码速度优化优先于尺寸优化;Frame-PointerOmission,不使用帧指针,以提高函数调用速度;FullOptimization,组合了几种参数,以生成最快的程序代码。nlinefunctionexpansion,内联函数扩展的三种优化(使用内联可以节省函数调用的开销,加快程序速度):Disable不使用内联;Only__inline,仅函数定义前有inline或_inline标记使用内联;AnySuitable,除了Inline或_inline标记的函数外,编译器“觉得”应该使用内联的函数,都使用内联。7)PrecompiledHeaders:预编译头文件的设置。预编译头的概念:所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里(通常是以.pch为扩展名的),这个文件就称为预编译头文件这些预先编译好的代码可以是任何的C/C++代码甚至是Inline的函数,但是必须是稳定的,在工程开发的过程中不会被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。你可将将一些公共的、不大变动的头文件(比如FILEX.h等)集中放到stdafx.h中,这一部分代码就不必每次都重新编译(除非是RebuildAll)。注意生成预编译头文件是很耗时间的。同时你得注意预编译头文件通常很大,通常有6-7M大。使用预编译可以提高重复编译的速度。8)Preprocessor:预编译处理。我们可以在这里预先定义一些宏名,指定部分或所有符号具有未定义状态oAdditionalincludedirectories,可以指定额外的包含目录,一般是相对于本项目的目录,如..\IncludeLink连接参数的设置。主要通过VC的菜单项Project->Settings->Link页来完成。我们可以看到这一页的最下面ProjectOptions中的内容,一般有:/nologo/subsystem:windows/incremental:yes/pdb:〃Debug/WritingDlgTest.pdb〃/debug/machine:I386/out:〃Debug/WritingDlgTest.exe〃/pdbtype:sept六、运行界面的介绍1、登录界面2、主窗体界面4、院系管理界面5、学生管理界面学生基本信息田址数据管理界面IJOOOIOULI00121J0008V00061J0009ULI0041J0003U00021J0001详^信息1980-1-11989-1-11983-1-12i:ii:i8-01-221982-07-011989-04-291986-4-71986-4-71980-1-4籍贯:1姓别:1刁出生年月:|ia™-1-1』班煎:11查找|所记录||保存添加||保存编辑|大写ScorelDScoreStuIDClassIHScore23UOOO'd10003275.OOOOOO12U000410001160.00000011U000210001260.0000009U0001010001260.0000008U0001010003160.0000007U0001010003270.0000006U000310001150.0000005U0003100012■45.0000004U000310003175.0000003U000210001156.0000001U000110001110.000000统计分析该班级成绩删除记录保存添加保存褊辑按学号查成绩莅课程号查成绩按班缀号查成绩8V课程成绩统计界面9、制作完成的帮助预览界面七、得意之处:首先,系统设计从实际出发,进行需求分析,明确了系统的主要功能。虽然是数据库课程设计,整个设计中我们最满意,也是最得意的是把数据库这个进行后台操作的软件,与VC++的MFC应用平台相结合,通过与数据库的有效连接,在前台所执行的操作就可以在数据库中发生相应的变化,同样,数据库中的数据也能在前台得到充分的体现,二者有机结合,完成各自单独不能完成的功能。学会了使用ADO连接数据库的方法,ADO是基于OLEDB接口而设计的,是一个易于使用,速度快,内存支出小的应用程序接口。使用ADO通过SQL语言连接数据库实现用户登录一即在StdAfx.h文件中引入相应的库文件:#import"msado15.dll"no_namespacerename("EOF","adoEOF"),并且整句要在一整行,不能分开写。其次,是系统界面的设计,界面以通过功能作为其设计核心,并且始终一致,用户可以随时掌握任务的进展情况;另外,界面能够提供帮助,友好而且使用方便,具有一定的实用性、可扩展性和可维护性。还有帮助的制作,在我们日常用的每一个应用软件都包含帮助选项,可以说这是实际应用中不可缺少的一个功能,该系统就涉及了帮助的制作。最后,是成绩统计模块的设计,这次成绩统计模块,不仅可以统计出班级学生的平均成绩,而且通过标准差的数学公式的应用,可以实现对成绩分段胡百分比、均方差。进而可以统计每个课程班级的成绩和整个课程的成绩。另外,在VC++的使用上也有很大提升,掌握了从外界导入图片,对图片进行修改和处理,并且对添加CToolBar工具栏等以前没有使用过的VC++所具有的强大功能有更透彻的认识和理解。八、课程设计中目前存在的问题首先我们看到这个程序时,觉得有些困难而且时间也短,之前在做程序时没有遇到数据库以Access数据库作为后台以其他的语言作为前台的应用型设计课程。经过上网搜索以及图书管借阅书籍查看得到答案,最大的困难是怎样把数据库和vc++连接起来,怎样能优化课程设计,使程序简单明了,经过多次上网及看书上的类题和老师的指点解决了这一问题,用vc++实现前台工作是我们最大问难,代码虽然都是之前学习过的,但得以把以前学的凌乱知识点综合运用起来就比较困难,不断的尝试不断地把问题一一解决才能成功,但是我们的这次课程设计小问题还是存在的,还是有一些小的问题没能解决,如管理员在成绩管理中不能删除原有的数据,如果添加新的数据后才能删除一项,不仅可以删除原有的数据还可以删除新增加的数据,删除后要想在删除一项数据依然存在上述问题,还有一个比较大的问题是,如果管理员想在增加一个或多个学院则不能及时显示出增加的信息,只有重新登录后才能在页面显示增加的信息,如果管理员在学院下增加一些班级也是存在同样的问题。最大的问题是我们所做的这个学生信息管理系统与现实还是有很大差距,管理员在登录此系统后部不能对一些班级,或学院进行删除操作,比如有些班级是毕业班或者是不存在的班级,管理员不能对此删除。如果有更多的时间或者团队人员多些我想我们的数据库的登录界面会更人性化。存在的问题也能相应的解决!九、设计过程中的自我感受。通过本次课程设计,最大的一点就是学会了把学到的知识融会贯通,以前学习只是单一的知识结构,这次设计把项目设计的前台和后台通过VC++的MFC与数据库有效的连接,实现了对数据信息的及时管理。通过设计进而掌握了连接数据库的方法,在理论认识的基础上有了实质性的进展。培养了从实际问题中抽象出物理模型,通过模块设计,把分的实体通过属性连接,由设计的E-R图转换成关系,找出每个属性的主键,理清不同实体间的参照完整性约束,实体完整性约束,继而进行数据库的创建,表的创建和数据的录入等。这次课设使我们受益匪浅,得以把以前学的凌乱知识点综合运用起来,《数据库原理》课程设计是为数据库原理及应用课程而独立开设的实践性课程。《数据库原理》课程设计对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。在学生日常管理中,班主任或辅导员要记录和维护学生的学号、姓名、性别、出生日期、籍贯、联系电话,以便查询和联系。同时,也对专业和班级的信息进行维护,以免影响毕业。可以通过学号、姓名、班级、证书名称等关键字查询学生的基本信息和考证情况,统计各班,各专业及各年级满足指定条件的人数。(1)学生信息管理用来管理学生基本信息,包括浏览、查询、添加、修改和删除。学生基本信息包括:学号、姓名、性别、出生年月、籍贯、自然班级、学院。(2)课程信息管理一门课程有一个班级,也可能有几个上课班级,因此课程信息里的授课教师是不确定的,所以把授课教师添加到了班级信息中。课程信息管理包括:浏览、查询、添加、修改和删除。课程基本信息包括:课程编号、课程名称、课程类型、课程学时、课程学分、所属院系。(3)班级信息管理对于学分制管理下的选课而言,学生选择上课教师,上课不再采用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论