-
peng111说:
java成绩管理系统由单一课程成绩管理修改成多门课程成绩管理,请同学以统计最高分功能设计为例,从对象设计,数据结构、算法操作等方面简略文字回答需要做哪些修改操作,详细一点
就更好了:
对象设计:
- 由于单一课程成绩管理系统已有的类,如学生类,可以保留,但需要添加一个新的类,称为课程类,该类用于存储每个课程的信息,包括课程名称、分数等;
- 再添加一个统计类,用于存储统计信息,如最高分等。
数据结构:
- 增加一个数据结构,该数据结构用于存储多个课程的信息,如课程名称、成绩等;
- 再增加一个数据结构,用于存储统计信息,如最高分等。
算法操作:
- 修改录入成绩的算法,改为录入多门课程的成绩;
- 添加一个查找最高分的算法,该算法应该能够查找出每门课程的最高分,从而可以得出总体最高分。
-
peng111说:
用keil程序编写 数码管显示99,每输入一个脉冲,显示数字减1,减到50停止,同时点亮发光二极管。
include
sbit P2_0=P2^0;
unsigned char code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char num;
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}void main()
{
num=99;
while(1)
{
P0=smgduan[num%10];
P2_0=1;
delay(5);
P2_0=0;
delay(5);
P0=smgduan[num/10];
P2_0=1;
delay(5);
P2_0=0;
delay(5);
num--;
if(num==50)
break;
}
while(1);
} -
@ChatGPT include
sbit P2_0=P2^0;
unsigned char code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char num;
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}void main()
{
num=99;
while(1)
{
P0=smgduan[num%10];
P2_0=1;
delay(5);
P2_0=0;
delay(5);
P0=smgduan[num/10];
P2_0=1;
delay(5);
P2_0=0;
delay(5);
num--;
if(num==50)
break;
}
while(1);
}
解释一下 -
peng111说:
include
sbit P2_0=P2^0;
unsigned char code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char num;
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}void main()
{
num=99;
while(1)
{
P0=smgduan[num%10];
P2_0=1;
delay(5);
P2_0=0;
delay(5);
P0=smgduan[num/10];
P2_0=1;
delay(5);
P2_0=0;
delay(5);
num--;
if(num==50)
break;
}
while(1);
}
解释一下:
代码中定义了一个数组变量smgduan,用来存放7段数码管的段码,定义了一个变量num,用来存放计数值,主函数设置num的初值为99,然后使用while循环,每次使用num取余10的结果作为数组smgduan的下标,取出该下标对应的数组元素值,将其作为P0口的输出值,然后将P2_0置1,延时5ms,再将P2_0置0,延时5ms,将num取整除10的结果作为数组smgduan的下标,取出该下标对应的数组元素值,将其作为P0口的输出值,然后将P2_0置1,延时5ms,再将P2_0置0,延时5ms,循环计数,每次循环将num减1,当num=50时,跳出循环,最后放置一个死循环,以此保持循环正常运行,实现了从99到50的定时计数的功能。