学生成绩管理信息系统设计报告.docx
《学生成绩管理信息系统设计报告.docx》由会员分享,可在线阅读,更多相关《学生成绩管理信息系统设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
学生成绩管理信息系统设计报告
高校学生成绩管理信息系统
1.系统功能设计
系统采用模块化程序设计方法,便于系统功能的各种组合和修改,系统应具备数据库维护功能,及时根据用户需求进展数据的添加、修改、删除、查询、备份等操作。
作为高校学生成绩管理系统,它应该有以下根本功能:
〔1〕能进展系部设置、专业设置、班级设置、课程代码设置、教师代码设置
〔2〕能录入每学期所学课程、录入学生根本情况
〔3〕单科成绩录入、单个学生全部成绩录入、
〔4〕查询学生根本情况数据、单科成绩查询、每个学生全部成绩查询
〔5〕打印班级花名册、打印班级综合表、打印个人成绩通知单
2.数据库及数据表的设计
数据库由以下几个数据表组成:
〔1〕学生数据表:
〔学号,XX,性别,出生年月,班级,政治面貌〕
〔2〕教师数据表:
〔教师号,教师XX,学历,职称,单位〕
〔3〕课程数据表:
〔课程号,课程名〕
〔4〕课程设置数据表:
〔课程号,课程名,类别,总学时,教师号,教师XX,学期,班级号,学分〕
〔5〕班级数据表:
〔班级号,班级名,所属系部〕
〔6〕成绩数据表:
〔学号,XX,课程号,课程名,学期,成绩,学分〕
3.设计要求:
〔1〕论述课题的性质、内容以及本次课程设计的目的和要求。
〔2〕说明系统对计算机软、硬件环境的根本要求,对Windows操作系统和SQLServer数据库管理系统和C/S模式简要的说明。
〔3〕总体设计方案的分析、比拟和论证。
〔4〕数据库的建立,数据库中表的构造,各表中关键字的设置,表与表之间的关系。
〔5〕应用程序各功能模块和报表的设计。
〔6〕编写代码、上机输入、调试、修改并运行通过。
〔7〕编写课程设计说明书。
说明书是总结性的技术文件,应全面表达整个设计的内容及过程〔可参考上述6条〕,发现的问题及解决方法等。
〔8〕源代码和参考书目应作为说明书的附录。
〔9〕说明书应采用A4纸X,文字说明不少于5000字。
说明书中应包括系统构造示意图。
高校学生成绩信息管理系统设计报告
一.系统软件环境
1、实现平台:
visualc++
2、本程序所适用的计算机系统软硬件环境要求为:
〔1〕、硬件环境:
1.386,486,586及兼容机.640K根本内存,及各类奔腾系列机器;
2.1M以上扩大内存,10M以上的显示内存.
〔2〕、软件环境:
Windows98及以上平台。
二.课程设计目的
课程设计是一项重要的实践性教学环节,在教师的指导下,以学生为中心,充分调动学生的积极性和能动性,重视学生自学能力的培养。
本次设计的目的是:
1、能够正确运用?
数据库原理及应用?
等课程的根本理论和知识,结合模拟课题,初步掌握管理信息系统的方案设计、论证和分析方法。
2、了解在Windows+SQLServer平台下,C/S模式的管理信息系统的开发。
3、初步掌握SQLServer数据库管理系统的管理与应用开发,能根据课题的要求设计并建立数据库,建立数据库中表与表之间的关系。
4、理解可视化编程的根本概念,熟练掌握可视化编程的方法和步骤。
5、通过编程和上机调试,进一步提高计算机的操作水平,提高解决实际问题能力。
6、初步树立正确的程序设计思想,培养分析问题、解决问题的能力,提高查询资料和撰写书面文件的能力。
三.内容与要求
1、论述课题的性质、内容以及本次课程设计的目的和要求。
2、说明系统对计算机软、硬件环境的根本要求,对Windows操作系统和SQLServer数据库管理系统和C/S模式简要的说明。
3、总体设计方案的分析、比拟和论证。
4、数据库的建立,数据库中表的构造,各表中关键字的设置,表与表之间的关系。
5、应用程序各功能模块和报表的设计。
6、编写代码、上机输入、调试、修改并运行通过。
7、编写课程设计说明书。
说明书是总结性的技术文件,应全面表达整个设计的内容及过程〔可参考上述6条〕,发现的问题及解决方法等。
8、源代码和参考书目应作为说明书的附录。
9、说明书应采用A4纸X文字说明不少于5000字。
说明书中应包括系统构造示意
10、说明书一律横向装订。
按封面、目录、正文、附录、评语(附一X白纸)的顺序装订。
四.程序主要功能:
实现根本的学生成绩数据管理,
1.创立新数据文件sort()函数
2.添加数据记录showdata()
3.追加数据记录adddata()
4.删除数据记录inputdata()
5.显示所有的数据记录inputdata()
以及数据的修改等等modify()
其中数据的查找、数据的删除又可通过不同的方式如按学号或XX等进展操作。
五.系统功能设计
模块化便于系统功能的各种组合和修改,因此,在这里我们使用的是模块化设计,每一个功能由其相对应的窗体执行,我们的系统应该具备有以下几个功能,1.数据库维护功能,2.数据的添加3.数据的修改3。
删除4。
查询5。
备份
而对高校学生成绩管理系统来说,根本功能如下:
〔1〕能进展系部设置、专业设置、班级设置、课程代码设置、教师代码设置
〔2〕能录入每学期所学课程、录入学生根本情况
〔3〕单科成绩录入、单个学生全部成绩录入、
〔4〕查询学生根本情况数据、单科成绩查询、每个学生全部成绩查询
〔5〕打印班级花名册、打印班级综合表、打印个人成绩通知单
六.数据库及其数据表的设计
数据库由以下几个数据表组成:
1、学生数据表:
〔学号,XX,性别,出生年月,班级,政治面貌〕
2、教师数据表:
〔教师号,教师XX,学历,职称,单位〕
3、课程数据表:
〔课程号,课程名〕
4、课程设置数据表:
〔课程号,课程名,类别,总学时,教师号,教师XX,学期,班级号,学分〕
5、班级数据表:
〔班级号,班级名,所属系部〕
6、成绩数据表:
〔学号,XX,课程号,课程名,学期,成绩,学分〕
〔一〕、在查询分析器里向数据库创立数据单表
〔1〕、创立学生数据表
先在SQL中创立一个学生成绩管理系统的数据库
然后再在该数据库下创立数据表
学生数据表S中包含有六个属性〔学号,XX,性别,出生年月,班级,政治面貌〕、其主码为学号。
CREATETABLES
(SNOCHAR(8),SNVARCHAR(20),SEXCHAR
(2),AGEINT,BJCHAR(20),ZZMMCHAR(3))
其中主码为学号SNO
其学生数据表为:
S
字段名
字段类型
字段长度
是否为空
说明
SNO
Char
8
F
学号〔关键字〕
SN
Char
20
F
XX
BJ
Char
20
T
班级
SEX
Char
2
F
性别
AGE
INT
F
出生年月
ZZMM
Char
3
F
政治面貌
〔2〕、创立教师数据表:
CREATETABLET
(TNOCHAR
(2),TNCHAR(20),XLCHAR(20),ZCCHAR(20),DWCHAR(20))
其数据表为:
T
字段名
字段类型
字段长度
是否为空
说明
TNO
Char
2
F
教师号〔关键字〕
TN
Char
20
F
教师XX
XL
Char
20
T
学历
ZC
Char
2
F
职称
DW
Char
20
F
单位
〔3〕、课程数据表
CREATETABLEC
(OCHAR
(2),CHAR(20))
其数据表为:
C
字段名
字段类型
字段长度
是否为空
说明
O
Char
2
F
课程号〔关键字〕
Char
20
F
课程名
〔4〕、课程设置数据表
CREATETABLESC
(OCHAR
(2),CHAR(20),LBCHAR(20),XHCHAR(8),TNOCHAR
(2),
TNCHAR(20),XQCHAR(20),BJCHAR(8),XFCHAR(8))
其数据表为:
SC
字段名
字段类型
字段长度
是否为空
说明
O
Char
2
F
课程号〔关键字〕
Char
20
F
课程名
LB
Char
20
T
类别
XH
Char
8
F
总学时
TNO
Char
2
F
教师号〔关键字〕
TN
Char
20
F
教师名
XQ
Char
20
F
学期
BJ
Char
8
F
班级
XF
Char
8
F
学分
〔5〕、班级数据表
CREATETBALEB
(BJHCHAR(8),BJMCHAR(20),DEPTCHAR(20))
其数据表为:
B
字段名
字段类型
字段长度
是否为空
说明
BJH
Char
2
F
班级号〔关键字〕
BJM
Char
20
F
班级名
DEPT
Char
20
F
所属系部
〔6〕、成绩数据表
CREATETABLEG
(SNOCHAR(8),SNCHAR(20),OCHAR(8),CHAR(20),XQCHAR(20)
CJCHAR(20),XFCHAR(8))
其数据表为:
G
字段名
字段类型
字段长度
是否为空
说明
SNO
Char
8
F
学号〔关键字〕
SN
Char
20
F
学生XX
O
Char
8
T
课程号〔关键字〕
Char
20
F
课程名
XQ
Char
20
F
学期
CJ
Char
20
F
成绩
XF
Char
8
F
学分
七.函数实现说明:
主要函数:
1、 Showdata()函数:
该函数列出一个清晰的构造,对本程序所运用的几个模块整体上有个统一认识,方便了对程序的调用,节省了时间。
2、 Inputdata()函数:
该函数是一个输入函数,它运用了for循环语句,本程序定义了两个变量,通过scanf语句的使用,又调用了函数SIR,实现了简洁明了的对学生成绩,XX以及学号等进展键入。
3.del()函数:
该函数实现的是删除功能。
该函数虽然定义的变量不多,但通过if语句和scanf语句的使用,对文件进展了读去和运用,简便的删除所选的目标。
4、 sort()函数:
该函数构成了一个排序模块,它实现了学生成绩的排序。
该函数定义的变量虽少,但通过文件的连接和if循环语句的使用,该功能完整的显现出来了,仍然使用for语句,实现了目标。
5,modify()函数:
该函数是一个修改函数。
它通过if,scanf等函数的运用,可以修改本程序中所出现的所有错误。
通过数组的运用,缩短了程序的运行时间。
6、main〔〕函数:
一个程序主函数不能少。
当以上的函数均编完之后,要实现各个功能操作的连接,还必须有主函数将它们联系起来,这样才能到达理想的结果。
对以上函数的连接,此程序采用了switch语句,格式清晰、容易承受。
至此学生成绩管理的根本功能便根本实现。
7、辅助函数:
以上介绍的是完成学生成绩管理这个功能,程序主要包含的函数,为了使程序更有条理性或者更加完整形象,可以将主要函数经常使用的一些功能编成一个函数,这样便可在多处很方便调用,如此程序中的file1〔〕〔用来翻开数据文件的操作〕、file2〔〕〔用来保存数据〕、prt〔〕函数等便起到这个作用。
另外还加了jm1〔〕、jm2〔〕进入界面、退出界面这两个函数,使本程序显得更加完整。
八.调试分析:
在调试程序的过程中,首先对一些语法和编译错误调试,使变量名与相应的程序段对应,由于该程序相对来讲稍有些长,前后有些变量不容易联系起来,但是在错误信息的提示下一般还是很容易找到。
在vc语言中有些符号是不能够一般显示的,需要用转义字符,注释的时候,注释文字应写在一起中间不能有中断包含了vc语言的语句,不然又引起错误格式不正确或是多了字符等。
编译、连接的成功并不意味着程序的最终成功。
逻辑上的错误机器不易检查出来,这时需要对数据结果进展分析。
这种错误的查找是最难的,需要编程序的人有相当的耐心和细心去把问题找出来。
这也是本次程序编辑过程中碰到的最大的难题。
往往运行之后得不到另人满意的结果,此时解决的方法一那么用“分段检查〞的方法,在程序的不同位置设几个cout
函数语句,输出有关变量的值,逐段往下检查,或用debug进展调试,对检查出的错误进展修改,当调试完毕将设置的cout都删去。
假设在程序中找不到问题,那么再来考虑算法是否逻辑严谨,再进展修改。
如此循环往复,直到最后程序运行成功。
在本次程序编辑过程中,我们就是常遇到编译能通过,能够运行程序,但是总在输入、删除等操作完之后再想去看数据文件中存在的数据记录的时候,却一条记录也显示不出来,我们疑心是哪个对方对n变量的定义或使用出错了,于是在每个主要函数的操作过程中添加了cout语句用来显示n的变化,例如在执行某个函数前添加插入语句显示n的起始值,在执行完该个函数后再添加插入语句显示此时n的结果值,观察n的变化是否正确,如果错误了,也就说明该函数编写过程有错。
诸如这样的调试方法,不断缩小检查X围,最后将错误找到,进展修改。
九.心得与体会
这次数据库课程设计使我们对此门课充满了乐趣,也学到了很多知识,数据库在社会中的用处也随处可见,它的作用也是不会被无视的,我们也应该重视。
这将会是一门日益重要的学科,许多公司要对数据的管理以及一些企业对数据的XX及稳定,这就需要数据库的专业人士来操作。
因此,数据平安和数据表的稳定及管理成为社会永恒的热门。
我们在编制的这个程序,可以管理学生学籍及其它的一些信息。
采用前后台的技术里,来管理一个小型的数据库,因为对普通人来说,数据库是一个枯燥无味而难以操作的程序,所以我们要制作一个前台来提供用户使用。
使程序更具有交互性。
在此次程序中,我们采用的是visualC++平台编写的这个程序。
而使用的SQL做为后台。
在这次课程设计的过程中,在X益星教师、X晓清教师、罗敬教师的精心指导下,我们对数据的编程、理解、动手及思维能力有了提高,同时也对数据库的感觉也更好了。
所以在此对以上三位教师的辅导表示感谢!
十.各功能模块的实现及其程序清单
1、登陆界面
登陆界面,通过用户输入XX,密码进入学生成绩管理系统,如果输入的账号或密码错误,那么提示“用户口令错误,请重新输入〞字样。
登陆界面如下列图所示:
要求用户必须先选择学校,然后输入系统管理员账号,登陆密码。
经系统确认用户所输入的管理员XX、登陆密码正确无误后,系统自动跳到学生成绩管理系统主界面。
2、学生成绩管理系统主界面
学生成绩管理系统主界面如下列图所示,是由一个数据表的形式表达,其中,它包含了在实现前所创立的学生数据表、教师数据表、课程数据表、课程设置数据表、班级创立数据表、成绩数据表等。
主菜单拥有三个功能:
班级成绩、年级成绩可供用户查询。
还有一个参数设置菜单,供用户创立新班级,以及对各个科目进展调整。
用户选择班级后,激活以下几个功能:
增加记录、删除记录、修改记录、查询记录等,可供用户给表进展各种操作。
实现原代码:
#include"stdafx.h"
#include"lhwy.h"
#include"BaDialog.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
//CBaDialogdialog
IMPLEMENT_SERIAL(CBaDialog,CDialog,VERSIONABLE_SCHEMA|2)
CBaDialog:
:
CBaDialog(CWnd*pParent/*=NULL*/)
:
CDialog(CBaDialog:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CBaDialog)
//}}AFX_DATA_INIT
}
下面,就以上几个功能给出具体的说明以及实现原理
〔1〕、增加记录
实现原代码
CAddialog:
:
CAddialog(CWnd*pParent/*=NULL*/)
:
CDialog(CAddialog:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CAddialog)
m_fchemistry=0.0f;
m_fenglish=0.0f;
m_fmaths=0.0f;
m_strName=_T("");
m_fphysical=0.0f;
m_nxue=0;
m_fpolitic=0.0f;
//}}AFX_DATA_INIT
}
voidCAddialog:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAddialog)
DDX_Control(pDX,IDOK,m_OkButton);
DDX_Control(pDX,IDCANCEL,m_CancelButton);
DDX_Text(pDX,IDC_CHMISTRY,m_fchemistry);
DDV_MinMaxFloat(pDX,m_fchemistry,0.f,100.f);
DDX_Text(pDX,IDC_ENGLISH,m_fenglish);
DDV_MinMaxFloat(pDX,m_fenglish,0.f,100.f);
DDX_Text(pDX,IDC_MATHS,m_fmaths);
DDV_MinMaxFloat(pDX,m_fmaths,0.f,100.f);
DDX_Text(pDX,IDC_NAME,m_strName);
DDX_Text(pDX,IDC_PHYCICAL,m_fphysical);
DDV_MinMaxFloat(pDX,m_fphysical,0.f,100.f);
DDX_Text(pDX,IDC_XUEHAO,m_nxue);
DDV_MinMaxInt(pDX,m_nxue,1,1000000);
DDX_Text(pDX,IDC_POLITIC,m_fpolitic);
DDV_MinMaxFloat(pDX,m_fpolitic,0.f,100.f);
//}}AFX_DATA_MAP
}
〔2〕、删除记录
说明:
在输入所需删除的学生的学号与密码后,系统将自动显示出该学生的所有成绩信息。
系统提示用户是否确定删除该学生所有信息记录。
经用户确实后,系统将去除该学生的所有信息。
实现原代码
#include"stdafx.h"
#include"lhwy.h"
#include"DelectDialog.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
//CDelectDialogdialog
CDelectDialog:
:
CDelectDialog(CWnd*pParent/*=NULL*/)
:
CDialog(CDelectDialog:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CDelectDialog)
m_nPass=0;
m_nxue=0;
//}}AFX_DATA_INIT
}
voidCDelectDialog:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDelectDialog)
DDX_Control(pDX,IDOK,m_OkButton);
DDX_Control(pDX,IDCANCEL,m_CancelButton);
DDX_Text(pDX,IDC_PASS,m_nPass);
DDX_Text(pDX,IDC_XUEHAO,m_nxue);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDelectDialog,CDialog)
//{{AFX_MSG_MAP(CDelectDialog)
//NOTE:
theClassWizardwilladdmessagemapmacroshere
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//CDelectDialogmessagehandle
〔3〕、修改记录
说明:
修改记录时,须用户输入欲修改信息的学生的学号、XX、以及各科修改后的成绩,修改完成后,须要用户进展密码确认,系统确实用户所输入的密码无误后,对学生信息进展修改,并提示修改成功。
其实现原代码为
#include"stdafx.h"
#include"lhwy.h"
#include"EditDialog.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
//CEditDialogdialog
CEditDialog:
:
CEditDialog(CWnd*pParent/*=NULL*/)
:
CDialog(CEditDialog:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CEditDialog)
m_fchemistry=0.0f;
m_fenglish=0.0f;
m_fmaths=0.0f;
m_pass=_T("");
m_fphysical=0.0f;
m_fpolitic=0.0f;
m_xue=0;
m_strName=_T("");
//}}AFX_DATA_INIT
}
voidCEditDialog:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEditDialog)
DDX_Control(pDX,IDOK,m_OkButton);
DDX_Control(pDX,IDCANCEL,m_CancelButton);
DDX_Text(pDX,IDC_CHEMISTRY,m_fchemistry);
DDX_Text(pDX,IDC_ENGLISH,m_fenglish);
DDX_Text(pDX,IDC_MATHS,m_fmaths);
DDX_Text(pDX,IDC_PAS