该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
else curr_bar=curr_bar-1;
}/*LEFT finished*/
if(key==RIGHT){
if(curr_bar==3)curr_bar=0;
else curr_bar=curr_bar+1;
}/*RIGHT finished*/
/*如按键为ENTER,则绘制子菜单*/
if(key==ENTER){
save_startx=stu_bar[curr_bar].start_x;
save_starty=stu_bar[curr_bar].start_y+stu_bar[curr_bar].length_y+1;
save_endx=stu_bar[curr_bar].start_x+stu_bar[curr_bar].length_x;
/*保存子菜单展开后掩盖住的图象*/ save_endy=stu_bar[curr_bar].start_y+stu_bar[curr_bar].length_y+stu_bar[curr_bar].num_son*stu_bar[curr_bar].length_y+1;
size=imagesize(save_startx,save_starty,save_endx,save_endy);
if(size!=-1)
{
buf=malloc(size);
if(buf)getimage(save_startx,save_starty,save_endx,save_endy,buf);
else {printf("OUT MEMORY");exit(0);}
}
setviewport(save_startx,save_starty,save_endx,save_endy,1);
setcolor(WHITE);
clearviewport();
for(i=1;i<=stu_bar[curr_bar].num_son;i++)
{
rectangle(0,0,stu_bar[curr_bar].length_x,i*stu_bar[curr_bar].length_y);
setfillstyle(SOLID_FILL,LIGHTGRAY);
floodfill(stu_bar[curr_bar].length_x-1,i*stu_bar[curr_bar].length_y-1,WHITE);
}
for(i=0;i
puthz16(8,i*stu_bar[curr_bar].length_y+5,-8,BLUE,stu_bar[curr_bar].p_son[i]);
puthz16(8,5,-8,WHITE,stu_bar[curr_bar].p_son[0]);
old_sonbar=0;curr_sonbar=0;
if(stu_bar[curr_bar].num_son)
while(((key_son=specialkey())!=ESC)&&sonbar_out==0){
old_sonbar=curr_sonbar;
if(key_son==UP){
if(curr_sonbar==0) curr_sonbar=stu_bar[curr_bar].num_son-1;
else curr_sonbar=curr_sonbar-1;
}
if(key_son==DOWN){
if(curr_sonbar==(stu_bar[curr_bar].num_son-1)) curr_sonbar=0;
else curr_sonbar=curr_sonbar+1;
}
puthz16(8,old_sonbar*stu_bar[curr_bar].length_y+5,-8,BLUE,stu_bar[curr_bar].p_son[old_sonbar]);
puthz16(8,curr_sonbar*stu_bar[curr_bar].length_y+5,-8,WHITE,stu_bar[curr_bar].p_son[curr_sonbar]);
if(key_son==ENTER){
setviewport(0,0,639,479,1);
putimage(save_startx,save_starty,buf,COPY_PUT);
free(buf);
sonbar_out=1;
if(curr_bar==0)
switch(curr_sonbar){
case 0:
fil_open(); /*调用stu_sub.c文件中fil_open()函数,打开文件*/
break;
case 1:
fil_new(); /*调用stu_sub.c文件中fil_new()函数,新建文件*/
break;
case 2:
fil_save(); /*调用stu_sub.c文件中fil_save()函数,保存文件*/
break;
case 3:
sys_exit(); /*调用stu_sub.c文件中sys_exit()函数,退出系统*/
}
if(curr_bar==1)
switch(curr_sonbar){
case 0:
dat_add(); /*调用stu_sub.c文件中dat_add()函数,添加记录*/
break;
case 1:
dat_dele(); /*调用stu_sub.c文件中dat_dele()函数,删除记录*/
break;
case 2:
dat_mod(); /*调用stu_sub.c文件中dat_mod()函数,修改记录*/
break;
}
} /*key_son=ENTER finished*/
}/*key_son all finished*/
if(sonbar_out==0){
setviewport(0,0,639,479,1);
putimage(save_startx,save_starty,buf,COPY_PUT);
free(buf); /*还原子菜单掩盖住的图象,并释放子菜单所占用的内存*/
}
/*如果子菜单项为0*/
if(!stu_bar[curr_bar].num_son){
if(curr_bar==2)
fil_prn(); /*调用stu_sub.c文件中fil_prn()函数,打印文件*/
if(curr_bar==3)
hel_mess(); /*调用stu_sub.c文件中hel_mess()函数,显示帮助信息*/
}
} /*ENTER finished*/
puthz16(stu_bar[old_bar].start_x+8,stu_bar[old_bar].start_y+5,-8,BLUE,stu_bar[old_bar].p_father);
puthz16(stu_bar[curr_bar].start_x+8,stu_bar[curr_bar].start_y+5,-8,WHITE,stu_bar[curr_bar].p_father);
}/*key all finished*/
fcloseall(); /*关闭所有文件*/
closegraph(); /*关闭图形状态*/
}
小 结
本系统的开发,具体操作有:
1、封面的设计:使用WINDOWS自带的画图软件绘制一幅320*200*256色的图象作为封面。
2、编写过程:用TURBOC2.0编译环境编写内容。
3、用WINDOWS自带NOTEPAD编写示例文件:score.txt。数据说明见readme.txt。