1、 实 验 报 告(管理学院适用)课 程 名 称: 管理信息系统(管理) 课 程 代 码: 学院(直属系): 管理学院 年级/专业/班: 学 生 姓 名: 学 号: 实验总成绩: 任 课 教 师: 开 课 学 院: 管理学院 实验中心名称: 管理信息实验中心 西华大学实验报告1西华大学实验报告(管理学院适用)开课学院及实验室:管理学院、管理信息实验中心 实验时间 :2012 年 11 月 11 日至 2012 年 11 月 24 日学 生 姓 名 学 号 成 绩学生所在学院 管理学院 年级/专业/班课 程 名 称 管理信息系统(管理) 课 程 代 码实验项目名称 关于学生成绩系统的开发设计 项
2、目 代 码指 导 教 师 项 目 学 分一、实验目的:本实验的主要目的是培养学生利用管理信息系统的理论和方法及关系数据库系统的技术,从系统角度对信息进行获取、分析处理、利用的能力,加深学生对管理信息系统基础理论和基本知识及整个开发流程的理解,建立信息管理的基本概念,能较好地运用信息系统开发的技术和工具,树立正确的程序设计思想,培养分析问题解决问题的能力,提高查询资料和撰写书面文件的能力,并通过编程和上机调试,进一步提高计算机的操作水平,提高解决实际问题的能力。通过本实验,使学生了解并切实体会管理信息系统的开发过程、步骤,并掌握一种管理信息系统开发工具(比如 VisualFoxPro) ,具有应
3、用计算机进行信息处理和开发管理信息系统的初步能力。为了彻底解决了长期困扰教学信息化工作当中安全性、可靠性的问题;为了使管理人员可以随时看到更新的数据,极大地提高信息传递的速度;为了管理者再也不必为聘用专门的操作人员来给众多教师编辑学生成绩资料而殚精竭虑,在此,设计了学生课程成绩查询管理信息系统,使得各个使用者在操作上,从此变得那么从容简单,省时又省心。1.可行性分析 可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。1.1 经济上可行性:现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:第一,
4、本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高学校的工作效率;第 组西华大学实验报告2第四,本系统可以使敏感文档更加安全,等等。所以,本系统在经济上是可行的。1. 2 技术上可行性:本系统的开发利用 Microsoft SQL Server2000 作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用 Visual S 作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满
5、足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。1. 3 运行上可行性:本系统为一个小型的学生信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。二、使用设备、仪器及材料计算机、计算机网络、打印机等管理信息系统.薛华成. 出版社:清华大学出版社数据库原理与应用 作者:姜代红 出版社:机械工业出版社软件文档编写.潘孝铭,辛明海. 出版社: 高等教育出版社软件工程.钟珞 出版社:.清华大学出版社SQL
6、 SERVER 200 管理,开发及应用实例陈世洪 出版社:人民邮电出版社三、实验过程记录本次实验共 10 学时,按照实验指导书的要求和教学计划的规定,我在 2012 年 11 月 11 日到 2012 年 11 月 24 日期间在任课教师以及实验室老师的指导帮助下完成了学生成绩管理子系统的分析设计的资料收集与整理、系统分析与设计、编码调试及系统试运行等工作,并整理完成了系统开发报告。31 确定数据库的存储结构西华大学实验报告3确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。因为该成绩管理系统的数据量小,
7、所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。(1)创建学生基本信息表:create table Student (学号 varchar(11) not null,系别 varchar(5) not null,姓名 varchar(6) not null,性别 varchar(2) not null,年龄 char(2) not null,地址 varchar(20) not null,constraint PK_STUDENT primary key (学号)goexecute sp_addextendedproperty MS_Description, 学生基本信息描述,us
8、er, , table, StudentsInfogo(2)创建课程表:create table Course (cno varchar(5) not null,cname varchar(10) null,xueshi smallint null,xuefen int null,constraint PK_COURSE primary key (课程号)goexecute sp_addextendedproperty MS_Description, (3)创建学生与课程的成绩表create table SC ( sno varchar(11) not null,cno varchar(5)
9、not null,chengji varchar(4) not nullconstraint PK_SC primary key (学号, 课程号)go在 SC 表上创建索引 SC_FK 与 SC2_FKcreate index SC_FK on SC (学号 ASC)Gocreate index SC2_FK on SC (课程号 ASC)go建立课程号索引西华大学实验报告4create index TC_FK on TC (课程号 ASC3.2 数据库的实施与维护 数据库的实施:此阶段主要任务包括创建数据库,加载初始数据,数据库试运行,数据库的安全性和完整性控制数据库的备份与恢复,数据库性
10、能的监督分析和改仅,数据库的重组和重构等。首先在数据库中建立一个学生成绩管理系统数据库,然后新建一个数据源。主要代码如下:建立基本信息西华大学实验报告5西华大学实验报告6奖学金的评定的代码select *,1500 as 奖学金 from 学生成绩 where 语文85 and 高数85 and 英语90 and (语文+高数+英语)/3) 92select *,1000 as 奖学金 from 学生成绩 where 语文85 and 高数85 and 英语85 and (语文+高数+英语)/3) 90select *,800 as 奖学金 from 学生成绩 where 语文80 and 高
11、数80 and 英语80 and (语文+高数+英语)/3) 88select *,500 as 奖学金 from 学生成绩 where 语文75 and 高数75 and 英语80 and (语文+高数+英语)/3) 85西华大学实验报告7进入系统中写入:DO FORM 学生管理系统登陆.scx thisform.release退出系统中写入: ask=messagebox(“确定要退出系统吗?“,4+32+256,“学生管理系统“)if ask=6 close allquitelse endif数据环境中加入新口令表(存密码和账号的)FORM1.INIT 中写入:Public errorn
12、umber,PsErrornumber=0西华大学实验报告8退出中写入ask=messagebox(“确定要退出吗?“,4+32+256,“学生管理系统“)if ask=6 thisform.releaseelse endif确定中写入:use 新口令表a=Thisform.text1.valueb=Thisform.text2.valueif a=“n=messagebox(“请输入用户名“,4+32,“学生管理系统登陆“)do casecase n=6thisform.text1.value=“thisform.text1.setfocuscase n=7thisform.releasee
13、ndcaseelseif b=“n=messagebox(“请输入密码“,4+32,“学生管理系统登陆“)do casecase n=6thisform.text2.value=“thisform.text2.setfocuscase n=7thisform.releaseendcaseendifendiflocate for alltrim(新口令表.Id)=alltrim(a)if found()if alltrim(新口令表.Ps)=alltrim(b)do 学生管理系统.mprthisform.releaseelsemessagebox(“密码错误,请重新输入“,64,“ 学生管理系统
14、登陆“)errornumber=errornumber+1endifelsemessagebox(“用户“+a+“ 不存在!“,64,“学生管理系统登陆“)errornumber=errornumber+1endif西华大学实验报告9if errornumber=3MESSAGEBOX(“您已经输入 3 次错误,请按确定退出 “,64,“学生管理系统“)ask=messagebox(“确定要退出吗?“,4+32+256,“学生管理系统“)if ask=6close all quitelse endifendif数据查询中代码:确定中写入:no=alltrim(thisform.Text1.va
15、lue)if thisform.optiongroup1.value=1if thisform.optiongroup2.value=1if empty(no)messagebox(“对不起,学号不能为空。“,16,“ 错误“)thisform.Text1.setfocusreturnendifselect 学生信息表locate for alltrim(学生信息表 .学号)=noif not found()messagebox(“没有找到你输入的学号。“,16,“ 错误“)thisform.Text1.setfocusreturnendifthisform.Edit1.value=“学号“+
16、“ “+ 学号thisform.Edit2.value=“姓名“+“ “+ 学生信息表.姓名thisform.Edit3.value=“性别“+“ “+ 学生信息表.性别thisform.Edit4.value=“出生年月“+“ “+dtoc(学生信息表.出生年月)thisform.edit5.value=“家庭住址“+“ “+学生信息表.家庭住址thisform.Edit6.value=“备注“+“ “+ 学生信息表.备注returnendifselect 学生信息表locate for alltrim(学生信息表 .姓名)=noif not found()messagebox(“没有找到您
17、输入的姓名!“,16,“错误“)thisform.Text1.setfocusreturnendifthisform.Edit1.value=“学号“+“ “+ 学号thisform.Edit2.value=“姓名“+“ “+ 学生信息表.姓名西华大学实验报告10thisform.Edit3.value=“性别“+“ “+ 学生信息表.性别thisform.Edit4.value=“出生年月“+“ “+dtoc(学生信息表.出生年月)thisform.edit5.value=“家庭住址“+“ “+学生信息表.家庭住址thisform.Edit6.value=“备注“+“ “+ 学生信息表.备注
18、elseif thisform.optiongroup2.value=1if empty(no)messagebox(“对不起,学号不能为空!“,16,“错误“)thisform.Text1.setfocusreturnendifselect 学生成绩表locate for alltrim(学生信息表 .学号)=noif not found()messagebox(“没有找到你输入的学号!“,16,“ 错误“)thisform.Text1.setfocusreturnendifthisform.Edit1.value=“学号“+“ “+ 学生成绩表.学号thisform.Edit2.value
19、=“姓名“+“ “+ 学生成绩表.性名thisform.Edit3.value=“数据库“+“ “+str( 学生成绩表.数据库 )thisform.Edit4.value=“高等数学“+“ “+str( 学生成绩表.高数 )thisform.edit5.value=“英语“+“ “+str(学生成绩表.英语)thisform.Edit6.value=“总分“+“ “+str( 学生成绩表.总分)elseif empty(no)messagebox(“对不起,姓名不能为空!“,16,“错误“)thisform.Text1.setfocusreturnendifselect 学生成绩表locat
20、e for alltrim(学生成绩表 .性名)=noif not found()messagebox(“没有找到您输入的姓名!“,16,“ 错误“)thisform.Text1.setfocusreturnendifthisform.Edit1.value=“学号“+“ “+ 学生成绩表.学号thisform.Edit2.value=“姓名“+“ “+ 学生成绩表.性名thisform.Edit3.value=“数据库“+“ “+str( 学生成绩表.数据库 )thisform.Edit4.value=“高等数学“+“ “+str( 学生成绩表.高数 )thisform.edit5.valu
21、e=“英语“+“ “+str(学生成绩表.英语)thisform.Edit6.value=“总分“+“ “+str( 学生成绩表.总分)endif西华大学实验报告11endif退出中写入:thisform.release数据浏览中代码:首记录:go top Thisform.refresh上一条:skip -1Go topIf bof()Thisform.refresh下一条:Skip 1If eof()Go top Thisform.refresh尾记录:Go bottomThisform.refresh计时器中 TIMER1.TIMER 中写入:Thisform.label5.captio
22、n=dtoc(date()Thisform.label6.caption=time()退出中写入:Thisform.release数据环境中加入学生成绩表和学生信息表学生信息表维护代码:首记录,上一个,下一个,尾记录同上添加中写入:append blankThisform,refreshth编辑中定入:thisform.txt 学号.setfocus()保存:messagebox(“已存入”,48, “警告”)Thisform.refresh删除中写入:delete from 学生信息表 where 学号=thisform.txt 学号.valueThisform.grid1.recordso
23、urce=”PackThisform.grid1.recordsource=”学生信息表”Thisform.refresh打印中写入:list to printer prompt数据环境中加入学生信息表学生成绩表维护同上的代码,数据环境中加入学生成绩表西华大学实验报告12学生账户管理中浏览学生密码的代码也同上,数据环境中加入口令表口令表设置用于改密码,代码如下:确定中写入:LOCAL jjjj=0for i=1 to 3s=“text“+alltrim(str(i)d=“label“+alltrim(str(i)if empty(thisform.(2)课程(课程名,课程号,学时,学分),其中
24、主关键字为课程号;(3)成绩(课程号,学号,分数)其中主关键字为学号和课程号。可以与学生关系模式合并为:学生(学号,姓名,性别,年龄,地址,系别,成绩,课程号)。数据库中用到的表:Student 基本情况数据表,结构如下:字段名 字段类型 Not Null 说明Student _sno Char Primary key 学号Student _sn char Not Null 学生姓名Student _sex char 男或女 性别Student _dept char 系别Student_age int 年龄Student_address char 地址course 数据表,结构如下:数据库表名
25、 关系模式名称 备注Student 学生 学生信息表Course 课程 课程信息表Score 成绩 成绩信息表选修课程成绩学生 课程号课程名学时 学分分数学号姓名性别系别 地址年龄西华大学实验报告21字段名 字段类型 约束控制 说明course_cno char 主键(primary key ) 课程号course_cname char not null 课程名称course_hour int not null 课时course_score numeric(2,1) not null 学分score 情况数据表,结构如下:字段名 字段类型 约束控制 说明score_id int not null 成绩记录号course_cno char 外部键 课程号student_sno char 外部键 学号score int 成绩五 总体结构 学生成绩管理系统总体结构如下图所示。学生成绩管理系统总体结构登 录 录 入 ( 成 绩 ) 删 除 ( 成 绩 ) 主 控 通 用 报 表 固 定 报 表 查 询 导 入 导 出 增 改 ( 学 生 ) 增 改 ( 学 年 ) 增 改 ( 课 程 ) 增 改 ( 操 作 员 ) 增 改 ( 成 绩 比 例 ) 浏 览 关 于 增 改 ( 教 师 ) 删 除( 学 生 、 学 年 、 课 程 、 教 师 、 操 作 员 )