版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子信息科学与技术专业课程设计题单班级_0982081_学生_董冰辉_课程名称专业课程设计课 题 密码锁的设计设计要求利用 visualc#作为前台开发工具,SQLScrver后台数据库管理,实现一学生成绩管理系统。实现具体功能:1系统管理(身份的分类、录入、修改、删除)2学生信息管理(学生信息的录入、修改、删除、查询)3成绩管理(成绩的录入、修改、删除、查询)4课程管理(课程信息的录入、修改、删除、查询)课题发给日期 2012 年6月14日课程设计完成日期 2012 年6月28日指 导 教 师评语:评分:随着计算机的普及,计算机在生活中得到越来越多的应用,其中在计算机上 的运行的各种软件在解
2、决生活中的实际问题中起着重大的作用,而目前在编写应用程序时,C+以其高效及灵活性成为大多程序设计者的首选。其次对于普通的 用户者,利用C+语言设计出适用的小型软件对解决生活中的繁琐问题有很大的 作用。在学校或班级,经常会对某次考试中所有学生的成绩进行统计和管理,由于学生数目经常繁多,所以在处理统计学生总成绩和平均成绩时工作会相对繁琐, 所以针对这种情况,同时对分析成绩管理所需要的功能,在利用C+语言及VC+6.0程序运行平台之下,设计了一种小型的学生成绩管理系统,该系统具有 学生成绩相关性息的录入、显示、查询、修改、删除和统计功能。关键词:学生成绩管理系统;计算机;C+2一、 概述4二、需求于
3、功能分析5三、模块设计与分析6四、类的设计与分析8五、概念模型设计 9六、 逻辑设计10七、 程序源代码12八、 使用手册24九、 总结25十、参考文献263概述1设计背景学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用 户提供充足的信息和快捷的查询手段,但是几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大, 有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生 成绩管理。这种管理方式存在着许多缺点,如:效率低、保密性差,另外所用其时间长,产生大量的文件和数据
4、,这对于查找、更新和维护都带来了不少的 困难。如今学校的学生越来越多,成绩管理的工作量越来越大,手工管理成 绩的弊端也越来越明显。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越 来越重要的作用。作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高 学生档案管理的效率。所以我想借本次课程设计之际,设计一个简易的学生成绩管理系统。2. 设计目的1、掌握运用数据库原理进行系统分析和设计的方法;2、掌握关系数
5、据库的设计方法;3、掌握利用 SQL Server 2000技术;4、加强C+的编程能力3. 设计内容1. 设计一个简易学生成绩管理的数据库系统,包括数据库的建立的需求分析,数据的输入输出。2. 设计用户的操作界面,主要实现数据的查询,录入,显示,修改,删除,统计基本功能。需求与功能分析(1 )需求分析学生成绩管理系统主要提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统查阅与自己相关信息,查看留言、提交留言。教师可以通过成绩管理系统查阅学生成绩信息,教师信息,查看教师留言、学生留言、提交留言、留言的管理等相关操作。系统 管理员可以实现以上的所有功能,还有对学生的添加、删除、修改、
6、教师的添加、删除、修 改,数据库的备份、数据库的还原等相关操作。根据开发要求, 学生成绩管理系统 主要应用于教育系统,完成对日常的教学、教务、 教师以及学生的计算机化的管理。开发学生成绩管理系统可使学院教职员工减轻工作压力, 比较系统地对教务、 教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。目前,学校工作繁杂、资料重多。目前,管理信息系统已进入高校,但还未普及,而对于学生成绩 管理来说,目前还没有一套完整的、统一的系统。因此,开发一套适和大众的、兼容性好的 系统是很有必要的。(2)功能分析“学生成绩管理
7、系统”包括九个模块:输入学生资料,输出学生资料,学生姓名按顺序排列,添加学生资料,按姓名查找,删除该学生资料,查找并显示学 生资料,按姓名查找,修改该学生资料,从文件中读入数据,储存学生资料并退 出系统。这九个模块既相互联系又相互独立。本系统根据学生成绩管理的需要,而建立一个学生成绩管理系统”,以方便对成绩的各项管理操作。本系统能对成绩进行输入和输出;能按姓名对学生进行 排序,并显示学生资料、成绩等,不过得以系统输入学生资料、成绩为前提;能 添加学生成绩资料;能根据学生的姓名来查询该学生的成绩资料, 并修改或是删 除该学生信息;能够从文件中读取学生信息,并且添加到系统中;能把对系统所 进行的操
8、作进行保存,以及时更新系统中的数据。(3)工作流图三、模块设计与分析(1) 输入学生资料模块:主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前 提下,成绩录入需要输入学生资料,比如班级,学号,姓名。在准确输入学生资 料后,就可以对该学生的各科成绩进行录入。 该学生各科成绩输入成功后,系统 会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。(2) 输出学生资料模块:主要功能用来对学生的成绩进行输出。在系统已经录入了学生资料成绩的前 提下,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的班级, 学号,
9、姓名和各科成绩。在查看学生的资料,成绩各方面的信息后,按任意键就 可以返回到主菜单。(3) 按学生姓名进行排列模块主要功能是用来对学生的资料按姓名进行排序。在系统保存学生资料,成绩的 前提下,使用此功能可以对学生的资料按姓名进行排序, 这样就方便查找姓氏相 同或是相近的同学的资料。(4) 添加学生资料模块主要功能是用来添加学生资料,成绩。如果系统有保存学生资料的情况下, 想录入学生成绩的话,就不用添加学生资料这模块。如果系统没有保存该学生信 息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的 操作。(5) 按姓名查找,删除该学生资料模块主要功能是用来删除学生资料。在系统保存
10、学生资料的前提下,想删除某学生 的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。由于学生 辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更 加优化(6) 查找并显示学生资料模块主要功能是用来查找学生资料。在系统保存了某学生资料的前提下,想要查 找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩 等信息(7)按姓名查找,修改学生资料模块主要功能是用来修改学生资料。在系统保存了某学生资料的前提下,想要查 找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信 息,这样就可以修改该学生的资料,成绩等信息。(8)从文件中读入数据模
11、块主要功能是用来从文件中读入学生数据。由于一些资料可以用Word文档或Excel表格输入,故在此模块中增加了导入数据的功能。这样就方便很多,不用 把学生资料一个一个添加,节省了很多时间精力。(9)储存学生资料并退出系统模块主要功能是用来储存学生资料。在对系统进行一系列操作,比如添加、删 除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次 的操作。四、类的设计于分析Stude nt类类图stude nt8#rr、numclatypedef classn amebyyljJ KyjsjzcsjkJJ丿jsjyy9public:char num10;char cla10;char
12、 n ame20;char byyl10;char jsjzc20;char sjk10;char jsjyy20; Stude nt;表1 Stude nt类说明表名称属性说明num数据成员说明学生学号cla数据成员说明学生班级n ame数据成员说明学生名字byyl数据成员说明学生编译原理成绩jsjzc数据成员说明学生计算机组成成绩sjk数据成员说明学生数据库成绩jsjyy数据成员说明学生计算机英语成绩五、概念模型设计(E-R图)1.实体及属性图2实体及其联系图六、逻辑设计1. E-R模型转换为关系模式学生(学号,姓名,性别,专业) 教师(编号,姓名,性别,职称,所教科目) 课程(课程号,课
13、程名,学分) 成绩(学号,姓名,数学,物理,化学,英语,政治,总成绩,平 均成绩)2. 范式分析(1)分析关系模式学生(学号,姓名,性别,专业)在关系模式学生(学号,姓名,性别,专业)中,每一个属性都不能再分,故,属于1NF.在关系模式学生(学号,姓名,性别,专业)中,主键为学号, 所以,姓名,性别,专业,都是非主属性。根据候选键定义可知, 学号完全决定姓名,性别,专业,即每一个非主属性完全依赖于候 选键,故,该关系模式属于2NF。在关系模式学生(学号,姓名,性别,专业)中,姓名,性别, 专业,都是非主属性,且每一个非主属性不传递函数依赖于候选键 学号,即,学号决定姓名,但姓名不决定性别,不决
14、定专业。故, 该关系模式属于3NF。在关系模式学生(学号,姓名,性别,专业)中,候选键为学 号,函数依赖为学号一 姓名,学号一 性别,学号一 专业,故,该 关系模式属BCNF。由于在关系模式学生(学号,姓名,性别,专业)中不存在多 值依赖,故该关系模式不属于 4NF。综上所述,关系模式学生(学号,姓名,性别,专业)为BCNF。(2)分析关系模式教师(编号,姓名,性别,职称,所教科目) 和课程(课程号,课程名,学分)在关系模式教师(编号,姓名,性别,职称,所教科目)和课程(课程号,课程名,学分)中,每一个属性都不能再分,故,属于首先满足1NF.主键分别为编号和课程号,每一个非主属性完全依赖于候选
15、键,故,这两个关系模式首先属于 2NF。且每一个非主属性不传递函数依赖于候选键学号,故属于3NF。而且,候选键编号和课程号决定一切非主属性,故,该关系模式属于BCNF。由于关系模式中不存在多值依赖,故,不属于 4NF。即,关系模式教师(编号,姓名,性别,职称,所教科目) 和课程(课程号,课程名,学分)属于 BCNF o(3)分析关系模式成绩(学号,姓名,数学,物理,化学,英语, 政治,总成绩,平均成绩)在关系模式成绩(学号,姓名,数学,物理,化学,英语,政治,总成绩,平均成绩)中每一个属性都不能再分,故,先属于1NF在关系模式成绩(学号,姓名,数学,物理,化学,英语, 政治,总成绩,平均成绩)
16、中,主键为学号,其他都是非主属性, 每一个非主属性完全依赖于候选键,故,该关系模式属于2NF在关系模式成绩(学号,姓名,数学,物理,化学,英语, 政治,总成绩,平均成绩)中,姓名,数学,物理,化学,英语, 政治,总成绩,平均成绩都是非主属性,由于存在函数依赖,即, 学号一平均成绩,平均成绩一 总成绩,故,该关系模式不属于 3NF。综上所述,关系模式成绩(学号,姓名,数学,物理,化学, 英语,政治,总成绩,平均成绩)为 2NF。七、源代码及查询截图2.程序源代码:(1)建表代码:create table学生成绩信息( 学号 CHAR(10) NOT NULL, 姓名 CHAR(10) NOT N
17、ULL, 高数 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);create table课程基本信息 (课程号 CHAR(5) NOT NULL, 课程名 CHAR(10) NOT NULL, 学分 CHAR (5) NOT NULL);create table学生基本信息 (学号 CHAR(10) NOT NULL, 姓名 CHAR (1
18、0) 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,所教科目CHAR(10) NOT NULL ,(2)数据库连接代码:建立一个CAdodc类class CAdodc : public CWndprotected:DECLARE_DYNCREATE(CAdodc)public:CLSID con st & GetClsid()static
19、 CLSID con st clsid= 0x67397aa3, 0x7fb1,0x11d0, 0xb1, 0x48, 0x0, OxaO, 0xc9, 0x22, 0xe8, 0x20 ;return clsid;virtual BOOL Create(LPCTSTR IpszClassName,LPCTSTR lpszWi ndowName, DWORD dwStyle, const RECT & rect,CWnd* pPare ntWnd, UINT nID,CCreateC on text* pCon text = NULL) return CreateC on trol(GetCl
20、sid(), lpszWi ndowName, dwStyle, rect, pPare ntWnd, nID); BOOL Create(LPCTSTR lpszWi ndowName, DWORD dwStyle, const RECT & rect, CWnd* pPare ntWnd, UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE, BSTR bstrLicKey = NULL) return CreateC on trol(GetClsid(), lpszWi ndowName, dwStyle, rect, pPar
21、e ntWnd, n ID,pPersist, bStorage, bstrLicKey); 实现:#i nclude stdafx.h#in clude adodc.h#in clude _recordset.h#i nclude Fon t.hCStri ng CAdodc:GetCo nn ectio nStri ng()CStri ng result;Inv okeHelper(Ox1,DISPATCH_PROPERTYGET, VT_BSTR,(void*)&result,NULL);return result;void CAdodc:SetCo nn ectio nStri ng(
22、LPCTSTR lpszNewValue)static BYTE parms=VTS_BSTR;InvokeHelper(0x1, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,lpszNewValue);(3)功能模块代码: 显示数据库中原纪录:void CBaDialog:O nStatr()m_ListCtrlx.DeleteAllltems();m_ListCtrlb.DeleteAllltems();m_ListCtrll.DeleteAllltems();if(m_Set.lsOpe n()m_Set.Close();if(m_bSetsO
23、pe n()m_bSet.Close();m_cob.GetLBText(m_cob.GetCurSel(),m_Getstri ng); this-Select();m_tSet.Ope n();m_n RecordCou nt=this-Show();this-display();this-exhibit();m_bS = GetDlgltem(IDC_STATR)-E nableWi ndow(FALSE); this-E nable(TRUE); 增加记录功能实现:void CBaDialog:O nAdd()/ TODO: Add your con trol no tificati
24、on han dler code hereSelec=TRUE;CAddialog dlg;if( dlg.DoModal()=IDOK)统提示if(dlg.m_nxue=200) / m_nxue 为学生的学号 AfxMessageBox(学号在1 200之间);/增加记录时学号输入异常,系return;m_Set.AddNew(); /实现对数据的插入 m_nRecordCount+=1; /记录数量加一 m_Set.m_colu mn 1=dlg.m _n xue; m_Set.m_colu mn 2=dlg.m_strName; m_Set.m_colu mn 3=dlg.m_fmat
25、hs; m_Set.m_colu mn4=dlg.m_fphysical; m_Set.m_colu mn 5=dlg.m_fchemistry; m_Set.m_colu mn 6=dlg.m_fe nglish; m_Set.m_colu mn 7=dlg.m_fpolitic;m_Set.m_colu mn 8=dlg.m_fmaths+dlg.m_fphysical+dlg.m_fchemistry+dl g.m_fe nglish+dlg.m_fpolitic;对输入的数进行求和m_Set.m_column9=(float)(m_Set.m_column8/5); 计算平均值 thi
26、s-Equal();m_Set.Update();/Update(一定放在 Equal ()后,更新数据 m_Set.Requery();this-Xua n(); 删除记录功能实现:void CBaDialog:O nDelect()/ TODO: Add your con trol no tificati on han dler code hereCDelectDialog dlg;Selec=FALSE;if(dlg.DoModal()=IDOK)if(dlg.m_nPass!=1234)程序中的密码均为 1234能执行AfxMessageBox(密码不正确!你没有权限删除记录);密码不
27、正确删除不elsethis-Select();/实现对数据的删除m_Set.MoveFirst();BOOL sel=FALSE;doif(m_Set.m_colu mn 1!=dlg.m _n xue)m_Set.MoveNext();elsem_n RecordCo un t-=1;sel=TRUE;m_bSet.MoveFirst();this-Equal();m_Set.Delete();m_Set.Requery();break;while(!m_Set.lsEOF();if(sel=FALSE)数据库中没有要符合要求的记录AfxMessageBox(没有此记录);return;el
28、sethis-Xua n(); 修改记录功能实现:oid CBaDialog:O nEdit()/ TODO: Add your con trol no tificati on han dler code hereCEditDialog dlg; if(dlg.DoModal()=IDOK) if(strcmp(dlg.m_pass,1234)!=0)AfxMessageBox(你没有权限更改记录!请重输入密码:)elsethis-Select();m_Set.m_strFilter.Format(学 号=%d,dlg.m_xue);m_Set.Requery();if(m_Set.lsEOF
29、()AfxMessageBox(没有此记录);18Elsefor(i nt i=0;i=60 & q60)m_bSet.m_colu mn 4+=1; if(p=60) m_bSet.m_colu mn4-=1;if(p=80 & q80) m_bSet.m_colu mn 5+=1; if(p=80) m_bSet.m_colu mn 5-=1;m_bSet.Update(); if(!m_bSet.lsEOF() m_bSet.MoveNext(); elsebreak;m_Set.Edit();/ 更新数据m_Set.m_colu mn 2=dlg.m_strName; /更新姓名m_S
30、et.m_column3=dlg.m_fmaths; /更新数学成绩m_Set.m_colu mn4=dlg.m_fphysical; /更新物理成绩m_Set.m_colu mn 5=dlg.m_fchemistry; /更新化学成绩 m_Set.m_colu mn 6=dlg.m_fe nglish; /更新英语成绩 m_Set.m_colu mn 7=dlg.m_fpolitic; / 更新政治成绩m_Set.m_colu mn 8=dlg.m_fmaths+dlg.m_fphysical+dlg.m_fchemistry+dl g.m_fenglish+dlg.m_fpolitic;
31、/ 更新总成绩 m_Set.m_colum n9=(float)(m_Set.m_colum n8/5); /更新平均成绩 m_Set.Update();m_Set.m_strFilter.Empty(); m_bSet.Close(); m_Set.Close(); m_ListCtrlx.DeleteAllltems(); m_ListCtrlb.DeleteAllltems(); this-Select();this-Show(); this-display(); 查询记录功能实现: void CBaDialog: OnFin d()/ TODO: Add your con trol n
32、o tificati on han dler code hereCFi nDialog dlg;if( dlg.DoModal()=IDOK)this-Select();m_bSet.Close();if(dlg.m_Getstring2=)/ 实现“ =”的查询 m_Set.m_strFilter.Format(%s=%.2f,dlg.m_Getstri ng1,dlg.m_fi nd); if(dlg.m_Getstring2=)/ 实现“=”的查询 m_Set.m_strFilter.Format(%s=%.2f,dlg.m_Getstri ng1,dlg.m_fi nd); if(dl
33、g.m_Getstring2=)/ 实现“ Show();3.程序截图:(1) 程序界面先开始按钮“显示”为可按状态,“增加记录”等四个按钮为灰色,不能按,按下“显示”按钮后,“显示”按钮变为不可按状态,其 他四个键变为可按状态,并且数据框中显示数据库中的原记录。21I班錢威議空生-教师信息22#増加记录删除记录修改记录查询记录#増加记录修改记录査询记录锂1辰数步物理化学裁政殆总炳1W-111张三00.030.0RO.O80.09Q.D400.080.0011389.S78.590.090.09D.D420.U85.60112李四78.578.599.D90.D78.D4U.082.80(2)
34、 增加记录増加记录册際记录|修改记录查询记录竽号丨姓名一 1数学物理丨化竽英信政治丨总成绩平均I 1 | 菠三 80.0 nn n an n n n nn 6QJ112 率四78 .el82.8 D113 主五89.585.6 D(3) 增加结果学号|姓名数学物理藕政活|总咸绩平埠111张三80,08080.0 80.080,0400.080.0011389,578-580.090.090.0428.085.GO112李四70,678.589.090.078,0414082.801MWANG70.089.079,086.078.0410.082.00(4) 删除记录(密码为1234)f I 増
35、加记录删眸记录條改记录I查询记录I(5)删除结果增加记录删陳辟修改歸查询记录糧姓名数学|物理化学英语政L总咸绩平均“113王五89.578,580,09D90.0428.085.60112李四78.578.589.0907841482.80114WANG 78.08979.08678.0410,0B2.00修改记录(密码为1234)2324询记录112 李四113 王五114 WANG8678*确定取消憑平如8?,8085.60血0(6) 修改结果学号姓名数学物理化学英语政治总成绩平均112李四78.578.589.090.078.0414.082.8011389.57B.580.090.090.0428.085.60WANG80.089.079.086.078.0412.082.40(7) 查询记录増加记录删除记录修改记录I查询记录肥7f8选择查询条件:112114琵iW-数学 ”输入查寻值:0005 J002.00B2.40(8) 查询结果学号姓名数学物理化学政治总感绩114WANG80.089.079.086.078
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外科学(外科休克)
- 2025年趣味语文文化知识竞赛试题及答案
- 中药饮片生产中药炮制品贮藏保管专家讲座
- 可口可乐与百事可乐在印度的竞争-1
- 售后服务团队客户投诉处理流程优化
- 教育机构管理手册学校运营与教学管理
- 客户信用管理专员客户信用等级划分标准
- 婚姻介绍公司如何制定招聘策略
- 反洗钱风险管理师客户尽职调查流程优化
- 后勤物资采购面试策略探讨
- 22《鸟的天堂》课件
- 香港大埔宏福苑火灾事件全解析:灾情、救援与安全启示
- 中国的矿产资源课件 -2025-2026学年八年级地理上册湘教版
- 2025年火力电厂面试题及答案
- 安装水电施工合同协议书
- 政治学原理#-形考作业1-国开(ZJ)-参考资料
- 工程量清单及招标控制价编制工作方案
- 全球通VIP手机俱乐部整合推广方案
- 药学专业社会实践报告3000字
- 《地方导游基础知识》课程标准
- 中西文化鉴赏智慧树知到答案章节测试2023年郑州大学
评论
0/150
提交评论