第一篇:C语言程序设计课程设计任务书
C语言程序设计课程设计任务书
项目4:
高校工资管理系统一、课程设计项目:
高校工资管理系统
二、目的与要求:
1、目的:
(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;
(3)在系统的设计中,至少要用到面向对象的一种机制。
3、创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、写出设计说明书
三、设计方法和基本原理:
1、功能要求
问题的描述(功能要求):
现一高校有五类职工:教师,实验员,行政人员,教师兼职实验员,行政人员兼职教师。为了实现工资发放的自动功能,现要求编写程序来自动完成此功能。同时注意生成的相关数据结果以文件方式存放在硬盘中。程序应具备从键盘录入,文件的可继续录入,任意职工的工资查询(可由职工编号和职工姓名来实现),如若有职工由于工作调动,则可进行相对应的删除动作。
相关信息: 每一学期将学校职工的本学期任职情况及上学期工作的相关情况输入计算机,则本学期职工的月工资按程序处理后的结果发放,其中职工的工资计算方法如下:
其中工资的基本构成如下:
教师: 基本工资+课时费;
实验员: 基本工资+实验室补助;
行政人员: 基本工资+行政补贴;
教师兼职实验员: 基本工资+课时费+实验室补助;
行政人员兼职教师:基本工资+行政补贴+课时费;(其中:
1.课时费:教师每一学期的基本工作量为120,实验员每学期基本工作量为70,行政人员没有基本工作量,每节课时费为20元;课时费=(上学期工作量-基本工作量)*20;注意:如果上学期基本工作量没完成,则其(上学期工作量-基本工作量)*20为负值。
2.基本工资:教师800元,实验员650元,行政人员750元。
3.行政补贴:250元。4.实验室补助:150元。
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤: a)写出需求分析(该程序要实现什么什么样的功能)b)分析系统中的各个实体之间的关系及其属性和行为; c)根据问题描述,设计系统的类层次;
d)完成类层次中各个类的描述(包括属性和方法); e)完成类中各个成员函数的定义; f)用户界面的设计
g)分析系统功能模块(系统流程图)h)代码编写 i)功能调试;
j)完成系统总结报告以及系统使用说明书。
四、程序设计和调试:
五、答辩与评分标准:
1、完成基本功能:60分;
2、设计报告及使用说明书:10分;
3、设置错误或者按照要求改变结果:15分;
4、回答问题:15分。
六、报告:
包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表),调试过程,关键程序代码,总结,参考书目等。
第二篇:《高级语言程序设计》课程设计任务书2
《高级语言程序设计》课程设计任务书
一、课程设计的目的
高级语言程序设计是本科工科类各专业的重要基础课,课程以影响深远的、传统的、面向过程的优秀编程语言C语言为基础,学习程序设计的基本概念和方法,通过本门课程学习,应使同学掌握高级语言的基本原理,熟练掌握程序设计的基础知识、基本概念;掌握程序设计的思想和编程技巧。
课程设计是在学生已经具备了使用C语言编写简单的应用程序的能力,为使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,通过提出算法、指定输入输出来设计一个解决方案。经过该实践环节,培养学生的探索精神和创新能力。通过答辩训练学生的综合表达能力。
二、课程设计教学的基本内容和要求
1、课程设计教学基本内容
高级语言课程设计不仅是对程序设计能力的综合锻炼,更是对团队合作、软件开发与项目管理过程的训练。因此,课程设计根据题目的难度由小组合作完成,每个小组1-4人。整个课程设计分为以下几个阶段进行:选题与开题、系统设计、系统编码实现、系统测试、撰写课程设计报告、系统评价与验收。
(1)选题与开题:题目可来自教师指定的参考题目,也可自由选题,特别是鼓励有创新性的题目或是在已知题目的基础上进行创新。
(2)系统设计:系统设计的任务是对所确定的题目从问题需求、数据结构、程序结构、难点及关键技术等方面进行分析,形成的系统设计方案,并进行详细的分工。
(3)系统编码实现:小组成员根据初步的系统设计方案,对系统编程实现。(4)系统测试:在各程序模块编码完成并集成后,就可以开始对整个系统进行测试。(5)撰写课程设计报告:完成文档整理,按照要求完成课程设计报告。(6)系统评价与验收:通过小组答辩的形式对程序的功能进行评价与验收。
2、课程设计教学的要求
参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而反映出理解和运用本课程知识的水平和能力。具体如下:
(1)数据组织方面尽量使用到:数组、链表、结构体、文件;(2)程序结构方面做到函数调用,尽量采用指针运算;(3)代码编写规范,形成良好的编程习惯;
(4)程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。(5)课设完成须进行答辩,提交课设报告电子稿、装订的打印稿。课设报告内容包括以下几个方面:
程序的总体设计和算法分析。 程序流程图、函数说明 源程序代码清单 测试数据和测试过程记录 遇到的问题及解决方法分析 课程设计小结
三、课程设计的进度安排
系统整体设计和详细设计
1天 系统编码实现
1天 系统测试
1天 撰写课程设计报告
1天 演示软件和答辩
1天
四、课程设计的考核
评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的课程设计报告,严格检查以下各项任务完成情况:
1、设计文档中要求项目是否齐全。
2、程序中运行时的屏幕提示信息是否准确:
如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。
3、问题和或任务的陈述(描述问题,而且问题是合理原始的、应当包括输入、输出及其预期范围)是否正确。
问题的解决方案采取由顶向下设计的形式,在适当的地方使用伪代码,把整个解决方案划分成若干模块。
5、程序完成后的代码应当加以注解。最少应清楚指出每一个模块。
6、用于检查程序的测试数据,或者对一个控制程序给出测试的例程。测试应考虑探索通过程序的几条路径,在合适的地方选择打印输出来。
7、程序的技术文档:必须包含函数的原型说明和所用变量的全体清单
8、程序顺利运行,结果正确;测试程序是否工作且满足设计指标并评价其效率。
五、指导书、参考资料
《C程序设计》 谭浩强编 清华大学出版社
《C程序设计思想与方法》 尹宝林编著 机械工业出版社
六、其他
第三篇:课程设计《JAVA程序设计》任务书.
《 JA V A 程序设计》课程设计任务书 一.课程设计基本信息
课程名称:《JAVA 程序设计》课程设计 学时:1周 学分:1学分
二.课程设计目的与要求
1.教学目的:本课程是学习《 Java 程序设计》后的综合实践课,使学生能够比较深入的理解 Java 语言的特征及体系;熟练的掌握并会运用 Java 语言与面向对象程序设计的思想和方法设计应用程序解 决应用问题,积累程序设计的实践经验,为培养软件技术高技能人才奠定基础。
本课程是培养计划中综合性较强的实践教学环节之一, 帮助学生掌握教学内容、培养学生运用知识 解决应用问题的实际动手能力、提高学生综合素质有很重要的意义。
2.教学要求:本课程设计以设计一个或多个实际应用系统为目的,通过课程设计让学生较全面的 掌握 Java 语法基础知识、面向对象程序设计方法, 尤其是基于 Java 的应用程序设计的方法与技术, 能 够运用 J2SE平台,结合相应的数据库系统开发应用程序,理论联系实际,达到培养实践操作技能的目 的。
学生要了解 Java 程序开发的一般过程,特别掌握系统分析与设计的基本方法,写出系统分析与设 计报告,并能设计真实可用的应用系统。
三.课程设计内容与安排
根据老师提供的设计题目, 写出系统分析与设计报告, 并建立原型系统。题目可以由教师与学生根 据实际情况商定,可参考的题目:图书借阅管理系统、产品管理
系统、学生成绩管理、学生信息管理、人事管理、人力资源管理系统、物流信息管理系统等。
1.主要设计内容如下:(1系统设计:包括系统需求分析、总体设计和功能设计,必要时使用图表说明。(2数据库设计与实现:包括数据库的需求分析、数据库的概念结构设计和数据库的逻辑设计。
(3系统各模块设计:包括用户界面及相应功能算法等程序设计。2.教学安排
总课时 30课时,其中需求分析与系统设计、数据库设计与实现、系统各模块实现所以及系统集成 调试运行用时间建议各占 15%,15%,40%,20%的课时, 学生可根据具体情况调整, 利用 10%的时间完成课 程设计报告。
四.课程设计教学建议及要求
1.要求学生有一定的程序设计和数据库基础知识,由老师指定或学生自行组织形成项目小组,必 要时由多人开发一个项目, 其中需要指定负责项目的小组长控制项目进度。每个小组的项目开发过程应 该遵从项目管理规范。
2.严格要求每个学生按照规定时间进行设计,禁止无故迟到和旷课。3.要求学生有自我学习的能力,遇到问题要学会自我解决。
4.要求设计的界面美观、合理、便于操作等,功能与实际应用系统紧密联系,系统结构合理构思 巧妙、模块化程度高等。
五.课程设计成绩评定
课程设计成绩由学生的出勤情况和程序设计情况各分别占 10%和 90%组成。程序的考核从界面、功 能实现、创新性、问题回答和课程设计报告等几方面进行。
考核内容和比重表(参考
考核内容 出勤 界面 功能实现 创新 问题回答 设计报告 比重 10%15%30%15%10%20% 六.课程设计报告撰写与提交
1.课程设计报告格式见本文后面所附 “课程设计报告模板” , 课程设计报告最终以电子稿形式提交, 如需打印另行通知。在课程设计正文中使用图表时, 所有的图必须有图号和图题, 所有的表必须有表的 名称和编号。
2.对课程设计报告正文内容的提示说明如下:(1摘要(100-150个字: 主要包括设计内容、方法和结果,最后列出报告中用到关键字。(2课程设计介绍(要求 400-600个字: 对课程设计内容做综述,介绍课程设计的目的和要求等内容。同时对课程设计小组成员构成 进行介绍,并说明自己在整个课程设计中将承担的任务。
(3系统设计(要求 600-800个字: 主要介绍完成系统需求分析、总体设计和功能设计。必要时利用图表说明。(4数据库设计与实现: 主要介绍数据库的需求分析、数据库的概念结构设计和数据库的逻辑设计。数据库设计应利 用图表说明。
(5系统各功能模块设计(字数根据实际情况而定 : 主要介绍系统各功能模块的界面设计及相应的功能程序设计。对于界面设计应的描述界面中所
使用的相应的组件列表,包括组件类别、组件 ID 值、组件作用等。同时应附相应界面设计状 态的界面截图和相应的运行界面截图。如果涉及多个功能模块,则应分别描
述。
(6课程设计总结和体会
主要对课程设计所做的工作进行总结, 同时描述课程设计后的体会, 包括专业技术方面的体会 和职业能力和职业意识方面的体会。另外对课程设计内容中存在的不足和改进意见进行阐述。(7致谢
在课程设计过程中,如果得到他人的帮助,则不要忘记致谢。(8参考文献
要列出在课程设计过程中用到的主要参考文献和站点。虽然看过, 但没有用到的文献或站点则 不必列出。参考文献要与报告正文关联,要不少于 4项。
(9附录:带注释的程序清单
源程序清单只写关键程序要有注释。注释是功能性的注释,而不须要对语句或命令本身进行 注释。
Java 课程设计参考题目
1、编写一个记事本程序 要求:
用图形用户界面实现。
能实现编辑、保存、另存为、查找替换等功能。提示:使用文件输入输出流。
2、模拟龟兔赛跑 要求: 用图形用户界面实现。
能设置比赛时间,马匹的数量等等。在任意时间段内马匹的速度是随机的。开始比赛之后以动画显示赛马过程。提示:使用多线程
3、学生信息管理系统 要求: 使用图形用户界面
用数据库建立 1或 2个学生信息表。(可以使用 txt 文件代替数据库 能连接数据库并实现查询、增、删、改等功能。
4、聊天小程序 要求: 使用图形用户界面。
能实现一个聊天室中多人聊天。
可以两人私聊。提示:使用 socket 通信
5、ATM 柜员机模拟程序
要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为 123456 时, 系统能登录 ATM 柜员机系统,用户可以按照以下规则进行:
1、查询余额:初始余额为 10000元
2、ATM 取款:每次取款金额为 100的倍数,总额不超过 5000元,支取金额不允许透支。
3、ATM 存款:不能出现负存款。
4、修改密码:新密码长度不小于 6位,不允许出现 6位完全相同的情况,只有旧密码正确,新密码符 合要求,且两次输入相同的情况下才可以成功修改密码。
6、实现数据结构中二叉树的遍历演示过程 要求:使用图形用户界面
实现二叉树的前序遍历、中序遍历、后续遍历、按层遍历的算法的演示过程。动画演示尽量与程序执行 同步,人机交互、适于教学。
7、超市收银系统 要求:使用图形用户界面。
由收银员输入顾客的会员卡卡号(若有卡、所购商品的货号等。从数据库中取出有关价格信息,再把
这些信息返回给收银台。同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情 况交数据库存储以供查询。
另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。如果一个未持卡顾客一次购物满 200元,可为其发放一张会员卡,以后在该商场购物可向 9折优惠。
8、万年历
要求:使用图形用户界面。
实现日期与星期的查询,其他功能自定义。
9、五子棋游戏 要求:使用图形用户界面 实现两人游戏,能够判断输赢
有 “ 开始 ” 按钮,当选择完棋盘大小后,按此按钮进入对战状态。当有胜利者(垂直、水平、对角线连续 5子 ,显示对话框,提示谁(黑还是白胜利了。若当棋盘满了还无胜利者,显示平局对话框。界面 上还要有 “ 复盘 ” 按钮,可对完成的棋局进行复盘,例如每 3秒走一步。
10、日历记事本
要求:带有日程提醒功能的日历。
1、显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。
2、定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时 间相吻合时,给出具有提示信息的对话框。
3、查询信息:用户可以查询到某个月的所有的提示信息。
11、电子英汉词典
要求: 能够编辑词典库中的信息
能够实现英译汉,汉译英。(要考虑一词多义
12、计算器小程序 要求:使用图形用户界面
能在键盘或鼠标上读入数据,并完成加。减。乘。除计算。在屏幕上显示一个主菜单。提示用户输入 相应的数字键,分辨执行加。减。乘。除计算功能和结束程序的功能。
13、图的最小生成树算法过程演示 要求:使用图形用户界面
使用菜单显示普利姆和克鲁斯卡尔最小生成树的动画实现过程, 动画与算法的实现尽量同步实现, 便于 人机交互和教学。
14、加密与解密 要求:采用图形用户界面
1、给定任意一个文本文件,进行加密,生成另一个文件。
2、对加密后的文件还原。
15、小游戏 要求:。
程序随机产生 20— 50根火柴,由人与计算机轮流拿,每次拿的数量不超过 3根,拿到最后一根为胜。(使用图形界面
16、敏感词汇分析 要求: 任意选择一个文本文件,分析该文件,如果存在敏感词汇(这些词汇保存在 sentive.txt 文件中,每个词 占一行 ,报告每个词出现的次数。
17、基数排序过程动画演示 要求:使用图形用户界面
基数排序算法的实现过程参照《数据结构》教材,动画效果强。可以采用最高位优先算法实现,也可以 采用最低位优先算法实现,人机交互、便于教学。
课程设计时间安排 序 号
时 间 实习主要内容 实习地点 指导教师
1星期一 上午 概要设计:确定项目的实施方案、设 计程序模块连接图、完成模块功能描 述
实训室 刘延岭
2星期一 下午 总体设计:设计程序流程图,完成数 据库设计、方法设计
实训室 刘延岭 3星期二 上午 详细设计:实现系统功能 实训室 刘延岭 4星期二 下午 详细设计:实现系统功能 实训室 刘延岭 5星期三 上午 详细设计:实现系统功能
实训室 刘延岭 6星期三 下午 详细设计:实现系统功能 实训室 刘延岭 7星期四 上午 系统功能完善,整合测试 实训室 刘延岭 8星期四 下午 撰写设计文档 实训室 刘延岭 9星期五 上午 撰写设计文档 实训室 刘延岭 10星期五 下午 检查验收 实训室 刘延岭
计算机与信息工程系
《 JAVA 程序设计》课程设计(字为黑体四号粗 课程设计题目(黑体二号粗 专业 计算机 班级 1001班 学号 02 姓名;刘腾帅 E-Mail 电话 *** 时间
(字为黑体四号粗 承德石油高等专科学校(字为楷体四号粗
(报告正文为宋体,多倍行间距:1.25倍 摘要:(四号粗
内容(小四号字
关键字:(小四号粗 内容(小四号字 1.课程设计介绍(四号粗
对课程设计内容做综述,介绍课程设计的目的和要求等内容。同时对课程设计小组成 员构成进行介绍,并说明自己在整个课程设计中将承担的任务。2.系统设计(四号粗 内容(小四 2.1需求分析 2.2总体设计 2.3功能设计
3.系统各功能模块设计(四号粗(注:必要时应分模块(页面描述 内容(小四
4.1界面设计(必要时使用用户组件 4.2功能实现
4.课程设计总结和体会(小四号粗 内容(小四 5.致谢(四号粗 参考文献(四号粗
内容(小四内容如下例所示:
小四
([1]博彦科技.编程高手 J2EE.北京大学出版社,2000.94-97 [2]http://www.xiexiebang.com/learning/lesson/xinxi/20030401/lesson.asp 附录(注:另起一页
1.xx 功能模块(页面相关事件或方法程序清单(1 xx 事件或方法(2 xxxxxxxxxxxx 2.xx 功能模块(页面相关事件或方法程序清单(1xx 事件或方法(2 xxxxxxxxxxxx 成绩评定
出勤情况(10分 界面设计(15分 功能实现(30分 创新点(15分 答辩情况(10分 设计报告(20分 设计评语
指导教师
第四篇:语言程序设计课程设计指导书
汇编语言程序设计课程设计指导书
一、课程设计的目的
本课程设计是《汇编语言程序设计》课程的后继教学环节,其宗旨是使学生通过对一个较大型的、综合性的应用程序进行阅读、修改、添加功能等工作,对汇编语言程序设计有更进一步的认识,提高编程技巧和阅读理解复杂程序的能力。
二、课程设计的任务要求
根据所给的“Reader.asm”应用程序框架,在此基础上修改和添加功能。1.基本任务:
认真阅读“Reader.asm”源程序,理解程序每一条指令在程序中的作用; 用→、←键在窗口内左右移动文本;
用PgDn,PgUp键上下快速移动文本(每次移半帧); 设计专用键放大、缩小窗口,改变窗口位置。
2.扩展任务: 对文本内的Tab字符(ASCII码09H)进行处理:遇到Tab键,下一个字符显示在下一个表站开始处(每个6个字符一个表站);
设置状态行,显示当前文件名、文本位置(仿垂直滚动条)。
3.自行设计的其它任务:
三、课程设计报告的内容
1.课程设计题目名称、班级号、学号、学生姓名和课程设计起止日期(封面);
2.上海应用技术学院课程设计任务书(下发)3.课程设计目的和要求;
4.课程设计任务内容; 5.详细设计说明; 6.软件使用说明; 7.课程设计总结;
8.附录:1 参考文献 2 程序清单(电子版)。
四、课程设计详细设计说明及其它要求
1.2.3.4.5.6.分析原“Reader.asm”程序结构:每个模块说明,较大模块程序流程图; 对你已经实现的功能做详细的说明,并附上流程图及部分程序清单; 自己对该“文件阅读器”的进一步设想;
对于有设想但最终未实现的功能的大致编程思路的阐述; 论述在设计过程中遇到的并且对你具有启发性的问题; 交课程设计报告手写版,源程序交电子版。
五、评分标准
1.根据平时出勤情况和设计时的工作情况;
2.根据课程设计程序的完成情况,必须有可运行的软件。3.根据课程设计报告的质量。课程设计报告不能抄袭,抄袭判为不及格。4.在题目要求之外附加具有实用性的功能。
六、课程设计工作进度计划
星期一:课程设计介绍,源程序阅读理解,功能设计,程序编写。星期二:功能设计,程序编写。
星期三:程序编写与调试,课程设计报告撰写。星期四:程序编写与调试,课程设计报告撰写。
星期五:程序最终修改,课程设计报告撰写,提交报告并答辩。
七、主要参考资料
[1]杨文显.汇编语言程序设计简明教程.北京:电子工业出版社,2005
八、附录
《文本阅读器》汇编语言源程序清单
;Title: Assemble Program “Reader.asm”
;Read a file from disk, display it‟s contents on screen;Move the content on screen by up/down arrow keys;========================== MYDAT SEGMENT MAXLEN DW 1000;最大行数 INDEX DW 1000 DUP(?);行索引 LENCT DW 0;实际行数 CURLINE DW 0;当前页第一行行数 CCOUNT DW ?;文件总字符数
TOP DB 5;窗口左上角行数 LEFT DB 5;窗口左上角列数 WS DW 60;窗口宽度 HS DW 15;窗口高度 FG DB 17H;文字属性 FGB DB 1FH;窗口边框属性
MSG1 DB 'File:$';输入文件名提示 MSG2 DB 'File open error!$';打开文件出错时提示 MSG3 DB 'File read error!$';读文件出错时提示 FILENA DB 80,?,80 DUP(?);输入文件名缓冲区
;定义功能键和相应的处理程序
;每个功能定义两个数据:扫描码,处理程序入口地址;该数据由DOSUB子程序使用
KEYSUB DW 48H, SUB1 , 50H, SUB2, 0
MYDAT ENDS
;==========================
BUFFER SEGMENT PARA DB 65535 DUP(?);文件缓冲区,文件最大为64K BUFFER ENDS
;==========================
SSEG SEGMENT STACK „STACK‟;堆栈段
DW 100 DUP(?)SSEG ENDS
;==========================
;宏定义 DISPINIT: 设置显示器显示方式 DISPINIT MACRO MOV AX,0003H;文本方式 25x80 INT 10H ENDM;----------;宏定义 PROMPT: 显示字符串 PROMPT MACRO OUTMSG LEA DX, OUTMSG MOV AH, 09H;INT 21H;ENDM;--------;宏定义KRYIN: 从键盘读入一个字符 KEYIN MACRO MOV AH,0;读键
INT 16H;AH中为扫描码
ENDM;==========================;代码段开始 CODE SEGMENT
ASSUME CS: CODE, DS: MYDAT, ES: BUFFER, SS: SSEG
START: MOV AX, MYDAT;装载DS,ES MOV DS, AX MOV AX, BUFFER MOV ES, AX
DISPINIT;显示方式初始化
CALL READFILE;读入文件
JC DONE
CALL CLIST;初始化索引行
CALL CLSCREEN;清屏
CALL CREWIN;创建窗口
CALL SHOWCUR;显示当前页
NEXT: KEYIN;进入主程序: 读键盘
CALL COMMAND;命令分析与处理
JNC NEXT;非x键继续循环
DONE: CALL CLSCREEN;清屏
MOV AX, 4C00H INT 21H;退出
;-------;子程序READFILE: 提示并读入文件名,将文件读入缓冲区 READFILE PROC PROMPT MSG1;CALL SIN;读入文件名
MOV AX, 3D00H MOV DX, OFFSET FILENA+2 INT 21H;打开文件(读)JC GETERR1;打开文件出错转GETERR1 PUSH DS PUSH ES POP DS;将DS指向文件缓冲区段
MOV BX, AX;BX=文件号
MOV AH, 3FH;读文件 MOV CX, 0FFFFH;读入最多64K-1 MOV DX, 0;DS: DX指向文件缓冲区
INT 21H POP DS JC GETERR2;读入文件出错转GETERR2 MOV CCOUNT, AX;实际读入字符数存入CCOUNT中
CLC JMP GETFILEXIT
GETERR1: PROMPT MSG2;读入文件出错处理
KEYIN STC JMP GETFILEXIT;
GETERR2: PROMPT MSG3;打开文件出错处理
KEYIN STC
GETFILEXIT: RET
READFILE ENDP;-------;输入文件名子程序 SIN PROC MOV AH, 0AH MOV DX, OFFSET FILENA INT 21H;输入文件名
XOR CH, CH MOV CL, FILENA+1;取文件名长度
LEA BX, FILENA+2 ADD BX, CX;计算字符串结尾地址
MOV BYTE PTR [BX], 0;在字符串尾部加0 RET SIN ENDP;-------;索引行初始化子程序 CLIST PROC MOV CX, CCOUNT JCXZ CSTX;文件为空结束
MOV SI,0;文件缓冲区字符指针
MOV DI,0;索引行指针
MOV DX,0;行数计数
MOV INDEX[DI], 0 INC DX;假设文件至少有一行 CST1: CMP WORD PTR ES:[SI], 0A0DH;判断是否为回车换行符
JNZ CST2;不是行结束,转CST2 INC DX;行数加一
ADD SI, 2;跳过回车换行符
ADD DI, 2;索引行指针加一
MOV INDEX[DI], SI;指向本行开始地址
CMP DX, MAXLEN JNC CST4;是否超过最大行,超过转CST4,结束
JMP CST3;CST2: INC SI;文件缓冲区字符指针指向下一字符 CST3: LOOP CST1;CST4: MOV LENCT, DX;保存行数到LENCT中 CSTX: RET CLIST ENDP;-------;清屏子程序
CLSCREEN PROC MOV AX, 0600H;清屏
MOV CX, 0 MOV DH, 50 MOV DL, 79 MOV BH, 07H INT 10H RET CLSCREEN ENDP;------;显示当前页子程序 SHOWCUR PROC MOV DH, 0;窗口最顶行
MOV SI, CURLINE;取当前页第一行行数
MOV CX, HS;窗口的第一行和最后一行为边框,SUB CX, 2;所以能够显示内容的高度为窗口高度减二 SC1:
CALL SHOWLINE;显示一行
INC DH;窗口下一行
INC SI;文件下一行
MOV AX, LENCT;CMP SI, AX;文件是否显示完
JNC SC2;显示完则转SC2 LOOP SC1 JMP SC1X SC2: JCXZ SC1X;该页显示满则结束
;该页没有显示满,则用空行填满该页 SC3: PUSH CX PUSH DX CALL SHOWSPLINE;显示空行
POP DX POP CX INC DH LOOP SC3 SC1X: RET SHOWCUR ENDP;------;显示一行子程序
;输入:SI=显示行行号;DH=窗口中的行号 SHOWLINE PROC PUSH CX PUSH SI PUSH DX PUSH AX
ADD DH, TOP;INC DH;实际行数=窗口左上角行数+DI+1 MOV DL, LEFT;INC DL;实际列数=窗口左上角列数+1 CALL VADD;
MOV CX, WS;窗口的第一列和最后一列是边框,SUB CX, 2;所以能够显示内容的宽度为窗口宽度减二
SHL SI, 1;行索引为字类型,所以乘二
MOV SI, INDEX[SI];取该行第一个字符在文件缓冲区的地址
PUSH DS MOV AX, 0B800H MOV DS, AX;DS指向显示缓冲区段地址 SL1: MOV AX, ES:[SI] CMP AX, 0A0DH JZ SL2;如果是回车换行,则该行结束
MOV DS: [DI], AL;显示一个字符 ADD DI, 2;INC SI;取下一个字符
LOOP SL1;JCXZ SLX;该行正好显示完,则结束,否则用空格填满
SL2: MOV BYTE PTR DS:[DI], ' ';该行没有显示满,则用空格填满
ADD DI, 2 LOOP SL2
SLX: POP DS
POP AX POP DX POP SI POP CX
RET SHOWLINE ENDP;--------;显示空行子程序
;输入:DI=窗口中的行号 SHOWSPLINE PROC;
MOV AX, HS;SUB AX, 2;CMP DH, AL;显示的空行是否超出最低行
JNC SSLX;如果是,则转SSLX ADD DH, TOP;INC DH;实际行数=窗口左上角行数+DI+1 MOV DL, LEFT;INC DL;实际列数=窗口左上角列数+1 CALL VADD;
MOV CX, WS;窗口的第一列和最后一列是边框,SUB CX, 2;所以能够显示内容的宽度为窗口宽度减二
PUSH DS MOV AX, 0B800H MOV DS, AX SSL1: MOV BYTE PTR DS:[DI], ' ' ADD DI, 2 LOOP SSL1 POP DS SSLX: RET SHOWSPLINE ENDP;-------;创建窗口子程序 CREWIN PROC PUSH ES MOV AX, 0B800H;显示缓冲区地址为B800:0 MOV ES, AX;
MOV DH, TOP MOV DL, LEFT;窗口左上角行列数
MOV CX, HS;窗口高度(行数)CW1: PUSH DX;CALL VADD;计算地址
PUSH CX;MOV CX, WS;窗口宽度(列数)
MOV AL, FG;取属性 CW2: MOV BYTE PTR ES:[DI], ' ';送空白字符
INC DI;MOV BYTE PTR ES:[DI], AL;送属性
INC DI;LOOP CW2;
POP CX POP DX INC DH;行数加一
LOOP CW1
CALL DRAWB;画边框
POP ES RET CREWIN ENDP;-;画边框子程序 DRAWB PROC PUSH DX PUSH CX PUSH BX PUSH AX MOV BL, FGB MOV DH, TOP MOV DL, LEFT CALL VADD
;画左上角角框
MOV BYTE PTR ES:[DI], 0C9H INC DI MOV BYTE PTR ES:[DI], BL INC DI
;画第一行边框
MOV CX, WS SUB CX,2 DB1: MOV BYTE PTR ES:[DI], 0CDH INC DI MOV BYTE PTR ES:[DI], BL INC DI LOOP DB1
;画右上角角框
MOV BYTE PTR ES:[DI], 0BBH INC DI MOV BYTE PTR ES:[DI], BL
;画第二行到倒数二行左右边框
MOV DH, TOP MOV DL, LEFT INC DH MOV CX, HS SUB CX, 2 DB2: PUSH DX CALL VADD MOV BYTE PTR ES:[DI], 0BAH INC DI MOV BYTE PTR ES:[DI], BL DEC DI MOV AX, WS DEC AX SHL AX, 1 ADD DI, AX MOV BYTE PTR ES:[DI], 0BAH INC DI MOV BYTE PTR ES:[DI], BL POP DX INC DH LOOP DB2;取边框属性;窗口左上角行列数;计算地址;角框╔;因为去掉了左右角框,所以宽度减二;上下边框═;角框╗;从第二行开始;第一行和最后一行没有左右边框,;所以高度减二;;计算左边框地址;左右边框║;;;;计算右边框地址;;下一行;
;画左下角角框
MOV DH, TOP;MOV DL, LEFT;MOV AX, HS;DEC AX;ADD DH, AL;左下角行数=右上角行数+窗口高度-1 CALL VADD MOV BYTE PTR ES:[DI], 0C8H;角框╚
INC DI MOV BYTE PTR ES:[DI], BL INC DI
;画最低行边框
MOV CX, WS;SUB CX, 2;因为去掉了左右角框,所以宽度减二 DB3: MOV BYTE PTR ES:[DI], 0CDH;上下边框═
INC DI MOV BYTE PTR ES:[DI], BL INC DI LOOP DB3
;画右下角角框
MOV BYTE PTR ES:[DI], 0BCH;角框╝
INC DI MOV BYTE PTR ES:[DI], BL
POP AX POP BX POP CX POP DX
RET DRAWB ENDP;------;计算窗口内某行列位置对应显存地址;输入:DH=行 DL=列;输出:DI为显存地址 VADD PROC MOV AL, 80;MUL DH;XOR DH, DH;ADD AX, DX;行数×80+列数
SHL AX, 1;乘2,因为每个字符占两个字节
MOV DI, AX RET VADD ENDP;--------;命令分析子程序 COMMAND PROC CMP AH, 2DH;2DH为x键的扫描码
JNZ COM1;不是x键,转COM1 STC;值x键标志
RET COM1: CALL DOSUB;转命令散转子程序
CLC RET COMMAND ENDP;--;命令散转子程序 DOSUB PROC MOV AL, AH MOV AH, 0;将键扫描码放入AX中
MOV BX, OFFSET KEYSUB;BX指向KEYSUB DOSUB1: CMP WORD PTR [BX], 0 JZ DOSUBX;KEYSUB表查完,即没有找到转DOSUBX CMP AX, [BX] JZ DOSUB2;找到扫描码转DOSUB2 ADD BX, 4 JMP DOSUB1;DOSUB2: ADD BX, 2 MOV BX, [BX];取处理程序入口地址
JMP BX;转处理程序 DOSUBX: RET
;SUB1和SUB2均为功能键处理程序;处理完后应使用JMP DOSSUBX结束
;上箭头键处理程序 SUB1: CMP CURLINE, 0 JZ SUB1X;已到第一行,结束
DEC CURLINE;向上一行
CALL SHOWCUR;显示当前页 SUB1X: JMP DOSUBX
;下箭头键处理程序 SUB2: MOV AX, LENCT DEC AX DEC AX;至少显示一行
CMP AX, CURLINE;已到最后一行
JZ SUB2X INC CURLINE;向下一行
CALL SHOWCUR;显示当前页 SUB2X: JMP DOSUBX
DOSUB ENDP;--------
CODE ENDS
;========================= END START
第五篇:2012语言课程设计任务书
河南工程学院
《汇编语言》 课程设计任务书
适用专业:
计算机科学与技术
适用班级: 本科
2014年12月20日
《汇编语言》课程设计任务书
一、课程设计目的与任务
汇编语言课程设计是本科教学过程中重要环节。通过课程设计,培养计算机专业学生,运用所学知识,进一步提高学生汇编语言综合编程能力和程序调试技能。并能够使学生更加熟练运用汇编程序设计语言,来解决计算机应用领域实际问题的能力,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。
二、课程设计环境要求
1、硬件配置:586以上电脑
2、操作系统:WINDOWS 98/XP/2000等
3、软件需求:MASM 6.15
三、课程设计基本要求
要求通过查阅与设计课题相关的文献资料,自学与其相关内容,掌握MASM 6.15集成开发环境的使用。根据题目要求,自由分组,自选一个题目完成,根据各小组每个学生的出勤情况、负责部分完成情况、最后答辩情况及报告撰写是否规范,形成个人成绩。具体要求如下:
1、在整个设计期间,无违纪现象(迟到、早退、逃课),态度认真;
2、整体架构正确合理、流程图清晰无误;
3、设计尽可能完成题目所要求的功能;
4、程序代码清晰,便于阅读;
5、报告书写规范;
6、提供可运行的课程设计系统,并参加上机面试答辩;
7、在课程设计结束时,上交实习报告和程序清单。
四、课程设计内容
1、计算比赛成绩。编制一个程序,要求完成以下功能:(1)9名评委,每个评委给分范围为0~10(整数);
(2)9名评委给分中,去掉一个最高分和一个最低分,剩余7名评委的平均分
即为参赛者的得分(精确到小数点后1位);
(3)并将得分输出显示。
2、成绩评定。编制一个程序,要求完成以下功能:(1)以十进制形式从键盘随机输入成绩(不多于50个);
(2)显示成绩评定的等级(90-100为优,80-90为良,70-80为中,60-70为及格,60分以下为不及格);
(3)统计出各个等级的人数并以十进制形式显示输出;(4)当输入Q时,退出程序。
3、成绩排序。编制一个程序,要求完成以下功能:
(1)以十进制形式从键盘随机输入成绩(不多于50个),并用逗号或空格分隔各学生成绩;
(2)对该班的成绩进行递减排序,并以十进制形式显示排序结果并用逗号或空格分隔;
(3)计算全班的平均分并以十进制形式显示输出;(4)当输入Q时,退出程序。
4、代码转换程序设计。编制一个程序,要求完成以下功能:
完成一个字母或数制之间的转化,主程序分别具有6种可选择的子功能,按相应的字符可分别进入相应的子功能并在屏幕上显示结果,按“Q”键退出。6种可选择的子功能分别为:
(1)实现小写字母向大写字母的转换;(2)实现大写字母向小写字母的转换;(3)实现大写字母与小写字母的互换;(4)实现二进制数向十六进制数的转换;(5)实现十六进制数向二进制数的转换;(6)实现十六进制数向十进制数的转换。
5、信息检索。编制一个程序,要求完成以下功能:
(1)完成一个信息检索系统,在数据区,有9个不同的信息,编号为0~8,每个信息包括50个字符;
(2)从键盘输入0~8之间的一个编号,然后在屏幕上显示相应编号的信息内容;(3)当输入Q时,退出程序。、字符统计。编制一个程序,要求完成以下功能:(1)从键盘输入一个字符串(串长不大于100);(2)以十进制输出字符串中非字母字符的个数;
(3)输出原字符串;
(4)找出字符串中ASCII 码值最大的字符,在字符串中用红色显示;(5)字符串的输入和结果的输出都要有必要的提示,且提示独占一行。
7、奇偶数判断。编制一个程序,要求完成以下功能:(1)从键盘输入两个四位十六进制数;(2)将这两个数以二进制形式输出;
(3)找出这两个数中的偶数,若有则以十进制输出,若无,输出“NO”;(4)计算这两个数的平方和,并以十进制形式输出;
(5)数据的输入和结果的输出都要有必要的提示,且提示独占一行。
8、十进制数字串处理。编制一个程序,要求完成以下功能:(1)从键盘输入一个以回车结束的十进制数字串(不超过20 个)。(2)按 ASCII 码值降序显示这个数字串中最大和最小的两个数字。(3)以十进制形式显示数字串中所有数字的和。
(4)以十进制形式显示数字串中最大数与最小数的乘积。(5)对数字串进行处理,使每个字符在字符串中只出现一次。
(6)数据的输入和结果的输出都要有必要的提示,且提示独占一行。
五、课程设计报告
课程设计报告主要包含以下内容:
1、课程设计的题目,本设计所实现的功能简述;
2、主要的设计思想简述;
3、主要程序的框图;
4、源程序代码(要求在关键的位置注释,从而增加程序的可读性);
5、程序调试结果及分析;
6、课程设计的总结,主要包括以下内容:(1)课程设计中所遇到的主要问题和解决方法。(2)创新和得意之处。
(3)课程设计中存在的不足,需要进一步改进的设想。(4)课程设计的感想和心得体会。
7、参考文献(不少于5篇)。
六、课程设计时间、地点及辅导教师
1、时间:2014-2015学年第1学期第19周
2、班级:计算机科学与技术1241、1242
3、地点:计算机学院机房
4、辅导教师:王雪瑞
前4个题目,每组不超过两个人;第5个题目一人,6、7、8三个题目每组不超过3人。