万年历课程设计Word文档下载推荐.docx

上传人:b****5 文档编号:20292182 上传时间:2023-01-21 格式:DOCX 页数:30 大小:2.91MB
下载 相关 举报
万年历课程设计Word文档下载推荐.docx_第1页
第1页 / 共30页
万年历课程设计Word文档下载推荐.docx_第2页
第2页 / 共30页
万年历课程设计Word文档下载推荐.docx_第3页
第3页 / 共30页
万年历课程设计Word文档下载推荐.docx_第4页
第4页 / 共30页
万年历课程设计Word文档下载推荐.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

万年历课程设计Word文档下载推荐.docx

《万年历课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《万年历课程设计Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。

万年历课程设计Word文档下载推荐.docx

三.程序系统说明书

1.程序系统总体功能模块调用图及模块功能说明

封面程序的功能是显示欢迎信息,并且显示制

作人的信息的;

验证用户名和密码的程序是验证用

户是否是合法的用户的,该程序要有容错的功能;

万年历程序是主程序,该程序的功能是通过用户输

入年和月,来查询日历的,并且该程序还可以判断

输入的年份是平年还是闰年。

封底程序是用来显示

用户退出万年历系统的时候,一个感谢用户使用万

年历的界面的。

2.程序系统详细的程序框图(每个子程序的流程图)

①封面子程序,封底子程序的框图

注:

以封面程序为例,封底程序与封面程序类似

②用户名和密码子程序框图

注:

以用户名程序为例,密码程序和用户名程序类似

③求某年某月某日是星期几的子程序

④..求某月某日是这一年的第几天的

⑤判断是平年还是闰年的子程序

⑥年份月份转化为真值的子程序

四.程序运行结果

五.系统源程序

.386

DATASEGMENTUSE16

A0DB'

_____◆____◆____◆____◆____◆____◆_____◆_____$'

DB'

※※$'

||$'

◆◆$'

|┏☆━━━━━━━━━━━━━━☆┓|$'

◆☆^ǒ^*☆*^ǒ^*★*^ǒ^*☆*^ǒ^*★*^ǒ^*☆◆$'

|┃欢迎进入万年历系统┃|$'

◆☆^ǒ^*★*^ǒ^*☆*^ǒ^*★*^ǒ^*☆*^ǒ^*☆◆$'

|┗☆━━━━━━━━━━━━━━☆┛|$'

◆制作人:

某某某◆$'

◆班级:

2班◆$'

◆学号:

123456789012◆$'

◆日期:

08.1.15◆$'

|版权所有,请勿仿冒|$'

※____◆____◆____◆____◆____◆____◆____◆____※$'

A1DB'

◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆$'

◇◇$'

◆◆$'

◆┏━☆━━━━━━★━━━━━━☆━┓◆$'

◇┃◆◇┃◇$'

◆┃ 请输入用户名和密码┃◆$'

◇┃◇↑↑↑↑↑↑↑↑↑↑↑↑↑◆┃◇$'

◆┗━☆━━━━━━★━━━━━━☆━┛◆$'

◇用户名:

◇$'

◆密码:

◆$'

◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇$'

A2DB'

******★******☆******★*******☆*******★********$'

☆☆$'

||$'

★★$'

|***********************************|$'

☆*欢迎再次使用万年历系统*☆$'

★☆☆★★$'

|如有不足之处,请联系我☆☆|$'

|★★☆|$'

★我们会不断的完善的★$'

||$'

☆^_^☆$'

★ISBN7-300-00528-9★$'

☆********★******☆********★********★*********☆$'

A3DB'

******************万年历*******************$'

********$'

======================================$'

|SUN|MON|TUE|WED|THU|FAI|SAT|$'

|=====|=====|=====|=====|=====|=====|=====|$'

||||||||$'

||||||||$'

||||||||$'

||||||||$'

||||||||$'

||||||||$'

YEARDW?

MONTHDB?

BDW?

C1DW0

D1DW0

EDW0

GDB0

TDW0

SDB0

PDW?

NDW0

YDW0

MDW0

BUF1DB31,?

31,30,31,30,31,31,30,31,30,31

BUF2DB1,2,3,4,5,6,7,8,9,10,11,12

INPUT1DB'

请输入要查询的年份:

$'

INPUT2DB'

请输入要查询的月份:

INPUT3DB'

该年是平年$'

INPUT4DB'

该年是闰年$'

INPUT5DB'

要继续查询?

1.继续查询2.退出万年历系统$'

STR5DB5

DB0

DB5DUP(0)

STR6DB3

DB3DUP(0)

BUF3DB'

1'

0AH,0DH,'

2'

3'

4'

5'

6'

7'

8'

9'

10'

11'

12'

13'

14'

15'

16'

17'

18'

19'

20'

21'

22'

23'

24'

25'

26'

27'

28'

29'

30'

31'

CDB?

DDB?

STR1DB20

DB20DUP(0)

STR2DB20

STR3DB'

admin'

;

用户名

COUNT1EQU$-STR3

STR4DB'

密码

COUNT2EQU$-STR4

BUF4DB'

用户名不正确,请重新输入!

BUF5DB'

密码不正确,请重新输入!

DATAENDS

STACKSEGMENTUSE16STACK

DB200DUP(0)

STACKENDS

CODESEGMENTUSE16

ASSUMECS:

CODE,DS:

DATA,ES:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAH,0;

设置显示方式

MOVAL,3;

彩色文本方式

INT10H

;

************************封面程序************************************

MOVAH,6

MOVAL,0

MOVCH,0

MOVCL,0;

清整个屏幕

MOVDH,24

MOVDL,79

MOVBH,26

MOVCX,24

MOVSI,OFFSETA0

MOVB,000EH

LOPA0:

MOVAH,2

MOVBX,0

MOVDX,B

ADDDX,0100H

MOVB,DX

MOVDX,SI

MOVAH,9

INT21H

ADDSI,52

DECCX

JNZLOPA0

MOVAH,1

*************************用户名,密码程序****************************

MOVBH,30

MOVCX,24;

显示用户名的密码页面,共24行,循环输出24次

MOVSI,OFFSETA1

LOPA1:

MOVAH,2;

定光标位置

MOVBX,1

MOVDX,SI;

显示字符串

JNZLOPA1

MOVC,3;

容错三次

LOPA2:

设置用户名光标位置

MOVBH,0;

页号为1(帧屏号)

MOVDX,0D21H

LEADX,STR1;

输入用户名,保存在缓冲区STR1中

MOVAH,10

MOVAL,STR1+1;

用户名的长度送到AL中

CMPAL,COUNT1;

比较输入的用户名是否和指定的用户名长度一样

JNER;

长度不一样,跳转到P

LEASI,STR1+2

LEADI,STR3

MOVCX,COUNT1

REPZCMPSB;

逐一比较两串的对应字符是否相等

不相等,跳转到P否则程序往下执行,输入密码

MOVD,3

LOPA3:

设置密码光标位置

MOVDX,1021H

LEADX,STR2;

输入密码,保存在缓冲区STR2中

MOVAL,STR2+1;

密码的长度送到AL中

CMPAL,COUNT2;

比较输入的密码是否和指定的密码长度一样

JNEQ;

长度不一样,跳转到Q

LEASI,STR2+2

LEADI,STR4

MOVCX,COUNT2

不相等,转Q

JMPT1;

相等,转LOPA4

R:

设置显示用户名错误信息光标位置

MOVDX,1521H

LEADX,BUF4;

输出用户名错误信息

MOVAL,1

MOVCH,13

MOVCL,33;

清用户名输入行的屏幕

MOVDH,13

MOVDL,53

MOVCH,21

清用户名出错行的屏幕

MOVDH,21

MOVDL,60

MOVBH,20

DECC;

循环次数减1

JNZLOPA2;

跳转到LOPA2,重新输入用户名

JEEXIT

Q:

设置显示密码错误信息光标位置

LEADX,BUF5;

输出密码错误信息

MOVCH,16

清密码输入行的屏幕

MOVDH,16

清密码出错行的屏幕

DECD;

JNZLOPA3;

跳转到LOPA3,重新输入密码

***********************显示万年历程序*******************************

T1:

MOVT,0

MOVBH,27

MOVCX,17

MOVSI,OFFSETA3

MOVB,0411H

LOPA4:

ADDSI,44

JNZLOPA4

定输入年份提示信息的光标

MOVDH,1

MOVDL,17

LEADX,INPUT1;

提示信息,请输入要查询的年份

定输入年份的光标

MOVDH,5

MOVDL,19

LEADX,STR5;

输入年份,保存在缓冲区STR1中

LEADI,STR5+2;

DI指向年份输入串的首地址

MOVCL,STR5+1;

输入年份字符串的长度送到CL

MOVAX,0;

年份转化为真值

P1:

MOVBL,[DI];

取字符送到BL

SUBBL,30H;

字符减去30H,转化为真值

MOVBH,0

MOVP,10

MULP

ADDAX,BX

INCDI;

DI指向下一个字符

DECCX;

长度减一

JNZP1

MOVYEAR,AX;

把年送到YEAR中

CALLPR;

调用判断平年还是闰年的程序

JCL1;

有进位,借位,跳转到L1,输出闰年,否则顺序执行,是平年

输出平年信息的光标

MOVDL,36

LEADX,INPUT3;

输出平年

LEADI,BUF1

MOV[DI+1],BYTEPTR28;

平年把28送入BUF1中

JMPJ0

L1:

输出闰年信息的光标

LEADX,INPUT4;

输出闰年

MOV[DI+1],BYTEPTR29;

闰年把29送入BUF1中

J0:

定输入月份提示信息的光标

MOVDH,2

LEADX,INPUT2;

提示信息,请输入要查询的月份

定输入月份的光标

MOVDL,56

LEADX,STR6;

输入月份,保存在缓冲区STR2中

LEADI,STR6+2;

DI指向月份输入串的首地址

MOVCL,STR6+1;

月份输入串的长度送到CL中

MOVAX,0

P2:

取字符送到BL中

字符减去30H

MOVS,10

MULS

JNZP2

MOVWORDPTRMONTH,AX;

月份值送到MONTH中

CALLDTOB1;

显示日历,调用DTOB1子程序返回N侄

MOVDI,OFFSETBUF1

DECMONTH

ADDDI,WORDPTRMONTH;

取出每个月的天数

MOVCL,[DI]

MOVG,CL

MOVSI,OFFSETBUF3

MOVAL,6

MULN

ADDAX,19

MOVB,AX

MOVC1,9

J1:

确定每个月的一号的光标位置,即确定初始输入位置

MOVBX,0

MOVDH,BYTEPTRC1

MOVDL,BYTEPTRB

CMPDL,55

JBEJ2;

DL<

33,跳转到J2,否则行加1列从3开始

ADDC1,2

MOVB,19

JMPJ1

J2:

MOVAH,9;

在当前光标位置显示数字

ADDSI,5

ADDB,6

DECG

JNZJ1

MOVDH,22

LEADX,INPUT5

CMPAL,31H

JET1

JMPT2

DTOB1PROCNEAR;

求某年某月某日是星期几子程序

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHSI

PUSHDI

MOVCX,0

DECYEAR

MOVAX,YEAR;

YEAR-1送入AX中

MOVCX,YEAR

MOVDX,0

MOVBL,4

DIVBX

MOVC1,AX;

(YEAR-1)/4送入C1中

ADDCX,C1

MOVAX,YEAR

MOVBL,100

MOVD1,AX;

(YEAR-1)/100送入D中

SUBCX,D1

MOVBX,400

MOVE,AX;

(YEAR-1)/400

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1