软件工程的实验报告.doc_第1页
软件工程的实验报告.doc_第2页
软件工程的实验报告.doc_第3页
软件工程的实验报告.doc_第4页
软件工程的实验报告.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程实践报告、软件要求 设计一个学生缴费注册管理系统,以实现对学生缴费信息的管理和维护。其中包括对用学生缴费的基本信息进行添加、修改、删除、查询等基本操作;并且要设置数据浏览窗口和初始化窗口;最后还要按年纪班级统计缴费或全校总缴费数量。 、需求分析及模块功能分析1、概述对于学生缴费注册管理系统,其要实现对学生缴费的管理和更新就必须实现一些基本的功能,如添加、删除、修改、查询等。而对于其细节的实现则可以根据不同的情况,采用不同的途径来实现。对于各个界面的设计,为了便于使用者的使用,流程必须要清晰易操作,同时能够简单快捷的实现各个操作界面的相互交互。在本软件的设计中采用Delphi6和Delphi自带数据库软件database两类软件来实现;其中database完成建立数据库的操作,而Delphi6实现对各类界面的制作及程序的编制,实现界面化的操作。2、登陆模块 此模块主要是用于保护整个系统的安全性能。只有用户名和密码输入都正确才能进入学生缴费管理系统执行操作。这样就在一定程度上防止了有人进入系统进行非法操作修改或删除数据资料的情况发生。 3、总控模块本模块实现对其余各个模块的总控,用户可以选择执行不同的功能模块。从而实现对不同模块之间的切换,即在各个不同的操作模块,只有回到总控模块才能实现不同模块的切换4、注册模块 本模块的设计主要是实现操作人员对其他人授权,允许他使用该软件。授权后该人就可以以管理员的身份登陆到该系统对学生缴费信息进行管理。5、缴费管理模块该模块的功能就是通过该模块可以进行缴费而且输入学生编号可以查看该学生的基本信息及缴费情况。缴费时还可以自动算出应找零。6、添加学生记录模块如上所示该模块的功能就是添加学生记录模块。7、统计功能模块本模块的建立主要是实现对按年纪班级统计缴费或全校总缴费数量。 8、删除/修改记录模块 此模块的功能就是添加记录或者修改记录。 、数据流图与数据结构一、 数据流图 操作命令管理员学生缴费管理系统 操作结果 图-1、顶层数据流图管理员数据库登陆系统 登陆口令 学生信息数据库查询系统 登陆使用者 查询指令 查询结果 购 购电指令 电购电系统结果 图-2、第一层数据流图 二 数据结构 学生缴费管理系统主要是对以登记的学生缴费记录进行浏览、检索、添加、删除、编辑,并能根据不同的查询方式、查询条件进行查询,每一条记录的都若干属性组成。系统管理员的ID与密码也应该建立一张表。所以我们这个管理系统一共就两张表,分别为学生缴费表和用户表。其数据结构如下: 学生缴费表: 学生编号,学生姓名,所在班级,所在年纪,应缴费用,学年年度,费用清单,实缴费找零,缴费日期,经手人备注。 用户表: 用户名,密码,用户信息。 说明:学生缴费表为本系统的主表,其主键是学生编号和学年年度。用户表的主要作用为登陆时查询。 、模块结构与功能模块描述一、模块结构总模块浏览模块修改/删除登陆模块添加记录模块按条件查询全表显示修改记录删除记录统计模块注册模块按年级统计按班级统计统计全校缴费二、功能模块描述 一登陆模块 此模块主要是管理员登陆的界面,以确保系统数据的安全性。由一个datasource和query用于连接管理员的密码表,2个Edit和2个button作为登陆用户名,密码的输入和确认.二:总控模块 总控模块主要是连接各模块的操作界面。总控界面通过左键点击进入各种模块,这样用户可根据自己的需要进入相应的界面得到相应的服务。本系统的主要控键最为简单就是7个button。三 注册模块 本模块的设计主要是实现给本系统的管理员受权。在注册后管理员就可以登陆该系统对记录进行操作。其主要的控键为datasource和query用于连接用户表, 4个Edit和2个button用于用户密码的输入修改和确认和备注。四、缴费模块本模块主要的主要功能就是缴费功能。输入学生编号后就可以查看该学生的缴费情况,如果缴费就不能对其修改。在输入实缴费后系统可以自动算出应该的找零。所用到的主要控键为Datasource,query用于关联学生缴费表还有SQL语句的嵌入;2个groupboxh和11个Edit用于学生信息的输入,查看和显示日期;4个Button用于确认当前操作。五 学生信息查询模块 本模块的建立主要是实现学生基本信息的查询的要求。通过本模块管理员能够根据所选择的查询条件得到不同的查询结果。其用到的主要控键为DBGrid,Datasource,query 用于与用户表相关联还有显示查询结果。2个Edit控键输入查询的学生编号或学生姓名;在Radiogroup中有已缴费和未缴费2中选项来作为查询条件,默认为已缴费。5个Button用于对前面操作的确认和否决。六、添加记录模块本模块的建立主要是实现管理员添加学生记录,其用到的主要控键为DBGrid,Datasource,query 用于与学生缴费表相关联还有显示表的内容。左边的6个Edit组键用于输入学生姓名,编号,年级等。3个Button用于对前面操作的确认和否决。 七 添加/删除功能模块本模块的功能就是修改/删除记录。通过输入学生编号可以查到你想要修改或删除的记录,但是我们设定了缴费为TRUE的记录不能修改和删除。其用到的主要控键为DBGrid,Datasource,query 用于与学生缴费表相关联还有显示所输入学生编号的记录的内容。左边的6个Edit组键用于显示学生姓名,编号,年级等的记录值,修改都在这里进行。6个Button用于对前面操作的确认和否决。 八。统计模块该模块的主要功能就是对缴费金额进行统计。可以分别以年级,班级进行统计,还可以统计出全校的缴费金额。其用到的主要控键为DBGrid,Datasource,query 用于与学生缴费表相关联还有显示统计出的结果。2个Edit组键用于输入所要统计的班级或年级。5个Button有1个作为统计全校总缴费的控键,其他的用于对前面操作的确认和否决。 程序流程图一 登陆模块输入名正确开始密码正确?显示主窗体YY出错提示结束NN二 总模块开始 显示缴费系统窗选择缴费系统 Y N添加记录添加记录窗 Y N选择注册显示注册窗 Y N修改/删除记录显示修改/添加记录窗 Y N数据库浏览显示浏览窗 Y N显示统计模块选择统计 Y N选择退出结束三 注册模块 开始前3个输入框不空2次输入密码一致Y向管理员表添加这条记录并提示登陆成功结束YNN提示输入出错四.缴费系统开始 输入要修改的学生编号按此编号进行查询N查到有无此号Y提示输入有错显示该号的记录 缴费否 Y N算出应找零,并显示设定缴费键无效刷新记录结束五.数据库浏览模块开始按学生编号查询 Y N按学生姓名查询 Y N 按是否缴费查询 Y N显示总表 Y 显示符合要求的结果 N结束 N 六。添加记录模块开始 记录所有项都输入提示输入出错添加记录,并刷新显示结束七.删除/修改记录 开始按编号查到结果否?缴费否?出错提示删除或修改记录数据库刷新结束NYYN八。统计模块开始按年级统计按班级统计统计全校结束按要求显示统计结果 小结通过这几周软件工程的实习,体会了用软件工程的指导思想开发软件产品的重要意义,为以后从事软件设计工作奠定了基础。软件开发应该遵循一定的规则,对一个大型软件来说,如果一上来就急于编码,可能会给后续工作带来无穷无尽的烦恼或等工作已经完成了,却发现并没有正确理解用户的意图,从而带来许多不必要的损失。这条原则就是: 系统分析软件开发项目计划需求分析概要分析详细分析编码集成测试验收测试软件维护。软件开发设计原则一般包括以下几个方面:(1)经济、实用的原则(2)先进性原则(3)兼容性原则(4)可靠、有效性原则(5)安全性原则在实习中由于Delphi是一种对语法要求较严格的语言,所以语法错误是初学者常见的错误。因为对Delphi语言不熟悉,所以常出现begin与end不配对、语句漏分号、标识符未声明和类型不兼容等的语法错误。有语法错误的程序无法通过编译,编译程序会给出语法错误的所在行,并在程序编辑窗底部指明语法错误类型,因此,语法错误是容易改正的错误。进一步巩固了Delphi程序设计知识,见识了Delphi的强大功能,充分理解了面向对象程序设计的内涵。课程设计是理论的巩固,更是实践的开端,有利于基础知识的理解,更有利于基本技能的培养。对以后大型的软件开发打下了一定的基础参考文献1 程序设计Delphi5.0 魏志强 中国铁道出版社 2000.42 Delphi程序设计教程 叶核亚 电子工业出版社 2001.33 SQL server7.0实用教程 赵增敏 电子工业出版社 2001.6附录程序清单一 登陆模块procedure TForm1.Button2Click(Sender: TObject);begin query1.Close;query1.SQL.Clear;query1.SQL.Add(select * from 用户);query1.SQL.Add(where 用户名=+edit1.text+);query1.Prepare;query1.open;if query1.RecordCount0 thenbegin if query1密码=edit2.Text then begin form2.Show; form1.Hide; end else showmessage(密码有误!); edit2.Text:=; end else showmessage(输入有误!); edit1.Text:=; edit2.Text:=;end;procedure TForm1.Button1Click(Sender: TObject);beginclose;end;二 总模块procedure TForm2.Button5Click(Sender: TObject);beginapplication.Terminate;end;procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);beginapplication.Terminate;end;procedure TForm2.Button1Click(Sender: TObject);beginApplication.CreateForm(TForm3, Form3);form3.Show;form2.Hide;end;procedure TForm2.Button3Click(Sender: TObject);beginApplication.CreateForm(TForm4, Form4);form4.Show;form2.Hide;end;procedure TForm2.Button2Click(Sender: TObject);begin Application.CreateForm(TForm5, Form5);form5.Show;form2.Hide;end;procedure TForm2.Button6Click(Sender: TObject);beginApplication.CreateForm(TForm6, Form6); form6.Show;form2.Hide;end;procedure TForm2.Button4Click(Sender: TObject);begin Application.CreateForm(TForm7, Form7); form7.Show;form2.Hide;end;procedure TForm2.Button7Click(Sender: TObject);begin Application.CreateForm(TForm8, Form8); form8.Show;form2.Hide;end;三 注册模块procedure TForm8.Button1Click(Sender: TObject);begin if (edit1.Text) and (edit2.Text) and (edit3.Text) then begin if edit2.Text=edit3.Text then begin query1.Close;query1.SQL.Clear;query1.SQL.Add(insert into 用户);query1.SQL.Add(用户名,密码,用户信息);query1.SQL.Add(values(+edit1.text+,+edit2.text+,+edit4.text+););query1.ExecSQL; showmessage(注册成功!);endelse showmessage(输入不正确!);endend;procedure TForm8.Button2Click(Sender: TObject);begin form2.Show; form8.Close;end;procedure TForm8.FormClose(Sender: TObject; var Action: TCloseAction);beginform2.Show;end;四、缴费模块procedure TForm3.Button1Click(Sender: TObject);beginbutton2.Enabled:=true;query1.Close;query1.SQL.Clear;query1.SQL.Add(select * from 学生缴费);query1.SQL.Add(where 学生编号=+edit6.text+);query1.Prepare;query1.open;if query1.RecordCount0 then begin edit1.Text:=query1学生姓名; edit2.Text:=query1年级; edit3.Text:=query1班级; edit4.Text:=query1学年年度; edit5.Text:=query1应缴费用; edit9.Text:=query1缴费; end else begin button2.Enabled:=false; edit1.Text:=; edit2.Text:=; edit3.Text:=; edit4.Text:=; edit5.Text:=; edit9.Text:=; showmessage(输入有误!); end; if query1缴费=true then begin button2.Enabled:=false; showmessage(已缴费); end end;procedure TForm3.Button2Click(Sender: TObject);var shi,yin:integer;beginif edit7.Text thenbegin if strtoint(edit7.Text)strtoint(edit5.Text) then begin shi:=strtoint(edit7.Text); yin:=strtoint(edit5.Text); edit8.Text:=inttostr(shi-yin); query1.Close;query1.SQL.Clear;query1.SQL.Add(update 学生缴费);query1.SQL.Add(set 缴费=true,实缴费找零=+edit8.text+,缴费日期=+edit10.Text+,经手人备注=+memo1.Lines0+memo1.lines1+);query1.SQL.add(where 学生编号=+edit6.text+);query1.ExecSQL;query1.Close;query1.SQL.Clear;query1.SQL.Add(select * from 学生缴费);query1.SQL.Add(where 学生编号=+edit6.text+);query1.Prepare;query1.open;edit9.Text:=query1缴费; end end else showmessage(输入有误!); end;procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);begin form2.Show; end;procedure TForm3.Edit6Enter(Sender: TObject);begin query1.Close;query1.SQL.Clear;query1.SQL.Add(select * from 学生缴费);query1.SQL.Add(where 学生编号=+edit6.text+);query1.Prepare;query1.open;if query1.RecordCount0 then begin edit1.Text:=query1学生姓名; edit2.Text:=query1年级; edit3.Text:=query1班级; edit4.Text:=query1学年年度; edit5.Text:=query1应缴费用; end end;procedure TForm3.Button4Click(Sender: TObject);beginform2.Show; form3.close;end;procedure TForm3.Button3Click(Sender: TObject);beginapplication.Terminate;end;procedure TForm3.FormCreate(Sender: TObject);begin button2.Enabled:=false; edit10.Text:=datetostr(now);end;五 数据库浏览模块procedure TForm4.Button1Click(Sender: TObject);beginquery1.Close;query1.SQL.Clear;query1.SQL.Add(select * from 学生缴费);query1.Prepare;query1.open;end;procedure TForm4.Button2Click(Sender: TObject);beginform2.Show;form4.close; end;procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);beginform2.Show; end;procedure TForm4.Button3Click(Sender: TObject);beginapplication.Terminate;end;procedure TForm4.Button4Click(Sender: TObject);beginif edit1.Text thenbegin query1.Close;query1.SQL.Clear;query1.SQL.Add(select * from 学生缴费);query1.SQL.Add(where 学生编号=+edit1.text+);query1.Prepare;query1.open;endelseshowmessage(请输入学生编号);end;procedure TForm4.Button5Click(Sender: TObject);beginif edit2.Text thenbegin query1.Close;query1.SQL.Clear;query1.SQL.Add(select * from 学生缴费);query1.SQL.Add(where 学生姓名=+edit2.text+);query1.Prepare;query1.open;endelseshowmessage(请输入学生姓名);end;procedure TForm4.RadioGroup1Click(Sender: TObject);begin if RadioGroup1.ItemIndex=0 then begin query1.Close;query1.SQL.Clear;query1.SQL.Add(select * from 学生缴费);query1.SQL.Add(where 缴费=true);query1.Prepare;query1.open; end; if RadioGroup1.ItemIndex=1 then begin query1.Close;query1.SQL.Clear;query1.SQL.Add(select * from 学生缴费);query1.SQL.Add(where 缴费=false);query1.Prepare;query1.open; end end;六。添加记录模块procedure TForm5.Button2Click(Sender: TObject);begin form2.Show; form5.close;end;procedure TForm5.FormCreate(Sender: TObject);begin query1.Close;query1.SQL.Clear;query1.SQL.Add(select * from 学生缴费);query1.Prepare;query1.open;end;procedure TForm5.Button1Click(Sender: TObject);beginif (edit1.Text) and (edit2.Text) and (edit3.Text) and (edit4.Text) and (edit5.Text) and (edit6.Text) thenbegin query1.Close;query1.SQL.Clear;trybeginquery1.SQL.Add(insert into 学生缴费);query1.SQL.Add(学生编号,学生姓名,年级,班级,学年年度,应缴费用,缴费);query1.SQL.Add(values(+edit1.text+,+edit2.text+,+edit3.text+,+edit4.text+,+edit5.text+,+edit6.text+,false););query1.ExecSQL;endexceptshowmessage(your input is wrong! );end;query1.SQL.Clear;query1.SQL.Add(select * from 学生缴费);query1.Prepare;query1.open;endelse showmessage(输入有误);end;procedure TForm5.Button3Click(Sender: TObject);beginapplication.Terminate;end;procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);beginform2.Show; end;七。修改/删除模块procedure TForm6.Button2Click(Sender: TObject);beginif query1.RecordCount0 thenbeginquery1.SQL.Clear;query1.SQL.Add(update 学生缴费);query1.SQL.Add(set 学生编号=+edit7.text+,学生姓名=+edit1.text+,年级=+edit2.text+,班级=+edit3.text+,学年年度=+edit4.text+,应缴费用=+edit5.text+);query1.SQL.add(where 学生编号=+edit6.text+);query1.ExecSQL; endelse showmessage(输入有误!);end;procedure TForm6.Button1Click(Sender: TObject);beginif edit6.Text thenbeginquery1.Close;query1.SQL.Clear;query1.SQL.Add(select * from 学生缴费);query1.SQL.Add(where 学生编号=+edit6.text+);query1.Prepare;query1.open;if query1.RecordCount0 then begin edit7.Text:=edit6.Text; edit1.Text:=query1学生姓名; edit2.Text:=query1年级; edit3.Text:=query1班级; edit4.Text:=query1学年年度; edit5.Text:=query1应缴费用; if query1缴费=false then begin button3.Enabled:=true; button2.Enabled:=true; end end else begin showmessage(输入有误!); button2.Enabled:=false; button3.Enabled:=false; end end else showmessage(请输入学生编号); end;procedure TForm6.FormCreate(Sender: TObject);beginbutton2.Enabled:=false;button3.Enabled:=false;end;procedure TForm6.Button4Click(Sender: TObject);begin form2.Show; form6.close;end;procedure TForm6.Button5Click(Sender: TObject);beginapplication.Terminate;end;procedure TForm6.Button3Click(Sender: TObject);beginquery1.Close;query1.SQL.Clear;query1.SQL.Add(delete from 学生缴费);query1.SQL.Add(where 学生编号=+edit6.text+;);query1.ExecSQL;end;procedure TForm6.Button6Click(Sender

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论