电子科技大学软件开发环境实验报告
软件开发环境实验报告

软件开发环境大作业班级:2012学号:2012姓名:教师:孟宇龙、李晋2015年6月一、文挡规范(F0) 5分二、Project项目管理工具(F1) 10分完成本次作业的项目管理(包括任务名称,任务计划时间,分配资源,完成情况,实际用时)至少20个任务点,有前置任务,分级, 任务升降级。
人力资源为自己学号+前后两个学号截图至少包含:1.甘特图 5分2.跟踪甘特图 1分3.任务分配状况图 2分4.成本视图 2分(申请优秀必做)三、建模工具(Visio) (F2) 20分1.业务流程图(visio) 4分2.功能结构分解图(visio) 4分商品库存管理模块功能划分图:库存管理库存查询库存预警库存登记报损管理报损管理报损管理商品管理模块功能划分:商品管理销售管理销售查询退货管理退货查询修改销售信息添加销售信息删除销售信息查询销售信息导出销售信息添加退货信息修改退货信息删除退货信息查询退货信息导出退货信息商品采购管理模块功能划分图:采购管理商品采购查询采购商品管理登录进货信息采购商品管理采购商品管理修改进货信息删除进货信息档案管理模块划分:档案管理供货商管理员工管理添加员工信息修改员工信息删除员工信息删除员工信息添加供货商信息修改供货商信息删除供货商信息查询供货商信息分析模块:分析管理库存分析销售分析报损分析采购分析3. ER 图(visio 或ERwin) 2分(实体和联系,少量属性)进货职工编号职工/用户姓名性别进货单号销售日期数量名称身份证号m销售m客户n价格进货日期商品编号进货单号商品n工资条形码供货m供货商n银行账号供货日期开户行地址名称电话供货商编号4. 系统结构图 2分超市销售管理系统商品管理采购管理档案管理系统管理库存管理分析管理商品销售管理 商品退货管理 商品销售查询 商品退货查询 采购商品管理 商品采购查询 员工管理供应商管理数据还原 库存查询 数据备份 库存报警 库存等级 库存分析 报损管理 销售分析 采购分析 报损分析5. 绘制软件功能界面 3分(申请优秀必做)使用visio 的“软件”的windows xp 用户界面(窗口和对话框,公共控件形状)登陆界面:用户名密码主功能:超市商品销售管理系统主功能选项商品管理采购管理档案管理库存管理系统管理分析管理相关报表业务员进货明细表供应商供货明细表商品销售明细表退出系统商品进货管理界面:商品采购返回单价(元)商品名称商品货号供应商进货日期数量商品货号商品名称单价(元)数量进货日期供应商增加修改删除6. 时序图 5分(申请优秀必做) 进货信息查询时序图:销售信息查询时序图:四、Power Designer 设计(F3) 10分1. 绘制CDM 模型 5分(2个实体,1个联系,主属性必须有,少量属性)2. 生成PDM 模型 3分3. 生成SQL 脚本 2分/*==============================================================*/StockStaff*#**姓名职工编号性别身份证号...Characters (20)Characters (20)Characters (10)Characters (20)Product*#*商品名称商品编号价格...Characters (20)Characters (20)Characters (20)FK_Stock FK_Stock2Staff姓名职工编号性别身份证号...char(20)char(20)char(10)char(20)<pk>Product商品名称商品编号价格...char(20)char(20)char(20)<pk>Stock职工编号商品编号char(20)char(20)<pk,fk1><pk,fk2>/* DBMS name: MySQL 5.0 *//* Created on: 2015/6/17 9:11:18 *//*==============================================================*/drop table if exists Product;drop table if exists Staff;drop table if exists Stock;/*==============================================================*//* Table: Product *//*==============================================================*/create table Product(ProName char(20) not null,ProNo char(20) not null,Price char(20) not null,primary key (ProNo));/*==============================================================*//* Table: Staff *//*==============================================================*/create table Staff(Name char(20) not null,StaID char(20) not null,Sex char(10) not null,IDNumber char(20) not null,primary key (StaID));/*==============================================================*//* Table: Stock *//*==============================================================*/create table Stock(StaID char(20) not null,ProNo char(20) not null,primary key (StaID, ProNo));alter table Stock add constraint FK_Stock foreign key (StaID)references Staff (StaID) on delete restrict on updaterestrict;alter table Stock add constraint FK_Stock2 foreign key (ProNo)references Product (ProNo) on delete restrict on updaterestrict;五、MyEclipse工具开发Struts (F4) 40分(报告中包含截图和核心代码,页面和代码包含学号后4位)使用Struts开发邮件管理系统.1.herbernate使用 5分2.用户登陆功能 5分3.用户注册功能(包含多个不同类型的Struts标签) 5分4.表格浏览邮件功能(收邮件) 5分(申请优秀必做)5.查找邮件功能 5分(申请优秀必做)6.新建邮件功能 5分7.删除邮件功能 5分(申请优秀必做)8.修改个人资料功能 5分(视频录制操作过程作为附件,包含各功能的操作演示)六、SVN版本控制(F5) 10分对开发过程中的代码进行版本控制.(所有操作要体现包含学号后四位)1.创建新版本库 1分2.创建用户 1分3.导入数据到版本库 1分4.在客户端检出副本 2 分(两次检出不同版本)检出两个文件夹5.检出副本后,在本地进行修改,将修改提交到版本库 5 分(两次提交,产生2个新版本)(申请优秀必做)修改文件内容:检出错误:再次修改,检出错误:提交后无误。
软件开发实验报告

软件开发实验报告篇一:软件开发实验报告本科实验报告课程名称:软件开发环境与工具实验报告实验项目:CASE工具PowerDesigner的使用实验地点:专业班级:指导教师:XX年10月22日本科实验报告课程名称:软件开发环境与工具实验报告实验项目:搭建Visual Studio开发环境,设计实验地点:致远楼B303指导教师:崔秀娟XX年9月28日篇二:软件开发平台实验报告课程设计报告课程名称: 软件开发平台与工具任课教师: 姓名:学号:1. 引言1.1. 课程设计项目1.2. 背景简介从编程之初,便免不了和方法,类,接口之类的东西打交道。
久而久之,自然会对此进行总结,由此而产生了开发平台。
而今中国的程序员之中,有很大一部分都是编一些企业MIS、政府MIS之类的程序。
其主要工作就是对数据进行一下增删改查的操作,对MIS系统做一些基础的管理而已。
软件开发平台有两种平台模式:一种是传统的C/S架构模式,一种是现在流行的B/S架构模式。
B/S 架构模式是随着互联网的流行,自然又要求以互联网为基础,把这些都网络化,以实现网络资源共享,而不是传统的单机模式。
这便激发了软件开发者的创造力,形成了软件开发平台的B/S架构模式(web开发平台)。
对于web开发平台,我的个人理解是:1.以web2.0为基础,基于互联网的B/S架构的软件。
它本身也是一个软件,只不过不是最终的软件产品,而是用于二次开发的软件。
2.用于实现各类业务系统,如CRM、MIS、ERP、HIS、OA 等等的开发。
web开发平台本身就是一个二次开发平台,他不同于诸如eclipse等这样的开发工具,需要写大量的代码来完成各个业务模块,二次开发平台只需要设计好自己的数据结构,进行一些简单的配置、拖拉等操作就可以完成业务系统的开发。
3.能够快速的实现各种报表包括复杂的图表报表的设计制作,传统的编码式开发需要自己去编写想要的各种报表,而运用开发平台就简单多了,可以很轻松的配置出各种报表。
电子科技大学C++程序设计实验报告

实验报告课程名称:c++程序设计学院专业:计算机科学与工程计算机科学与技术学生姓名:***学号:***********指导教师:丘志杰杨浩淼实验地点:主楼 A2-412实验一:一、实验目的:学习VC++开发环境的基本使用方式,包括项目的创建、文件的添加、程序的编译、运行和调试等。
二、实验内容:熟悉VC++开发环境,实现编译器输出helloworld,在给出的程序computer sale 中找出一个以上的bug。
三、实验原理:1) helloworld输出代码:#include <iostream>using namespace std;int main(){cout<<" Hello C++ "<<endl;return 0;}2) computer sale 源代码:#include "iostream"using namespace std;struct Computer{char model[20];int total;}computers[100];int modelCount = 0;void list();void enterWarehouse();void outWarehouse();void input(struct Computer &computer);int find(char* model);int main(){int action;do{cout<<"-----------菜单-----------"<<endl;cout<<"1)查看库存"<<endl;cout<<"2)电脑入库"<<endl;cout<<"3)售出"<<endl;cout<<"4)退出程序"<<endl;cin>>action;switch(action){case 1:list();break;case 2:enterWarehouse();break;case 3:outWarehouse();break;case 4:return 0;default:cout<<"您输入了错误的菜单项,请重新选择!";}}while(1);}void list(){cout<<"-------库存-------"<<endl;cout<<"型号\t"<<"数量"<<endl;for(int i=0;i<modelCount;i++){cout<<computers[i].model<<"\t"<<computers[i].total<<endl;}cout<<"-------库存-------"<<endl;}void enterWarehouse(){struct Computer computer;input(computer);int i = find(computer.model);if(i == modelCount){strcpy(computers[i].model , computer.model);computers[i].total = computer.total;modelCount++;}else{computers[i].total += computer.total;}}void outWarehouse(){struct Computer computer;input(computer);int i = find(computer.model);if (i==0) {cout<<"型号错误!"<<endl;}else{computers[i].total -= computer.total;}}void input(struct Computer &computer){cout<<"型号:";cin>>computer.model;cout<<"数量:";cin>>computer.total;}int find(char* model){int i;for(i=0;i<modelCount;i++){if(strcmp(computers[i].model,model) == 0){break;}}return i;}四、实验数据及结果分析:(vc编译)1)2)对于第二个找bug程序,其实有很多不合理的地方,比如这段:int i = find(computer.model);if (i==0) {cout<<"型号错误!"<<endl;}else{computers[i].total -= computer.total;}调用find函数,其实只要i不为零则就型号错误,而find函数的返回值其实就是i,显然不合情理。
电子科大环境工程实训报告

一、实训背景随着我国经济的快速发展,环境问题日益突出。
为了培养具有创新精神和实践能力的环境工程人才,电子科技大学特开设了环境工程实训课程。
本次实训旨在通过实际操作和现场学习,使学生对环境工程的理论知识有更深入的理解,提高解决实际问题的能力。
二、实训目的1. 理解环境工程的基本理论和方法。
2. 掌握环境监测和污染治理的基本技能。
3. 培养团队合作精神和实际操作能力。
4. 增强环保意识和责任感。
三、实训内容本次实训主要包括以下内容:1. 环境监测与评价:学习环境监测的基本原理和方法,包括水质、大气、土壤等环境指标的监测。
通过实际操作,了解监测仪器的使用和维护。
2. 污染治理技术:学习水处理、固废处理、大气污染治理等基本技术。
了解不同污染物的处理方法,如物理法、化学法、生物法等。
3. 环境影响评价:学习环境影响评价的基本流程和方法,包括环境影响识别、环境影响预测和评价报告撰写。
4. 环境工程案例分析:通过分析实际案例,了解环境工程在实际工程中的应用,提高解决实际问题的能力。
四、实训过程1. 理论学习:首先,我们对环境工程的基本理论进行了系统学习,包括环境科学、环境监测、污染治理、环境影响评价等课程。
2. 实验室实训:在实验室,我们进行了水质、大气、土壤等环境指标的监测实验,学习了监测仪器的使用和维护。
3. 现场实训:我们前往污水处理厂、垃圾处理场、大气污染治理设施等现场进行实训,了解了污染治理的实际操作过程。
4. 案例分析:我们分析了多个环境工程案例,包括水污染治理、固废处理、大气污染治理等,了解了环境工程在实际工程中的应用。
五、实训成果1. 理论知识掌握:通过本次实训,我们对环境工程的基本理论有了更深入的理解,为今后的学习和工作打下了坚实的基础。
2. 实践技能提高:通过实际操作和现场学习,我们掌握了环境监测和污染治理的基本技能,提高了解决实际问题的能力。
3. 团队合作精神:在实训过程中,我们学会了与他人合作,共同完成任务,培养了团队合作精神。
软件开发实验报告

软件开发实验报告软件开发实验报告一、引言在当今信息化社会,软件开发成为了推动科技进步和社会发展的重要手段。
本次实验旨在通过开发一个简单的软件项目,探索软件开发的基本流程和技术。
二、需求分析在软件开发的第一阶段,我们需要明确软件的需求和目标。
本次实验的软件项目是一个个人任务管理工具,旨在帮助用户高效地管理个人任务和时间。
三、设计与规划在需求分析的基础上,我们开始进行软件的设计和规划。
首先,我们确定了软件的基本功能模块,包括任务添加、任务查看、任务编辑和任务删除等。
然后,我们进行了软件的界面设计,力求简洁直观,提供良好的用户体验。
最后,我们制定了详细的开发计划,明确了每个开发阶段的任务和时间节点。
四、开发与测试在设计与规划完成后,我们进入了软件的开发与测试阶段。
根据开发计划,我们采用敏捷开发的方式,将整个开发过程分为若干个迭代周期。
每个迭代周期内,我们先进行功能开发,然后进行单元测试和集成测试,确保软件的质量和稳定性。
五、问题与解决在开发过程中,我们遇到了一些问题,例如界面设计与实现的不一致、功能模块的交互问题等。
为了解决这些问题,我们进行了团队讨论和合作,通过不断优化和调整,最终找到了合适的解决方案。
六、用户反馈与优化在软件开发完成后,我们邀请了一些用户进行试用,并收集他们的反馈和建议。
根据用户的反馈,我们对软件进行了一些优化和改进,提升了软件的易用性和功能完整性。
七、总结与展望通过本次实验,我们深入了解了软件开发的基本流程和技术,提高了团队合作和问题解决的能力。
同时,我们也认识到软件开发是一个复杂而庞大的系统工程,需要不断学习和实践。
未来,我们将继续深入研究软件开发领域,探索更多创新的方法和技术,为社会发展做出更大的贡献。
八、致谢在此,我们要感谢实验指导老师的悉心指导和帮助,以及团队成员的辛勤付出和合作精神。
没有你们的支持和帮助,我们无法完成这个软件开发实验。
谢谢大家!以上就是本次软件开发实验的实验报告,通过这次实验,我们不仅学到了软件开发的基本流程和技术,还提升了团队合作和问题解决的能力。
电子科技大学实验报告

(一)用WinDLX模拟器执行求阶乘程序fact.s。
这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。
该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。
(二)用WinDLX模拟器执行程序gcm.s。
该程序从标准输入读入两个整数,求他们的greatest common measure,然后将结果写到标准输出。
该程序中调用了input.s中的输入子程序。
(三)用WinDLX模拟器执行求素数程序prim.s。
这个程序计算若干个整数的素数。
六、实验器材(设备、元器件):
PC微机一台
七、实验步骤及操作:
1.双击WinDLX图标运行WinDLX。装入测试程序之前,先初始化WinDLX模拟器:点击File菜单中的Reset all菜单项,弹出一个“Reset DLX”对话框。然后点击窗口中的“确认”按钮即可。
1.2.选择File/Load Code or Data,按如下步骤操作,可将fact.s和input.s这两个程序装入主存:
◆点击fact.s
◆点击select按钮
◆点击input.s
◆点击select按钮
◆点击load按钮
3.点击主窗口中的Execution开始运行。
4.程序gcm.s和prim.s的运行过程同上。
八、实验数据及结果分析:
九、实验结论:
十、总结及心得体会:
十一、对本实验过程及方法、手段的改进建议:
报告评分:
指导教师签字:
电子科技大学
实验报告
学生姓名:
学号:
一、实验室名称:计算机学院计算心
二、实验项目名称:熟悉WinDLX的使用
软件开发环境与工具实验报告(2013)
本科实验报告
课程名称:软件开发环境与工具
实验项目:CASE工具PowerDesigner的使用实验地点:
专业班级:学号:
学生姓名:
指导教师:
2013年月日
本科实验报告
课程名称:软件开发环境与工具
实验项目:搭建visual studio开发环境,设计
windows控制台应用程序
实验地点:
专业班级:学号:201100
学生姓名:
指导教师:
2013年月日
本科实验报告
课程名称:软件开发环境与工具
实验项目:掌握在Visual Studio 2010中进行
Web应用程序的设计方法
实验地点:
专业班级:学号:
学生姓名:
指导教师:
2013年月日
本科实验报告
课程名称:软件开发环境与工具
实验项目:掌握在Visual Studio 2010中进行
Windows Form应用程序的设计方法实验地点:致远楼501
专业班级:1124班学号:2011005677
学生姓名:高睿
指导教师:崔秀鹃
2013年10 月21 日。
开发环境建立实验报告
一、实验目的1. 掌握开发环境的搭建流程。
2. 熟悉常用开发工具的使用方法。
3. 提高编程实践能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:IntelliJ IDEA4. 数据库:MySQL5. 网络环境:稳定网络连接三、实验内容1. 开发环境搭建2. 编写Java程序3. 连接数据库4. 测试程序功能四、实验步骤1. 开发环境搭建(1)下载并安装Java开发包(JDK)1)访问Oracle官网,下载适用于Windows操作系统的JDK版本。
2)双击下载的安装包,按照提示进行安装。
3)安装完成后,在系统环境变量中配置JDK的bin目录。
(2)下载并安装IntelliJ IDEA1)访问IntelliJ IDEA官网,下载免费版或社区版。
2)双击下载的安装包,按照提示进行安装。
3)安装完成后,启动IntelliJ IDEA。
(3)配置MySQL数据库1)下载并安装MySQL数据库。
2)运行MySQL安装程序,按照提示进行安装。
3)安装完成后,配置MySQL环境变量。
2. 编写Java程序(1)创建Java项目1)在IntelliJ IDEA中,选择“File” -> “New” -> “Project”。
2)选择“Java” -> “Maven” -> “Next”。
3)输入项目名称、项目位置等信息,点击“Finish”。
(2)编写Java代码1)在项目目录下,创建一个名为“src”的文件夹。
2)在“src”文件夹下,创建一个名为“com”的包。
3)在“com”包下,创建一个名为“main”的文件夹。
4)在“main”文件夹下,创建一个名为“java”的文件夹。
5)在“java”文件夹下,创建一个名为“HelloWorld”的类。
6)在HelloWorld类中,编写以下代码:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```(3)运行Java程序1)在HelloWorld类上,右键点击“Run”。
软件开发毕业实习报告600字5篇
软件开发毕业实习报告600字5篇软件开发毕业实习报告600字一转眼已经在___实训这样的大家庭中生活快10个月时间了,之前的兴奋、喜悦如今已经让我熟悉,在这里的每一天都会让我有成为一名真正财富拥有者的冲动。
也许对别人来说,一定不能体会为什么在这不到10个月的时间会让一个人有翻天覆地的变化,但是变化就是这样一点一点产生的。
在___的实训生活中,我深深体会到了自己在专业知识方面的欠缺和不足,也意识到了自己做为计算机软件工程专业的学生,要想在以后的职业中崭露头角,除了要有过硬的理论知识,健康的体魄外,还必须具备良好的心理素质,使自己在以后的途中无论经历什么样的困难,都立于不败之地。
这正是本次实训的根本目的。
通过实训中心老师的课堂讲解与企业化标准的培训,使我加深了对自己专业的认识。
从而确定自己以后的努力方向。
要想在短暂的实训时间内,尽可能多的学到东西,就需要我们跟老师或同学进行很好的沟通,加深彼此的了解。
只有我们跟老师多沟通,让老师更了解我们,才能跟真切的对我们进行培训工作。
由此,班级的文化共享就在生活中慢慢形成了。
纸上得来终觉浅,绝知此事要躬行!在这短短的时间里,让我深深的感觉到自己在实际应用中所学专业知识的匮乏。
让我真真领悟到学无止境这句话的涵义。
而老师在专业认识周中所讲的,都是课本上没有而对我们又非常实用的东西,这又给我们的实训增加了浓墨淡采的光辉。
我懂得了实际生活中,专业知识是怎样应用与实践的。
在这些过程中,我不仅知道了职业生涯所需具备的专业知识,而且让我深深体会到一个团队中各成员合作的重要性,要善于团队合作,善于利用别人的智慧,这才是大智慧。
靠单一的力量是很难完成一个大项目的,在进行团队合作的时候,还要耐心听取每个成员的意见,使我们的组合达到更加完美。
这次实训带给我太多的感触,它让我知道工作上的辛苦,事业途中的艰辛。
让我知道了实际的工作并不像在学校学习那样轻松。
人非生而知之,虽然我现在的知识结构还很差,但是我知道要学的知识,一靠努力学习,二靠潜心实践。
大学生软件开发实习总结范文5篇
大学生软件开发实习总结范文5篇篇1一、实习背景与目标在我所参与的软件开发实习中,我得到了难得的实战经验和技术学习的机会。
实习的主要目标在于掌握软件开发流程,理解软件开发的实际运作,通过实践提升编程能力,并学习如何将理论知识应用于实际项目中。
通过本次实习,我旨在培养严谨的工作态度、团队合作精神和良好的项目管理能力。
二、实习内容在实习期间,我有幸参与了多个项目的开发工作。
这些项目包括企业后台管理系统的开发、移动应用优化以及一个在线教育平台的构建。
主要工作内容如下:1. 后台管理系统开发:我参与了系统的需求分析、设计、编码和测试工作。
在此过程中,我学习了如何使用Spring Boot框架进行快速开发,并掌握了MySQL数据库的优化技巧。
2. 移动应用优化:针对现有移动应用存在的问题,我参与了性能分析和优化工作。
通过深入研究Android和iOS开发的技术细节,我学会了如何利用第三方工具和库来提高应用的性能和稳定性。
3. 在线教育平台构建:在此项目中,我负责了课程管理模块的开发。
通过与技术团队的沟通合作,我不仅提升了前端开发技能,还学会了如何与后端工程师协同工作,确保数据交互的流畅性和安全性。
三、实习收获与成长在实习期间,我不仅提升了自己的技术能力,还学到了许多宝贵的经验:1. 严谨的工作态度:软件开发需要细致入微的精神。
我学会了如何对待每一个细节,确保代码的准确性和可维护性。
2. 团队合作精神:在项目中,我学会了与团队成员有效沟通,共同解决问题和面对挑战。
团队合作的力量让我更加认识到集体的智慧和力量。
3. 项目管理能力:通过参与项目的规划、执行和监控,我学会了如何制定项目计划,合理分配资源,并把控项目进度。
4. 实际问题的解决能力:在实习中遇到的挑战使我学会了如何将理论知识应用于实践,并通过不断尝试和学习找到解决问题的方法。
四、存在问题与建议在实习过程中,我也遇到了一些问题。
例如,有时难以迅速理解复杂的需求,或在面对技术难题时感到压力较大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.....................
..................... jmp xxx 跳转到 B 处执行
}
C:
代码清单 10
while循环的代码示例: int _tmain(int argc, _TCHAR* argv[]) {
int i = 0; int j = 0; while(i<10) {
eax,dword ptr [ebp-8]
0019139F add
eax,1
001913A2 mov
dword ptr [ebp-8],eax
i++;
001913A5 mov
eax,dword ptr [ebp-14h]
001913A8 add
eax,1
001913AB mov
dword ptr [ebp-14h],eax
C:\> –c uncompress_filename compress_filename 上述命令中,是程序名,-c 表示要进行压缩。uncompress_filename 是要压缩的文件名, 可以包含路径信息,而 compress_filename 是压缩之后的文件名,同样可以包含路径信息。用 户可以通过如下命令进行解压: C:\> –u compress_filename uncompress_filename 上述命令中,-u 表示要执行解压命令。compress_filename 是要解压的文件名,可以包含 路径信息;uncompress_filename 就是解压后所得到的文件,同样可以包含路径信息。 提示:在实现程序时,需要考虑如何存储 huffman 树或者编码表或者词频表等等。 本实验要求实现两个版本的程序,一是 C 语言版本的,二是 C++版本的。对这两个版本的 要求如下: 对于每一个版本的程序,需要在实验报告中给出函数调用关系图、流程处理关系图以
00251395处 mov
dword ptr [ebp-14h],0 将[ebp-14]设置为0,即将j设置为0;
在地址0025139C处 cmp
dword ptr [ebp-8],0Ah ,将i的值与10做比较,在地址002513A0 处
jge
002513B6 如果i小于10,则继续向下执行,若i>=10 则跳转到 002513B6 处执行(即返回语句),若继续向下执
及它们的文字说明等内容; 对于每一个版本的程序,都需要在实验报告中给出源代码。为了便于查重,代码中注
释的比例要占到总行数的 20%; C++版本的程序,需要给出类关系图。 实验报告的评分标准,包括以下几个方面: 实验报告是否规范 实验报告内容是否详实 实验报告中是否包含了函数调用图、流程图、类图以及它们的文字说明 实验报告中的代码注释是否达到要求 程序是否正确无误 程序是否严格按照分函数的原则编写 C++版本的程序类关系的耦合度如何
电子科技大学
实验报告
学生姓名:郭小明 一、实验室名称: 主楼 A2-412
学 号:
二、实验项目名称:软件开发环境实验三:函数调用栈帧布局
三、实验原理: 编译器对函数调用的支持,通常情况下都会使用栈。例如使用栈传递传参,
保存函数返回地址。另外,局部变量也通常位于栈上。Visual Studio 2008 为 了防止栈上局部数组溢出,又采取了特殊的保护措施。本实验就需要通过观 察栈帧布局,来了解这些保护措施。本实验的环境是 Visual Studio 2008。
while()
A : cmp 操作数 1 操作数 2 while 循环结束条件做比较
jxx B
若不符合条件则,跳转到 B 处继续执行,若符合,则顺序执行循环体
{
循环体指令
....................................
....................................
....................................
} jmp A 跳转到 A 处继续执行 B:....................................
代码清单 11
int _tmain(int argc, _TCHAR* argv[])
{
int j = 0;
int i = 0;
Huffman 编码的基本原理
本实验要求使用 Huffman 编码算法,实现对文件的压缩和解压。因此,我们首先介绍 huffman 的编码算法。
Huffman 编码是一种可变长编码方式,是由美国数学家 David Huffman 创立的,是二叉 树的一种特殊转化形式。编码的基本原理是:将使用次数多的代码转换成长度较短的编码,而 使用次数少的代码则可以使用较长的编码,并且保持编码的唯一可解性。
行,则002513A2 002513A5 002513A8 三地址处的指令对j进行加一操作,002513AB
002513AE 002513B1 对i进行加一操作;在 002513B4 jmp
0025139C 跳转回cmp的指令处继续执行。
通过代码清单10的反汇编结果 ,while语句的反汇编代码规律
程序实现是否考虑了大文件情况
六、实验器材(设备、元器件):
PC 机,vs 2008 软件平台。
七、实验数据及结果分析:
代码见附件。
huffmanForC
文件中函数列表如下:
......... ........... #sum_bit##count# */
void freToFile(int code[],HCode *HC)
指导书试验原理部分较多,在这里就不做粘贴复制了。
四、实验目的:
本实验总体目的是,通过使用 huffman 编码算法从而实现文件的压缩和解压,以达到使学 生掌握并灵活运用分割函数的三项原则。
五、实验内容:
本实验要求实现一个 exe 程序。这个程序按照 huffman 编码方式,同时包含了压缩功能和 解压功能。用户通过以下命令进行压缩:
..........................................
..........................................
}while( );
cmp 操作数1 操作数2 do------while循环 条件判断 语句
jxx A 如果符合条件的话,就跳转到A处的循环体部分开始执行,否则继续向下执行
002513A0 jge
002513B6
{
j++;
002513A2 mov
eax,dword ptr [ebp-14h]
002513A5 add
eax,1
002513A8 mov
dword ptr [ebp-14h],eax
i++;
002513AB mov
eax,dword ptr [ebp-8]
002513AE add
设置为0. 在地址0019139C 0019139F 001913A2 三个地址处执行j增1的操作,在001913A5 001913A8 001913AB 三个地址处
执行i增1的操作。在地址001913AE 处执行循环条件比较指令
cmp
dword ptr [ebp-14h],0Ah
在接下来的001913B2 jl
CH类onutfrfomla类nTree.jm.类..p.......HC.整.uo.f.df.个m.e..a类.多.n.N.分.o..d.支.ec.c.输agf类r流furlceerWeo入n输etaFmHc程Tetroeo-入iuopugHmFfm语hrfi命-uelmptcFef(sr句ma(is命a令el)_rensagf(后s令Cn)iv_lo[Tef2dr的(ile)]ee)e((指)()) 令地址 }
0019139C 这条指令当中,如果操作数1 即i 小于操作数2 即 10,就跳转到0019139C
地址处继续执行,否则向下继续执行。
do -whi码
A:..........................................
..........................................
}
while(i<10);
001913AE cmp
dword ptr [ebp-14h],0Ah
001913B2 jl
0019139C
return 0;
001913B4 xor
eax,eax
}
在代码清单11当中,在地址0019138E处将[ebp-8] 设置为0,即将j设置为0,在地址00191395处,将00191395设置为0,即将i
电子科技大学
实验报告
学生姓名:郭小明
学 号:
一、实验室名称: 主楼 A2-412
二、实验项目名称:
软件开发环境试验-----Huffman 编码实验
三、实验原理:
分割函数的三项原则
分割函数的三项原则包括:与其写注释,不如写函数;重复就是罪恶;函数不要超过 50 行至 70 行。
关于分割函数三原则的具体含义,请见教材和课堂教学 PPT 关于电话本的内容。这里不再 赘述。
四、实验目的:
本实验总体目的是,通过使用 Visual Studio 2008 查看函数调用时参数、局部变量等在 栈上的分布情况,以达到掌握函数调用时栈帧布局的目的。
六、实验器材(设备、元器件):
PC 机,VS 2008 软件平台。
七、实验步骤:
在源文件中,编写如下代码。
在源文件中,编写如下代码。 void f() { } int main() {
for(int i = 0;i<10;i++) {