欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    应用软件程序设计实验报告.docx

    • 资源ID:16002151       资源大小:624.97KB        全文页数:134页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    应用软件程序设计实验报告.docx

    1、应用软件程序设计实验报告福建工程学院计算机与信息科学系实验报告 2016 2017 学年第 2 学期 任课老师: 课程名称应用软件开发班级网工座号姓名实验题目人员档案的管理、物料档案管理、简单物料进仓/出仓信息管理、多物料进出仓信息管理、用户登录与权限设计、统计程序设计与报表打印实验时间2017-02至2017-06实验目的、要求实验课题一、人员档案的管理、物料档案管理设计实现对企业人员基本情况的档案的输入、删除与修改,企业人员基本情况主要包括:人员代码、姓名、性别、出生日期、身份证号、籍贯、家庭住址、联系电话、其它情况等。1 程序须包括主界面程序,程序名用“班级名座号main”,主界面可以通

    2、过菜单调用到其它所有子程序。2 人员档案的增加、修改、删除的程序,其中人员档案表在数据库中必须以“班级座号(表示人员的中英文信息)”来命名,人员档案的信息管理程序也必须以“班级座号(表示程序名的中英文信息)”来命名。其中人员代码不能为空,性别必须用“男”、“女”选择方式,出生日期必须用日期控件来控制。修改、删除程序在执行修改删除操作前,都必须进行记录定位操作,所以必须有相应的查询程序,可以借用查询程序来完成记录定位。人员档案的增加、修改、删除程序也可以用三个程序名,分别编程。3 人员档案查询程序,程序名以“班级座号(表示程序名的中英文信息)”来命名,可以在查询框中输入人员姓名中的任何一个单字,

    3、查询出含该字的所有人员。物料档案包括物料代码、物料名称、规格型号、计量单位、库存数量、备注等字段。1 物料档案的增加、修改、删除程序,程序名以“班级座号(表示程序名的中英文信息)”来命名,具体内容参考人员档案管理程序。物料表在数据库中以“班级座号(表示程序名的中英文信息)”来命名表,客户端输入时要求物料代码不为空,计量单位可以选择“件、套、公斤、吨、升、米、毫米、个”等,计量单位并可以输入其它单位名,库存数量默认为0。2 物料查询程序可以在通过输入框的文字进行模糊查询(物料代码、名称、规格中是否含有输入框的文字),程序名用“班级座号(表示程序名的中英文信息)”来命名。实验课题二、简单物料进仓/

    4、出仓信息管理企业物料进出仓的信息管理,物料进出仓的信息主要包括进出仓单号、进出仓日期、操作人员代码、备注、物料代码、进仓数量、出仓数量等1 企业仓库进出仓信息表以“班级座号(表示程序名的中英文信息)”来命名,可以用一个表,也可以用二个表(一对多关系),具体表设计的思路须在报告中描述。2 进仓程序与出仓程序可以合并,也可以分开做,名称以“班级座号(表示程序名的中英文信息)”来命名。其中操作人员必须用下拉框来选择;单号要自己编规则自动生成,单号产生规则在报告中说明;进出仓日期用日期控件;物料代码必须下拉框做选择;当物料出仓时必须判断出仓数量时候超过物料的库存数量,物料的库存数量在物料表中可以获得该

    5、物料的库存数量。进行进仓或出仓操作时必须通过调用存储过程来实现,存储过程将操作结果返回调用者,显示成功或失败的信息。3 进仓、出仓的存储过程可以合并或分开做,存储过程名称以“班级座号(表示程序名的中英文信息)”来命名,存储过程要判断物料是否存在,操作后物料库存数量是否不为负数;如果不满足条件显示,失败提示;如果满足条件,增加进出仓表记录一条,并根据进出仓物料的数量对物料表中库存数量进行修改,提交数据库操作,否则回滚。4 进出仓单查询程序,以“班级座号(表示程序名的中英文信息)”来命名,可以用进出仓日期起止条件,物料代码、操作人员、备注(用子串查询)来完成。实验课题三、多物料进出仓信息管理一般企

    6、业进行物料进出仓时,多在一个进出仓单号上同时对多种物料做同进或同出操作,通过程序实现多个物料在一个界面一个单号上同时实现进仓或出仓操作,如果不成功,必须全部回滚。1 多物料进仓出仓,可以在一个程序中完成,也可以分开编程,程序名以“班级座号(表示程序名的中英文信息)”来命名,同一单号中进出仓单号、进出仓日期、操作人员必须完全相同,同一单号中不能进仓与出仓同时存在,通过调用存储过程完成进出仓操作。2 多物料进出仓存储过程,过程名以“班级座号(表示程序名的中英文信息)”来命名,多物料进出仓单增加到表中,并修改多个物料的库存数量,失败就显示提示内容。实验课题四、用户登录与权限设计用户在这里就指操作人员

    7、,已经在人员档案中进行管理,通过设计用户登录和用户权限的管理,实现用户按权限访问资源,管理员按要求授予用户权限,登录程序安全稳定,设计用户菜单及程序调用。人员表中需要新增字段口令、用户权限。系统中每个操作人员都可以作为用户,当一个用户权限修改时,不会影响其他用户;可以对每个用户单独授予某个程序的执行权,也可以收回其执行权,而不影响其他用户的权限;1 用户登录程序,名称用以“班级座号(表示程序名的中英文信息)”来命名,输入用户名和口令,判断正确后,按用户的权限,显示有权的菜单项,无权菜单项必须不可见或不可操作。2 用户授权程序,名称用以“班级座号(表示程序名的中英文信息)”来命名。有授权权限的用

    8、户,可以指定某个用户获取某个程序执行权,或被禁止某个程序的执行权。实验课题五、统计程序设计与报表打印按物料统计进出仓流量,计算分析流动量最小的物料。按月份打印进出仓单表,打印进出仓单,按物料打印仓库账本。1 物料统计程序,统计各物料在指定时间内的进出仓数量总数,用图形显示,程序名以“班级座号(表示程序名的中英文信息)”来命名。2 打印进出仓单程序,给定月份,将该月进出仓单全部按单号顺序打印出来,程序名以“班级座号(表示程序名的中英文信息)”来命名。打印仓库账本程序,给定年份和物料,打印物料代码、名称、规格、计量单位、各日期的进仓、出仓和库存量;程序名以“班级座号(表示程序名的中英文信息)”来命

    9、名。实验设计内容MS SQL Server数据库、表及存储过程VS2010界面效果:登录界面:主菜单界面:人员档案查询界面:添加界面:修改界面:点击是按钮后删除界面:点击是按钮后:物料档案查询界面:添加界面:修改界面:点击是按钮后:删除界面:点击是按钮后:库存量查询:简单物料进出仓进仓:出仓:进仓记录查询:出仓记录查询:多物料进出仓:出仓:进仓记录查询:出仓记录查询:用户权限管理:查询权限收回权限:授予权限:打印报表:物料统计报表打印进出仓单打印仓库账本打印调试过程记录出现的主要问题及如何解决一、登录Login Form【1】 判断用户是否存在(与人员表有关)思路:将输入的用户名作与密码为条件

    10、在数据库用户表中查找是否存在匹配项【2】与Main窗体传参问题(Main显示相应用户的权限结果;登录用户在主界面显示欢迎信息)思路:在Login中定义一个属性并在呼出Main时将其传到Main中(构造方法),在Main中访问数据库得到该用户权限字段,并将其显示在Main中(有权限显示高亮即可用,无权限显示灰色即不可用)二、主菜单Main Form【1】权限的显示(与权限管理有关)思路:取出权限字段并将相应的子菜单状态处理【2】子菜单都是灰色,父菜单不显示高亮思路:判断所有的子菜单是否可用,至少有一个可用父菜单高亮显示,都不可用则Enable属性为false。三、人员管理StaffManagem

    11、ent Form【1】增删改查操作用户在执行其中一个可能会使用另一个,为避免重返主菜单再呼出相应的窗体的麻烦和多窗体的冗余,添加tabControl控件实现在同一Form之间的切换。【2】 异常处理(1)判断空输入(2)查询不到显示异常提示信息(3)添加已有的人员代码(primary key)(4)修改删除操作定位查找失败思路:增加if判断语句处理捕获的异常并显示相应提示信息四、物料管理GoodsManagement与人员管理类似五、物料库存量查询GoodsCountSearch(与物料表有关)【1】解决实现单物料查询与多物料库存量的查询思路:添加dataGridView控件并将物料代码,物料

    12、名称及库存量显示出来,其余不相干信息不显示六、单物料进出仓SimpleInout【1】单号的生成生成规则:进出仓日期+序号(某天第几单,递增)+进出仓状态标记+操作人员代码【2】进出仓的切换思路:为避免类似操作带来窗体及控件的冗余,使用radioButton实现进出仓的切换【3】 操作人员代码与物料代码与数据库的同步绑定(与人员表和物料表有关)从数据库emp、goods表中的相应字段内容填充到comboBox控件items属性七、多物料进出仓MultiInout【1】同一单号的日期及人员代码相同实现思路:在确定进出仓并将第一条记录添加完成后将日期和人员的输入显示隐藏,避免用户更改以确保相同【2

    13、】操作失败的信息提示(1)进出仓时物料不存在(2)出仓时库存量不足思路:增加if判断【3】单条数据的存放思路:在VS前端创建DataTable对象作为临时表存放,在点击确定按钮后将多条记录作为事物提交到数据库。八、权限管理AuthorizeManagement与人员表有关(默认密码:000000默认权限:所有查询,权限管理及打印报表)【1】选或反选、子项展开与隐藏实现功能如下:1.父节点勾选,则子节点全部勾选;2.父节点不勾选,则子节点全部不勾选;3.子节点部分勾选,则父节点不勾选;4.子节点全部勾选,则父节点被勾选。思路:以treeView控件代替checkBox控件(树状遍历树节点,子节点

    14、与父节点的关系)【2】查询权限思路:取出该用户的权限字段并还原对应结果【3】授予权限思路:以不同字母标识各个节点,选中则添加相应字母,更新emp表的permission(权限)字段【4】收回权限思路:将欲收回权限选中并作记录,然后将其逐一截取一个(Substring方法),在数据库取回的权限字段的字符串中查找(IndexOf方法),若找到将其移除(Remove方法),若找不到提示该用户无此权限,无法收回。最后将其更新到数据库九、报表打印【1】链接数据库时正在被使用思路:连接时不选SQL Server数据库文件而选SQL Server数据库【2】将进出仓总数合并在一个条形统计图中只有进出仓同时存

    15、在的物料才会显示思路:修改sql语句使得在某一时间段只有进仓或者出仓的物料也显示实验结果记录以及与预期结果比较以及分析一、实验达到了预期的效果。二、比较与分析:1、日期的内容用Substring将其组合与Value属性使用Value属性使得程序更加简洁,可读性更好2、单号的递增查找当天最大并递增访问数据库查找单号的最大(max关键字),截取(Substring方法)得到count(序号)的部分并在其基础上加一,避免单号的重复导致主键的冲突3、物料进出仓进出仓记录在同一张表,以状态(进仓或出仓)字段区别,存储过程也是同一个。是程序更加精简,不过可能会降低程序的可读性,带来维护的麻烦。总结以及心得

    16、体会起初每个实验我都当成小实验来做,也基本实现了题目所要求的功能,但是没有集成而导致没有关联。后期把所有的实验整合后并修复了部分BUG,感觉比较像在做一个小项目。实验一刚开始对于增删改查使用四个Form实现,后来觉得这些操作可以放在一起,改用一个Form和tabControl来实现;在做实验三多物料进出仓时用dataGridView与数据库表的数据绑定,但是没有使用存储过程,后来改用临时表的思路, 实验四权限管理起初只是简单地使用checkBox实现,后来觉得不能全选反选,扩展隐藏改用treeView,但是treeView的点击事件实现全选反选功能时碰了壁,最后在网上查找相关资料才解决,但是还

    17、没有解决子节点部分选中父节点为灰色的功能。实验五做报表时按照老师给的教学视频连接数据库出现正在使用报错提示,通过自己的摸索不使用老师给出的连接SQl Server数据库文件的方法而改用连接SQL Server数据库最终成功连接到数据库;在做第一题条形统计图时发现无法显示某段时期只有进出或出仓的物料统计信息,修改sql查询语句终于实现了预期的结果。总之,这次的应用软件设计不但自学了C#语言,还自行开发了一个小项目,感觉挺有成就感的。当然,还有很多的设计思想和控件的使用没有尝试过,希望再接再厉!指导老师评阅意见指导老师: 年 月 日填写内容时,可把表格扩大。实验的源程序代码(要有注释)附在表后。附

    18、源代码:MS SQL Servercreate database sam on( name=samdata, filename=e:databasesam.mdf, size=50MB, MAXSIZE=200MB, filegrowth=15%)log on ( name=samlog, filename=e:databasesam.ldf, size=20mb, filegrowth=1mb)use sam;drop database sam;-实验一-人员表create table wg212_emp( eno varchar(15) primary key, ename varchar

    19、(15), sex varchar(6) check(sex in (男,女), birthday datetime, id varchar(20), nation varchar(20), addr varchar(30), tel int, others varchar(30),)insert into wg212_emp(eno,ename,sex,birthday,id,nation,addr,tel,others)values (01,张飞,男,1995-06-01,001,河南,beijing,111,nothing);insert into wg212_emp(eno,ename

    20、,sex,birthday,id,nation,addr,tel,others)values (02,黄月英,女,1993-05-01,002,江西,fuzhou,222,null);insert into wg212_emp(eno,ename,sex,birthday,id,nation,addr,tel,others)values (03,贾宝玉,男,1992-02-01,003,福建,shanghai,333,nothing);/*truncate table wg212_emp;drop table wg212_emp;delete from wg212_emp;select * f

    21、rom wg212_emp;*/-物料表create table wg212_goods( goodsNo varchar(15) primary key, goodsName varchar(15), specs varchar(15), units varchar(10), saveCount float default 0, remarks varchar(30),)insert into wg212_goods values(01,大米,包,斤,100,null);insert into wg212_goods values(02,小麦,袋,吨,100,null);insert int

    22、o wg212_goods values(03,加多宝,箱,吨,100,null);insert into wg212_goods(goodsNo) values(04);select * from wg212_goods;drop table wg212_goods;truncate table wg212_goods;-实验二-简单物料进出仓记录表create table wg212_simple( orderID varchar(50) primary key, inoutDate datetime, eno varchar(20), remarks varchar(20), goods

    23、No varchar(15), inoutCount float, operateState varchar(10)truncate table wg212_simple;drop table wg212_simple;-存储过程if (exists(select * from sys.objects where name=wg212_simplePro) drop proc wg212_simpleProgocreate proc wg212_simplePro( orderID varchar(50), inoutDate datetime, eno varchar(15), remark

    24、s varchar(20), goodsNo varchar(15), inoutCount float, operateState varchar(10)asbeginbegin transactionif(not exists(select * from wg212_goods where goodsNo=goodsNo) beginraiserror(不存在该物料,16,1)endelse beginif(operateState=进仓) begininsert into wg212_simple values(orderID,inoutDate,eno,remarks,goodsNo,

    25、inoutCount,operateState)update wg212_goods set saveCount+=inoutCount where goodsNo=goodsNoendif(operateState=出仓)if(select saveCount from wg212_goods where goodsNo=goodsNo)=inoutCount) beginupdate wg212_goods set saveCount-=inoutCount where goodsNo=goodsNoinsert into wg212_simple values(orderID,inout

    26、Date,eno,remarks,goodsNo,inoutCount,operateState)endelse beginraiserror(库存量不足,16,1)endendcommitendgo-exec wg212_simplePro s1,2017-05-12,01,ok,1,100,进仓select * from wg212_goods;select * from wg212_simple;truncate table wg212_simple;select max(orderID) from wg212_simple where orderID like 20170614%;de

    27、lete from wg212_simple where inoutDate between 2017-06-13 and 2017-06-15 orderID=20170614000801-实验三create table wg212_multiSame( orderID varchar(50) primary key, inoutDate datetime, eno varchar(15)create table wg212_multi( orderID varchar(50), remarks varchar(20), goodsNo varchar(15) not null, inout

    28、Count float, operateState varchar(10), -foreign key(orderID) references wg212_multiSame(orderID),)select * from wg212_multi;select * from wg212_multiSame;select wg212_multiSame.orderID,inoutDate,eno,remarks,goodsNo,inoutCount,operateState from wg212_multiSame right outer join wg212_multi on wg212_mu

    29、lti.orderID=wg212_multiSame.orderID where goodsNo=2;truncate table wg212_multiSame;truncate table wg212_multi;drop table wg212_multi;drop table wg212_multiSame;-存储过程if (exists(select * from sys.objects where name=wg212_multiPro) drop proc wg212_multiProgocreate proc wg212_multiPro ( orderID varchar(

    30、50), inoutDate datetime, eno varchar(15), remarks varchar(20), goodsNo varchar(15), inoutCount float, operateState varchar(10)asbeginbegin transactionif(exists(select * from wg212_goods where goodsNo=goodsNo) beginif(operateState=进仓) beginupdate wg212_goods set saveCount+=inoutCount where goodsNo=goodsNoinsert into wg212_multi va


    注意事项

    本文(应用软件程序设计实验报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开