编写成绩转换程序,输入成绩等级ABCDE,分别转换输出为优秀,良好,中等,及格和不及格,要c语言

编写成绩转换程序,输入成绩等级ABCDE,分别转换输出为优秀,良好,中等,及格和不及格,要c语言,第1张

#include<stdioh>

void main() { char str[5][10]={ "优秀","良好","中等","及格","不及格" },str1[20],c;

printf("请输入成绩等级: "); scanf("%s",str1); c=str1[0];

if ( c>='A' && c<='E' ) printf("成绩%c: %s\n",c,str[c-'A']);

else printf("无效的成绩等级。\n");

}

Code SEGMENT

ASSUME CS:Code,DS:Code

CR EQU 000DH

LF EQU 000AH

KBBack EQU 0008H

; -----------------------------------------

; 功能:显示指定地址(Str_Addr)的字符串

; 入口:

; Str_Addr=字符串地址(要求在数据段)

; 用法: Output Str_Addr

; 用法举例:Output PromptStr

Output MACRO Str_Addr

lea dx,Str_Addr

mov ah,9

int 21h

EndM

; -----MACRO--------------LEA--DX----------

; MOV输出AH字符

; INTdl=要显示的字符 ENDMtput_Chr proc Near

push ax

mov ah,02h

int 21h

pop ax

ret

Output_Chr endp

; --------------------------------------PROC

NEAR:输出回车换PUSHutAXt_CTLFMOVocAHear

puINT ax

puPOP dAX

mRET ah,02h

movENDP,0dh

int 21h

mov dl,0ah

int 21h

pop dx

pop ax

ret

Output_CTLF endp

; ---------------------PROC-NEAR-----PUSH--AX; 功能:取PUSH

DX入口:无MOV出口:AH=行号,DL=列号MOVetDLrsor ProcINTar

MOV DLSH AX

INT PUSHPOPXDX POP PAXH CXRET XOR ENDPX

MOV AH,3

INT 10H

MOV Cursor_Row,DH

MOV Cursor_Col,DL

POP CX

POP BX

PROCPNEAR AX

PUSHETAXCursor_Row DBPUSH

BXrsor_Col DB PUSHeCXursor EndP

XOR---BX-BX-------------MOV---AH-----------

; INT置光标位置

; 入口:Cursor_MOV=行坐标; Cursor_DHl: 列坐标)

SetCMOVor Proc NeaDL

POPH CX

POPH CBX

POPH AX

RETH AX

DB MOV DH,CursDB_Row

ENDP DL,Cursor_Col

XOR BX,BX

MOV AH,2

INT 10H

POP AX

POP BX

POP CX

POP DXPROC NEAR RET

SetCurPUSH DXdP

; -------PUSH-CX-------------PUSH--BX------

; 功能:PUSH一个AX位数的十进制数字,将其转换MOV制数并DH在指定的内存单元。

; 入口:@@DigitsMOV位数;DL=保存输入的数字首地址

; @@TXOR_DaBX=BX的数据类型,B=字节类型,MOV类型。AH; 出口:转换后的二进制数保存INT所指的单元

Input_Digit POPc NAXr

push dxPOP pBXh cx

pushPOP

CX push di

POP DX,@@Save_Tmp

RETpush di

cENDP mov cl,@@Digits

xor ch,ch

push cx

@@Input: call GetCursor ;取光标位置

mov ah,1 ;从键盘接受一个字符

int 21h

cmp al,CR ;若键入的是回车,已经键入的数字不足N位

jz @@ASC_Dec ;转去处理已经键入的数字

cmp al,KBBack

jz @@KB_Back ;若是回空键,重新输入

cmp al,'0'

jb @@KBBack ;若低于数字'0',重新输入

cmp al,'9'

ja @@KBBack ;若低于数字'9',重新输入

jmp @@SaPROCiNEAR@KB_BPUSH DXc CuPUSH_CXl

PUSH BXx

PUSH DIi

@@LEAacDI call SetCursor PUSH位DI

CLD @@IMOVtCL@Save_Dig: and XOR,0CH CH换成二进制PUSH CXtosb ;保存

CALLop @@Input ;接受下一个数字

@@ASC_MOV: AHv ax,cx

pop cx

poINTsi

subCMPx,AL ;实际输入的数字位数

xor bp,bp

xor dx,dx

xJZ ax,ax

jcxz @@Retturn ;若是直接回车,没有输入任CMP,按AL'0'处理

deJZ cx ;实际输入的数字位数减1,准备把输入的这一串数字转换成二进制数

CMPcxAL@@One_DigJB ;若输入的数字只有一位,转去直接保存这个二进制数

mov bx,10CMP@MAL_Ten: lodJA

cbw

add ax,bp

mul bx

JMP bp,ax

loop @@Mul_TeDEC@@One_Digit:lodsbINC CXw

DECd DIx,bp

@@SaveCALL: pop di

cmp @@Type_DJMP,'B' ;字节类型?

jz $+5AND ALosw

jmp $+3

stosb

pop bx

LOOPp cx

pop dx

clc

ret

@@MOVtuAX:CXop dPOP CXop bPOP SIop cSUB CXoAX dx

stc

ret

@@DiXORs BP BP ;十进制XOR数DX@TDXe_DatXORb AXBAX;保存的数JCXZB=字节类型,W=字类型

@@Save_Tmp db 16 dup()

Input_Digit EndP

; --DEC--CX--------------------------------

Prompt_Str db 'Please enter a sJCXZ: $' ;提示输入一个分数

Score db ;存放分数

Press_Key db 13,10,13,10,'PMOVs BXy key to exit$'

StartCBW pushADD

AX BPp dsMUL BXsh csMOV BPpAXes ;使LOOP附加段与代码段同段

; ---------------------CBW-----ADD--AX-BP--

; 输入成绩

POPv DI@DigiCMP3 ;十进制数字位数

mov @@Type_Data,'BJZ;保存的数据类型。B=字节类型,W=字类JMPInput_Score:Output pPOPptBXtr ;提POP分数CX lePOPdiDXcore CLC存放地址RET call Input_DiPOP ;DI分数

POPc BX@Any_POP ;CX直接回车,POP入任DX字,则结束STC

RET dl,10 ; DB除10

mov al,Score ; 提取分数

DB xor ah,ah

div dl ; 除10

cmp al,5 ; >5DB格

DUP ja $+4

ENDP al,5 ; <=5,不及格

sub al,5 ; 减5

mov dl,'F'

test al,0ffh

jz $+6

cmp al,5

DBjz $+4

inc al

add Cursor_Col,6

call SetDBrsor

sub dl,al

cDBl Output_Chr ;显示一个字符

call Output_CTLF ;输出一个回车、换行

PUSHmCS InpuPOPcoDS

@@APUSHeCS OutpPOPPrESs_Key

mov ah,1

int 21h

Exit_Proc: mov ah,4ch ;结束程序

int 21h

Code ENDS

END Start ;编译到此结束

MOVMOVLEADICALLJCMOVDLMOVALXORAHAHDIVDLCMPALJAMOVALSUBALMOVDLTESTALJZCMPALJZINCALADDCALLSUBDLALCALLCALLJMPMOVAHINTMOVAHINTENDSEND

switch(成绩)

{ case 成绩>90:

printf("A");break;

case 成绩>=80&&成绩<=90:

printf("B");break;

case 成绩>=60&&成绩<80:

printf("C");break;

case 成绩<60:

printf("d");break;

}

材料/工具:Excel2010

1、表格中的黄颜色区域为评分标准,要求根据这个评分标准对A列的学生成绩进行评级划分,结果在B列显示。

2、选中B2单元格,在单元格中输入[=],然后点击插入函数按钮。

3、如下图d出插入函数对话框在或选择类别中选择[全部]选项;在选择函数中选择[LOOKUP]函数,然后点击确定按钮。

4、d出函数参数对话框:将光标移动到第一个参数后面,直接选择表格中的A2单元格;将光标移动到第二个参数后面,在对话框中输入[{0,60,80}];将光标移动到第三个参数后面,在对话框中输入[{"差","良","优秀"}],所有参数设置好后,点击确定按钮。

5、返回到工作表中,B2单元格显示出评级成绩。

6、选中B2单元格,拖动鼠标左键即可将剩余的评级成绩求出。

public class Degree {

    public String getDegree(int score) {

        if (score < 0 || score > 100) {

            return "分数格式非法";

        }

        int degree = score / 10;

        switch (degree) {

        case 10:

        case 9:

            return "优";

        case 8:

            return "良";

        case 7:

            return "中";

        case 6:

            return "及格";

        default:

            return "不及格";

        }

    }

    public static void main(String[] args) {

        Degree d = new Degree();

        String result = dgetDegree(80);

        Systemoutprintln(result);

    }

}

以上就是关于编写成绩转换程序,输入成绩等级ABCDE,分别转换输出为优秀,良好,中等,及格和不及格,要c语言全部的内容,包括:编写成绩转换程序,输入成绩等级ABCDE,分别转换输出为优秀,良好,中等,及格和不及格,要c语言、汇编语言程序设计:1:成绩等级判断程序:90以上输出A,80~90输出B……;可以重复输入,有退出键功能。、使用switch函数实现判断成绩等级的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10130862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存