1、合 肥 师 范 学 院(本 科)课程设计说明书课 程数据库原理题 目学生社团管理系统姓 名学 号专业班级2011级嵌入式应用技术班指导教师 完成日期2013年6月30日- 26 -目 录第一章 绪言.2 1.1 系统开发的背景21.2 系统开发的意义.2第二章 需求分析 .32.1 系统功能分析.32.2 系统可行性分析3第三章 数据库概念设计43.1 概念设计(E-R 图)4第四章 数据库的逻辑设计44.1 逻辑设计(关系模式图)4第五章 系统设计 55.1 系统总体设计55.2 系统的功能模块设计.5第六章 系统的实现与调试66.1 系统的运行环境66.2 系统运行结果6第七章 小结 .1
2、47.1 系统的特点 147.2 系统开发过程的特点 147.3 存在的问题与改进方向 147.4 自我体会 15附录 16附录1:部分程序源代码 16第一章 绪言1.1 系统开发背景 随着学校规模的不断扩大,学生数量急剧增加,为了适应多元化的文化环境。各种社团的数量也增加了很多。面对庞大的信息量,传统的人工方式管理会导致学生社团信息管理上的混乱,人力与物力过多浪费,管理费用的增加,从而使学校管理人员的负担过重,影响整个学校的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的学生信息管理系统,对学生信息进行集中统一的管理。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从
3、而减少管理方面的工作量。1.2 系统开发的意义 学生社团管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生社团信息管理的效率。因此,开发一套能够为用户提供充足的信息和快捷的查询手段的学生社团信息管理系统,将是非常必要的,也是十分及时的。通过对管理系统模型的研究,提出一套构造学生社团信息管理系统模块的方法,并利用数据库,信息系统分析学的知识,结合其它学校管理业务知识,建立起相关数据模型,利用面向对象开发工具对其进行设计与开发,建立一套有效的学生社团信息管理系统,可以减少工作量,将管理工作科学化
4、,规范化,提高学校管理的工作质量和工作效率。第二章 需求分析2.1系统功能分析随着学生选社,退社的频率的增加,开发一个简单易用实用的社团管理系统对提高社团管理的效率显得尤为重要。此系统主要功能是实现学校社团的信息化管理,其设计要求随着大学生校园文化的不断丰富,各种学生社团应运而生,对所有学生社团进行统一管理。系统需要实现的功能和操作,系统要求分权限管理,分两种管理权限,一般用户和管理员,一般用户可以对社团信息进行查询、浏览;管理员可以对社团信息进行查询,更新,删除和插入等,可以对社团成员进行增加、修改和删除,可以进行社团以及成员信息的查询、统计和生成报表等。查询:可以对学生所在的社团进行查询,
5、也可根据具体输入进行查询。更新:由于要进行社团信息管理,用户需注册,填写有关信息,管理员可以增加社团,如果社员不再参加社团可以选择删除,从而从数据库中删除其有关记录。该大学社团管理系统运用方便、操作简单、工作效率高。给学生提供了更多更及时的社团活动信息,便于学生了解社团动态,积极参加社团活动。同时也给学院社团管理提供了一个完善的信息拓展平台,方便发布活动公告以及社团财务、会员资料的管理,使社团在无形中构建一种团结友善的凝聚力。2.2 系统可行性分析学校都有许多学生社团。每个社团有一位学生负责人,但必须是该社团成员。每个学生都可以参加多个社团(也可以不参加)。凡参加社团的学生都以学号识别。所以必
6、须开发一个数据库,对所有学生社团进行统一管理。学生社团管理的具体要求是: (1) 各社团简况维护,包括社团名称、社团号、成立时间、近期活动。(2)参加社团的成员简况维护,包括学号、姓名、性别、所在系别。不参加社团者不涉及。 (3)各社团成员加入和退出信息的输入。 (4)按社团查询该社团组成(即全部成员)情况。 (5)按学号、姓名查询该学生参加社团情况。(6)打印包括所有社团在内的统计报表:社团编号、社团名称、成立日期等。 对于以上这些要求,必须进行完整设计与分析,创建所需的表、建立相应的查询和窗体,打印报表明细各社团成员的信息和各社团中部门间的关系。第三章 数据库概念设计3.1 概念设计(E-
7、R 图)参与社团活动学 号社团号社团名参社姓 名社 团会 员m n成立时间性 别近期活动所在系别第四章 数据库逻辑设计4.1 逻辑设计(关系模式图)关系模式图学生(学号,姓名,性别,所在系别)社团(社团名称,成立时间,社团编号,近期活动)选社(学号,社团编号,参与社团活动)第五章 系统设计5.1 系统总体设计图5-1 系统功能图5.2 系统功能模块设计学院社团管理系统是一个典型的数据库开发应用程序,它有两个权限,分别管理员和普通会员,具体规划如下: (1)管理员: 社团管理主要是对社团信息进行查询、增加、删除、修改。 会员管理主要是对会员信息进行查询、增加、删除、修改。(2)会员:查询社团信息
8、。查询本人信息,修改本人信息。 第六章 系统的实现与调试6.1 系统运行环境1) 硬件环境服务端:计算机CPU Intel p4 3.0G、内存1G 以上的pc机、WINDOWS 2000操作系统。客户端:Windows 7、CPU Intel p4 3.0G、内存512M 、Microsoft IE5.0以上的pc机。2) 软件环境操作系统:Windows2000及更高版本的操作系统;测试支持软件工具:vfp。6.2 系统运行结果图6-1 登录界面图6-2 管理员操作界面图6-3 管理员按学号查询会员信息图6-4 管理员按姓名查询会员信息图6-5 管理员按社团号查询社团信息图6-6 管理员按
9、社团名查询社团信息图6-7 管理员按社团号修改社团信息图6-8 管理员按社团名修改社团信息图6-9 管理员对社团信息维护图6-10 管理员添加新社团图6-11 管理员删除社团图6-12 学生会员操作界面图6-13 学生会员查看本人信息图6-14 学生会员查看社团信息图6-15 学生会员修改本人信息第七章 小结7.1 系统的特点该系统用户界面友好、清楚明了、突出重点、而且容易美观实用;界面还必须能够提供尽量多的功能,以给顾客便捷的服务。系统需要实现的功能和操作,系统要求分权限管理,分两种管理权限,一般用户和管理员,一般用户可以对社团信息进行查询、浏览;管理员可以对社团信息进行查询,更新,删除和插
10、入等,可以对社团成员进行增加、修改和删除,可以进行社团以及成员信息的查询、统计和生成报表等。查询:可以对学生所在的社团进行查询,也可根据具体输入进行查询。更新:由于要进行社团信息管理,用户需注册,填写有关信息,管理员可以增加社团,如果社员不再参加社团可以选择删除,从而从数据库中删除其有关记录。7.2 系统开发过程的特点学生社团管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生社团信息管理的效率。因此,开发一套能够为用户提供充足的信息和快捷的查询手段的学生社团信息管理系统,将是非常必要的,也是
11、十分及时的。通过对管理系统模型的研究,提出一套构造学生社团信息管理系统模块的方法,并利用数据库,信息系统分析学的知识,结合其它学校管理业务知识,建立起相关数据模型,利用面向对象开发工具对其进行设计与开发,建立一套有效的学生社团信息管理系统,可以减少工作量,将管理工作科学化,规范化,提高学校管理的工作质量和工作效率。7.3 存在的问题与改进方向 该系统只能进行以上所描述的简单的功能,对系统内信息的安全性保护存在不足。另外,由于系统结构简单,无法使用户对该系统进行并发行操作。因此,我们还需要在该系统的基础上继续努力,不断完善该系统。7.4 自我体会 数据库课程设计是一个复杂和有难度的任务,尽管如此
12、,我始终坚信只要努力付出就会出现奇迹。因为以前没有学习过vfp软件的使用,所以这次从多种途径来学习并了解vfp软件,从图书馆借了大量的书籍进行自学。遇到问题的时候和小组成员讨论并请教老师同学,这样学会了很多知识,比如:如何实现一个项目,只需要前期的需求分析,概念模型,逻辑模型的构建,以及表单的建立,菜单的建立,项目管理器的作用等等。也吸收到了大量的知识。所以我想说一切的付出都是有回报的,当然其中不能缺少团队之间的默契以及合作。 通过这次的数据库课程设计收获到很多东西。首先老师叫我们用vfp的 软件来做课程设计,但是因为以前没有接触过该软件,所以完全不懂,还必须得从头自学,比如说通过向图书馆借书
13、参考,学会了制作表单,报表,菜单,以及建立项目管理器等等。只有通过这些才能做出完整的课程设计,这不是一个简单的过程,其中要付出很大的精力和时间,但是当最终出现成果的时候还是很欣慰的,觉得都值了,还有团队分工合作也是很重要的一个方面。 通过这次课程设计让我受益匪浅,社团管理系统在大学中具有实用性, 本次课程设计运用了以前未接触过的vfp软件,因此在制作课程设计过 程中不仅要学会数据库的基础知识,还要了解vfp的相关知识,该系统 制作过程中在需求分析阶段,需要合理设计系统结构并形成概念模型和 逻辑结构。然后在vfp系统中逐步实现该系统的功能。由于没有接触过 vfp,在制作过程中遇到很多疑难问题,所
14、以要多看书多请教老师同学。 培养了我的各种能力,收获很多。附 录附录1:部分程序代码登陆界面set exact oni=i+1select userlocate for alltrim(username)=alltrim(thisform.text1.text)if found()and alltrim(password)=alltrim(thisform.text2.text)if class=thisform.optiongroup1.valuedo casecase class=1do form form2.scxthisform.releasecase class=2do form f
15、orm3.scxthisform.releaseendcaseendifelseif i3messagebox(用户名或密码错误,请重新输入,48,系统警告)thisform.text1.value=thisform.text2.value=thisform.text1.setfocus elsemessagebox(三次错误,无权登陆,48,系统警告)thisform.releaseendifendif社团信息表单查找if empty(thisform.Text1.value)=.f.go topa=thisform.Combo1.valueb=alltrim(thisform.Text1.
16、value)c=.f. if a=社团号 locate for 社团号=b if eof() messagebox(数据库中不存在您所要查询的记录,16,系统提示) go top return else c=.t. endif endif if a=社团名 locate for 社团名=b if eof() messagebox(数据库中不存在您所要查询的记录,16,系统提示) go top return else c=.t. endif endif if c thisform.Text1.enabled=.f. go recno() thisform.Text2.visible=.t. th
17、isform.Text2.enabled=.f. thisform.Text3.visible=.t. thisform.Text4.visible=.t. thisform.Text5.visible=.t. thisform.Label3.visible=.t. thisform.label4.visible=.t. thisform.Label5.visible=.t. thisform.Label6.visible=.t. thisform.Text2.value=社团.社团号 thisform.Text3.value=社团.社团名 thisform.Text4.value=社团.成立
18、时间 thisform.Text5.value=社团.近期主要活动 thisform.grid1.setfocus this.enabled=.f. mand2.enabled=.t. endifelse messagebox(请输入要查找的内容!,16,系统提示) thisform.Text1.value= thisform.Text1.Setfocusendifthisform.refresh修改a=alltrim(thisform.Text3.value)b=alltrim(thisform.Text4.value)c=alltrim(thisform.Text5.value)if em
19、pty(a) messagebox(社团名不可以修改为空值,16,系统提示) returnendifmsg=messagebox(确定要修改记录吗?,32+4,系统提示)if msg=6 go recno() replace 社团.社团名 with a,社团.成立时间 with b,社团.近期主要活动 with c messagebox(修改记录成功,48,系统提示) thisform.grid1.refresh mand1.enabled=.t. thisform.Text1.enabled=.t. this.enabled=.f. thisform.Text2.visible=.f. th
20、isform.Text3.visible=.f. thisform.Text4.visible=.f. thisform.Text5.visible=.f. thisform.Label3.visible=.f. thisform.label4.visible=.f. thisform.Label5.visible=.f. thisform.Label6.visible=.f. thisform.Text1.value= thisform.Text1.setfocusendiffomer4 会员信息表单查找if empty(thisform.Text1.value)=.f.go topa=th
21、isform.Combo1.valueb=alltrim(thisform.Text1.value)c=.f. if a=学号 locate for 学号=b if eof() messagebox(数据库中不存在您所要查询的记录,16,系统提示) go top return else c=.t. endif endif if a=姓名 locate for 姓名=b if eof() messagebox(数据库中不存在您所要查询的记录,16,系统提示) go top return else c=.t. endif endif if c thisform.Text1.enabled=.f.
22、go recno() thisform.Text2.visible=.t. thisform.Text2.enabled=.f. thisform.Text3.visible=.t. thisform.Text4.visible=.t. thisform.Text5.visible=.t. thisform.Label3.visible=.t. thisform.label4.visible=.t. thisform.Label5.visible=.t. thisform.Label6.visible=.t. thisform.Text3.value=会员.学号 thisform.Text4.
23、value=会员.姓名 thisform.Text5.value=会员.性别 thisform.Text6.value=会员.所在院系 thisform.grid1.setfocus this.enabled=.f. mand2.enabled=.t. endifelse messagebox(请输入要查找的内容!,16,系统提示) thisform.Text1.value= thisform.Text1.Setfocusendifthisform.refresh修改a=alltrim(thisform.Text3.value)b=alltrim(thisform.Text4.value)c=
24、alltrim(thisform.Text5.value)if empty(a) messagebox(姓名不可以修改为空值,16,系统提示) returnendifmsg=messagebox(确定要修改记录吗?,32+4,系统提示)if msg=6 go recno() replace 会员.姓名 with a,会员.性别 with b,会员.所在院系 with c messagebox(修改记录成功,16,系统提示) thisform.grid1.refresh mand1.enabled=.t. thisform.Text1.enabled=.t. this.enabled=.f. t
25、hisform.Text2.visible=.f. thisform.Text3.visible=.f. thisform.Text4.visible=.f. thisform.Text5.visible=.f. thisform.Label3.visible=.f. thisform.label4.visible=.f. thisform.Label5.visible=.f. thisform.Label6.visible=.f. thisform.Text1.value= thisform.Text1.setfocusendif退出thisform.releaseform5管理员对社团信息
26、维护表单(插入,删除,关闭)第一条select 社团if bof()=.f. then go topthisform.Command1.enabled=.f.thisform.Command2.enabled=.f.thisform.Command3.enabled=.t.thisform.Command4.enabled=.t.endif thisform.refresh上一条if bof()=.f. then skip-1thisform.Command1.enabled=.t.thisform.Command3.enabled=.t.thisform.Command4.enabled=.
27、t.elsemessagebox(已经到达第一条记录,48,提示)thisform.Command1.enabled=.f.thisform.Command2.enabled=.f.endifthisform.refresh下一条if eof()=.f. then skipthisform.Command1.enabled=.t.thisform.Command2.enabled=.t.thisform.Command4.enabled=.t.elsemessagebox(对不起,已经到达最后一条,48,信息不全)thisform.Command3.enabled=.f.thisform.Co
28、mmand4.enabled=.f.endifthisform.refresh添加select 社团if mand5.caption=添加go bottom thisform.Command1.enabled=.f.thisform.Command2.enabled=.f.thisform.Command3.enabled=.f.thisform.Command4.enabled=.f.mand5.caption=保存mand8.caption=放弃thisform.Command6.enabled=.f.thisform.Text1.enabled=.t.thisform.Text2.ena
29、bled=.t.thisform.Text3.enabled=.t.thisform.Text4.enabled=.t.thisform.Text1.value=thisform.Text2.value=thisform.Text3.value=thisform.Text4.value=thisform.Text1.readonly=.f.thisform.Text2.readonly=.f.thisform.Text3.readonly=.f.thisform.Text4.readonly=.f.elseappend blankskipthisform.Command1.enabled=.f
30、.thisform.Command2.enabled=.f.thisform.Command3.enabled=.f.thisform.Command4.enabled=.f.thisform.Command5.enabled=.t.thisform.Command6.enabled=.t.thisform.Text1.readonly=.f.thisform.Text2.readonly=.f.thisform.Text3.readonly=.f.thisform.Text4.readonly=.f.thisform.Text1.enabled=.f.thisform.Text2.enabl
31、ed=.f.thisform.Text3.enabled=.f.thisform.Text4.enabled=.f.mand5.caption=添加mand8.caption=关闭a=alltrim(thisform.text1.value)b=alltrim(thisform.text2.value)c=alltrim(thisform.text3.value)d=alltrim(thisform.text4.value)if empty(a) messagebox(社团号不可以为空值,16,系统提示) returnendifmsg=messagebox(确定要保存记录吗?,32+4,系统提
32、示)if msg=6 replace 社团.社团号 with a,社团.社团名 with b,社团.成立时间 with c,近期主要活动 with d messagebox(保存记录成功,48,系统提示) thisform.Command1.enabled=.t.thisform.Command2.enabled=.t.thisform.Command3.enabled=.t.thisform.Command4.enabled=.t. thisform.refresh endif endif thisform.refresh删除USE 社团.dbf EXCLUSIVEmsg=messagebo
33、x(您确定要删除这条记录吗?,32+4,系统提示)if msg=6 delete for alltrim(社团.社团号)=alltrim(thisform.text1.text) pack messagebox(删除记录成功,16,系统提示) go top thisform.refresh endif关闭if mand8.caption=关闭 then thisform.releaseelseif mand5.caption=保存deletepackmand5.caption=添加mand8.caption=关闭select 社团locate for 社团号=alltrim(thisform.
34、text1.value)社团名=alltrim(thisform.text2.value)成立时间=alltrim(thisform.text3.value)近期主要活动=alltrim(thisform.text4.value)go topthisform.Command1.enabled=.t.thisform.Command2.enabled=.t.thisform.Command3.enabled=.t.thisform.Command4.enabled=.t.thisform.Command6.enabled=.t.thisform.Text1.readonly=.t.thisfor
35、m.Text2.readonly=.t.thisform.Text3.readonly=.t.thisform.Text4.readonly=.t.endifendifform6:管理员对会员信息的维护(添加,删除,关闭)第一条:select 会员if bof()=.f. then go topthisform.Command1.enabled=.f.thisform.Command2.enabled=.f.thisform.Command3.enabled=.t.thisform.Command4.enabled=.t.endif thisform.refresh上一条:if bof()=.
36、f. then skip-1thisform.Command1.enabled=.t.thisform.Command3.enabled=.t.thisform.Command4.enabled=.t.elsemessagebox(已经到达第一条记录,48,提示)thisform.Command1.enabled=.f.thisform.Command2.enabled=.f.endif下一条if eof()=.f. then skipthisform.Command1.enabled=.t.thisform.Command2.enabled=.t.thisform.Command4.enab
37、led=.t.elsemessagebox(对不起,已经到达最后一条,48,信息不全)thisform.Command3.enabled=.f.thisform.Command4.enabled=.f.endifthisform.refresh添加select 会员if mand5.caption=添加go bottom thisform.Command1.enabled=.f.thisform.Command2.enabled=.f.thisform.Command3.enabled=.f.thisform.Command4.enabled=.f.mand5.caption=保存mand8.
38、caption=放弃thisform.Command6.enabled=.f.thisform.Text1.enabled=.t.thisform.Text2.enabled=.t.thisform.Text3.enabled=.t.thisform.Text4.enabled=.t.thisform.Text1.value=thisform.Text2.value=thisform.Text3.value=thisform.Text4.value=thisform.Text1.readonly=.f.thisform.Text2.readonly=.f.thisform.Text3.read
39、only=.f.thisform.Text4.readonly=.f.elseappend blankskipthisform.Command1.enabled=.f.thisform.Command2.enabled=.f.thisform.Command3.enabled=.f.thisform.Command4.enabled=.f.thisform.Command5.enabled=.t.thisform.Command6.enabled=.t.thisform.Text1.readonly=.f.thisform.Text2.readonly=.f.thisform.Text3.re
40、adonly=.f.thisform.Text4.readonly=.f.thisform.Text1.enabled=.f.thisform.Text2.enabled=.f.thisform.Text3.enabled=.f.thisform.Text4.enabled=.f.mand5.caption=添加mand8.caption=关闭a=alltrim(thisform.text1.value)b=alltrim(thisform.text2.value)c=alltrim(thisform.text3.value)d=alltrim(thisform.text4.value)if empt
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100