當前位置:首頁 » 課程大全 » vc課程設計

vc課程設計

發布時間: 2020-11-28 01:17:00

⑴ 數控機床課程設計插補直線 vc++怎麼實現

數控插補原理:
數控車床的運動控制中,工作台(刀具)X、Y、Z軸的最小移動單位是一個脈沖當量。因此,刀具的運動軌跡是具有極小台階所組成的折線(數據點密化)。例如,用數控車床加工直線OA、曲線OB,刀具是沿X軸移動一步或幾步(一個或幾個脈沖當量Dx),再沿Y軸方向移動一步或幾步(一個或幾個脈沖當量Dy),直至到達目標點。從而合成所需的運動軌跡(直線或曲線)。數控系統根據給定的直線、圓弧(曲線)函數,在理想的軌跡上的已知點之間,進行數據點密化,確定一些中間點的方法,稱為插補。

插補分類:
一個零件的輪廓往往是多種多樣的,有直線,有圓弧,也有可能是任意曲線,樣條線等.數控機床的刀具往往是不能以曲線的實際輪廓去走刀的,而是近似地以若干條很小的直線去走刀,走刀的方向一般是x和y方向。插補方式有:直線插補,圓弧插補,拋物線插補,樣條線插補等。
1、直線插補
直線插補(Llne Interpolation)這是車床上常用的一種插補方式,在此方式中,兩點間的插補沿著直線的點群來逼近,沿此直線控制刀具的運動。所謂直線插補就是只能用於實際輪廓是直線的插補方式(如果不是直線,也可以用逼近的方式把曲線用一段線段去逼近,從而每一段線段就可以用直線插補了).首先假設在實際輪廓起始點處沿x方向走一小段(一個脈沖當量),發現終點在實際輪廓的下方,則下一條線段沿y方向走一小段,此時如果線段終點還在實際輪廓下方,則繼續沿y方向走一小段,直到在實際輪廓上方以後,再向x方向走一小段,依次循環類推.直到到達輪廓終點為止.這樣,實際輪廓就由一段段的折線拼接而成,雖然是折線,但是如果我們每一段走刀線段都非常小(在精度允許范圍內),那麼此段折線和實際輪廓還是可以近似地看成相同的曲線的--------這就是直線插補.
2、圓弧插補
圓弧插補(Circula : Interpolation)這是一種插補方式,在此方式中,根據兩端點間的插補數字信息,計算出逼近實際圓弧的點群,控制刀具沿這些點運動,加工出圓弧曲線。
3、復雜曲線實時插補演算法
傳統的 CNC 只提供直線和圓弧插補,對於非直線和圓弧曲線則採用直線和圓弧分段擬合的方法進行插補。這種方法在處理復雜曲線時會導致數據量大、精度差、進給速度不均、編程復雜等一系列問題,必然對加工質量和加工成本造成較大的影響。許多人開始尋求一種能夠對復雜的自由型曲線曲面進行直接插補的方法。近年來,國內外的學者對此進行了大量的深入研究,由此也產生了很多新的插補方法。如A(AKIMA)樣條曲線插補、C(CUBIC)樣條曲線插補、貝塞爾(Bezier)曲線插補、PH(Pythagorean-Hodograph)曲線插補、B 樣條曲線插補等。由於 B 樣條類曲線的諸多優點,尤其是在表示和設計自由型曲線曲面形狀時顯示出的強大功能,使得人們關於自由空間曲線曲面的直接插補演算法的研究多集中在它身上。

⑵ 我是大一的,要求做C語言課程設計,環境是vc++6.0,可以的幫我做。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>

#define max 20

typedef struct student //學生
{
char sno[max]; // 學號
char sname[max]; //姓名
char sex[max]; //性別
char age[max]; //年齡
char depart[max]; //系
char classs[max]; //班
char grade[max]; //年級

struct student* next;
} student;

student* head;

int LogOn() //登錄模塊,已實現輸入密碼不回顯,如果中途發現輸錯某幾位,可退格鍵重輸
{
char username[max],password[max];
printf("\n請輸入用戶名:");
scanf("%s",username);
printf("\n請輸入密碼(最多15位):");

//開始以不回顯且支持退格方式獲取輸入密碼
int i=0;
while((i>=0)&&(password[i++]=getch())!=13)//條件i>=0是用於限制退格的范圍
{
if(password[i-1]=='\b')//對退格鍵的處理
{
printf("%c%c%c",'\b','\0','\b');
i=i-2;
}
else
printf("*");
}
password[--i]='\0';

//已獲取密碼。驗證用戶身份
if(!strcmp(username,"zhang")&&!strcmp(password,"8147086"))
{
printf("\n登錄成功!");
return 1;
}
else
return 0;

}

void regist()
{
char ch;
student *s,*ptr; //s用來建新結點,ptr用來暫存頭結點

do
{

s=(student*)malloc(sizeof(student)); // 新建一個學生結點

printf("\n開始注冊..."); //開始注冊
printf("\n請輸入該學生的學號:");
scanf("%s",s->sno);
printf("\n請輸入該學生的姓名:");
scanf("%s",s->sname);
printf("\n請輸入該學生的性別:");
scanf("%s",s->sex);
printf("\n請輸入該學生的年齡:");
scanf("%s",s->age);
printf("\n請輸入該學生的系:");
scanf("%s",s->depart);
printf("\n請輸入該學生所在的班:");
scanf("%s",s->classs);
printf("\n請輸入該學生所在的年級");
scanf("%s",s->grade);

ptr=head;
head=s;//將新結點插入隊頭
s->next=ptr;

fflush(stdin);
printf("\n請問是否繼續注冊?(Y/N)");
scanf("%c",&ch);
}while(ch=='Y'||ch=='y');

return;
}

void ElePrint(char str[]) //輸出單個元素
{
if(str==NULL) exit(0);
printf("%s",str);
for(unsigned int i=0;i<12-strlen(str);i++) printf(" ");//為了對齊輸出,需插入一些空格
return;
}

int LinePrint(student *ptr) //輸出一行
{
if(ptr==NULL) //檢查傳進來的指針
return 0;

printf("\n");
ElePrint(ptr->sno);
ElePrint(ptr->sname);
ElePrint(ptr->age);
ElePrint(ptr->sex);
ElePrint(ptr->depart);
ElePrint(ptr->classs);
ElePrint(ptr->grade);

return 1;
}

void print() //輸出全部學生信息
{
student *ptr=head;
printf("\n學號 姓名 年齡 性別 系 班 年級 ");
while(ptr)
{
LinePrint(ptr);
ptr=ptr->next;
}
printf("\n");
return;
}
void search()//查詢模塊
{
int method;//查詢方式
char no[max],name[max],departm[max],clss[max],grades[max]; //用來接收查詢關鍵字
while(1)
{
printf("\n請選擇查詢方式");
printf("\n1.按學號查詢");
printf("\n2.按姓名查詢");
printf("\n3.按所在系查詢");
printf("\n4.按所在班級查詢");
printf("\n5.按所在年級查詢");
printf("\n6.列印全部學生信息");
printf("\n7.返回主菜單\n");

scanf("%d",&method);

student *p=head,*temp;

switch(method)
{
case 1:
printf("\n請輸入要查詢的學號:");
scanf("%s",no);
while(p)
{
if(!strcmp(p->sno,no))
break;
else
{
temp=p;
p=p->next;
}
}
printf("\n學號 姓名 年齡 性別 系 班 年級 ");
LinePrint(p);
break;
case 2:
printf("\n請輸入要查詢的姓名:");
scanf("%s",name);
printf("\n學號 姓名 年齡 性別 系 班 年級 ");
while(p)
{
if(!strcmp(p->sname,name))
LinePrint(p);
p=p->next;
}
break;
case 3:
printf("\n請輸入學生所在的系:");
scanf("%s",departm);
printf("\n學號 姓名 年齡 性別 系 班 年級 ");
while(p)
{
if(!strcmp(p->depart,departm))
LinePrint(p);
p=p->next;
}
break;
case 4:
printf("\n請輸入學生所在的班:");
scanf("%s",clss);
printf("\n請輸入學生所在的年級:");
scanf("%s",grades);
printf("\n學號 姓名 年齡 性別 系 班 年級 ");
while(p)
{
if(!strcmp(p->classs,clss)&&!strcmp(p->grade,grades))
LinePrint(p);
p=p->next;
}
break;

case 5:
printf("\n請輸入學生所在的年級:");
scanf("%s",grades);
printf("\n學號 姓名 年齡 性別 系 班 年級 ");
while(p)
{
if(!strcmp(p->grade,grades))
LinePrint(p);
p=p->next;
}
break;

case 6:
print();
break;

case 7:
return;
default:
printf("很抱歉,暫無此查詢方式!");
break;
}
}

}

void modify()//修改學生信息
{
char num[max];
student *p=head;
printf("\n請輸入要修改的學生的學號:");
scanf("%s",num);
while(p)
{
if(!strcmp(p->sno,num))
break;
else
p=p->next;
}
if(p==NULL)
{
printf("\n錯誤:沒有此學生的信息!\n");
return;

}
LinePrint(p);

printf("\n請輸入要修改的該學生的信息:");
printf("\n1.姓名");
printf("\n2.性別");
printf("\n3.年齡");
printf("\n4.所在的系");
printf("\n5.所在的班");
printf("\n6.所在的年級");

char name1[max],sex1[max],age1[max],depart1[max],class1[max],grade1[max];
int select;
fflush(stdin);
scanf("%d",&select);
printf("\n請輸入新的信息:");

switch(select)
{
case 1:
scanf("%s",name1);
strcpy(p->sname,name1);
break;
case 2:
scanf("%s",sex1);
strcpy(p->sex,sex1);
break;
case 3:
scanf("%s",age1);
strcpy(p->age,age1);
break;
case 4:
scanf("%s",depart1);
strcpy(p->depart,depart1);
break;
case 5:
scanf("%s",class1);
strcpy(p->classs,class1);
break;
case 6:
scanf("%s",grade1);
strcpy(p->grade,grade1);
break;
default:
printf("\nError!");
break;
}

LinePrint(p);
return;
}

void del()// 刪除某學生的信息
{
student *p=head,*temp=head,*s;
char num1[max];
printf("\n請輸入要刪除的學生的學號:");
scanf("%s",num1);
while(p)//查找該學生所在的結點
{
if(!strcmp(p->sno,num1))
break;
else
{
temp=p;
p=p->next;
}

}//while
if(!p)
{
printf("\n不存在此學生的信息.");
return;
}
LinePrint(p);//輸出該學生的信息
printf("\n請問真的要刪除該學生的信息嗎?(Y/N)");
char ch;
fflush(stdin);
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
{
s=p->next;
temp->next=s;
free(p);
printf("\n已經刪除該學生的信息.");
}
return;
}

void sort() //排序模塊。將學生記錄按學號從小到大排列。用起泡排序演算法實現
{

student *ptr,*s=head,*p;
int count=0,count1;
while(s)//統計鏈表結點個數
{
count++;
s=s->next;
}

for(int i=1;i<count;i++)
{
ptr=head;
p=NULL;
count1=count-i; //用來控制每輪起泡排序的終點,即每次把學號最小的結點移到倒數第i個結點
while(ptr&&ptr->next&&(count1--))
{
if(strcmp(ptr->sno,ptr->next->sno)>0)
{
s=ptr->next;
ptr->next=s->next;
if(p==NULL) //ptr處於隊頭時
head=s;
else
p->next=s;
s->next=ptr;
p=s;
}
else
{
ptr=ptr->next;
if(p==NULL) //ptr處於隊頭時
p=head;
else
p=p->next;
}
}
}
return;
}

void quit()
{
char ch;
printf("\n真的要退出?(Y/N)");
fflush(stdin);
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
exit(0);
return;
}

int main()
{
int option;

printf("\nCopyright@2005 KongXinCai All rights reserved.");
printf("\n歡迎使用學生信息管理系統!\n");

//登錄模塊
int icheck=0;
while(icheck<3)
{
if(LogOn()==0)
icheck++;
else
break;

}
if(icheck==3)
{
printf("\n連續登錄三次不成功,退出!");
exit(0);
}

//系統界面

while(1)
{
printf("\n\n請選擇需要的服務:");
printf("\n1.注冊");
printf("\n2.查詢");
printf("\n3.修改");
printf("\n4.刪除");
printf("\n5.排序");
printf("\n7.求平均");
printf("\n6.退出\n");

scanf("%d",&option);

switch(option)
{
case 1:
regist();
break;
case 2:
search();
break;
case 3:
modify();
break;
case 4:
del();
break;
case 5:
sort();
break;
case 6:
quit();
break;
}

}

return 0;

}

⑶ 求一個c 語言課程設計 學生成績管理系統 在vc環境中使用

經調試運行 ok
#include<stdio.h>
#include <time.h>
#include<conio.h> /*清屏*/
#include <stdlib.h> /*顯示目錄*/
#include<string.h>
#define MAX 80
void input(); /*輸入數據函數*/
void sort();/*排序數據函數*/
void sort1();
void sort2();
void sort3();
void display();/*顯示數據函數*/
void display1();
void insert(); /*插入數據函數*/
void del(); /*刪除數據函數*/
void average(); /*平均值函數*/
void find();/*查找數據函數*/
void find1();
void find2();
void save(); /*保存數據函數*/
void read(); /*讀出數據函數*/
void del_file(); /*刪除文件函數*/
void modify(); /*修改文件函數*/
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()/*主函數*/
{
int as;
char ch;
do{

start: printf("\n\n\n\t\t\t歡迎使用學生成績管理系統\n");
printf("\n\n\n\n\n\n\t\t******************按任意鍵繼續********************");
ch=getch();
}
while(!ch);
system("cls");
/*一下為功能選擇模塊*/
do
{
printf("\n\t\t\t\t1.錄入學員信息\n\t\t\t\t2.顯示學員總成績信息\n\t\t\t\t3.對總成績排序\n\t\t\t\t4.顯示學員單科成績排序\n\t\t\t\t5.添加學員信息\n\t\t\t\t6.刪除學員信息\n\t\t\t\t7.修改學員信息\n\t\t\t\t8.查詢學員信息\n\t\t\t\t9.從文件讀入學員信息\n\t\t\t\t10.刪除文件中學員信息\n\t\t\t\t11.保存學員信息\n\t\t\t\t12.退出\n");
printf("\t\t\t\t選擇功能選項(輸入所選功能前的數字):");
fflush(stdin);
/*可用可不用,用於清除緩存防止下次用scanf輸入是出現錯誤*/
scanf("%d",&as);
switch(as)
{
case 1:system("cls");
input();
break;
case 2:system("cls");
display();
break;
case 3:system("cls");
sort();
break;
case 4:system("cls");
display1();
break;
case 5:system("cls");
insert();
break;
case 6:system("cls");
del();
break;
case 7:system("cls");
modify();
break;
case 8:system("cls");
find();
break;
case 9:system("cls");
read();
break;
case 10:system("cls");
del_file();
break;
case 11:system("cls");
save();
break;
case 12:system("exit");
exit(0);
default:system("cls");
goto start;
}
}while(1);/*while(1),1表示真,所以while(1)表示永遠循環下去,一般在while(1)的循環體內都有break 或者return 跳出循環*/
/*至此功能選擇結束*/
}

void input()/*原始數據錄入模塊*/
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.錄入學員信息\n輸入第%d個學員的信息\n",i+1);
printf("\n輸入學生編號:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n輸入學員姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n輸入學員性別:");
fflush(stdin);
gets(stu[i].sex);
printf("\n輸入學員成績1:");
scanf("%f",&stu[i].score1);
printf("\n輸入學員成績2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n輸入學員成績3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("是否繼續輸入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
}
void sort()/*排序數據函數*/
{
struct student temp;
int i,j;
average();
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
printf("排序以完成進入功能2可進行顯示\n");
system("pause");
system("cls");
}
void sort1()/*排序數據函數*/
{
struct student temp;
int i,j;
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].score1<stu[j].score1)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void sort2()/*排序數據函數*/
{
struct student temp;
int i,j;
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].score2<stu[j].score2)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void sort3()/*排序數據函數*/
{
struct student temp;
int i,j;
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].score3<stu[j].score3)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void display()/*顯示數據函數*/
{
int i;
char as;
average();
do
{
printf("\t\t\t班級學員信息列表\n");
printf("\t編號\t姓名\t性別\t成績1\t成績2\t成績3\t平均值\n");
for(i=0;i<now_no&&stu[i].name[0];i++)
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
printf("\t\t按任意鍵返回主菜單.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void display1()/*顯示數據函數*/
{
int i;
char as;
do
{
printf("\t\t\t班級學員score1成績排序\n");
printf("\t編號\t姓名\t性別\t成績1\n");
sort1();
for(i=0;i<now_no&&stu[i].name[0];i++)
printf("\t%d\t%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1);
printf("\t\t\t班級學員score2成績排序\n");
printf("\t編號\t姓名\t性別\t成績2\n");
sort2();
for(i=0;i<now_no&&stu[i].name[0];i++)
printf("\t%d\t%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score2);
printf("\t\t\t班級學員score3成績排序\n");
printf("\t編號\t姓名\t性別\t成績3\n");
sort3();
for(i=0;i<now_no&&stu[i].name[0];i++)
printf("\t%d\t%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score3);
printf("\t\t按任意鍵返回主菜單.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}

void insert()/*插入數據函數*/
{
char ch;
do
{
printf("\n\t\t輸入新插入學員隊信息\n");
printf("\n輸入學生編號:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n輸入學員姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n輸入學員性別:");
fflush(stdin);
gets(stu[now_no].sex);
printf("\n輸入學員成績1:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n輸入學員成績2:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n輸入學員成績3:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n\n");
now_no=now_no+1;
sort();
printf("是否繼續輸入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
}
void del()/*刪除數據函數*/
{
int inum,i;
printf("輸入要刪除學員的編號:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i<now_no;i++)
{
if(stu[i].no==inum)
{
if(i==now_no)now_no-=1;
else
{
stu[i]=stu[now_no-1];
now_no-=1;
}
sort();
break;
}
}
system("cls");
}
void save()/*保存數據函數*/
{
FILE *fp;
int i;
char filepath[20];
printf("輸入要保存的文件路徑:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"w"))==NULL)
{
printf("\n保存失敗!");
exit(0);
}
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp,"\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
fclose(fp);
printf("學生信息已保存在%s中!\n",filepath);
system("pause");
system("cls");
}
void find()/*查詢函數*/
{
int i;
char str[20],as;
do
{
printf("輸入要查詢的學生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
printf("\t編號\t姓名\t性別\t成績1\t成績2\t成績3\t平均值\n");
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
printf("\t\t按任意鍵返回主菜單.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}

void average()/*求平均數*/
{
int i;
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
}
}
void modify()/*修改數據函數*/
{
int i;
char str[20];
printf("輸入要修改的學生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
{
if(!strcmp(stu[i].name,str))
{
system("cls");
printf("\n\t\t輸入新插入學員隊信息\n");
printf("\n輸入學生編號:");
fflush(stdin);
scanf("%d",&stu[i].no);
printf("\n輸入學員性別:");
fflush(stdin);
gets(stu[i].sex);
printf("\n輸入學員成績1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n輸入學員成績2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n輸入學員成績3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
sort();
break;
}
}
system("cls");
}

void read()
{
FILE *fp;
int i;
char filepath[20];
printf("輸入要讀入的文件路徑:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("找不到%s文件!\n",filepath);
system("pause");
exit(0);
}
now_no=0;
for(i=0;i<MAX&&!feof(fp);i++)
{
fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu[i].no,stu[i].name,stu[i].sex,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].ave);
now_no++;
}
fclose(fp);
printf("保存的在文件%s中的所有信息已經讀入!\n",filepath);
system("pause"); /*按任意鍵繼續*/
system("cls");
}

void del_file()
{
FILE *fp;
char filepath[20];
printf("輸入要刪除的文件路徑:");
fflush(stdin);
gets(filepath);
fp=fopen(filepath,"w");
fclose(fp);
printf("保存的在文件%s中的所有信息已經刪除!\n",filepath);
system("pause");
system("cls");
}

⑷ C語言課程設計(環境VC++)

要求各種窗口不? 有沒有什麼許可權角色的設置?

⑸ c語言課程設計在vc環境下怎樣編寫畫圖板代碼

你好!實現的具體功能說一下

⑹ 急需VC課程設計 求教於方家

||關於貪吃蛇的
#include "graphics.h"
#include "stdio.h"

#define MAX 200
#define MAXX 30
#define MAXY 30

#define UP 18432
#define DOWN 20480
#define LEFT 19200
#define RIGHT 19712
#define ESC 283
#define ENTER 7181
#define PAGEUP 18688
#define PAGEDOWN 20736
#define KEY_U 5749
#define KEY_K 9579
#define CTRL_P 6512
#define TRUE 1
#define FALSE 0
#define GAMEINIT 1
#define GAMESTART 2
#define GAMEHAPPY 3
#define GAMEOVER 4

struct SPlace
{
int x;
int y;
int st;
} place[MAX];
int speed;
int count;
int score;
int control;
int head;
int tear;
int x,y;
int babyx,babyy;
int class;
int eat;
int game;
int gamedelay[]={5000,4000,3000,2000,1000,500,250,100};
int gamedelay2[]={1000,1};
static int hitme=TRUE,hit = TRUE;
void init(void);
void nextstatus(void);
void draw(void);

void init(void)
{
int i;
for(i=0;i<MAX;i++)
{
place[i].x = 0;
place[i].y = 0;
place[i].st = FALSE;
}
place[0].st = TRUE;
place[1].st = TRUE;
place[1].x = 1;
speed = 9;
count = 0;
score = 0;
control = 4;
head = 1;
tear = 0;
x = 1;
y = 0;
babyx = rand()%MAXX;
babyy = rand()%MAXY;
eat = FALSE;
game = GAMESTART;
}
void nextstatus(void)
{
int i;
int exit;
int xx,yy;
xx = x;
yy = y;
switch(control)
{
case 1: y--; yy = y-1; break;
case 2: y++; yy = y+1; break;
case 3: x--; xx = x-1; break;
case 4: x++; xx = x+1; break;
}
hit = TRUE;
if ( ((control == 1) || (control ==2 )) && ( (y < 1) ||(y >= MAXY-1)) ||
(((control == 3) || (control == 4)) && ((x < 1) ||(x >= MAXX-1) ) ) )
{
hit = FALSE;
}

if ( (y < 0) ||(y >= MAXY) ||
(x < 0) ||(x >= MAXX) )
{
game = GAMEOVER;
control = 0;
return;
}
for (i = 0; i < MAX; i++)
{
if ((place[i].st) &&
(x == place[i].x) &&
(y == place[i].y) )
{
game = GAMEOVER;
control = 0;
return;
}
if ((place[i].st) &&
(xx == place[i].x) &&
(yy == place[i].y) )
{
hit = FALSE;
goto OUT;
}

}
OUT:
if ( (x == babyx) && (y == babyy) )
{
eat = TRUE;
count ++;
score += (1+class) * 10;
}

head ++;
if (head >= MAX) head = 0;
place[head].x = x;
place[head].y = y;
place[head].st= TRUE;
if (eat == FALSE)
{
place[tear].st = FALSE;
tear ++;
if (tear >= MAX) tear = 0;
}
else
{
eat = FALSE;
exit = TRUE;
while(exit)
{
babyx = rand()%MAXX;
babyy = rand()%MAXY;
exit = FALSE;
for( i = 0; i< MAX; i++ )
if( (place[i].st)&&( place[i].x == babyx) && (place[i].y == babyy))
exit ++;
}

}
if (head == tear) game = GAMEHAPPY;

}
void draw(void)
{
char temp[50];
int i,j;
for (i = 0; i < MAX; i++ )
{
setfillstyle(1,9);
if (place[i].st)
bar(place[i].x*15+1,place[i].y*10+1,place[i].x*15+14,place[i].y*10+9);
}
setfillstyle(1,4);
bar(babyx*15+1,babyy*10+1,babyx*15+14,babyy*10+9);
setcolor(8);
setfillstyle(1,8);
bar(place[head].x*15+1,place[head].y*10+1,place[head].x*15+14,place[head].y*10+9);
/* for( i = 0; i <= MAXX; i++ )
line( i*15,0, i*15, 10*MAXY);
for( j = 0; j <= MAXY; j++ )
line( 0, j*10, 15*MAXX, j*10);
*/
rectangle(0,0,15*MAXX,10*MAXY);
sprintf(temp,"Count: %d",count);
settextstyle(1,0,2);
setcolor(8);
outtextxy(512,142,temp);
setcolor(11);
outtextxy(510,140,temp);
sprintf(temp,"1P: %d",score);
settextstyle(1,0,2);
setcolor(8);
outtextxy(512,102,temp);
setcolor(12);
outtextxy(510,100,temp);
sprintf(temp,"Class: %d",class);
setcolor(8);
outtextxy(512,182,temp);
setcolor(11);
outtextxy(510,180,temp);
}
main()
{
int pause = 0;
char temp[50];
int d,m;
int key;
int p;
static int keydown = FALSE;
int exit = FALSE;
int stchange = 0;
d = VGA;
m = VGAMED;
initgraph( &d, &m, "" );
setbkcolor(3);
class = 3;
init();
p = 1;
while(!)
{
if (kbhit())
{
key = bioskey(0);
switch(key)
{
case UP: if( (control != 2)&& !keydown)
control = 1;
keydown = TRUE;
break;
case DOWN: if( (control != 1)&& !keydown)
control = 2;
keydown = TRUE;
break;
case LEFT: if( (control != 4)&& !keydown)
control = 3;
keydown = TRUE;
break;
case RIGHT: if( (control != 3)&& !keydown)
control = 4;
keydown = TRUE;
break;
case ESC: exit = TRUE;break;
case ENTER: init();break;
case PAGEUP: class --; if (class<0) class = 0; break;
case PAGEDOWN: class ++;if (class>7) class = 7; break;
case KEY_U: if( ( (control ==1) ||(control ==2))&& !keydown)
control = 3;
else if(( (control == 3) || (control == 4))&& !keydown)
control = 1;
keydown = TRUE;
break;
case KEY_K: if( ( (control ==1) ||(control ==2))&& !keydown)
control = 4;
else if(( (control == 3) || (control == 4))&& !keydown)
control = 2;
keydown = TRUE;
break;
case CTRL_P:pause = 1 - pause; break;
}
}
stchange ++ ;
putpixel(0,0,0);
if (stchange > gamedelay[class] + gamedelay2[hit])
{
stchange = 0;
keydown = FALSE;
p = 1 - p;
setactivepage(p);
cleardevice();
if (!pause)
nextstatus();
else
{
settextstyle(1,0,4);
setcolor(12);
outtextxy(250,100,"PAUSE");
}
draw();

if(game==GAMEOVER)
{
settextstyle(0,0,6);
setcolor(8);
outtextxy(101,101,"GAME OVER");
setcolor(15);
outtextxy(99,99,"GAME OVER");
setcolor(12);
outtextxy(100,100,"GAME OVER");
sprintf(temp,"Last Count: %d",count);
settextstyle(0,0,2);
outtextxy(200,200,temp);
}

if(game==GAMEHAPPY)
{
settextstyle(0,0,6);
setcolor(12);
outtextxy(100,300,"YOU WIN");
sprintf(temp,"Last Count: %d",count);
settextstyle(0,0,2);
outtextxy(200,200,temp);
}
setvisualpage(p);
}
}
closegraph();
}

⑺ 職工信息管理系統(c++課程設計,VC6.0)

下面網址的文件可以參考:http://wenku..com/view/f7600e31ee06eff9aef807a9.html

⑻ VC++課程設計,迷宮游戲,高手進

想要復制粘貼根本不可能,哥們你也太不厚道了,至少留個郵箱也成啊內,弄得發都不知道容往哪裡去發。
你直接去網站上看即可,大體的設計程序就是那樣的,對赫夫曼編碼稍作修改即可,我們做過相關的程序,也是根據上面的和教材的提示改編而成的。
http://wenku..com/view/c6d33cd276a20029bd642d57.html
希望對你有幫助,給分~ ~

⑼ vc++課程設計計算器四則混合運算程序

#include "stdafx.h"
#include "計算器.h"
#include "計算器Dlg.h"
#include "math.h"
#include "time.h" //可以不用 ,屏蔽srand()
#include "stdlib.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
C計算器Dlg::C計算器Dlg(CWnd* pParent /*=NULL*/)
: CDialog(C計算器Dlg::IDD, pParent)
, n(0)
, setxiaoshu(false)
, xiaoshui(0)
, innum(0)
, n_2(0)
, operate(0)
, setnew(false)
BEGIN_MESSAGE_MAP(C計算器Dlg, CDialog)
……. //系統消息和控制項的函數
主要實現代碼:(dlg.cpp文件)://注:下面所有控制項名稱使用加粗字體和下劃線表示該按鍵

void C計算器Dlg::OnPaint() //重寫OnPaint(),實現,界面顏色的改變
{
int c_r,c_g,c_b,c; //3個變數分別代表R/G/B
// srand(time(0)); //控制隨機函數rand()的取值時間(間隔1s左右更新值),後來為實現每次按鍵都變色把這句去掉了
c_r=rand()%256; // rand()%256代表變數取值為0-255之間的整數,下同
c_g=rand()%256;
c_b=rand()%256;
c=rand()%4; //c=0-3,即分為4種情況,分別繪制不同的顏色方案.實現更多色彩.
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
if (c==0) //藍色漸變,其他兩種顏色隨機
{
CPaintDC dc(this);
CRect rc;
GetClientRect(&rc);
int nHeight=rc.Height();
for(int i=0;nHeight>=0;nHeight--,i++)
{
CPen pen;
pen.CreatePen(PS_SOLID,1,RGB(c_r,c_g,i));
CPen *pOldPen=dc.SelectObject(&pen);
dc.MoveTo(rc.left,i);
dc.LineTo(rc.right,i);
dc.SelectObject(pOldPen);
pen.DeleteObject();
}
}
else if(c==1) //綠色漸變, 其他兩種顏色隨機
{
CPaintDC dc(this);
CRect rc;
GetClientRect(&rc);
int nHeight=rc.Height();
for(int i=0;nHeight>=0;nHeight--,i++)
{
CPen pen;
pen.CreatePen(PS_SOLID,1,RGB(c_r,i,c_b));
CPen *pOldPen=dc.SelectObject(&pen);
dc.MoveTo(rc.left,i);
dc.LineTo(rc.right,i);
dc.SelectObject(pOldPen);
pen.DeleteObject();
}
}
else if(c==2) //紅色漸變, 其他兩種顏色隨機
{
CPaintDC dc(this);
CRect rc;
GetClientRect(&rc);
int nHeight=rc.Height();
for(int i=0;nHeight>=0;nHeight--,i++)
{
CPen pen;
pen.CreatePen(PS_SOLID,1,RGB(i,c_g,c_r));
CPen *pOldPen=dc.SelectObject(&pen);
dc.MoveTo(rc.left,i);
dc.LineTo(rc.right,i);
dc.SelectObject(pOldPen);
pen.DeleteObject();
}
}
else //都不漸變,所有隨機
{
CPaintDC dc(this);
CRect rc;
GetClientRect(&rc);
int nHeight=rc.Height();
for(int i=0;nHeight>=0;nHeight--,i++)
{
CPen pen;
pen.CreatePen(PS_SOLID,1,RGB(c_r,c_g,c_r));
CPen *pOldPen=dc.SelectObject(&pen);
dc.MoveTo(rc.left,i);
dc.LineTo(rc.right,i);
dc.SelectObject(pOldPen);
pen.DeleteObject();
}
}
}
}

void C計算器Dlg::OnBnClickedButton31() // 控制項pi對應的函數 按鍵pi的處理
n=3.14159265358979; // 把pi值3.14159265358979賦給n
UpdateData(false);
Invalidate(); //重新執行OnPaint()函數實現每一次按鍵,界面自動變色.下面各控制項對應函數也調用這函數,如控制項對應函數//沒有直接顯示,就是在被調用的函數中有該函數
}

////////////////////////////////////////以下部分處理方式相似(數字錄入)//////////////////
void C計算器Dlg::OnBnClickedButton0() //控制項0對應的函數.調用inum()產生預期的數.包括整數/小數/正數/負數.下面1 - 9同
{ 按鍵0的處理
if (setnew) C計算器Dlg::OnBnClickedButton23(); else Invalidate(); // setnew為true,清除所有控制變數, 在上次計算出結果後
innum=0; // 把0賦給變數inum,執行相應的+++- //可以不用按C鍵清除直接按數字鍵開始下一個運
C計算器Dlg::inum(innum); //完成數據的輸入過程. //算.setnew=true會在每個單元運算符和等號中出現. setnew
UpdateData(false); //在屏幕上顯示當前n的值,下同 //為false,繼續輸入該數據. setnew=false出現在每個雙元運算
} //符中.因OnBnClickedButton23()中已包含Invalidate(),但OnBnClickedButton23()不是 每次都執行, //為避免代碼的重復執行,採用if else形式.
void C計算器Dlg::OnBnClickedButton1() //控制項1對應的函數 按鍵1的處理
{
if (setnew) C計算器Dlg::OnBnClickedButton23(); else Invalidate();
innum=1;
C計算器Dlg::inum(innum);
UpdateData(false);
}
void C計算器Dlg::OnBnClickedButton2() //控制項2對應的函數 按鍵2的處理
{
if (setnew) C計算器Dlg::OnBnClickedButton23(); else Invalidate();
innum=2;
C計算器Dlg::inum(innum);
UpdateData(false);
}
void C計算器Dlg::OnBnClickedButton3() //控制項3對應的函數 按鍵3的處理
{
if (setnew) C計算器Dlg::OnBnClickedButton23(); else Invalidate();
innum=3;
C計算器Dlg::inum(innum);
UpdateData(false);
}
void C計算器Dlg::OnBnClickedButton4() //控制項4對應的函數 按鍵4的處理
{
if (setnew) C計算器Dlg::OnBnClickedButton23(); else Invalidate();
innum=4;
C計算器Dlg::inum(innum);
UpdateData(false);
}
void C計算器Dlg::OnBnClickedButton5() //控制項5對應的函數 按鍵5的處理
{
if (setnew) C計算器Dlg::OnBnClickedButton23(); else Invalidate();
innum=5;
C計算器Dlg::inum(innum);
UpdateData(false);
}
void C計算器Dlg::OnBnClickedButton6() //控制項6對應的函數 按鍵6的處理
{
if (setnew) C計算器Dlg::OnBnClickedButton23(); else Invalidate();
innum=6;
C計算器Dlg::inum(innum);
UpdateData(false);
}
void C計算器Dlg::OnBnClickedButton7() //控制項7對應的函數 按鍵7的處理
{
if (setnew) C計算器Dlg::OnBnClickedButton23(); else Invalidate();
innum=7;
C計算器Dlg::inum(innum);
UpdateData(false);
}
void C計算器Dlg::OnBnClickedButton8() //控制項8對應的函數 按鍵8的處理
{
if (setnew) C計算器Dlg::OnBnClickedButton23(); else Invalidate();
innum=8;
C計算器Dlg::inum(innum);
UpdateData(false);
}
void C計算器Dlg::OnBnClickedButton9() //控制項9對應的函數 按鍵9的處理
{
if (setnew) C計算器Dlg::OnBnClickedButton23(); else Invalidate();
innum=9;
C計算器Dlg::inum(innum);
UpdateData(false);
}
////////////////////////////////////////////////結束////////////////////////////////////////////////////////

///////////////////////////////////以下部分處理方式相似(雙元運算)////////////////// /////
void C計算器Dlg::OnBnClickedButton16() //控制項+對應的函數. 下面的 - * / x^y 同 +符號的處理
{
C計算器Dlg::OnBnClickedIsButton(); // 自動完成上次未完成的運算.當上一次計算完雙元運算沒有按等號鍵時候,如只按 //下1 + 1而沒有按=的時候,直接按+.可以實現連續計算,從而省去每次都按=的麻煩, //更符合使用的習慣.
n_2=n; // 因為是雙元運算,按下+後,把輸入值存入另一個數據中,開始輸入新的數據
C計算器Dlg::setempty(); // 置空n的各項參數,便於以後重新輸入新n值時不影響
setnew=false; //setnew=false(由數字錄入部分做出相應).不是在重新輸入數據,下面按數字鍵時接著錄入部分執行相應操作
operate='+'; // 操作符為+,,由OnBnClickedIsButton()處理加法運算
}
void C計算器Dlg::OnBnClickedButton15() //控制項-對應的函數. -符號的處理
{
C計算器Dlg::OnBnClickedIsButton();
n_2=n;
C計算器Dlg::setempty();
setnew=false;
operate='-';
}
void C計算器Dlg::OnBnClickedButton14() //控制項*對應的函數. *符號的處理
{
C計算器Dlg::OnBnClickedIsButton();
n_2=n;
C計算器Dlg::setempty();
setnew=false;
operate='*';
}
void C計算器Dlg::OnBnClickedButton13() //控制項/對應的函數. /符號的處理
{
C計算器Dlg::OnBnClickedIsButton();
n_2=n;
C計算器Dlg::setempty();
setnew=false;
operate='/';
}
void C計算器Dlg::OnBnClickedButton27() //控制項x^y對應的函數. x^y符號的處理
{
C計算器Dlg::OnBnClickedIsButton();
n_2=n;
C計算器Dlg::setempty();
operate='y';
setnew=false;
}
////////////////////////////////////////////////結束///////////////////////////////////////////////////////

////////////////////////////////////////以下部分處理方式相似(單元運算)//////////////////
void C計算器Dlg::OnBnClickedButton19() //控制項1/x對應的函數. 下面符號處理類似 1/x符號的處理
{
operate='x'; //下面執行1/x的運算
C計算器Dlg::operation(operate); // 單元運算,按下該符號直接進行運算
UpdateData(false);
operate='0'; //在這個運算符算出的數據後,輸入另外一個數據時候,按下雙元運算符因為會先執行OnBnClickedIsButton(),操 //作符為0,什麼也不執行
setnew=true; //在數字錄入部分做出判斷, setnew=true按下數字鍵時候,執行OnBnClickedButton23(),清空變數.開始新的運算
void C計算器Dlg::OnBnClickedButton17() // 控制項sqrt對應的函數. sqrt符號的處理
{
operate='q';
C計算器Dlg::operation(operate);
UpdateData(false);
operate='0';
setnew=true;
}
void C計算器Dlg::OnBnClickedButton24() // 控制項sin對應的函數. sin符號的處理
{
operate='s';
C計算器Dlg::operation(operate);
UpdateData(false);
operate='0';
setnew=true;
}
void C計算器Dlg::OnBnClickedButton25() // 控制項cos對應的函數. cos符號的處理
{
operate='c';
C計算器Dlg::operation(operate);
UpdateData(false);
operate='0';
setnew=true;
}
void C計算器Dlg::OnBnClickedButton26() // 控制項tan對應的函數. tan符號的處理
{
operate='t';
C計算器Dlg::operation(operate);
UpdateData(false);
operate='0';
setnew=true;
}
void C計算器Dlg::OnBnClickedButton29() // 控制項ln對應的函數. ln符號的處理
{
operate='n';
C計算器Dlg::operation(operate);
UpdateData(false);
operate='0';
setnew=true;
}
void C計算器Dlg::OnBnClickedButton30() // 控制項lg對應的函數. lg符號的處理
{
operate='g';
C計算器Dlg::operation(operate);
UpdateData(false);
operate='0';
setnew=true;
}
////////////////////////////////////////////////結束////////////////////////////////////////////////

////////////////////////////////////////以下為主要處理函數//////////////////////////////
void C計算器Dlg::OnBnClickedIsButton() // 控制項=對應的函數. =符號的處理
{
C計算器Dlg::operation(operate); // 完成之前輸入數據的計算
operate='0'; // 置空當前輸入符號,避免連續+等操作,採用錯誤操作符
setnew=true; // 開始執行新的操作了
UpdateData(false);
}
void C計算器Dlg::OnBnClickedButton21() // 控制項Backspace對應的函數. 刪除一個字元 Backspace符號的處理
{
if (n==0) {xiaoshui=0;} // n=0時候,把小數點置空.
else if (xiaoshui>0) // n為小數時候的處理方案
{
n=(long (n*pow(10.0,(xiaoshui-1))))*pow(10.0,-(xiaoshui-1)); // 把該數乘以(原小數位數-1)得到數取整後在擴大,
xiaoshui=xiaoshui-1; // 每次執行刪除一位,小數點要前移一位. // 相同倍數即間接刪除小數的最後一位了
if (xiaoshui==0) setxiaoshu=false; // 如果小數點為0了,執行setxiaoshu=false,結束小數輸入過程
setnew=false; // 不是重新輸入數據,這點同所有的setnew=false

}
else //n為整數
{
n=long(n/10); // n除以10,取整.
xiaoshui=0; // 小數點為0
setnew=false; // 可以繼續輸入數據
}
UpdateData(false);
Invalidate(); // 同所有的Invalidate(),重新執行:OnPaint(),生成新的顏色
}
void C計算器Dlg::setempty(void) // 置空中間變數
{
xiaoshui=0; // 小數部分的位數變數為0
setxiaoshu=false; // 使默認輸入變成整數
n=0; // 重置n為0,繼續輸入第二個運算的數據
}
void C計算器Dlg::OnBnClickedButton22() // 控制項CE對應的函數. CE符號的處理: 清除當前輸入 CE符號的處理
{
C計算器Dlg::setempty(); //見上函數
UpdateData(false);
Invalidate();
}
void C計算器Dlg::OnBnClickedButton23() //控制項C對應的函數. C符號的處理:所有置空 ,C和CE區別就是C清空所有變
{ //量,CE僅清空當前輸入的//數據 C符號的處理
C計算器Dlg::setempty();
n_2=0;
operate='0';
UpdateData(false);
Invalidate();
}
void C計算器Dlg::OnBnClickedButton11() //控制項+/-對應的函數. 改變正負號 +/-的處理
{
n=-n; //按一次改變n為-n
UpdateData(false);
Invalidate();
}
void C計算器Dlg::inum(int i) // 輸入字元為預期數據,i為0-9的變數
{
if (n==fabs(n)) // 判斷n的正負(n為正數), 因為負數在錄入時候會出現如按下2 – 2時應該顯示」-22」但結果卻顯示」-18」的 { // 情況,分開討論
if (!setxiaoshu) // 判斷是否在輸入小數(非按下小數點情況)(n為正數)
n=10*n+i;
else // 按下小數點情況(n為正數)
{
xiaoshui=xiaoshui+1; // 小數正在輸入的位數,每輸入一次xiaoshui+1 , xiaoshui初始值為0
n=n+pow(10.0,-xiaoshui)*i; // 產生預期的n,
}
}
else // n為負數
{
if (!setxiaoshu) // 非按下小數點情況(n為負數)
{
n=-10*n+i; // 先把負數變為正數,按整數處理,避免負數錄入出錯
n=-n; // 變成負數
}
else // 按下小數點情況(n為負數)
{
xiaoshui=xiaoshui+1;
n=-n+pow(10.0,-xiaoshui)*i;
n=-n;
}
}
setnew=false;
}
void C計算器Dlg::OnBnClickedButton12() // 控制項.對應的函數. 小數點的判斷 .的處理
{
setxiaoshu=true; // 按下開始輸入小數部分
Invalidate();
}
void C計算器Dlg::operation(char ope) //執行選定運算
{
switch (ope)
{
case '+':{n=n_2+n;}break;
case '-':{n=n_2-n;}break;
case '*':{n=n_2*n;}break;
case '/':{n=n_2/n;}break;
case 'x':{n=1/n;}break;
case 'q':{if (n>0) n=sqrt(n); else n=0;}break;
case 's':{n=sin(double (n*3./180));}break;
case 'c':{n=cos(double (n*3./180));}break;
case 't':{n=tan(double (n*3./180));}break;
case 'n':{if (n>0)n=log(n);else n=0;}break;
case 'g':{if (n>0) n=log(n)/log(10.0);else n=0;}break;
case 'y':{n=pow(n_2,n);}break;
default:; //operate='0',不執行任何代碼
}
Invalidate(); //這里加上該函數可以使包含該函數的函數不再重復添加該函數就實現每次按鍵變色效果
}

試一下吧,應該還行!

⑽ Vc++課程設計。要求 設計一單文檔程序,要求能在視圖的任意位置用滑鼠畫矩形。給代碼就行了.

先使用APDIV繪制一個跟你要變化的那一個區域一樣大小的APDIV,然後在裡面製作一個你要的效果,就是弄一個你想要的底色,在寫上相同的字,自己調整一下,在屬性面板設置APDIV的可見性為hideen就是設置成隱藏。然後使用菜單「窗口--行為」打開面板,單擊添加行為按鈕,選擇「顯示隱藏」命令,設置剛才那個APDIV為顯示,返回設置事件為「onmouseover」就可以了,希望能幫到你~~~~~~

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919