当前位置:首页 » 课程大全 » 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