微机原理-比赛评分系统程序设计
用VB程序设计比赛评分系统的方法
用VB程序设计比赛评分系统的方法应用VB程序设计的步骤,制作一个比赛评分的系统,你知道要怎么做吗?今天小编为大家收集整理了用VB程序设计比赛评分系统的方法,欢迎阅读!用VB程序设计比赛评分系统的方法图解下载visual basic 6.0精简版,安装后,双击打开程序。
选择标准EXE,单击打开按钮。
2单击工具箱的listbox控件,在form面板上画一个矩形框,它用来显示项目列表,本例中是显示裁判的打分以及选手最后得分。
3单击命令控件,在程序面板上画出两个按钮。
用来执行开始和结束命令。
右击第一个按钮,选择属性窗口,可以设置按钮名称和其他属性。
把名称改为开始,同样的可以把另一个按钮名称改为结束。
然后,右击窗体空白处,选择属性窗口,把form1的名称改为比赛评分系统,这样程序的界面就设置好了。
如何编写事件过程代码?首先要制定一个算法:约定裁判给分为10分制,可以是0到10之间的整数或小数。
然后,去掉一个最高分,去掉一个最低分,计算平均分,本例约定裁判人数为10人。
双击开始按钮,输入以下代码。
在书写代码时要注意字母标点符号都要在英文状态下输入。
要注意空格,例如& i &中含空格,系统有自动检查程序语法功能,没有空格就无法通过,显示为红色。
同样的双击结束按钮,输入end,这个语言是命令程序终止。
如何调试和运行程序?单击菜单栏的运行---启动(或者全编译执行),可以试运行程序。
如果有语法错误,编写过程就会显示红色提示。
现在主要看一下,能否正常运行。
例如List.AddItem (score),List后面漏了一个1,语法上没错,但是运行时,输入的分数就没法显示了。
所以要认真检查字母和标点。
在调试的时候还要进行软件测试,你输入10个打分,用计算器算一下结果和所编的程序显示的结果一样不一样,验证一下程序的可信度。
另外,假如你在输入分数时不小心,输入一个字母,系统就默认为0。
测试好了以后,单击结束按钮结束测试。
比赛计分器课程设计报告
比赛计分器课程设计报告一、课程目标本节“比赛计分器”课程旨在通过实践操作,帮助学生掌握以下知识目标:1. 了解比赛计分器的功能与结构,理解其工作原理;2. 学会运用所学编程知识设计简单的计分器程序。
技能目标包括:1. 能够运用所学的编程技巧,独立设计并编写计分器程序;2. 通过小组合作,培养学生团队协作和沟通能力。
情感态度价值观目标为:1. 培养学生积极探究新知识,敢于面对挑战的精神;2. 增强学生对信息技术学科的兴趣,提高其学习积极性。
针对五年级学生的特点,课程性质为实践性、探究性,教学要求注重培养学生的动手操作能力和创新思维。
课程目标具体、可衡量,能够使学生和教师在教学过程中清晰地了解预期成果。
将目标分解为以下具体学习成果:1. 学生能够描述比赛计分器的工作原理;2. 学生能够运用所学知识,编写简单的计分器程序;3. 学生能够在小组合作中,积极参与讨论,与团队成员共同完成任务;4. 学生在课程结束后,能够表达对信息技术学科的兴趣和热爱。
二、教学内容本节“比赛计分器”课程依据课程目标,选取以下教学内容:1. 理论知识:- 比赛计分器的功能与结构;- 编程基础知识:变量、循环、条件语句等;- 小组合作与沟通技巧。
2. 实践操作:- 设计并编写简单的比赛计分器程序;- 小组分工合作,共同完成任务。
教学大纲安排如下:第一课时:- 理论知识:介绍比赛计分器的功能与结构,回顾编程基础知识;- 实践操作:指导学生了解计分器需求,明确编程目标。
第二课时:- 理论知识:讲解编程中可能遇到的问题及解决方法;- 实践操作:学生编写计分器程序,教师巡回指导。
第三课时:- 实践操作:小组合作,共同优化计分器程序;- 总结评价:展示成果,小组互评,教师点评。
教学内容与课本关联性如下:- 理论知识:参考教材第五章“编程基础”相关内容;- 实践操作:结合教材第七章“综合实践”案例,设计比赛计分器项目。
教学内容具有科学性和系统性,确保学生在掌握基础知识的同时,提高实践操作能力。
竞技比赛打分系统C语言程序设计报告
C语言程序设计设计题目: 竞赛比赛打分系统专业...……………………….......班级...... ……………......姓名: …………….学号.. ………………….........目录一总体设计(包含几大功能模块) (1)二详细设计(各功能模块的具体实现算法——流程图) (4)三调试分析(包含各模块的测试用例, 及测试结果) 63.1源程序 (6)3.2调试与测试 (12)四总结 (15)一总体设计(包含几大功能模块)I. insert record to a fileN .search record by nameC.searc.recor.b.codeL.lis.al.th.recordsS.sort the records by total二、详细设计(各功能模块的具体实现算法——流程图)2.1各函数的功能和实现I. insert record to a file:输入田径记录分数文件。
可用函数void input来实现此操作N .search record by name输入田径运动员的名字C.searc.recor.b.code输入田径运动员号码可用void find()来实现L.lis.al.th.records分数列表S.sort the records by total计算总分数Q.quit退出可用一个函数exit()来实现, 首先将信息保存到文件中, 释放动态创建的内存空间, 再退出此程序。
流程图详见A4纸上手绘三调试分析(包含各模块的测试用例, 及测试结果)3.1源程序#include <stdio.h>#define JUDEGNUM 3 /* 裁判数*/#define NAMELEN 20 /* 姓名最大字符数*/#define CODELEN 10 /* 号码最大字符数*/#define FNAMELEN 80 /* 文件名最大字符数*/#define BUFFSIZE 128 /* 缓冲区最大字符数*/char judgement[JUDEGNUM][NAMELEN+1] = {"judgementA","judgementB","judgementC"}; struct AthleteScore{char name[NAMELEN+1]; /* 姓名*/char code[CODELEN+1]; /* 学号*/int score[JUDEGNUM]; /* 各裁判给的成绩*/int total; /* 总成级*/};struct LinkNode{char name[NAMELEN+1]; /* 姓名*/char code[CODELEN+1]; /* 号码*/int score[JUDEGNUM]; /* 各裁判给的成绩*/int total; /* 总成级*/struct LinkNode *next;}*head; /* 链表首指针*/int total[JUDEGNUM]; /* 各裁判给的总成绩*/FILE *filepoint; /* 文件指针*/char filename[FNAMELEN];/* 文件名*//* 从指定文件读入一个记录*/int GetRecord(FILE *fpt,struct AthleteScore *sturecord){char buf[BUFFSIZE];int i;if(fscanf(fpt,"%s",buf)!=1)return 0; /* 文件结束*/strncpy(sturecord->name,buf,NAMELEN);fscanf(fpt,"%s",buf);strncpy(sturecord->code,buf,CODELEN);for(i=0;i<JUDEGNUM;i++)fscanf(fpt,"%d",&sturecord->score[i]);for(sturecord->total=0,i=0;i<JUDEGNUM;i++)sturecord->total+=sturecord->score[i];return 1;}/* 对指定文件写入一个记录*/void PutRecord(FILE *fpt,struct AthleteScore *sturecord){int i;fprintf(fpt,"%s\n",sturecord->name);fprintf(fpt,"%s\n",sturecord->code);for(i=0;i<JUDEGNUM;i++)fprintf(fpt,"%d\n",sturecord->score[i]);return ;}/* 显示运动员记录*/void ShowAthleteRecord(struct AthleteScore *rpt){int i;printf("\nName : %s\n",rpt->name);printf("Code : %s\n",rpt->code);printf("score :\n");for(i=0;i<JUDEGNUM;i++)printf(" %-15s : %4d\n",judgement[i],rpt->score[i]);printf("Total : %4d\n",rpt->total);}/* 列表显示运动员成绩*/void Listathleteinfo(char *fname){FILE *fp;struct AthleteScore s;clrscr();if((fp=fopen(fname,"r"))==NULL){printf("Can't open file %s.\n",fname);return ;}while(GetRecord(fp,&s)!=0){ShowAthleteRecord(&s);}fclose(fp);return;}/* 构造链表*/struct LinkNode *CreatLinklist(char *fname){FILE *fp;struct AthleteScore s;struct LinkNode *p,*u,*v,*h;int i;if((fp=fopen(fname,"r"))==NULL){printf("Can't open file %s.\n",fname);return NULL;}h=NULL;p=(struct LinkNode *)malloc(sizeof(struct LinkNode));while(GetRecord(fp,(struct AthleteScore *)p)!=0){v=h;while(v&&p->total<=v->total){u=v;v=v->next;}if(v==h)h=p;elseu->next=p;p->next=v;p=(struct LinkNode *)malloc(sizeof(struct LinkNode));}free(p);fclose(fp);return h;}/* 顺序显示链表各表元*/void OutputLinklist(struct LinkNode *h){clrscr();while(h!=NULL){ShowAthleteRecord((struct AthleteScore *)h);printf("\n");while(getchar()!='\n');h=h->next;}return;}/* 按运动员姓名查找记录*/int SearchbyName(char *fname, char *key){FILE *fp;int c;struct AthleteScore s;clrscr();if((fp=fopen(fname,"r"))==NULL){printf("Can't open file %s.\n",fname);return 0;}c=0;while(GetRecord(fp,&s)!=0){if(strcmp(,key)==0){ShowAthleteRecord(&s);c++;}}fclose(fp);if(c==0)printf("The athlete %s is not in the file %s.\n",key,fname);return 1;}/* 按运动员号码查找记录*/int SearchbyCode(char *fname, char *key){FILE *fp;int c;struct AthleteScore s;clrscr();if((fp=fopen(fname,"r"))==NULL){printf("Can't open file %s.\n",fname);return 0;}c=0;while(GetRecord(fp,&s)!=0){if(strcmp(s.code,key)==0){ShowAthleteRecord(&s);c++;break;}}fclose(fp);if(c==0)printf("The athlete %s is not in the file %s.\n",key,fname);return 1;}void InsertRecord(){FILE *fp;char c,i,j,n;struct AthleteScore s;clrscr();printf("Please input the athletes score record file's name: \n");scanf("%s",filename);if((fp=fopen(filename,"r"))==NULL){printf("The file %s doesn't exit.\ndo you want to creat it? (Y/N) ",filename);getchar();c=getchar();if(c=='Y'||c=='y'){fp=fopen(filename,"w");printf("Please input the record number : ");scanf("%d",&n);for(i=0;i<n;i++){printf("Input the athlete's name: ");scanf("%s",&);printf("Input the athlete's code: ");scanf("%s",&s.code);for(j=0;j<JUDEGNUM;j++){printf("Input the %s mark: ",judgement[j]);scanf("%d",&s.score[j]);}PutRecord(fp,&s);}fclose(fp);}}fclose(fp);return;}int main(){int i,j,n;char c;char buf[BUFFSIZE];while(1){clrscr();printf("\n-------------- Input a command -----------\n");printf(". ..inser.recor.t..file......|\n");printf(". .......|\n");printf(". ..searc.recor.b.code.......|\n");printf(". ..lis.al.th.records....... |\n");printf(". ..sor.th.record.b.total.....|\n");printf(". ..quit............... |\n");printf("------------------------------------------\n");printf("Please input a command:\n");scanf("%c",&c); /* 输入选择命令*/switch(c){case 'i':InsertRecord();getch();break;case 'n': /* 按运动员的姓名寻找记录*/printf("Please input the athlete's name:\n");scanf("%s",buf);SearchbyName(filename,buf);getch();break;case 'c': /* 按运动员的号码寻找记录*/printf("Please input the athlete's code:\n");scanf("%s",buf);SearchbyCode(filename,buf);getch();break;case 'l': /* 列出所有运动员记录*/Listathleteinfo(filename);getch();break;case 's': /* 按总分从高到低排列显示*/if((head=CreatLinklist(filename))!=NULL)OutputLinklist(head);getch();break;case 'q':return 1;default:break;}}return 1;}3.2调试与测试主要程序运行结果: 运行开始I. insert record to a fileN .search record by name C.searc.recor.b.codeL.lis.al.th.recordsS.sort the records by total五.设计总结经过一周的课程设计, 我学到了很多东西:①巩固和加深了对数据结构的理解, 提高综合运用本课程所学知识的能力。
竞赛打分系统的设计与实现论文
毕业设计说明书学生姓名学号学院计算机科学与技术学院专业计算机科学与技术(软件工程)题目竞赛打分系统的设计与实现讲师/硕士指导教师(姓名) (专业技术职称/学位)2013 年 5 月摘要:竞赛打分系统是一个简单的信息发送,接收与处理系统,本系统由PC、打分终端等组成,采用串口总线通讯,语言包括VB,汇编语言。
评委在各自的打分终端上输入比赛成绩,终端通过总线将数据传送到PC机,软件对各评委的打分进行统计,最终得出选手的名次。
本文介绍了系统的工作原理,软件和硬件设计,给出了关键源代码及部分电路的原理图。
关键字:VB,汇编语言,串行通讯,竞赛Abstract:The judges scoring system is to send a simple message, receiving and processing system,this system is composed of PC, scoring terminal, this system's languages are VB、assembler.the bus structure.the hardware structure is simple。
In the traditional game score,the score, the format and effectiveness need manual inspection,is prone to errors, will also affect the fairness of the scoring.This system is:the fractional collection, analysis, processing of players, and then through the way of showing stick out a mile.After using this system, can save the game organizers of manpower, material resources。
比赛计分器
湖南工程学院课程设计课程名称微机原理与应用课题名称比赛计分器设计专业班级学号姓名指导教师2011 年 5 月30 日湖南工程学院课程设计任务书课程名称微机原理与应用课题比赛计分器设计专业班级自动化0802学生姓名学号指导老师审批任务书下达日期2011 年 5 月30 日任务完成日期2011 年6 月9 日电气信息学院课程设计评分表指导教师签名:________________日期:________________注:①表中标*号项目是硬件制作或软件编程类课题必填内容;②此表装订在课程设计说明书的最后一页。
课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。
目录第1章系统概述 (1)1.1 功能简述 (1)1.2 按钮设置 (1)第2章总体方案设计 (2)2.1系统框图 (2)2.2 软件总体设计 (2)第3章系统硬件设计 (3)3.1 80C51单片机 (3)3.2 3×4矩阵式键盘 (3)3.3 8段数码管显示器 (3)3. 4 系统原理图........................ (3)第4章软件设计 (4)4.1 主函数设计 (4)4.2 按键码获取,按键处理函数 (5)4.3 显示子函数 (6)4.4 延时子函数 (7)第5章系统的安装调试说明 (8)5.1 软件调试 (8)5.2 软硬联调 (8)总结 (9)参考文献 (10)附录A 系统原理图 (11)附录B 源程序清单 (12)第1章系统概述1.1 功能简述本设计内容为比赛计分器,主要用于各种体育比赛记录分数。
采用矩阵式键盘作为输入,用户可分别对两队比分进行加1、加2、加3和减1减2、减3操作,其加减1,2,3分可以通过加减1分、2分和3分的切换按钮实现,并通过指示灯显示其每次按下加减分键所加减的分值。
可以实现预置分。
比分通过4个8段数码管显示器进行显示,每队比分显示2位,1.2 按钮设置计分器应该有7个按键分别标注于原理图,见图1.1。
比赛评分系统 C语言课程设计
武汉理工大学华夏学院课程设计课程名称C语言课程设计题目比赛评分系统的设计专业软件工程班级软件1121班姓名成绩_________________指导教师王绪梅2013年2月25日至2013年3月1 日课程设计任务书学生姓名:专业班级:软件1121指导教师:王绪梅工作单位:信息工程系设计题目:比赛评分系统的设计要求完成的主要任务:1. 任务描述学校要举办一个歌咏比赛,请设计一个比赛评分程序,对参赛的选手进行评分。
(给分的原则为:满分为10分;计分方法是:裁判给出分数后,去掉两个最高分和两个最低分后的平均分为选手的最后得分(精确到小数点后两位).)要求系统实现以下功能:⑴设参赛人数为n位(n<50),裁判人数为m(m为不少于11的奇数)位;⑵系统能录入参赛人员资料;参赛选手按序号依次比赛,统计最后得分;⑶能够查阅选手的得分情况;⑷比赛结束后,显示出“名次表”;⑸公布一、二、三等奖的得奖选手名单。
2.本课程涉及的知识点变量的定义、输入和输出函数、数组的应用、循环语句、选择语句等等。
3. 要求完成的任务⑴完成整个规定任务的设计及调试,最后得出正确结果,并经教师检查及答辩;⑵写出规范的课程设计报告,在设计思想描述时一定要画出程序算法流程图;⑶课程设计结束后交设计说明书等文档和设计内容:⑷从2月26日起,学生每天至少要到设计教室半天以上;设计报告撰写格式要求:设计报告的主要内容是详细写出在设计过程中所用到的主要技术或方法;课程设计报告按通用格式书写,具体要求见资料:“课程设计说明书的书写内容与格式”时间安排:第一天:学生先在实验室集中,由指导教师介绍课程设计的目的、布置任务后选题;第二天-第四天:学生在实验室完成设计,经教师检查并回答提问,确认设计完成;第五天:教师在计算机上先检查设计报告、学生修改后打印提交指导教师签字:2013年2月20日系主任签字:2013年2月23日目录1.设计题目................................................................. 错误!未定义书签。
微机原理课程设计成绩评定表
20
设计任务演示
编写程序,调试结果
10
答辩
对课程设计内容进行全面、系统的总结,能圆满的回答老师的问题
30
说明书
设计说明书内容完整,文字通顺,规范化、参考文献充分
20
课程设计总评成绩:
指导老师签名:
日期:2022年6月日
微机原理课程设计成绩评定表
系部
自动化与电气学院
姓名
专业
班级
课程设计题目:
课程设计答辩或质疑记录:
成绩评定依据:
评价内容
评定项目
评分
成绩
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作
10
查阅文献
能独立查阅文献,收集资料;查阅文献有一定广泛性;有综合归纳资料的能力
10
系统设计工作量
简易评分系统程序设计说明书
概述程序名称:简易评分系统开发平台:Windows 7VC++ 6.0主要功能:1.管理员界面(1)于程序中设置评委信息(2)从文件导入评委信息(3)于程序中设置参赛者信息(4)从文件导入参赛者信息(5)导出赛果到文件2.评委界面(1)显示参赛者列表与评分(2)根据名次显示赛果(3)根据名称显示赛果3.参赛者界面:显示自己的最终成绩程序说明:该程序根据使用者身份分为三个可执行文件独立运行该程序于使用期间可根据需要打开或退出而不会丢失中间数据,除非使用者自行更改程序运行时生成的文件。
管理员密码固定为administrator程序所有相关文件需置于同一目录下运行环境:win7文件说明:1.源代码(1)管理员相关函数:adm_function.h(2)评委相关函数:jdg_function.h(3)参赛者相关函数:cmpt_function.h(4)数据读写相关函数与数据结构:data.h(5)管理员界面源文件:adm.cpp(6)评委界面源文件:jdg.cpp(7)参赛者界面源文件:cmpt.cpp2.程序执行文件(1)管理员界面:adm.exe(2)评委界面:jdg.exe(3)参赛者界面:cmpt.exe3.主要数据存储文件(1)评委信息:jdg.dat(2)参赛者信息:cmpt.dat(3)赛果:result.dat●程序设计概要⏹数据读写相关函数与数据结构头文件包含头文件#include<fstream.h> // 文件读写#include<stdio.h> // C语言标准输入输出#include<string.h> // 字符串比较数据结构struct judge//评委{int j_id;//评委编号char name[20],password[20];};struct competitor//参赛者{int c_id;//参赛者编号char name[20],password[20];float score;int ranking;//排名};函数1.void scoring_mtrx()该函数生成一个二维数组[jdg_num][cmpt_num]用于保存评分过程并以二进制文件形式保存于外存2.void cmpt_counter() void cmpt_counter(int cmpt_id)该函数生成数组[cmpt_num],标识某参赛者已被多少位评委评分并输出到文件cmpt_counter.dat文件开头有评委与参赛者的人数供判断评分是否已全部结束函数有重载,一个参数为无参,用于管理员完成人数设置后初始化cmpt_counter.dat 用,另一个参数为(cmpt_id)用于在评分时更新cmpt_counter.dat数据用3. void jdg_counter() void jdg_counter(int jdg_id)该函数生成数组[jdg_num],标识某位评委已对多少位参赛者评分,数据输出保存到jdg_num.dat该函数同样有一重载用于评分时更新jdg_counter.dat的数据4.void sorting()该函数用于对参赛者成绩进行排序5.int if_end()该函数用于判断所有评委的评分工作是否已经完成⏹管理员界面相关函数与流程包含头文件#include"data.h"函数1.void adm_log()管理员登陆界面2.void adm_in()管理员登入后的界面3.void set_jdg()设置评委数据4.void jdg_fromfile(int n,judge *p)从文件导入评委数据(被set_jdg()调用)5.void jdg_inprgrm(int n,judge *p)在程序中设置评委数据(被set_jdg()调用)6.void set_cmpt()设置参赛者数据7.void cmpt_fromfile(int n,competitor *p)从文件导入参赛者数据(被set_cmpt()调用)8.void cmpt_inprgrm(int n,competitor *p)在程序中设置参赛者数据(被set_cmpt()调用)9.void to_file()导出赛果到文件大致流程1.程序运行后会检查是否有jdg.dat与cmpt.dat2.若无以上两文件则提示设置评委与参赛者3.若已存在以上两文件则判断评分工作是否已经完成4.若否则提示管理员在评分工作完成后登陆5.若是则提示导出赛果到文件⏹评委界面相关函数与流程包含头文件#include"data.h"#include<conio.h> // fflush(stdin)清除输入缓冲区残余数据函数1.void show_by_name(int jdg_id)根据名字显示赛果2.void cmpr(int c,int i,char **p_p)用于 show_by_name 函数排列参赛者名字顺序时调用3.void show_by_score(int jdg_id)根据名次显示赛果4.void show_cmpt(int jdg_id)显示参赛者列表以及该评委对各个参赛者的评分5.void jdg_log()评委登陆界面6.void jdg_in(int jdg_id)评委登入后的界面大致流程1.程序运行后检查管理员是否已经完成评委设置2.若否则退出程序3.若管理员已完成设置则输出提示:1.显示参赛者列表与评分2.根据名次显示赛果3.根据名称显示赛果4.若选择1则检查该评委是否已完成评分工作5.若已完成则输出提示并显示该评委对所有选手的评分6.若否则提示输入选手编号进行评分7.若选择2与3则检查所有评委是否都已完成评分工作8.若否则输出提示信息9.若已完成则根据评委要求对选手进行排序并输出⏹参赛者界面相关函数与流程包含头文件#include"data.h"函数1.void cmpt_login()参赛者登陆2.void show_score(int cmpt_id)显示登陆的参赛者的最终成绩与排名大致流程1.程序运行后检查管理员是否已经完成初始化设置2.若未完成则输出提示信息3.若已完成则检查所有评委的评分工作是否已经完成4.若是则输出该参赛者的最终成绩5.若否则输出提示信息●关键代码分析管理员初始化设置程序提供两种方式进行评委与参赛者的初始化设置,若选择于程序中输入初始化数据,则完成输入后程序后生成jdg.dat与cmpt.dat。
大奖赛计分程序设计
微机原理课程设计四-大奖赛计分程序设计默认分类2008-08-28 22:58:12 阅读41 评论0 字号:大中小一.题目大奖赛计分程序设计一.设计要求:编制一个程序,实现选手成绩的平均分计算。
设有十个评委给参赛的选手评分,分数是从键盘上输入的十个十进制数。
1.把输入的十进制数转换成二进制数,并求出最大数和最小数。
2.求出十个数的总和,减去最大数和最小数,求出平均值。
3.将二进制的平均值转换为十进制,并在屏幕上显示十进制的结果。
三.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕根据任务书要求,在教师的指导下,独立完成设计方案,根据各模块功能,采用相关知识完成各功能块的详细设计、调试以及系统测试。
完成设计任务后,由指导教师进行验收。
验收过程中,接受指导教师对综合应用能力和实验能力的提问考查。
认真、规范地撰写课程设计报告,报告应包括:封面目录内容部分包含:一、设计任务(目的和要求)二、总体方案三、原理框图四、系统模块详细设计与调试五、设计总结六、参考文献七、附件材料(含硬件图纸、程序清单及说明、元器件清单和实物图片等)四.主要参考文献《微机原理实验与课程设计指导书》,陆红伟编,中国电力出版社,2006年《8086微型计算机组成、原理及接口》,顾滨,机械工业出版社,2001《微型计算机原理及应用》,吕淑萍等,哈尔滨工程大学出版社,2004年《微型计算机技术及应用》,戴梅萼,清华大学出版社,2005大赛计分器(程序设计)DATA SEGMENTMES DB 0DH,0AH,'PLEASE INPUT TEN NUMBERS:$' BUF DB 100DB ?DB 100 DUP(?)BUF1 DB 20 DUP(?)MAX DB ?MIN DB ?SUM1 DW ?SUM2 DW ?DATA ENDSSTACK SEGMENT STACKDB 200 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESMOV AH,09HINT 21HMOV DX,OFFSET BUFMOV AH,0AHINT 21HMOV BX,DXMOV CX,10INC BXINC BXMOV SI,OFFSET BUF1L1: MOV AL,[BX]SUB AL,30HMOV DL,10MUL DLMOV AH,ALMOV AL,[BX+1]SUB AL,30HADD AL,AHMOV [SI],ALINC SIINC BXINC BXINC BXLOOP L1MOV CX,9MOV AL,BUF1MOV MAX,ALMOV MIN,ALMOV BX,OFFSET BUF1+1LAST: MOV AL,[BX]CMP AL,MAXJG GREATCMP AL,MINJL LESSJMP NEXTGREAT: MOV MAX,ALJMP NEXTLESS: MOV MIN,AL NEXT: INC BXLOOP LASTMOV CX,10MOV AX,0CLCMOV BX,OFFSET BUF1 L2: ADD AL,[BX]ADC AH,0INC BXLOOP L2MOV SUM1,AXMOV BH,0MOV BL,MAXSUB AX,BXMOV BL,MINSUB AX,BXMOV SUM2,AXMOV DL,8DIV DLMOV AH,0MOV DL,10DIV DLADD AL,30HMOV BL,AHMOV DL,ALMOV AH,02HINT 21HADD BL,30HMOV DL,BLMOV AH,02HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START。
评分系统
微机原理与接口技术课程设计评分系统1.题义分析及解决方案1.1题义需求分析设计内容是用8086系统的接口芯片设计一个评委使用的评分系统,并编程求他们所给的分的平均分,且能显示最后得分.因此首先是应用合适的外设以获得四位评委给选手打的分数,可以用可编程并行接口芯片8255A与数据开关相结合来实现.其次评分时应该设置一个统一的评分时间让四位评委评分,否则即使评分也无法输出,可以考虑用一位开关作为主持人信号.再次,当数据输入结束,即四个分数分别存入指定的数据缓冲后,就要进入对这些数据的处理过程,即编制相应的求其平均分的处理程序.在此过程中还应考虑到平均分可能并非整数,可以规定保留一位小数(精度).最后,当平均分(即最后得分)经程序求出后,要将其显示在LED显示器上,此时通过恰当的位选和段选控制,使最后得分显示出来.综上所述,此设计共有如下4个问题有待解决:(1)应该采用什么外设来实现数据的输入?(2)应该用什么作为评委开始评分的信号?(3)怎样处理输入的数据?对平均分是非整数如何处理?(4)用什么作为输出设备?如何显示最后得分?经过以上分析,可知问题(3)应该用软件方式解决,即编程求其平均分,其中对平均分非整数的处理也采用软件方式.而余下三个问题都应采用硬件方式解决(其中问题(4)的解决还应结合软件方法,即通过位选码对每一位的显示进行控制,还要通过段选码对每一个LED的每一段进行控制).1.2解决问题方法及思路1.2.1硬件部分:对开问题(1),本来用于数据输入的方式很多,如8位数据开关、小键盘等等.小键盘作为输入设备,其电路相对简单,但对其编程接收输入数据比较复杂.与之相较, 8位数据开关的电路虽然相对复杂,但对其编程接收输入数据的程序比较简单.表1-1 输入方式对比小键盘逻辑开关可靠性高,边线少,但使用麻烦,需编制行、列扫描程序连线简单,以逻辑开关的上下切换来表示二进制数“1”或“0”,容易实现,且容易观察所输入的是哪16位二进制数据经对比,决定使用逻辑开关作为数据输入.而实验箱只有8个逻辑开关,故需采用分步输入.对于问题(2),完全可以用一位逻辑开关来实现评委开始评分的信号.对于问题(4),输出设备可选用字符型液晶显示器或LED显示器,二者比较如下:表1-2 输出方式比较LED七段显示器字符型液晶显示器常用输出设备,由发光二极管封装而成,工作电压低,体积小,相应快。
比赛计分器课程设计改汇总
微机原理 课程设计报告实验名称: 计算机比赛计分器 姓 名: 黄秀满 学 号: 201217010222 专业班级: 计科12102班 指导教师: 杨红杰 实验日期: 2015年上学期第十八周评阅意见:评定成绩: 指导老师签名: 年月 日目录一、系统概述 (1)1.1 功能简述 (1)1.2 按钮设置 (1)二、总体方案设计 (2)2.1 系统框图 (2)2.2 软件总体设计 (3)三、系统硬件设计 (3)3.1 80C51单片机 (3)3.2 3×4矩阵式键盘 (3)3.3.1 数码管显示器数量选择 (4)3.3.2 数码管共阴共阳接法的选择 (4)3.3.3 数码管驱动的选择 (4)3. 4系统原理图 (5)四、系统软件设计 (6)4.1主函数设计 (6)4.2按键获取,按键处理函数 (7)4.3显示子程序 (8)4.4 延时子程序 (9)五、系统的安装调试说明 (10)5.1 软件调试 (10)5.2 软硬联调 (10)六、源程序清单: (11)总结 (18)参考文献 (18)一、 系统概述1.1 功能简述本设计内容为比赛计分器,主要用于各种体育比赛记录分数。
采用矩阵式键盘作为输入,用户可分别对两队比分进行加1、加2、加3和减1减2、减3操作,其加减1,2,3分可以通过加减1分、2分和3分的切换按钮实现,并通过指示灯显示其每次按下加减分键所加减的分值。
可以实现预置分。
比分通过4个8段数码管显示器进行显示,每队比分显示2位,1.2 按钮设置计分器应该有7个按键分别标注于原理图,见图1.1。
p2.1p 2.4p 2.5p2.2p2.0p 2.6p 2.7清零1/2/3分切换甲加1甲减1乙加1乙减1图1.1按钮功能图其中1/2/3分切换由发光二极管指示,加1减1分别对应。
预置分是事先设定分数可以分别设定甲乙两队的初始分数。
按下清零后,显示的分数清零。
二、 总体方案设计2.1 系统框图系统框图,见图2.1。
裁判评分系统的设计与实现
郑州科技学院微机原理与接口技术课程设计任务书专业计算机科学与技术班级1班学号201215010 姓名冯莲一、设计题目裁判评分系统的设计与实现二、设计任务与要求1、键盘上输入7名裁判的评分(0-10,整数),扣除一个最高分,扣除一个最低分,计算出其它五个分数的平均值(保留整数);2、显示器输出“The final score is:”显示相应的结果。
三、参考文献(不少于5个)[1]陆忠华.汇编语言程序设计[M].科学出版社,1993[2]迟成文,王保秀.汇编语言程序设计[M].中国科学技术大学出版社,1993[3]彭虎,周培玲,傅忠谦.微机原理与接口技术(第2版)[M].电子工业出版社,2008[4]张荣标,微型计算机原理与接口技术[M].机械工业出版社,2009.4[5]徐建民.汇编语言程序设计[M].电子工业出版社.2005年[6]宋杰,汪志宏,江敏,微机原理与接口技术课程设计[M].机械工业出版社,2005.4[7]郑州科技学院微机原理与接口技术实验指导书[M].四、设计时间2015年1 月5 日至2015 年1 月11 日指导教师签名:2015 年 1 月 5 日郑州科技学院《微机原理与接口技术》课程设计题目_裁判评分系统的设计与实现学生姓目录1 引言 (1)2 设计方案与论证 (2)2.1 方案一 (2)2.2 方案二 (2)2.3 设计思路 (3)3 设计原理及功能说明 (4)3.1 软件 (4)3.1.1 设计实验总流程图 (4)3.1.2 设计子程序流程图 (6)3.2 部分代码实现 (8)3.2.1 运行结果界面的代码 (8)3.2.2 实现去掉一个最大值和最小值的代码 (8)3.2.3 小数处理的代码实现 (9)4 调试与结果测试 (10)4.1初始化运行界面 (10)4.2输出最终成绩界面 (10)5 总结 (13)参考文献 (15)附录:源代码 (16)1引言随着社会的发展,文化的进步,各种比赛层出不穷。
篮球赛计分器
微机原理课程设计报告篮球赛计分器目录1.概述2.元件说明3.设计原理4.软件调试5.原程序清单6.参考文献概述单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
我们都知道,设计系统的关键是思路,而系统通常又由各个模块所组成,所以必须先把所要设计系统模块化,再把各个模块组合在一起,实现一个完整的系统。
这就要求我们先要有较扎实的理论知识,特别对芯片的各个管脚功能必须了解,这样才能进行硬件设计。
同时,又必须掌握MCS51的指令功能,通过编程实现其功能,也是一种理论在实践中的运用。
在课程设计中,由于它是一个系统,这就要求我们必须建立系统的概念。
我们都知道现实运行的都是完整的系统,而且功能相对来说要复杂,如何把一个复杂的系统模块化才能使问题来的简单,这是我们必须首先解决的问题。
当各个模块完成之后再组合成一个完成的系统,这当中要考虑模块间的衔接问题,这些都是在以前设计简单程序时不曾遇到的。
单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。
单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
例如,80C51系列单片机已有十多年的生命期,如今仍保持着上升的趋势,就充分证明了这一点。
单片机以其一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。
并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器等。
而美国ATMEL公司开发生产了新型的8位单片机——AT89系列单片机。
他不但具有一般MCS-51单片机的所有特性,而且还拥有一些独特的优点,此次设计中所用到的AT89C51就是其中典型的代表。
本设计是基于AT89S51单片机的比赛计分器,利用7段共阴LED作为显示器件。
微机原理与接口技术课程设计 评分系统
课程设计报告2012— 2013学年第一学期课程名称《微机原理与接口技术课程设计》设计题:评分系统学生姓名学号专业班级指导教师2012年12月 29日目录1 设计思路…………………………………………………………………………1.1 硬件部分……………………………………………………………………1.2 软件部分……………………………………………………………………2 硬件设计…………………………………………………………………………2.1 芯片8279………………………………………………………………2.2 芯片LED…………………………………………………………………2.3 小键盘……………………………………………………………………2.4 74LS240…………………………………………………………………2.5 硬件总逻辑图及其说明……………………………………………………3 程序流程图………………………………………………………………3.1流程图…………………………………………………………………………3.2程序及注释……………………………………………………………………4 总结与展望参考文献………………………………………………………………………………附录……………………………………………………………………………………1设计题目:评分系统设计要求:用8086系统的接口芯片,设计一个四个评委使用的评分系统,最高得分10分,编程求其平均得分,并显示其最后得分。
设计目的:评委们接到打分指令后即可为选手输入分数接收所有评委的打分,数据进行处理,求出平均分。
设计方案:基于以上问题分析此评分系统是由四个评委组成的一个评分系统。
对每位评委给出的分数进行累加,并求出平均分。
评委分数范围是0~~10的整数,将4位评委给出的分数累加,由于最高分为10分,则用4位二进制就可以表示每位评委的分数,用8279的RL0~RL7八位连接小键盘,将评委的分数保存到8279的缓冲寄存器中,可同时将4位评委的分数同时输入。
大奖赛记分程序设计
南京工程学院课程设计报告书课程名称微机原理及应用B 院(系、部、中心)自动化学院专业班级姓名学号起止日期指导教师目录一、设计题目…………………………………………二、设计任务(要求)………………………………三、总体方案…………………………………………四、原理框图…………………………………………五、系统模块详细设计与调试………………………六、设计总结…………………………………………七、参考文献…………………………………………八、附件材料…………………………………………一、设计题目大奖赛记分程序设计二、设计任务(要求)1、设计要求编制一个程序,实现选手成绩的平均分计算。
设有十个评委给参赛的选手评分,分数是从键盘上输入的十个十进制数(一位或两位)。
(1)把输入的十进制数转换成二进制数,并求出最大数和最小数;(2)求出十个数的总和,减去最大数和最小数,求出平均值;(3)将二进制的平均值转换成十进制,并在屏幕上显示十进制的结果。
2、界面要求(1)首先显示器显示:“PLEASE IUPUT THE 10 SCORES!”;(2)输入成绩后屏幕上显示十个分数,以及最后的平均值;(3)要求输入的分数以“Enter”键结束。
三、总体方案1、利用DOS中断的09号功能,在屏幕上显示提示语句,要求输入十个分数。
MOV AH,09HMOV DX,OFFSET BUF;BUF为存放十个分数的存储区首地址INT 21H设置数据保存区,将转换后的二进制数存入其中。
2、将输入的十进制数转换为二进制数。
因为从键盘接收的数据是以ASCII码存放在数据缓冲区,并且两位数的十位和个位分别存放在两个地址单元,可先将其转换成BCD数,然后再利用除法ASCII码调整指令AAD将其转换成二进制数。
3、求十个数中的最大数和最小数。
假设第一个数是最大数,并送到MAX单元中,依次把余下的数与MAX单元中的数相比较,如大于MAX中的数,则把此数送到MAX单元中,否则取下一个数,最后MAX单元中即为最大数,同理可求出最小数。
C语言程序设计课程设计---设计比赛评分系统
课程设计课程名称c语言课程设计题目评分系统设计专业电力工程与管理2012年06 月27 日课程设计任务书设计题目:设计比赛评分系统(给分原则:满分为10分;裁判给出分数后,去掉一个最高分和一个最低分后的平均分为选手的最后得分(精确到小数点后两位)。
)设计目的;1.巩固和加深课堂所学知识;2.将课本上的理论知识和实际应用有机的结合起来,培养同学们分析和解决实际问题的能力;3.学会编制结构清晰、风格良好、数据结构选择恰当的c语言程序;设计任务:功能:1、设参赛人数为24人,裁判人数为8位;2、录入参赛人员的资料和得分情况,最后得分;3、按最后得分结果从高分到低分排序;4、公布一、二、三等奖的得奖选手名单;5、此系统能够查询选手的得分情况。
具体要求:1、题目:2、设计目的:3、设计内容:写出简要的程序功能描述、程序运行条件所需工具软件、输入输出描述等。
4、程序结构:函数定义说明;用到的库函数的功能说明、调用关系说明、参数传送方式说明等;主要算法描述等(各模块功能实现)。
5、设计要求:绘制设计系统的结构层次图,各功能实现的算法、会直接勾画流程图;程序流程图、源程序;设计输入、输出界面。
6、(1)程序结构设计特点;(2)设计、调试程序心得、体会或不足。
源程序#include <stdio.h>#include <math.h>#include <conio.h>struct test{int num;float s;};main(){int i,j,k,bad,good;float ts,sum=0,aver=0,tm[10];struct test data[10],*p[10],*temp;do {sum=0;aver=0;printf("Input 10 sorces------input 0(exit)\n"); for(i=0;i<10;i++){data[i].num=i+1;scanf("%f",&data[i].s); /*分数的输入部分*/ if(data[0].s==0) printf(0);}for(i=0;i<10;i++) tm[i]=data[i].s;for(i=0;i<10;i++) p[i]=&data[i];for(i=0;i<9;i++){k=i;for(j=i+1;j<10;j++)if(tm[k]<tm[j])k=j;if(k!=i){ts=tm[i];tm[i]=tm[k];tm[k]=ts;temp=p[i];p[i]=p[k];p[k]=temp;} /*对输入分值进行排序*/}for(i=1;i<9;i++)sum+=p[i]->s;aver=sum/8; /*计算平均值的部分*/printf("\n-----------------\n");printf("The aver is:%.1f\n",aver);printf("-----------------\n");(fabs(p[0]->s-aver)>fabs(p[9]->s-aver))?(bad=0):(bad=9);/*通过绝对差值判断与平均值相差最大的裁判*/double min=fabs(p[5]->s-aver);good=5; /*暂定第六个为最公平裁判*/for(i=4;i>0;i--){if((fabs(p[i]->s-aver))<=min){min=fabs(p[i]->s-aver); good=i; }else break;}/*用拆半法先将前半部分与min比较*/ for(i=6;i<9;i++){if((fabs(p[i]->s-aver))<=min){min=fabs(p[i]->s-aver); good=i; }else break;}/*用拆半法先将后半部分与min比较*/printf("The worst pingwei is %d and the sorce is %.1f\n", p[bad]->num,p[bad]->s);/*打印出最不公平裁判和其分数*/printf("The best pingwei is %d and the sorce is %.1f\n", p[good]->num,p[good]->s);/*打印出最公平裁判和其分数*/ printf("\n----------------------------------\n");printf("Next one:");/*打印出下一位*/}while(1);/* getch(); */return 0;}。
基于PLC与HMI的竞赛裁判评分系统设计
机电信息工程基于PLC 与HMI 的竞赛裁判评分系统设让程帝斌(重庆工贸职业技术学院智能制造学院,重庆408000)摘要:基于PLC 与HMI 的竞赛裁判评分系统主 要是通过对触摸屏的人机交互设计、PLC 对来自触摸屏的数据进行处理、PLC 数据处理完成后将处理好的数据发送给上位机或者触摸屏从而实现人机交互。
关键词:PLC ;触摸屏;HMI ;程序设计1 评分系统的设计方案本评的设计包括了硬件和软件的设计两个方面。
的设计包括拓扑结构的设计;软件的设计包括 PLC 的编屏和上位机的编程。
设计方案解决以下几个 。
(1) PLC 与PLC 、PLC 与触摸屏通讯的问题。
目 前有以下几种通讯方式:RS232、RS485、TCP/IP 通 讯;考虑现场的设备布置情况选择通讯速度快传输距离远的TCP/IP 通讯。
(2) PLC 编程语言和HMI 对PLC 进行的应用开发,使之具有对HMI 与PLC 的联网操作实现竞赛成 的实时输入统计显示功能,能完成对 成绩自动算成绩的自动排 能。
2 评分系统的硬件设计2.1硬件选型据PLC 与HMI 在竞赛中裁判评分系统设计的要求,输入只需要用一个启动一个停止,输出有一个开始评示、停止评分指示、报警指示等;根据所 入输出的实际情况PLC 选用S71212CAC/DC/RLY 。
考 到本校的实际情屏可以选用昆 有以太网讯接口的7寸屏,也可以选用 的触摸屏。
2.2硬件网络组态设计据评 数的不同有以下2种方案:⑴)数少于12人的,选用1台PLC 和12台HMI 、1台PC 、两个& 口的交换机,网络拓扑结构如下。
口□口-□FF ”,2)裁判人数大于12人的,选用1台PC 、2台PLC和24台HMI 、4台8 口交换机,网络拓扑结构如下。
《湖北农机化》202 1年第8期机电信息工程2. 3触摸屏与PLC 的通讯设置据选型设计,昆 的触摸屏与西门子1200 做一个简单的设置,选择PLC 属性一一连接机制一一允许来自远程对象的PUT/GET 通讯访问;设系列PLC 的通讯设置只需要在PLC 硬件组态的时候 置如下图所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
汇编语言(AssemblyLanguage)是面向机器的程序设计语言。
在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。
这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。
于是汇编语言亦称为符号语言。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。
汇编程序把汇编语言翻译成机器语言的过程称为汇编。
用汇编语言编写程序能够直接利用硬件系统的特性直接对位、字节或字寄存器、存储单元、I/O端口进行处理,同时也能直接使CPU指令系统和指令系统提供的各种寻址方式编出高质量的程序。
关键词:微机汇编端口
比赛评分系统程序设计
1初始条件及要求完成的主要内容
1.1初始条件:
用汇编语言编写程序计算某次比赛的成绩。
1.2要求完成的主要内容:
(1)比赛选手人数控制在30以下;
(2) 9个评委,每个评委给分范围为0~10分(整数),随机给出分数;
(3)9个评委的给分中,去掉一个最高分和一个最低分,余下7位评委的平均分即为参加者的得分(精确到小数点后一位);
(4)将分数在屏幕中间位置处用红色显示出来;
(5)将参加比赛的选手的排名顺序显示出来;
(6)撰写设计说明书及调试心得。
2设计方法与构想思路
这次课程设计中用到了汇编语言程序的四种基本结构:顺序结构、分支结构、循环结构和子程序。
顺序结构程序一般是简单程序,它是顺序执行的,无分支、无循环,也无转移,因此也称为直线程序。
分支结构程序是指程序在按指令先后的顺序执行过程中,遇到不同的计算结果值,需要计算机自动进行判断、选择,决定转向下一步要执行的程序段。
程序中的某些部分需要重复执行,设计者不可能将重复部分反复地书写,那样程序会显得很长。
只要选好参数,将程序中重复执行部分构成循环结构,这样设计的程序既美观又便于修改。
循环结构每次测试循环条件,当满足时,重复执行这一段程序;否则结束循环,顺序往下执行。
由于循环程序需要循环准备、修改变量、结束控制等指令,执行的速度会稍慢些。
我们将一个具有特定功能的代码块定义为一个过程(或子程序)。
这次主要采用循环结构和子程序的基本结构形式,编写程序产生9个0~10的随机数,找出这9个数中的最大和最小的数,即评委给出的最高分和最低分,分别保存。
再对这9个数求和,减去前面保存的最大数和最小数,所得的值除以7,即为选手的得分,分别保存整数部分和小数部分。
保存该分数并在屏幕中间用红色显示出来。
以上过程循环23次,然后对每次得出的选手得分进行排序并调用BIOS功能使字符为红色显示。
为了使程序方便阅读和修改,减少编程工作量,节省存储空间,并易于实现程序的模块化,在编写程序的时候会涉及子程序的设计。
在程序设计的过程中,可以把一些具有特定功能的程序段独立出来,按一定的格式编写,成为可以被其他程序多次调用的程序。
汇编源程序中的CALL和RET指令就是完成调用和返回功能的。
在编写程序时,要养成良好的程序书写习惯,比如标号对齐、参数对齐、注释对齐,这样看起来赏心悦目,也不容易出错。
标号最好采用有意义的英文,这样比较直观,注释尽量详细准确,便于以后读懂,而且有利于其它程序中作为子程序模块的调用。
还有要注意典型程序模块的积累,再复杂的程序也是由一个个小程序模块组成的。
在处理实际问题时,设计程序必须要考虑到实际的应用,对所要解决的问题进行全面了解和分析,依据给出的条件和数据,对输入信息、处理过程、输出结果进行可行性分析。
在分析问题明确要求的基础上,要建立数学模型,将问题用数学形式表达出来。
3程序流程图
流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。
程序流程图表示程序中的操作顺序。
程序流程图包括:
(1)指明实际处理操作的处理符号,它包括根据逻辑条件确定要执行的路径的符号;(2)指明控制流的流线符号;
(3)便于读.写程序流程图的特殊符号。
流程图是算法的图形描述,它以图形的方式把解决问题的先后次序和程序的逻辑结构直观地、形象地描述出来,使得编程的思路清晰,有利于编制、调试程序。
3.1主程序流程图
一个完整的程序比较长,并且结构复杂,如果只用一个程序流程图来表示,那么流程图肯定很复杂,很难读懂。
所以这次课程设计用一个主程序流程图和几个子程序流程图来表示复杂的程序。
下面先介绍一下主程序流程图,如果3-1所示。
由主程序流程图可以看出程序的主要设计思路和整体框架。
次
次
图3-1 主程序流程图
3.2子程序流程图
由于汇编语言本身的多样性与灵活性,汇编语言程序的结构化程度以及易读程度均不理想。
为了更好地辅助分析汇编语言程序的功能,根据汇编指令对程序静态流程的影响,对不同类型处理器的汇编指令进行了统一的分类,并在此基础上详细讨论了一种绘制汇编子程序流程图的算法。
最后利用程序基本模块的概念,对该算法进行了改进。
子程序是为了使程序方便阅读和修改,减少编程工作量,节省存储空间,并易于实现程序的模块化。
子程序流程图也是为了让程序流程图便于读者阅读。
下面介绍这次课程设计程序中所用到的两个主要子程序。
第一个子程序流程图如下所示。
图3-2-1 用冒泡排序法对选手最终得分降序排序
以上是数据的排序采用冒泡法降序排列,将其两两比较。
前一个数较大,则不改变原位置,否则两数交换,一次将全部数据排序,排序的次数由需要排序的数据个数决定。
这种排序方法是从最低部的元素开始进行比较,较小的元素将会像气泡一样往上冒。
在排序的过程中,外循环遍历要排序的元素,内循环用于挑选出最值。
内循环用于将相邻的两个元素进行比较,将小的元素调到大元素的前头,内循环的循环次数表示相
邻元素的交换趟数。
图3-2-2 将平均得分余数转化为平均得分小数,并显示
另外,在这次课程设计程序中,除了以上两个主要的子程序外,还要编写其他子程序,如显示字符串,产生随机数,控制字体颜色等等。
正是利用这些子程序,才使整个程序和流程图简洁明了,便于读者阅读。
4程序运行结果
经过调试运行,得出了随机给出的23位选手得分的运行结果,如图4-1所示。
图4-1 随机给出的选手得分
最终排名和选手所得分数如下图所示。
从下图可以看出23为选手的成绩和排名,排名是按照平均得分从高到底,最后一列为选手平均得分成绩,并用红色字显示。
图4-2 各选手排名情况
还有,最后的退出提示,如下图4-3所示。
图4-3 退出提示
5心得与体会
转眼间,短暂的微机原理课程设计已告一段落。
此次课程设计的练习,试我感觉到自己从中收获了很多,同时对于刚学过的微机原理知识也得到了进一步的提高与巩固。
在课堂上我们学习的都是理论知识,而课程设计则锻炼我们将这些理论运用到实际的生活中去的能力。
在日常的学习中我们掌握的仅仅是专业基础课的理论,如何将其真正灵活的学以致用,运用到实践中去,此类的课程设计则为我们搭建了很好的实践平台。
通过这次的课程设计,我深深的感觉到这次的课设是比较难的,比较复杂的,让我深深的感觉到自己的不足。
这次课设是一次具有挑战性的实践课程,在整个课程设计过程中我遇到很多困难。
首先是在处理题目上遇到一些问题,在理解题意分析时,出现偏差,导致编写程序的错误,从中明白到要做到理论联系实际是相当困难的。
而且在写报告过程中发现自己对于课本的理论知识的理解是多么的匮乏,以致在报告中对于理论的阐述和自己的见解
是很寥少的。
由于我们是初学汇编语言,再加上我平常上课又没有好好认真学,课后作业也不太会做。
所以这次的实践对于我真的非常困难,但我们不能放弃,只能慢慢地一点点搞。
经过很多天的努力,通过查阅资料,询问同学和老师,不断地调试,才慢慢把程序编写出来。
通过这次的课程设计我学会了很多东西,让我更对课堂上学到的汇编语言知识进行了巩固和加深。
特别是对8086系统的汇编指令有了更深刻的认识。
我了解到理论联系实际是多么重要,同时又是多么的困难,还有平时学习一定要认真踏实,把理论知识要弄懂要理解消化为自己的知识,同时要学会在理论学习时善于思考,多得一些自己的想法和思路,并且多读一些课外书,开阔视野增长一些课外知识。
感谢这次课设过程中给予我帮助同学和老师,并且感谢学校给予我们这次机会提高自己的实践能力。
这次的课设终于结束了,我感到什么事都不应该轻易放弃,只要努力就会有结果。
再次深深的感谢老师对于我的帮助与指导,使我学到这么多东西,也再次感谢给予我帮助的同学们!
参考文献
[1]姚燕南,薛钧义.微型计算机原理.西安电子科技大学出版社,2004
[2]韩雁,徐熠明.微机原理与接口技术.电子工业出版社.2004
[3]王钰,李玉贤等.微机原理与汇编语言.电子工业出版社,2008
[4]沈美明,温冬婵.IBM-PC汇编语言程序设计.清华大学出版社,2001
[5]彭虎,周佩玲.微机原理与接口技术.电子工业出版社,2005。