1.1题目:七段码电子表显示程序
1.2要求
1.七段码电子表显示程序
2.菜单选择:设置时,分,秒,开始,退出等
3.模拟七段码管显示时,分,秒
4.要求界面美
2.功能设计
说明:esc键退出 s键设置时间
数据段
(1)Disptime , showtime 显示时钟
(2)定义定义0-9十个图形数字,以便模拟七段码显示时钟
宏定义
(1)Clear定义清屏宏
(2)rowcol 定义光标定位宏
(3)crlf 回车换行宏
(4)display显示字符串宏
(5)change 计算时间宏
(1) main 主函数
(2) play 主要完成显示七段码电子表显示
(3) prog0 到prog10完成七段码到一般显示的转换
(4) moveshape 显示七段码电子表
(5) delay 延迟函数
(6) exit 返回DOS函数
3.设计详细
3.1设计方法
(1)Clears清屏宏 用到了BIOS中断06H。
(2)rowcol光标定位宏 用到了BIOS中断02H。
(3) crlf 回车换行宏 用到了DOS中断的0ah, 0dh
(4) display显示字符串宏 用到了DOS中断的09h
(5) change 计算时间宏 用户自己定义的宏,方便以后使用
(6)main 主函数 主要调用子函数实现功能
(7)delayr 延迟函数 用双重循环实现,根据不同机子设置不同的参数
(8)exit 返回DOS函数 ,也就是结束函数。调用int 21h中的04h
(9) moveshape 显示七段码电子表函数。利用int 21h中的09h
目 录
1题目及要求2
2功能设计2
3详细设计2
3.1设计方法2
3.2流程图2
3.3重点,难点6
4总结心得体会7
5参考文献7
6附:源程序7 谢谢请采纳
此题不是很难,我会前三个关键是算那一年的第一天是周几
给你个基本算法,一年是365天,闰年366天
364是7的倍数,这样一年多出一天,中间多少个闰年,在加上相应的天数即可
400年多出来的天数是400+97=497也是7的倍数,那么400年一轮回,这样就算400年以内的即可
一个子函数,返回这一年的第一天是周几,很好做
int ye(int year)
{
int y=year%400
int day=y
int i
for(i=0i<yi++)
if(闰年判断)
day++
return day%7
}
做一个月份天数的全局数组
int mo[12]={31,28,31,30,31,30,31,31,30,31,30,31}
需要时用一个if判断闰年改变m0[1]的值是28还是29
打印子函数,有一个小技巧,就是每个月前面的空缺部分,这个1月份是ye子函数的返回值,后面的你看和前面月份是不是重合啊,吧这个记录下来在下一月份用即可
1 2
3 4
这样月份排列更好打印一些,你的那个截图有点麻烦
int pr(int year)
{
int k=ye(year)
int i,j,
if(闰年判断)
mo[1]=29
else
mo[1]=28
for(i=0i<12i++)
{
printf("周几英文的打印")
for(j=0j<kj++)
printf("一般是四个空格,就是月份前面空缺的打印")
for(j=1j<=mo[i]j++)
{
printf("%4d",j)
k++
if((k+j)%7==0)
printf("\n")
}
k%=7
if(k!=0)
printf("\n")
}
}
如果像你那样,感觉需要赋值一个大一点的数组,在吧数组打印出来更好,呵呵
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)