课程设计一

 

课程设计一 : 

;**********************************************************

;课程设计1,将下面的data中的数据 按照表格的形式显示在屏幕上

;**********************************************************

assume cs:code,ds:data

data segment

        db 11 dup(0)                  ;在数据段开辟一段空间存放数据转换后的字符串

        db '1975','1976','1977','1978','1979','1980','1981','1982','1983'

        db '1984','1985','1986','1987','1988','1989','1990','1991','1992'

        db '1993','1994','1995'

        ;以上是表示21年的21个字符串

 

        dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514

        dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000

        ;以上是表示21年公司总收的21个dword型数据

 

        dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226

        dw 11542,14430,45257,17800

        ;以上是表示21年公司雇员人数的21个word型数据

data ends

code segment

start:

      mov ax,data

      mov ds,ax

      mov cx,21

      sub si,si

      mov bx,0

      mov dh,2

  s0:

     push cx

     mov di,dx       ;此处一定要注意,实现的是si能加四,注意数据段中各种数据的类型!!

     mov cl,02h

     mov dl,0

    

;**************************************

;把年份送到table中

;************************************** 

     mov ax,[si+11]

     mov ds:[0],ax

     mov ax,[si+2+11]

     mov ds:[2],ax

     mov byte ptr ds:[4], 0

     push si

     mov si,0

   

     call show_str

     pop si 

;********************************************

;把收入送到table中

;********************************************

     mov ax,[si+84+11]

     mov dx,[si+86+11]

     push si

     call dtoc

     mov dx,di

     mov dl,20

     call show_str

     pop si

;*************************************************************

;把人数送到table中,注意人数是双字节,所以每次不能增四,只能增二

;*************************************************************

     sub si,bx

     mov ax,[si+168+11]

     mov bp,ax

     sub dx,dx

     add si,bx

     push si

     call dtoc 

     mov dx,di

     mov dl,40

     call show_str

     pop si

;**************************************

;计算人均收入并把其送到table中

;*****************************************

     mov ax,[si+84+11]

     mov dx,[si+86+11]

     div bp

     sub dx,dx                                 ;只要人均值,余数不要

     push si                   

     call dtoc

     mov dx,di

     mov dl,60

     call show_str

     pop si 

   

     add si,4

     add bx,2

     inc dh

     pop cx

  loop s0  

     mov ax,4c00h

     int 21h

;********************************************************

;数字转化为字符串子程序

;*********************************************************

dtoc:

push ax

push cx

push dx

mov si,9

  dnext:

mov cx,10

call divdw

add cx,30h

mov [si],cl             ;将转换好的字符串放到我们定义的数据段中

dec si

cmp dx,0

jne dnext

cmp ax,0

jne dnext

inc si

pop dx

pop cx

pop ax

ret

;********************************************

;防溢出除法子程序

;*******************************************

divdw:                             

        jmp short divstart

datareg dw  4 dup (0)       

  divstart:

push bx

push ds

push si

cmp dx,cx ;通过这里实现兼容没有溢出的除法

jb divnoflo

mov bx,cs

mov ds,bx

mov si,offset datareg

mov [si],ax             ;保存低16位L

mov ax,dx  ;求H/N,得到int(H/N)和rem(H/N),分别保存在ax和dx当中

sub dx,dx ;***这个语句非常重要,对dx清零,避免溢出

div cx

mov [si+2],dx ;保存rem(H/N)

mov bx,512 ;求得int(H/N)*65536

mul bx

mov bx,128

mul bx

mov [si+4],ax ;保存int(H/N)*65536

mov [si+6],dx

mov ax,[si+2] ;求得rem(H/N)*65536

mov bx,512

mul bx

mov bx,128

mul bx

add ax,[si] ;求得rem(H/N)*65536+L

div cx ;求得[rem(H/N)*65536+L]/N ***注意这里进行的除法不能清除dx,这里不可能会溢出

mov cx,dx ;求得结果得余数

add ax,[si+4] ;求得结果的低16位

mov dx,[si+6] ;求得结果得高16位 

jmp short dsret

 divnoflo:

div cx

mov cx,dx

sub dx,dx

dsret:

pop si

pop ds

pop bx

ret

;***********************************************************

;显示字符串子程序

;***********************************************************

show_str:

     push ax ;注意子程序中要用到的寄存器要保存起来

     push dx

     push cx

     push es

     push di

     push si

     push bx

 

     

     mov ax,0

     mov al,0a0h

     mul dh

     mov bx,ax

     mov al,2

     mul dl

     

     add bx,ax                  ;得到偏移地址=dh*160+dl*2

     

     mov di,bx                  ;将偏移地址保存起来

     mov ax,0B800H

     mov es,ax

     mov al,cl

     mov cx,0

    s: 

     mov cl,ds:[si]

     jcxz next                ;进行判断最后一个字符是否是零,如果是零则结束

     mov es:[di],cl        ;将字符串放到偶地址中

     mov es:[di+1],al      ;颜色属性放到奇地址中

     add di,2 

     inc si 

     jmp  short s

next:

     pop bx

     pop si

     pop di

     pop es

     pop cx

     pop dx

     pop ax

   ret

   

code ends

     end start

一、课程设计内容: 某银行计划开发一个网上银行的客户端软件,银行客户使用该软件可以查看自己的账户信息和进行账户之间的转账业务。并且用户可以通过该软件查看最新的存款和贷款率利和最新的外汇对换汇率。具体要求如下: 1.客户端可以做成基于Windows的应用程序,也可以是Web应用程序。 2.银行打算提供一个Web服务来完成客户端对账户信息的访问。提供给客户的信息包括账号、支出或存入金额明细,支出或存入金额时间和操作类型(柜台、ATM或网上交易),转账限于同行交易,转账前必须验证转入账号是否正确,转出账户余额是否正确,对各种操作的结果(成功或失败必须进行详细提示)。 3.必须对用户进行验证,验证过程必须进行加密码处理,用户的账户信息传输也要进行加密处理,初步设想使用SOAP扩展+对称加密方式进行加密,认证使用SOAP头进行自定义身份验证。 4.对用户的存款和贷款率利和外汇对换汇率查看请求不要求加密。但服务器对这些请求需要缓存60秒,已加快并发处理的能力。 5.银行对用户对自己的账户请求过程需要记录(初步设想是使用SOAP扩展进行跟踪)。银行需要一个后台程序来查看这些请求记录,并能及时更新最新的存款和贷款率利和最新的外汇对换汇率,这些也需要通过Web服务来完成。 6.开发团对不能超过4人。需求和初步设想方案不能更改,如要更改,需由杨剑老师签字确认。 二、团队组建、任务分工及完成情况: 基于以上需求,组建了一个开发团队。情况如下:[请按样表格式填写,注意任务分工不能更改,除系统总体设计及集成和文档归整及编排外,每个任务最多一个人承担(可以一个人承担几个任务)系统总体设计及集成和文档归整及编排由承担其他四个任务的负责人之一完成,工作量由项目组长根据具体情况评定,工作量总和不能超过100%,最终每人得分为:(课程设计总分-20)+工作量*20=每人实验最终得分] 表1 团队组建及任务分工及完成情况 任务 负责人 学号 开时和结束时间 工作量(%) 系统总体设计及集成 Web服务基本功能实现 后台管理Web服务实现 安全认证和加密实现 客户端设计、后台管理前端设计及Web服务调用 文档归整及编排 三、Web服务基本功能实现 1) Web服务基本功能 Web服务的基本功能包括:[请详细叙述每个功能,至少包括账户信息查询、转账和存、贷款率利及外汇对换汇率查询、后台管理的说明 ] 1. 2. 3. 4. 2)数据库设计:[请详细叙述数据库的结构,对每张表,请按样表格式填写] 表2 客户表 字段名 类型 其它属性 说明 CustId int 非空,主键,标识列 客户号 CustName varchar(12) 客户名 Email varchar(50) 电子邮件地址 Address varchar(60) 地址 3)服务帮助页面(asmx)[请将服务帮助页面(asmx)的屏幕截图附在下面] 图2服务帮助页面(asmx) 4)算法介绍及详细代码[请画出程序流程图并对主要程序段进行说明,至少包括账户信息查询、转账和存、贷款率利及外汇对换汇率查询及后台管理的说明] 1. 2. 3. 4. 四、客户端设计及Web服务调用 1) 客户端基本功能 客户端基本功能包括:[请详细叙述每个功能,至少包括用户登录、账户信息查询、转账和存、贷款率利及外汇对换汇率查询的说明 ] 1. 2. 3. 4. 2)客户端页面及操作说明:[请将客户端界面的屏幕截图附在下面,至少包括用户登录、账户信息查询、转账和存、贷款率利及外汇对换汇率查询] 图3 用户登录界面 1.用户登录界面操作说明:[请详细介绍登录界面的操作流程,另,各个功能都这样写] 4)算法介绍及详细代码[请画出程序流程图并对主要程序段进行说明,至少包括Web服务调用过程、用户登录、账户信息查询、转账和存、贷款率利及外汇对换汇率查询的说明] 1. 2. 3. 4. 五、后台管理设计及Web服务调用 1) 后台管理基本功能 客户端基本功能包括:[请详细叙述每个功能,至少包括用户登录、用户访问记录查询、用户操作记录查询和存、贷款率利及外汇对换汇率更新的说明 ] 1. 2. 3. 4. 2)客户端页面(asmx)及操作说明[请将客户端界面的屏幕截图附在下面,至少包括用户登录、用户访问记录查询、用户操作记录查询和存、贷款率利及外汇对换汇率更新] 图4 用户登录界面 1.用户登录界面操作说明[请详细介绍登录界面的操作流程,另,各个功能都这样写] 4)算法介绍及详细代码[请画出程序流程图并对主要程序段进行说明,至少包括用户登录、用户访问记录查询、用户操作记录查询和存、贷款率利及外汇对换汇率更新] 1. 2. 3. 4. 六、安全认证和加密实现 1)安全认证和加密方案 安全认证:[请详细叙述采用的安全认证方式、认证内容和原因 ] 加密方案:[请详细叙述采用的加密方式、加密内容和原因 ] 2)安全认证的具体实现[请画出程序流程图并对主要程序段进行说明,需要对服务器端和客户端进行分别讨论,对具体实现步骤要详细说明] 3)加密的具体实现[请画出程序流程图并对主要程序段进行说明, ,需要对服务器端和客户端进行分别讨论,对具体实现步骤要详细说明]] 七、系统集成及布署 1)系统集成及布署方案[采用的布署方案:包括打包和安装文件的制作,布署进对生产环境的要求,安装方法的详细说明,后期更新方案] 2)提交给银行的文件[指项目完成后提交给老师的文件,包括:源文件、安装文件、和自己生成的各个dll文件(这里,对于加密模块必须要求以dll方式发布,其它自定] 例: 文件夹:[BankServers]------- 银行网银Web服务 BankServer.asmx---------银行网银Web服务入口文件 BankServer.asmx.cs------银行网银Web服务后台代码 。。。。。。。。 文件夹:[Bankclients]-------- 银行网银客户端 。。。。。。。。 八、总结及心得体会 九、对本设计的需求、分析和设计思路和技术采用的改进建议: 十、评分[该项不要填定,由老师在评阅时填定,其中设计报告的详细性规范性不及格者总分视为不及格] 评分内容 所占比例 评分 程序界面美观性 10% 基本功能完成情况 30% 扩展功能完成情况 30% 程序的用户友好性及健壮性 10% 源文件规范性 10% 设计报告的详细性规范性 10% 总分 指导教师签字:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值