- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机与接口技术万年历
信息科学与技术学院
《微机原理与接口技术》课程设计
题目名称: 电子万年历 学生姓名: 湛开洪 学 号: 专 业: 计算机科学与技术 班 级: 09级(1)班 指导教师: 裘祖旗 完成日期: 2012年 1 月 11日
目录
目录
一、课程设计要求 3
二、程序流程图 4
三、程序主要功能模块 4
1.画出该程序的界面 5
2.写出所有非汉字字符 5
3.写出汉字字符 6
4.填充公历及农历的信息 6
5.用户输入一个需要显示的新日期 7
四、主要技术路线 8
1.开发工具 8
2.主要算法 8
3.重要指令 10
五、系统的难点及解决方案 11
1.算法 11
2.由思想到程序的转换 11
六、总结与体会 13
七、参考文献 14
附录(源程序) 15
万年历
一、课程设计要求
DOS 下万年历(8086 汇编)
DOS 运行的日历,支持农历:
a. 能实现计时功能
显示年、月、日、进、分、秒、星期
扩展功能:实现公历与阴历转换
二、程序流程图
三、程序主要功能模块
本万年历程序正确实现从1901年1月1日至2050年12月31日的公历与农历查询,包括公历年,月,日,星期,农历干支年,月,日。本程序共有一个主过程,二十个子过程,73个标号,1460行,27185字,主要分成以下五大模块:
1.画出该程序的界面
A.功能及不足:
在该模块的设计中,主要令其实现程序的界面,即该万年历程序的边框部分。由于该程序做的比较仓促,界面设计相对简单,我只是框出一个7*7的矩形区域,每个小区域都是3*3(像素大小为48*48)大小的。其中第一行用于显示星期信息(日,一,…),以下六行用于分别在相应位置显示一整个月的月历。
B.子过程:
SETMODE:设置显示模式至INT 10H(AH=00H,AL=12H)的640*480图形16色模式
CLEAR:清屏函数,实现将屏幕上卷一屏的功能
WRITEROW:画出程序主体框架的所有横线
WRITECOL:画出程序主体框架的所有竖线
2.写出所有非汉字字符
A.功能及不足:
在该模块设计中,主要在界面中填充非汉字字符,包括标题部分,版权部分,月历部分,月历标题部分和提示输入部分。我们知道,月历中每行最多显示7天,而第一行要显示的天数是由该月1日的星期数来决定的,而每个月又有可能有28,29,30,31天,这样,导致输出的月历中,有可能是5行,也有可能是6行,而我为了简化程序的流程直接准备了6行的空白来填充公历的月历,这就有可能导致有的时候,画面中最后一行是空白的,影响显示效果。
B.子过程:
WRITECHAR:使用INT 21H(AH 13H)功能,在图形模式下显示字符串
WRITENORMAL:调用WRITECHAR子过程,显示所有非汉字字符串
COVTITLE3:用于将年月日的信息转换成可以输出的字符串
3.写出汉字字符
A.功能及不足:
在该模块设计中,主要实现汉字字符的显示,包括星期的标题,公历和农历的提示,公历的“年”“月”“日”的提示,农历年月日信息的显示。由于在原来的设计中,我打算在月历中的每一个日期下面都输出它的农历日期,所以在模块1中画了较大的矩形框,分配给每个日期3*3的矩形。而在实际代码实现时,我才了解输出汉字是多么的烦琐,故索性将农历汉字的输出改为只是用户所输入的那个日期。所以,可以看到,我的界面在中间部分显得很松散,而右边,集中了好多的信息,而且我没有仔细的设计输出的格式,有的情况下,可能汉字的显示位置会比较难看。
B.子过程:
WRITECCHAR:使用INT 10H(AH 0CH),利用汉字字模来输出一个汉字
WRITEABNORMAL:调用WRITECCHAR子过程,来输出星期提示
WRITELUNARDATA:调用WRITECCHAR子过程,来输出农历信息
4.填充公历及农历的信息
A.功能及不足:
在本模块设计中,主要实现了农历数据数据结构的填充,包括该日期对应的农历年份,即天干地支;农历的月份,包括该月是否是闰月的信息;农历的日期。其中,农历年的计算相对简单,而农历月日的计算相对比较烦琐,农历信息的数组我是在网上找的,所以不保证全部的正确性,但在所有我测试过的关键日期上,结果是完全正确的。
B.子过程:
GetWeekDay:得到该日期的星期信息
IsLeapYear:判断该年份是否是闰年
GetMonthDays:得到该日期所在月份的总天数
GetBetweenDays:得到给定的两个日期之间所差的天数
GetLunarYearDays:得到一个农历日期所在年份的总天数
GetLunarMonthDays:得到一个农历日期所在月份的总天数
GetL
您可能关注的文档
最近下载
- 字节跳动项目经理岗面试题库参考答案和答题要点.docx VIP
- 泸州老窖“浓香文酿杯”企业文化知识竞赛考试题库大全-下(多选、填空题汇总).docx VIP
- 泸州老窖“浓香文酿杯”企业文化知识竞赛考试题库大全-中(判断题汇总).docx VIP
- 屋面钢网架专项施工方案.docx VIP
- 泸州老窖“浓香文酿杯”企业文化知识竞赛考试题库大全-上(单选题汇总).docx VIP
- 2020年江苏省苏州市昆山市普通高中自主招生物理试卷(含解析).doc VIP
- 幼儿教师选调进城考试试题题库含答案.pdf VIP
- 四川省安全员C证证考试题库及答案.docx VIP
- 《抗美援朝》课件优秀课件.pptx VIP
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
文档评论(0)