万年历课程设计Word文档下载推荐.docx
- 文档编号:20292182
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:30
- 大小:2.91MB
万年历课程设计Word文档下载推荐.docx
《万年历课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《万年历课程设计Word文档下载推荐.docx(30页珍藏版)》请在冰豆网上搜索。
三.程序系统说明书
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 万年历 课程设计