您的当前位置:首页正文

学籍管理系统设计项目

2020-02-12 来源:欧得旅游网
欢迎共阅

学籍管理系统设计

一、项目概述 二、项目工作计划 三、管理业务流程分析 四、数据流程图 五、数据字典 六、E-R图 七、功能模块图 八、代码设计 九、数据表设计 十、IPO设计 十一、源程序清单 十二、总结与体会

3 2 3 3 7 8 10 10 7 8 9 11

欢迎共阅

一、项目概述

1、 项目名称:简单学籍管理系统

2、 项目目的:学生学籍信息管理是学校管理的一项重要任务,信息管理经由最初的传统管理时期过渡到

信息技术管理时期,再到现在的信息资料管理时期,管理信息系统以计算机技术为核心,大大提高了工作效率,节省了劳动力。因此,编写本学籍管理系统就是本着方便学校管理,方便学生与学校、教师交互等目的而开发的。本系统根据学校的实际情况设计了这一套简单学籍管理系统。 3、 开发设计思想:

介于本系统的以上目的,我们的设计思想有以下几条(由于受专业技术的限制,我们所建立系统并不复杂,但能满足简单要求):

系统应符合学生学籍管理系统的规定,即满足学校对学生日常管理的需要,并达到操作过程中的直观,方便等要求。 所开发的系统应该满足模块化程序设计方案,这样即便于系统功能的各种组合和修改,有便于未参与开发的技术维护人员的补充,维护。 所开发的系统应具备数据库维护功能,能够及时根据用户需求进行数据的添加,删除,修改和备分等操作。 4、开发运行环境: 开发工具:powebuilder8.0 运行环境:window vista 5、系统功能: (1)信息的增加(2)信息查询(3)信息的删除(4)信息的保存 二、项目工作计划 以下为根据参阅相关书籍和资料,整理得出的各环节的内容. 具体分工情况如下表: 编号 1 2 3 4 5 6 7 8 9 10 开发项目 问题/项目概述 项目工作计划 管理业务流程分析 数据流程图 数据字典 E-R图 功能模块图 代码设计 数据库(表)设计 IPO设计(输入、处理、唐亚丽 杨柳 负责人 彭霜 杨柳 杨柳 唐亚丽 刘红梅 梁雨婷 梁雨婷 彭霜 唐亚丽 杨柳 协作者 唐亚丽 刘红梅 刘红梅 彭霜 杨柳 梁雨婷 彭霜 欢迎共阅 输出) 11 12 进度 日历 工作阶段 分析 测试计划 概要设计 详细设计 编码 测试方案设计 产品测试 文档整理 1 源程序清单 总结体会 2 3 彭霜 Gantt图 4 5 6 刘红梅 梁雨婷 7 三、管理业务流程分析 在本系统中,学生,系统用户,老师都可以登录到对应的主界面,进行相应的操作。 在学期初,由学院负责人员录入学生和教师信息,包括个人的学号、姓名、性别、年级、班级、年级、班级、系别、专业、户口所在地、家庭住址、联系电话、出生日期、民族、政治面貌、身份证号、填卡日期及备注。如此形成系统的学籍数据库。 相关权限是:学生可以由学号查询对应专业、电话等,老师同样可以查询学生各项信息等,系统用户则可以查询和修改各项学院、学生信息。 四、数据流程图 Root Process Graph Subprocess Graph of 学籍管理系统

本学籍系统的详细工作流程如下:

1.根据学生处出示的新生名单,建立档案,将档案登记为档案文件。并对应新生名单建立个人的学习文档。

2.根据档案文件登记学籍表。

3.若学生遇到退学、留级、惩罚的事件,教务处将分别进行退学处理、留级处理、奖惩处理。 4.若学生受到留级处理、奖惩处理,分别建立留级名单、奖惩名单,并修改对应档案文件。

欢迎共阅

5.若学生受到退学处理,删除对应学生的档案文件。

6.学生毕业时,教务处根据档案文件填制其毕业登记表,并最后将毕业生登记表交给用人单位。

五、数据字典

(1)数据项 Name 专业 专业代码 年级 民族 联系电话 联系电话 联系电话 姓名 性别 性别 身份证号 所在学院 所在院系编号 填卡日期 学号 学院 学院名 学院号 政治面貌 院负责人 职务 备注 教师名 教师号 家庭住址 家庭住址 开课学期 电子邮件 出生日期 出生日期 课程类型编号 课程名称 课程学分 课程编号 班级 班级名 班级号 班级负责人 Code MAJOR MNO GRADE NATIONALITY PHONE PHONE PHONE SNAME SEX TSEX ID COLLEGE CNO TIANKADATE SNO DEPTH CNAME CNO MIANMAO FUZEREN JOB OTH TNAME TNO ADDRESS ADDRESS TERM EMAIL BIRTH BIRTH LXBH CNAME CREDIT CNO CLASS CNAME CNO FUZEREN Type A10 A10 A10 A10 A10 A10 A10 A10 A10 A10 LA20 A10 A10 D A10 A10 A10 A10 A10 A10 A10 A20 A10 A10 A10 LA20 A10 A10 D D A10 A10 A10 A10 A10 A10 A10 A10 欢迎共阅 (2)数据流 Name 毕业生登记表 学生注册 档案 修改信息 删除信息 退学名单 留级名单 奖惩名单 新生名单 档案信息 登记 (3)实体 Name 学生 学院 教师 课程 班级 Code FLOW_6 FLOW_10 FLOW_19 FLOW_20 FLOW_21 FLOW_188 FLOW_187 FLOW_192 FLOW_5 FLOW_23 FLOW_25 Code STU COLLEGE TEACHER COURSE CLASS Reference Data Flow Data Flow Data Flow Data Flow Data Flow Data Flow Data Flow Data Flow Data Flow Data Flow Data Flow 六、E-R图 简单学籍管理的E-R如下: E-R图简单描述: 1.本E-R图的实体有学生、学院、教师、班级、课程。 2.一个学生只在一个学院和一个班级中,一个学院或一个班级有很多学生。 3.一个学院有很多教师,一个教师只对应一个学院。 4.一个学生要修多门课程。 欢迎共阅

七、功能模块图

学籍管理系 统 基本信息维 护 信息查询 学生信息维护 教师信息维护 学院信息维护 课程信息维护 学生信息查询 教师信息查询 学院信息查询 课程信息查询 八、代码设计 代码指明了事物的名称、属性、状态。科学的代码设计能使计算机进行数据处理时,能节省存储空间,提高处理速度、效率和精度。进行代码设计的过程中,我们应该尽量遵循以下基本原则:1、要适合计算机处理;2、要便于使用;3、要具有系统性、通用性和可扩展性;4、选择最小代码;5、代码标准化。本学籍管理系统中的数据库代码用部分代码设计范例如下: (1) 部门代码 部门代码采取数字和字符混合编码的形式,具体如下: ①学生处 XSC * * *

分部门代码 学生处简称代码 (字符) (数字) ②教务处 JWC * * * ③系 X X * * 教务处简称代码 (字符) 班级代码 分部门代码 (数字) 2、人员代码 系别简称代码 人员代码采取纯数字编码形式,具体如下:(字符) (数字) ①教师 * * * * 系别代码 职称代码 欢迎共阅

②学生 ** ** ** *** (2) 表单代码 表单代码仍采取数字和字符混合编码的形式,具体如下: 年级代码 (数字) 系别代码 (数字) 专业代码 (数字) 序列号代码 (数字) ①档案文件 X X ** ** *** **** 表单类别别简称代码 年级代码 系别代码 专业代码 (数字) 序列号代码 (数字) (字符) (数字) (数字) ②学籍表 XJB ** ** *** **** 表单类别别简称代码 (字符) 年级代码 (数字) 系别代码 (数字) 专业代码 (数字) 序列号代码 (数字) 九、数据表设计 学生表 Name 学号 姓名 性别 年级 学院 专业 家庭住址 联系电话 出生日期 民族 政治面貌 身份证号 填卡日期 班级 备注 密码 学院表 Name 学院号 学院名 院负责人 联系电话 教师表 Name 教师号 教师名 性别 出生日期 TNO TNAME TSEX BIRTH CNO CNAME FUZEREN PHONE Code Code SNO SNAME SEX GRADE DEPTH MAJOR ADDRESS PHONE BIRTH NATIONALITY MIANMAO ID TIANKADATE CLASS OTH PASSWORD Code Type A10 A10 A10 A10 A10 A10 A10 A10 D A10 A10 LA20 D A10 A20 A10 Type A10 A10 A10 A10 Type A10 A10 A10 D I Yes No No No No No No No No No No No No No No No I Yes No No No I Yes No No No M Yes No No No No No No No No No No No No No No No M Yes No No No M Yes No No No 欢迎共阅 Name 所在院系编号 职务 家庭住址 联系电话 电子邮件 课程表 Name 课程编号 专业代码 课程名称 课程类型编号 课程学分 开课学期 班级表 Name 班级号 班级名 所在学院 班级负责人 Code CNO JOB ADDRESS PHONE EMAIL Code CNO MNO CNAME LXBH CREDIT TERM Code CNO CNAME COLLEGE FUZEREN Type A10 A10 LA20 A10 A10 Type A10 A10 A10 A10 A10 A10 Type A10 A10 A10 A10 I No No No No No I Yes No No No No No I Yes No No No M No No No No No M Yes No No No No No M Yes No No No 十、IPO设计 进入本系统的人都要进行身份认证,认证的方式是验证登录用户账号及其密码,选择登录类型(学生,教师,系统用户)。登陆名为学号,教师号,系统用户号,所有用户的密码预设为888888。

登陆界面如下:

欢迎共阅

十一、源程序清单

连接数据库的源程序:

// Profile Ours

SQLCA.DBMS = \"ODBC\" SQLCA.AutoCommit = False

SQLCA.DBParm = \"Connectstring='DSN=ours;UID=dba;PWD=sql'\" connect using sqlca; open(w_main)

登录源程序: string ls_pass,ls_passdata,l1,l3,l5,ls_user,usertype integer l0,l2,l4 ls_user=string(sle_user.text) ls_pass=string(sle_pass.text) l1=string(ddlb_1.text) if ddlb_1.text='' then messagebox(\"提示信息\请选择用户登陆类型!\") ddlb_1.setfocus() return end if

choose case ddlb_1.text case \"系统用户\" if ls_user=\"\" then messagebox(\"提示信息\请输入用户登陆名!\") return end if

if ls_pass=\"\" then messagebox(\"提示信息\请输入密码!\") return end if

if isnull(ls_pass) then ls_pass = \"\" select count(*) into :l0 from xitong where xno =:ls_user ; if l0 <1 then messagebox(\"提示信息\请输入正确的用户登陆名!\") sle_user.setfocus() return end if select password into :ls_passdata from xitong where xno =:ls_user; if isnull(ls_passdata) then ls_passdata = \"\" if ls_pass <> trim(ls_passdata) then messagebox(\"提示信息\请输入正确的密码!\") sle_pass.setfocus() return end if

欢迎共阅 open(w_1) close(w_main) case \"学生\" if ls_user=\"\" then messagebox(\"提示信息\请输入用户登陆名!\") return end if

if ls_pass=\"\" then messagebox(\"提示信息\请输入密码!\") return end if

if isnull(ls_pass) then ls_pass = \"\" select count(*) into :l2 from stu where sno =:ls_user; if l2 <1 then messagebox(\"提示信息\请输入正确的用户登陆名!\") sle_user.setfocus() return end if select password into :l3 from stu where sno =:ls_user; if isnull(l3) then l3 = \"\" if ls_pass <> trim(l3) then messagebox(\"提示信息\请输入正确的密码!\") sle_pass.setfocus() return end if open(w_12) close(w_main) case \"教师\" if ls_user=\"\" then messagebox(\"提示信息\请输入用户登陆名!\") return end if

if ls_pass=\"\" then messagebox(\"提示信息\请输入密码!\") return end if

if isnull(ls_pass) then ls_pass = \"\" select count(*) into :l4 from teacher where tno =:ls_user ; if l4 <1 then messagebox(\"提示信息\请输入正确的用户登陆名!\") sle_user.setfocus() return end if select password into :l5 from teacher where tno =:ls_user; if isnull(l5) then l5 = \"\" if ls_pass <> trim(l5) then messagebox(\"提示信息\请输入正确的密码!\")

欢迎共阅 sle_pass.setfocus() return end if open(w_12) close(w_main) end choose

按学号查询信息的源程序:

string ls_old_sql,ls_new_sql string ls_sno ls_sno=sle_1.text

ls_sno=\"'%\"+trim(upper(ls_sno))+\"%'\" ls_old_sql=dw_1.getsqlselect() ls_new_sql=ls_old_sql+\"where sno like \"+ls_sno dw_1.setsqlselect(ls_new_sql) dw_1.retrieve() dw_1.setsqlselect(ls_old_sql) 增加信息的源程序: long ll_row ll_row=dw_1.insertrow(0) dw_1.setfocus() dw_1.scrolltorow(ll_row) dw_1.setcolumn(1) 删除信息的源程序: int s

s=dw_1.getrow() dw_1.deleterow(s) dw_1.update() dw_1.retrieve() dw_1.setfocus() //得到当前行号 //从DataWindow控件中删除当前行。 //将DataWindow中所做的改变保存到数据库中。 //重新检索数据到数据窗口 //设置光标焦点 保存信息的源程序: dw_1.update() 十二、总结与体会

通过这次的系统设计,我收获了很多。不仅提高了我的理论知识水平,也锻炼了我们的团队合作能力和协调能力。在本次设计的全过程中,我对本学期所学的知识有了一个比较系统的认识和理解。

我由此对《计算机信息管理基础》这门课程有了更深刻的认识,了解到它不仅仅是关于计算机系统的一门技术,其中的管理信息系统更是一门囊括了经济管理理论、计算机科学、现代通信技术、运筹学、统计学、系统工程学等学科的系统方法论的边缘科学。而其中的奥妙是可以不断学习而领会到的。

我们在设计的过程中遇到了各种问题,例如最初我们必须把学生选课系统进行抽象,找到它的

欢迎共阅

实体和关系,从而建立E-R图和数据流程图。由于我们在建立E-R图的时候没考虑到登陆时需要密码,最后只有在数据库中通过SQL语言(alter table stu add password char(10))增加密码这一属性,并(update stu set password ='888888';)设定密码都为888888。从中也发现,光是掌握一些理论知识是远远不够的。要懂得怎样把理论应用到实践中去,才能完成具体的工作。而学会应用的过程是能够并且只能通过不断练习而达到的。计算机是一门非常复杂且庞大的学科,一项课题往往需要多项技术才可以完成的。

通过这次设计,我们学到了许多书本上学不到的知识,增强了自己的动手能力。我们按部就班的完成了自己的设计任务,由于自己的知识水平有限,仍然存在很多的不足之处,恳请老师多多指教!

总而言之,我们从参与本次项目中体会颇多。除开以上已经提到的,它还教会了我们不少做人的道理。首先,它使我们深切体会到了团队的重要性,特别是其中遇到的很多困难,需要同学们共同努力共同探讨,以实现思想的交流与碰撞,这对工作的完成也是非常有利的。同时,很重要的一点,是教会我们做什么都要有计划性,尤其是完成一些大型工作。

因篇幅问题不能全部显示,请点此查看更多更全内容