循迹小车C语言谁帮忙编个! 做出来追加100分

作者&投稿:窄谢 (若有异议请与网页底部的电邮联系)
C语言程序设计题。。急!!!帮忙改下错误,完美运行以后追加100分!!!~

#include
#include
#include
int N;
struct Teacher
{
int code;
char name[20];
char position[20];
char sex[5];
float score;
}teacher[100];
struct Teacher temp;


void save()
{
FILE *fp;
int i;
if((fp=fopen("teacher.dat","w+"))==NULL)
{
printf("cannot open file.
");
exit(0);
}
for(i=0;i<=N;i++)
fprintf(fp,"%d%s%s%s%f
",teacher[i].code,teacher[i].name,
teacher[i].position,teacher[i].sex,teacher[i].score);
fclose(fp);
}


void print()
{
FILE *fp;
int i;
if((fp=fopen("teacher.dat","rb"))==NULL)
{
printf("cannot open file.
");
exit(0);
}
for(i=0;i<=N;i++,fp++)
{
fscanf(fp,"%d%s%s%s%f
",&teacher[i].code,teacher[i].name,
teacher[i].position,teacher[i].sex,&teacher[i].score);
printf("%d%s%s%s%f
",teacher[i].code,teacher[i].name,
teacher[i].position,teacher[i].sex,teacher[i].score);
}
fclose(fp);
}


void case1()
{
int i;
for(i=0;i<N;i++)
if(teacher[i].code>teacher[i+1].code)
{
temp=teacher[i+1];
teacher[i+1]=teacher[i];
teacher[i]=temp;
}
for(i=0;i<=N;i++)
printf("%d%s%s%s%f
",teacher[i].code,
teacher[i].name,teacher[i].position,teacher[i].sex,teacher[i].score);
}


void case2()
{
int i;
for(i=0;i<N;i++)
if(teacher[i].name>teacher[i+1].name)
{
temp=teacher[i+1];
teacher[i+1]=teacher[i];
teacher[i]=temp;
}
for(i=0;i<=N;i++)
printf("%d%s%s%s%f
",teacher[i].code,
teacher[i].name,teacher[i].position,teacher[i].sex,teacher[i].score);
}


void case3()
{
int i;
for(i=0;i<N;i++)
if(teacher[i].position>teacher[i+1].position)
{temp=teacher[i+1];
teacher[i+1]=teacher[i];
teacher[i]=temp;
}
for(i=0;i<=N;i++)
printf("%d%s%s%s%f
",teacher[i].code,teacher[i].name,
teacher[i].position,teacher[i].sex,teacher[i].score);
}


void case4()
{
int i;
for(i=0;i<N;i++)
if(teacher[i].score>teacher[i+1].score)
{
temp=teacher[i+1];
teacher[i+1]=teacher[i];
teacher[i]=temp;
}
for(i=0;i<=N;i++)
printf("%d%s%s%s%f
",teacher[i].code,teacher[i].name,
teacher[i].position,teacher[i].sex,teacher[i].score);
}


int main()
{
int choice1,choice2,a,i=-1,temp;
char ch,b[20],c[20];
float d;
while(1)
{
i++;
printf("请输入第%d个教师记录:职工号,姓名,职称,性别,评分。
说明:以,隔开
",i+1);
scanf("%d%s%s%s%f",&teacher[i].code,teacher[i].name,
teacher[i].position,teacher[i].sex,&teacher[i].score);
ch=getchar();
printf("继续输入请输入1回车
输入完成输入0回车!
");
scanf("%d",&temp);
if(temp!=1)
{
N=i;
break;
}
}
save();
print();
printf("按职工号排序请按1,按姓名排序请按2,按职称排序请按3,按评分排序请按4。
");
scanf("%d",&choice1);
switch(choice1)
{
case 1:case1();break;
case 2:case2();break;
case 3:case3();break;
case 4:case4();break;
default:printf("输入不合法!
");
}
printf("按职工号查找请按1,按姓名查找请按2,按职称查找请按3,按评分查找请按4。
");
scanf("%d",&choice2);
return 0;
}


//你的查找函数还没有写吧,上面能正常运行保存、输出、排序功能,你把查找函数写下就行了

我这里有,以前帮百度知道的人 做的。你需要不
#include#includeint is_permer(int n){for(int i=2;i*i<=n;i+=1)if(n%i==0)return 0;return 1;}void permer(){int k=0;for(int i=2;i<100;i++)if(is_permer(i)==1){printf("%d ",i);k++;if(k==5){printf("
");k=0;}}}void jiegu(){int k=1;int sum=0;for(int i=1;i<=6;i++){k=k*i;sum+=k;}printf("%d",sum);}int lifang(int n){return n*n*n;}void shuixian(){int a,b,c;for(int i=100;i<1000;i++){a=i%10;b=i/10%10;c=i/100;if(lifang(a)+lifang(b)+lifang(c)==i)printf("%d ",i);}}void paile(){for(int i=1;i<=5;i++){for(int j=0;j<i;j++)printf("%d",i);printf("
");}}void Ture(){int a=1;while(a<=4){if(((a!=1)+(a==3)+(a==4)+(a!=4))==3){printf("student is Num %d",a);break;}a++;}}int main(){printf("实验名称:循环控制程序设计 实验人: 张三 学号:123
");int k=1;while(k){printf(" 选择你要执行的题目序号:
");printf(" 你能选择 0-退出,1-5表示1-5题
");scanf("%d",&k);switch(k){case 1:permer();break;case 2:jiegu();break;case 3:shuixian();break;case 4:paile();break;case 5:Ture();break;}printf("
");}printf("完成日期 2014.4.27 自我评价 良好
");}

#include<reg52.h>

#define uchar unsigned char; //char单字节整型数据或字符型数据
#define uint unsigned int; //int声明基本整型数据

#define PON 0
#define POFF 1

#define ON 1
#define OFF 0

#define SPEED2 100
#define SPEED1 50

uchar ito=0;
uchar m=0;
uchar time=0;
uchar PWM1=0;
uchar PWM2=0;
sbit p=P2^0; //控制左轮
sbit q=P2^1; //控制右轮

sbit p_green=P2^2;
sbit p_red=P2^3;

sbit TCRD1=P2^4;//此处是传感器RPR220管脚位声明
sbit TCRD2=P2^5;
sbit TCRD3=P2^6;
sbit TCRD4=P2^7;

int count1=0;//用于定时计数的两个全局变量位声明
int count2=0;
int x[4];

uchar table1[]={ 0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60,0xff};//0,1,2,3,4,5,6,7,8,9,关显示,数码管码表,高电平有效

unsigned char code table2[]=
{0xfe,0xfd,0xfb, //11111110,11111101,11111011
0xf7,0xef,0xdf,0xbf,0x7f,}; //11110111,11101111,11011111,10111111,01111111

unsigned char dp=0x7f; //Use AND to add the decimal point/clock point.
unsigned char cp;

int s=0;
int sec=0; //定义路程,时间
char a;
int idi=0;
int j=0;

bit rup3=0;
int GAO=4000;
int T=0;//处理时间中断3

int timeCount;//计时标志
int wheelCount;//测距标志
//int white=0;//测交叉线

void delay(int x)
{
int a;

int b;
for(a=x;a>0;a--)
for(b=125;b>0;b--);
}

void display()//显示时间和路程
{

//显示时间
P0=table1[x[idi]];
P1=table2[idi];
idi++;
if(idi==4)
idi=0;
delay(1);

}

void forward_turn1()//电机1前进
{
if(PWM1)
p=PON;
else
p=POFF;
}

void forward_turn2()//电机2前进
{
if(PWM2)
q=PON;
else
q=POFF;
}

void stop_turn1()//电机停止
{
P=POFF;
q=POFF;
}
void speed1(int ct,int sd)//电机1速度控制函数,其中参数 sd为生成 PWM 波
{
if(ct>=sd)
PWM1=0;
else
PWM1=1;
}

void speed2(int ct,int sd)//电机2速度控制函数,其中参数 sd为生成 PWM 波
{
if(ct>=sd)
PWM2=0;
else
PWM2=1;
}

void advance(int ct1,int sd1,int ct2,int sd2)//小车直线前进函数

{
forward_turn1();
forward_turn2();

speed1(ct1,sd1);
speed2(ct2,sd2);
}
//*************以下是方案1, 通过使两轮一快一慢来实现转向*********
void left_turn1(int ct1,int sd1,int ct2,int sd2)//小车左转
{
forward_turn1();
forward_turn2();

speed1(ct1,sd1);
speed2(ct2,sd2);
}

void right_turn1(int ct1,int sd1,int ct2,int sd2)//小车右转
{
forward_turn1();
forward_turn2();

speed1(ct1,sd1);
speed2(ct2,sd2);
}

//*************以下是方案2, 通过使两轮一慢传,一停转来实现转向***
void left_turn2(int ct1,int sd1,int ct2,int sd2)//小车左转
{

forward_turn1();
forward_turn2();

speed1(ct1,sd1);
speed2(ct2,sd2);
}

void right_turn2(int ct1,int sd1,int ct2,int sd2)//小车右转
{
forward_turn1();
stop_turn1();

speed1(ct1,sd1);
speed2(ct2,sd2);
}

void main()
{
p=1;
q=1;
TMOD=0x11;//中断模式设置
TH0=(65536-1000)/256;//定时器1初始化
TL0=(65536-1000)%256;
EA=1;
ET0=1;
TR0=1;

TH1=(65536-1000)/256;//定时器2初始化
TL1=(65536-1000)%256;
EA=1;
ET1=1;
TR1=1;
while(1)

{
..............
}
}

void time0()interrupt 1
{
TH0=(65536-5000)/256;//定时 5ms
TL0=(65536-5000)%256;
count1++;
ito++;
if(ito==200)
{
ito=0;
s++;
if(s==60)
{
s=0;
m++;
if(m==60)
{
m=0;
}
x[0]=m/10;
x[1]=m%10;
}
x[2] =s/10;
x[3] =s%10;
}
display();

if(count1==SPEED2)//周期是1s
count1=0;
count2++;
if(count2==SPEED2)//周期是1s
count2=0;
}


单片机小车C语言行走程序,注释
程序需要结合硬件,不同硬件程序也不一样,就算硬件一样,连线方法不同程序也不一样。程序所实现的功能也不同,所以就算有程序,移植性也比较差。下面是我的小车黑白循迹的程序,包含前行转弯等,希望能帮到你 include <reg52.h> sbit z0 = P1^0;sbit z1 = P1^1;sbit y0 = P1^2;sbit y1 ...

急求基于51单片机编写的智能循迹小车C语言程序。要求小车能沿着黑色圆圈...
会的话 很简单 有现成的

c语言程序实现小车走正方形
程序需要结合硬件,不同硬件程序也不一样,就算硬件一样,连线方法不同程序也不一样。程序所实现的功能也不同,所以就算有程序,移植性也比较差。下面是我的小车黑白循迹的程序,包含前行转弯等,希望能帮到你 include <reg52.h> sbit z0 = P1^0;sbit z1 = P1^1;sbit y0 = P1^2;sbit y1 ...

设计一个小汽车(或其他图案),使其从屏幕左边移动到右边并停止.C语言...
int main(){ char graphics[7][18]={ " *** "," *** "," *** ","***"," *** *** *** "," ** ** "};\/\/存储小汽车的图案 int i,j,k;for(i=0;i<30;i++) \/\/控制小汽车运动的次数,如果无法跑到屏幕右端,可调大该数值 { system("CLS")...

学校有个电子竞赛,我什么都不懂,求指教
第三步,去网上找循迹小车的例程,先读懂程序,有了第二步的基础,你应该会比较容易读懂,根据程序,结合网上给出的电路图,去反推循迹小车的原理。当然,这些都是C语言的程序,方便你读。这一步也要两个星期左右。第四部,用一个星期把原理图上的电路焊接出来,并且下载程序以及调试。第五步,把电...

急求基于51单片机编写的智能循迹小车C语言程序。要求小车能沿着黑色圆圈...
回答:你把任务书写好后发到www.631054235@qq.com 我来帮你写 最好写清楚点,那样我才能帮程序写得完整点,驱动是L298N吗??

急求智能寻迹小车用三路的光电传感器检测黑线,c语言代码怎么写,在线等...
就比如说连接到P1.0(左)和P1.1(右)嘛,还要看你光电传感器怎么放,如果你一放上去,光电传感器就是对准黑线的,那么久检测两个I\/O口的低电平就是了,如果P1.0为低,说明小车左偏,像右调整,反之亦然……如果一放上去,小车是没有对准黑线上的,那就检测I\/O口得高电平就是这么简单……...

2周如何学会用avr做循迹智能小车
你可以按照教程学会怎么使用操作单片机的IO口和定时器之类的你所需要用到的资源。然后可以到网上下载LCD1602、测速和循迹的类似代码下来。读懂代码对只有C基础的人来说有点难,但是你已经了解一些单片机的知识了,知道单片机的C语言是需要操作硬件的,所以应该还是可以略懂一些了。逐步成功使用LCD1602显示你想要...

只有C语言基础,想学智能小车,一般这个过程需要多长时间,还有就是请介...
机器人编程如果只编码不做模型,则相对学的会快一些,有语言基础的,一两个月就能成初级或中级编码人员,但因不做模型,则很容易导致程序出现自己想不到的问题。所以如果真要学好的话,建议先学静态机械模型搭建,至少搭出5个成品再加入编程接口。

c语言编程题目求大神帮忙解答
char kind;float sum = 0;float k = 0;int count = 0;while(1){ printf("请输入车辆种类:A\/B\/C\\n");scanf("%c",&kind);printf("请输入公里数:");scanf("%f",&k);switch(kind){ case 'A':case 'a': sum = sum + k*0.5; count++; break;case 'B':case 'b': ...

东阿县17116468727: 循迹避障小车C语言编程 -
悟振山麦: 利用红外传感器接收障碍物信号..用2路PWM对俩电机进行调速..实现转弯和前进. 不知道障碍物是什么样的..所以传感器你最好找个好位置装好.这个直接影响整体效果..

东阿县17116468727: 寻迹小车的c程序 -
悟振山麦: #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit moto1=P1^5; sbit moto2=P1^6; sbit moto3=P2^0; sbit moto4=P2^1; sbit en1=P1^7; sbit en2=P2^2; //*循迹口 七个红外传感器*/////////////// sbit left1=P1^0;//*左边传感器*...

东阿县17116468727: 急求一份刚学过C语言学生能看懂有关的循迹小车源程序代码 -
悟振山麦: #define P_IOA_Data (volatile unsigned int *)0x7000#define P_IOA_Dir (volatile unsigned int *)0x7002#define P_IOA_Attrib (volatile unsigned int *)0x...

东阿县17116468727: 一段c语言代码驱动小车实现循迹,停车5秒,请问有什么问题?想了两天了.没想出来. 谢谢! -
悟振山麦: 1. 你的flag没有初始化.2. while(flag!=1){}中的代码有些问题.有几处应加上{ },给你改了一下:while(flag!=1) { if(a5==0) qianjin(); else { if(a4==0) zuozhuan(); else { if(a6==0) youzhuan(); else flag=1; } } }

东阿县17116468727: 求51单片机控制智能小车的c语言程序、、、,是前轮转向,后轮驱动,黑白线传感器循迹的,谢谢了 -
悟振山麦: 你给的题盲点很多啊.小车的前后左右函数. while(1) {io口定义及初始化;通过io读取传感器返回值;对小车轨迹进行初步判断;调用前后左右函数. }我以前是这么做的

东阿县17116468727: 循迹小车c程序求助 -
悟振山麦: 检测io口是否正常,不行就换口

东阿县17116468727: 小车沿黑色轨迹前进.有左、中、右3个感应器控制小车方向.循迹行驶,汇编语言 -
悟振山麦: 不用3个感应器 2个就够了,但现在很多人选用C编程了,没必要学汇编了

东阿县17116468727: 跪求寻迹小车c程序, 用89s51单片机控制的 用3个043W封装的反射红外传感器寻迹 通过左右轮速度差转向 -
悟振山麦: 展开全部//=====================================================================//// 寻迹与直流电机驱动演示程序 //// 本程序通过前方的红外探头来检测地面的信号,根据道路的要求,当道路为白 //// 色时,红外接收到信号,与...

东阿县17116468727: 怎么设计循迹小车? -
悟振山麦: 1、循迹小车是一种能够自己寻找轨迹并按轨迹运动的“智能”车.本文简要记录这一电子制作过程,希望大家喜欢.有什么建议和意见,欢迎大家留言. 2、根据元器件清单清点器件,看是否缺件少件.下图是元器件全家福: 3、依次焊接...

东阿县17116468727: 用C语言编程:绘制一架小车,在屏幕上来回奔跑 -
悟振山麦: 用flash可以吗?C语言貌似有点难 不过我想到一种方法 你用字符绘制成小车 然后统一输出 做一个循环 反复输出 每次输出 空格加1 做成++ 当输出当一定数值时 再做成-- 这样就应该能像你说的那样来回跑了吧!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网