学生成绩管理系统的设计报告

上传人:dg****3 文档编号:71453760 上传时间:2022-04-07 格式:DOC 页数:17 大小:75KB
收藏 版权申诉 举报 下载
学生成绩管理系统的设计报告_第1页
第1页 / 共17页
学生成绩管理系统的设计报告_第2页
第2页 / 共17页
学生成绩管理系统的设计报告_第3页
第3页 / 共17页
资源描述:

《学生成绩管理系统的设计报告》由会员分享,可在线阅读,更多相关《学生成绩管理系统的设计报告(17页珍藏版)》请在装配图网上搜索。

1、-电子信息科学与技术专业课程设计题单班级_0982081_学生 _董冰辉_课程名称 专业课程设计_ 课 题 密码锁的设计 设计要求 利用visualc#作为前台开发工具, 后台数据库管理,实现一学生成绩管理系统。实现具体功 能: 系统管理身份的分类、录入、修改、删除 2 学生信息管理学生信息的录入、修改、删除、查询 3 成绩管理成绩的录入、修改、删除、查询 4 课程管理课程信息的录入、修改、删除、查询 课 题 发 给 日 期 2012年6月14日 课程设计完成日期 2012年6月28日 指 导 教 师 评语: 评分:摘 要随着计算机的普及,计算机在生活中得到越来越多的应用,其中在计算机上的运行

2、的各种软件在解决生活中的实际问题中起着重大的作用,而目前在编写应用程序时,C+以其高效及灵活性成为大多程序设计者的首选。其次对于普通的用户者,利用C+语言设计出适用的小型软件对解决生活中的繁琐问题有很大的作用。在学校或班级,经常会对*次考试中所有学生的成绩进展统计和管理,由于学生数目经常繁多,所以在处理统计学生总成绩和平均成绩时工作会相对繁琐,所以针对这种情况,同时对分析成绩管理所需要的功能,在利用C+语言及VC+6.0程序运行平台之下,设计了一种小型的学生成绩管理系统,该系统具有学生成绩相关性息的录入、显示、查询、修改、删除和统计功能。关键词:学生成绩管理系统;计算机;C+目录一、概述.4二

3、、需求于功能分析.5三、模块设计与分析.6四、类的设计与分析.8五、概念模型设计.9六、逻辑设计.10 七、程序源代码.12 八、使用手册.24九、总结.25十、参考文献.26一、概述1. 设计背景学生成绩管理系统是一个教育单位不可缺少的局部,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,但是几年前,各个学校的学生成绩管理根本上都是靠手工进展,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进展学生成绩管理。这种管理方式存在着许多缺点,如:效率低、*性差,另外所用其时间长,产

4、生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。如今学校的学生越来越多,成绩管理的工作量越来越大,手工管理成绩的弊端也越来越明显。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一局部,使用计算机对学生档案信息进展管理,具有手工管理所无法比较的优点。例如:检索迅速、查找方便、可靠性高、存储量大、*性好、寿命长、本钱低等。这些优点能够极大地提高学生档案管理的效率。所以我想借本次课程设计之际,设计一个简易的学生成绩管理系统。2. 设计目的1、掌握运用数据库原理进展系统分析和设计的方法;2、掌

5、握关系数据库的设计方法;3、掌握利用SQL Server 2000技术;4、加强C+的编程能力3. 设计内容1.设计一个简易学生成绩管理的数据库系统,包括数据库的建立的需求分析,数据的输入输出。2.设计用户的操作界面,主要实现数据的查询,录入,显示,修改,删除,统计根本功能。二、需求与功能分析1需求分析学生成绩管理系统主要提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息,查看留言、提交留言。教师可以通过成绩管理系统查阅学生成绩信息,教师信息,查看教师留言、学生留言、提交留言、留言的管理等相关操作。系统管理员可以实现以上的所有功能,还有对学生的添加、删除、修改、教

6、师的添加、删除、修改,数据库的备份、数据库的复原等相关操作。根据开发要求,学生成绩管理系统主要应用于教育系统,完成对日常的教学、教务、教师以及学生的计算机化的管理。开发学生成绩管理系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项效劳和信息进展管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规*化。目前,学校工作繁杂、资料重多。目前,管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。因此,开发一套适和群众的、兼容性好的系统是很有必要的。2功能分析“学生成绩管理系统包括九个模块:输入

7、学生资料,输出学生资料,学生*按顺序排列,添加学生资料,按*查找,删除该学生资料,查找并显示学生资料,按*查找,修改该学生资料,从文件中读入数据,储存学生资料并退出系统。这九个模块既相互联系又相互独立。本系统根据学生成绩管理的需要,而建立一个“学生成绩管理系统,以方便对成绩的各项管理操作。本系统能对成绩进展输入和输出;能按*对学生进展排序,并显示学生资料、成绩等,不过得以系统输入学生资料、成绩为前提;能添加学生成绩资料;能根据学生的*来查询该学生的成绩资料,并修改或是删除该学生信息;能够从文件中读取学生信息,并且添加到系统中;能把对系统所进展的操作进展保存,以及时更新系统中的数据。3工作流图学

8、生成绩管理系统学生,教师,科目根本信息班级成绩信息查询记录修改记录删除记录增加记录显示系统原先记录科目根本信息教师根本信息学生根本信息三、模块设计与分析(1)输入学生资料模块:主要功能用来对学生的成绩进展收集和输入。在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比方班级,*,。在准确输入学生资料后,就可以对该学生的各科成绩进展录入。该学生各科成绩输入成功后,系统会提示是否继续进展操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。(2)输出学生资料模块:主要功能用来对学生的成绩进展输出。在系统已经录入了学生资料成绩的前提下,使用该功

9、能可以显示所有学生的信息,资料等等。具体包括学生的班级,*,*和各科成绩。在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。(3)按学生*进展排列模块主要功能是用来对学生的资料按*进展排序。在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按*进展排序,这样就方便查找姓氏一样或是相近的同学的资料。(4)添加学生资料模块主要功能是用来添加学生资料,成绩。如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进展其他的操作。5按*查找,删除该学生资料模块主要功能是用

10、来删除学生资料。在系统保存学生资料的前提下,想删除*学生的资料,可以输入学生*,系统查找该学生资料后,就可以删除了。由于学生辍学,毕业等原因,及时对系统进展更新,删除一些没用的信息,可以使系统更加优化6查找并显示学生资料模块主要功能是用来查找学生资料。在系统保存了*学生资料的前提下,想要查找该学生资料,可以输入该学生*,这样系统就会显示该学生资料和各科成绩等信息7按*查找,修改学生资料模块主要功能是用来修改学生资料。在系统保存了*学生资料的前提下,想要查找该学生资料,可以输入该学生*,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息。8从文件中读入数据模块主要功能

11、是用来从文件中读入学生数据。由于一些资料可以用Word文档或E*cel表格输入,故在此模块中增加了导入数据的功能。这样就方便很多,不用把学生资料一个一个添加,节省了很多时间精力。9储存学生资料并退出系统模块 主要功能是用来储存学生资料。在对系统进展一系列操作,比方添加、删除、修改学生资料后,对系统的最新操作进展保存,及时更新系统,方便下一次的操作。四、 类的设计于分析Student类类图studentnumclanamebyyljsjzcsjkjsjyytypedef classpublic: char num10; char cla10; char name20; char byyl10;

12、char jsjzc20; char sjk10; char jsjyy20;Student;表1 Student类说明表名称属性说明num数据成员说明学生*cla数据成员说明学生班级name数据成员说明学生名字byyl数据成员说明学生编译原理成绩jsjzc数据成员说明学生计算机组成成绩sjk数据成员说明学生数据库成绩jsjyy数据成员说明学生计算机英语成绩五、概念模型设计E-R图1. 实体及属性图学生专业性别*教师所教科目职称性别*编号课程课程名学分课程号 2.实体及其联系图教师m讲授成绩1nm主修课程学生六、逻辑设计 1.E-R模型转换为关系模式 学生*,性别,专业 教师编号,性别,职称,

13、所教科目 课程课程号,课程名,学分 成绩*,数学,物理,化学,英语,政治,总成绩,平均成绩2. *式分析1分析关系模式学生*,性别,专业在关系模式学生*,性别,专业中,每一个属性都不能再分,故,属于1NF. 在关系模式学生*,性别,专业中,主键为*,所以,性别,专业,都是非主属性。根据候选键定义可知,*完全决定*,性别,专业,即每一个非主属性完全依赖于候选键,故,该关系模式属于2NF。在关系模式学生*,性别,专业中,性别,专业,都是非主属性,且每一个非主属性不传递函数依赖于候选键*,即,*决定*,但*不决定性别,不决定专业。故,该关系模式属于3NF。 在关系模式学生*,性别,专业中,候选键为*

14、,函数依赖为*,*性别,*专业,故,该关系模式属BF。 由于在关系模式学生*,性别,专业中不存在多值依赖,故该关系模式不属于4NF。 综上所述,关系模式学生*,性别,专业为BF。 2分析关系模式教师编号,性别,职称,所教科目和课程课程号,课程名,学分在关系模式教师编号,性别,职称,所教科目和课程课程号,课程名,学分中,每一个属性都不能再分,故,属于首先满足1NF.主键分别为编号和课程号,每一个非主属性完全依赖于候选键,故,这两个关系模式首先属于2NF。且每一个非主属性不传递函数依赖于候选键*,故属于3NF。而且,候选键编号和课程号决定一切非主属性,故,该关系模式属于BF。 由于关系模式中不存在

15、多值依赖,故,不属于4NF。 即,关系模式教师编号,性别,职称,所教科目和课程课程号,课程名,学分属于BF。 3分析关系模式成绩*,数学,物理,化学,英语,政治,总成绩,平均成绩在关系模式成绩*,数学,物理,化学,英语,政治,总成绩,平均成绩中每一个属性都不能再分,故,先属于1NF。在关系模式成绩*,数学,物理,化学,英语,政治,总成绩,平均成绩中,主键为*,其他都是非主属性,每一个非主属性完全依赖于候选键,故,该关系模式属于2NF。 在关系模式成绩*,数学,物理,化学,英语,政治,总成绩,平均成绩中,数学,物理,化学,英语,政治,总成绩,平均成绩都是非主属性,由于存在函数依赖,即,*平均成绩

16、,平均成绩总成绩,故,该关系模式不属于3NF。综上所述,关系模式成绩*,数学,物理,化学,英语,政治,总成绩,平均成绩为2NF。七、源代码及查询截图2. 程序源代码: 1建表代码:create table 学生成绩信息( * CHAR(10) NOT NULL, CHAR(10) NOT NULL, 高数 CHAR(5) NOT NULL, 物理 CHAR (5) NOT NULL, 英语CHAR (5) NOT NULL,化学 CHAR (5) NOT NULL,政治CHAR (5) NOT NULL,总成绩 CHAR (5) NOT NULL,平均成绩 CHAR (5) NOT NULL)

17、;create table 课程根本信息( 课程号 CHAR(5) NOT NULL,课程名 CHAR(10) NOT NULL,学分 CHAR (5) NOT NULL);create table 学生根本信息( * CHAR(10) NOT NULL, CHAR (10) NOT NULL,专业 CHAR(10) NOT NULL,性别 CHAR(4) NOT NULL);create table 教师根本信息( 编号 CHAR(10) NOT NULL, CHAR (10) NOT NULL,职称 CHAR(4) NOT NULL,性别 CHAR(4) NOT NULL,所教科目 CHA

18、R(10) NOT NULL, 2数据库连接代码:建立一个CAdodc类class CAdodc : public CWndprotected:DECLARE_DYNCREATE(CAdodc)public:CLSID const& GetClsid()static CLSID const clsid= 0*67397aa3, 0*7fb1, 0*11d0, 0*b1, 0*48, 0*0, 0*a0, 0*c9, 0*22, 0*e8, 0*20 ;return clsid;virtual BOOL Create(LPCTSTR lpszClassName,LPCTSTR lpszWindo

19、wName, DWORD dwStyle,const RECT& rect,CWnd* pParentWnd, UINT nID,CCreateConte*t* pConte*t = NULL) return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,const RECT& rect, CWnd* pParentWnd, UINT nID,CFile* pPersist = NULL, B

20、OOL bStorage = FALSE,BSTR bstrLicKey = NULL) return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,pPersist, bStorage, bstrLicKey); 实现:#include stdaf*.h#include adodc.h#include _recordset.h#include Font.hCString CAdodc:GetConnectionString()CString result;InvokeHelper(0*1, D

21、ISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);return result;void CAdodc:SetConnectionString(LPCTSTR lpszNewValue)static BYTE parms =VTS_BSTR;InvokeHelper(0*1, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, lpszNewValue);3功能模块代码:显示数据库中原纪录:void CBaDialog:OnStatr()m_ListCtrl*.DeleteAllItems();m_Lis

22、tCtrlb.DeleteAllItems();m_ListCtrll.DeleteAllItems();if(m_Set.IsOpen()m_Set.Close();if(m_bSet.IsOpen()m_bSet.Close();m_cob.GetLBTe*t(m_cob.GetCurSel(),m_Getstring);this-Select();m_tSet.Open();m_nRecordCount=this-Show();this-display();this-e*hibit();m_bS = GetDlgItem(IDC_STATR)-EnableWindow(FALSE);th

23、is-Enable(TRUE);增加记录功能实现:void CBaDialog:OnAdd() / TODO: Add your control notification handler code hereSelec=TRUE;CAddialog dlg;if( dlg.DoModal()=IDOK) if(dlg.m_n*ue=200) / m_n*ue为学生的* Af*MessageBo*(*在1200之间);/增加记录时*输入异常,系统提示 return; m_Set.AddNew(); /实现对数据的插入 m_nRecordCount+=1; /记录数量加一 m_Set.m_colum

24、n1=dlg.m_n*ue; m_Set.m_column2=dlg.m_strName; m_Set.m_column3=dlg.m_fmaths; m_Set.m_column4=dlg.m_fphysical; m_Set.m_column5=dlg.m_fchemistry; m_Set.m_column6=dlg.m_fenglish; m_Set.m_column7=dlg.m_fpolitic;m_Set.m_column8=dlg.m_fmaths+dlg.m_fphysical+dlg.m_fchemistry+dlg.m_fenglish+dlg.m_fpolitic; /

25、对输入的数进展求和 m_Set.m_column9=(float)(m_Set.m_column8/5); /计算平均值 this-Equal(); m_Set.Update();/Update()一定放在Equal后,更新数据 m_Set.Requery(); this-*uan(); 删除记录功能实现:void CBaDialog:OnDelect() / TODO: Add your control notification handler code here CDelectDialog dlg;Selec=FALSE;if(dlg.DoModal()=IDOK)if(dlg.m_nPa

26、ss!=1234) /程序中的密码均为1234Af*MessageBo*(密码不正确!你没有权限删除记录); /密码不正确删除不能执行 elsethis-Select(); /实现对数据的删除 m_Set.MoveFirst();BOOL sel=FALSE;do if(m_Set.m_column1!=dlg.m_n*ue) m_Set.MoveNe*t(); else m_nRecordCount-=1; sel=TRUE; m_bSet.MoveFirst(); this-Equal(); m_Set.Delete(); m_Set.Requery(); break; while(!m_

27、Set.IsEOF(); if(sel=FALSE) /数据库中没有要符合要求的记录Af*MessageBo*(没有此记录);return;elsethis-*uan();修改记录功能实现:oid CBaDialog:OnEdit() / TODO: Add your control notification handler code hereCEditDialog dlg;if(dlg.DoModal()=IDOK) if(strcmp(dlg.m_pass,1234)!=0)Af*MessageBo*(你没有权限更改记录!请重输入密码:); else this-Select(); m_Se

28、t.m_strFilter.Format(*=%d,dlg.m_*ue); m_Set.Requery(); if(m_Set.IsEOF() Af*MessageBo*(没有此记录); Else /实现修改功能 for(int i=0;i=60 & q60)m_bSet.m_column4+=1;if(p=60)m_bSet.m_column4-=1;if(p=80 & q80)m_bSet.m_column5+=1;if(p=80)m_bSet.m_column5-=1; m_bSet.Update(); if(!m_bSet.IsEOF() m_bSet.MoveNe*t(); else

29、 break; m_Set.Edit(); /更新数据 m_Set.m_column2=dlg.m_strName; /更新* m_Set.m_column3=dlg.m_fmaths; /更新数学成绩 m_Set.m_column4=dlg.m_fphysical; /更新物理成绩 m_Set.m_column5=dlg.m_fchemistry; /更新化学成绩 m_Set.m_column6=dlg.m_fenglish; /更新英语成绩 m_Set.m_column7=dlg.m_fpolitic; /更新政治成绩 m_Set.m_column8=dlg.m_fmaths+dlg.m_

30、fphysical+dlg.m_fchemistry+dlg.m_fenglish+dlg.m_fpolitic; /更新总成绩 m_Set.m_column9=(float)(m_Set.m_column8/5); /更新平均成绩 m_Set.Update(); m_Set.m_strFilter.Empty(); m_bSet.Close(); m_Set.Close(); m_ListCtrl*.DeleteAllItems(); m_ListCtrlb.DeleteAllItems(); this-Select(); this-Show(); this-display(); 查询记录功

31、能实现:void CBaDialog:OnFind() / TODO: Add your control notification handler code hereCFinDialog dlg;if( dlg.DoModal()=IDOK) this-Select();m_bSet.Close();if(dlg.m_Getstring2=)/实现“=的查询m_Set.m_strFilter.Format(%s=%.2f,dlg.m_Getstring1,dlg.m_find);if(dlg.m_Getstring2=)/实现“=的查询m_Set.m_strFilter.Format(%s=%

32、.2f,dlg.m_Getstring1,dlg.m_find);if(dlg.m_Getstring2=)/实现“=的查询m_Set.m_strFilter.Format(%sShow();3.程序截图:(1) 程序界面先开场按钮“显示为可按状态,“增加记录等四个按钮为灰色,不能按,按下“显示按钮后,“显示按钮变为不可按状态,其他四个键变为可按状态,并且数据框中显示数据库中的原记录。(2) 增加记录3增加结果4删除记录密码为12345删除结果6修改记录密码为12347修改结果8查询记录9查询结果10显示学生,教师,科目根本信息 4、设计中存在的问题: 虽然程序能运行,但还是存在着一些缺乏。以

33、下是两处比较大的缺乏:(1) 由于自己的编程能力很差,所以程序的代码都是对一个类似的例子通过改动得来的。故而,程序虽然可以运行,但是其中的潜在错误很多,一不小心就会是程序崩溃,无法工作。这是本次课设的一个致命的缺乏。(2) 程序在实现对数据的修改功能时,必须在对话框中输入学生的各科成绩。需要修改的科目成绩就写修改后的成绩,不用修改的成绩还得再抄上去,比较麻烦。八、使用手册1用户进入系统后,就会看到学生管理系统的主菜单页面。系统总共有九个模块,分别由0到8表示,在主菜单页面只能输入数字0到8,输入其他字符无效,如果用户输入无效字符,系统仍停留在主菜单页面。(2) 进入到主菜单页面后,用户可以根据

34、自己的需求选择不同的选项,选择后系统就会进入子系统页面,然后用户按系统的提示操作就行了。九、总结该通过这个课程设计,我们更加结实的掌握了C+的知识。并对于以前不熟悉的知识有了更加深刻的了解。同时,在完成此次课程设计的过程中,教师同学给了我们很多珍贵的建议和指点,我们很感谢他们。虽然有些疲劳和困倦,但带给我很多的收获。C+已经学了一个学期了,有许多知识都存在似懂非懂的现象,这种现象通过实际的上机操作,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。也有很多理论上说得过去的代码,但到了实际操作,却是行不通的。这种困惑,有许多已经通过实际操作解决了,并能够深刻认识,但也有很多没有明白。只能避

35、过这些方法,换方法实现。在课程设计之前,因为有了综合实验的经历与教训,明白了写代码这一步是非常重要的,因为当你把代码输入电脑,并用编译器将其运行,发现通过不了,再来检查找出问题,这是一件非常辛苦的事情,也很浪费时间。于是在课程设计的时候,我们花了几星期的时间来规划与写代码,将要实现的内容分析清楚,才把代码输入电脑。我们觉得写程序,应该先找到该程序中的核心地方,用多种方法来实现该核心,这才可能防止等到发现逻辑上或者编译器不支持上的错误,才来想补救的措施,这样花费时间在想补救措施是很不值得的。此次任务的完成,也表达出同学之间的团结精神。实践是检验真理的唯一标准。没有实践,就不会发现和深刻体会它的真实所在。只有通过检验的真理,在自己的心里,才会认可它的真实性。面向对象程序设计的完成,使我们懂得了真理的重要性,理论和实际的相结合,才能真正把握所学和所掌握的知识。同时培养了我们的团队精神,使我我们懂得了团队的重要性。十、参考文献1 钱能.C+程序设计.:清华大学2 钱能.C+程序设计试验指导.:清华大学3 谭浩强.C程序设计.:清华大学. z.

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!