求C语言200行以上的程序2个

求C语言200行以上的程序2个,第1张

期末的作业吧?呵呵 给你两个:

一、题目:家庭财务管理小程序

2程序源代码:

/money management system/

#include "stdioh"

#include "dosh"

main()

{

FILE fp;

struct date d;

float sum,chm=00;

int len,i,j=0;

int c;

char ch[4]="",ch1[16]="",chtime[12]="",chshop[16],chmoney[8];

pp: clrscr();

sum=00;

gotoxy(1,1);printf("|----------------------------------------------------|");

gotoxy(1,2);printf("| money management system(C10) 200003 |");

gotoxy(1,3);printf("|----------------------------------------------------|");

gotoxy(1,4);printf("| -- money records -- | -- today cost list -- |");

gotoxy(1,5);printf("| ------------------------ |-----------------------------|");

gotoxy(1,6);printf("| date: -------------- | |");

gotoxy(1,7);printf("| | | | |");

gotoxy(1,8);printf("| -------------- | |");

gotoxy(1,9);printf("| thgs: ------------------ | |");

gotoxy(1,10);printf("| | | | |");

gotoxy(1,11);printf("| ------------------ | |");

gotoxy(1,12);printf("| cost: ---------- | |");

gotoxy(1,13);printf("| | | | |");

gotoxy(1,14);printf("| ---------- | |");

gotoxy(1,15);printf("| | |");

gotoxy(1,16);printf("| | |");

gotoxy(1,17);printf("| | |");

gotoxy(1,18);printf("| | |");

gotoxy(1,19);printf("| | |");

gotoxy(1,20);printf("| | |");

gotoxy(1,21);printf("| | |");

gotoxy(1,22);printf("| | |");

gotoxy(1,23);printf("|--------------------------------------------------|");

i=0;

getdate(&d);

sprintf(chtime,"%4d%02d%02d",dda_year,dda_mon,dda_day);

for(;;)

{

gotoxy(3,24);printf(" Tab __browse cost list Esc __quit");

gotoxy(13,10);printf(" ");

gotoxy(13,13);printf(" ");

gotoxy(13,7);printf("%s",chtime);

j=18;

ch[0 ]=getch();

if(ch[0]==27)

break;

strcpy (chshop,"");

strcpy(chmoney,"");

if(ch[0]==9)

{

mm:i=0;

fp=fopen("homedat","r+");

gotoxy(3,24);printf(" ");

gotoxy(6,4);printf(" list records ");

gotoxy(1,5);printf("|-------------------------------------|");

gotoxy(41,4);printf(" ");

gotoxy(41,5);printf(" |");

while(fscanf(fp,"%10s%14s%f\n",chtime,chshop,&chm)!=EOF)

{

if(i==36)

{

getch();

i=0;

}

if ((i%36)<17)

{

gotoxy(4,6+i);

printf(" ");

gotoxy(4,6+i);

}

else

if((i%36)>16)

{

gotoxy(41,4+i-17);

printf(" ");

gotoxy(42,4+i-17);

}

i++;

sum=sum+chm;

printf("%10s %-14s %61f\n",chtime,chshop,chm);}

gotoxy(1,23);printf("|----------------------------------------------|");

gotoxy(1,24);printf("| |");

gotoxy(1,25);printf("|----------------------------------------------|");

gotoxy(10,24);printf("total is %81f$",sum);

fclose(fp);

gotoxy(49,24);printf("press any key to");getch();goto pp;

}

else

{

while(ch[0]!='\r')

{

if(j<10)

{

strncat(chtime,ch,1);

j++;

}

if(ch[0]==8)

{

len=strlen(chtime)-1;

if(j>15)

{

len=len+1;

j=11;

}

strcpy(ch1,"");

j=j-2;

strncat(ch1,chtime,len);

strcpy(chtime,"");

strncat(chtime,ch1,len-1);

gotoxy(13,7);printf(" ");

}

gotoxy(13,7);printf("%s",chtime);ch[0]=getch();

if(ch[0]==9)

goto mm;

if(ch[0]==27)

exit(1);

}

gotoxy(3,24);printf(" ");

gotoxy(13,10);

j=0;

ch[0]=getch();

while(ch[0]!='\r')

{

if (j<14)

{

strncat(chshop,ch,1);

j++;

}

if(ch[0]==8)

{

len=strlen(chshop)-1;

strcpy(ch1,"");

j=j-2;

strncat(ch1,chshop,len);

strcpy(chshop,"");

strncat(chshop,ch1,len-1);

gotoxy(13,10);printf(" ");

}

gotoxy(13,10);printf("%s",chshop);ch[0]=getch();}

gotoxy(13,13);

j=0;

ch[0]=getch();

while(ch[0]!='\r')

{

if (j<6)

{

strncat(chmoney,ch,1);

j++;

}

if(ch[0]==8)

{

len=strlen(chmoney)-1;

strcpy(ch1,"");

j=j-2;

strncat(ch1,chmoney,len);

strcpy(chmoney,"");

strncat(chmoney,ch1,len-1);

gotoxy(13,13);printf(" ");

}

gotoxy(13,13);printf("%s",chmoney);ch[0]=getch();

}

if((strlen(chshop)==0)||(strlen(chmoney)==0))

continue;

if((fp=fopen("homedat","a+"))!=NULL);

fprintf(fp,"%10s%14s%6s",chtime,chshop,chmoney);

fputc('\n',fp);

fclose(fp);

i++;

gotoxy(41,5+i);

printf("%10s %-14s %-6s",chtime,chshop,chmoney);

}

}

}

二、万年历

#include"iostreamh"

#include"iomaniph"

#include"stdlibh"

leapyear(int a)/是否是闰年/

{

if((a%4==0&&a%100!=0)||(a%100==0&&a%400==0))

return (1);

else return (0);

}

int aa[12]={31,28,31,30,31,30,31,31,30,31,30,31};

int cc[12]={31,29,31,30,31,30,31,31,30,31,30,31};

char bb[8][8]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

ww(int a,int b,int c)

{

int n=0,m=0,i,j,k=0;

for(i=1;i<c;i++)

{

if(leapyear(i)==1)

m=m+366;

else m=m+365;

}

for(j=1;j<b;j++)

{if(leapyear(c)==1) k=k+cc[j-1];

else k=k+aa[j-1];

}

n=(m+k+a)%7;

return n;

}

void yuefen(int m)

{

cout<<"最大天数是:";

if(m==2)

cout<<aa[m-1]+1;

else cout<<aa[m-1]<<endl;

}

void nianfen(int n)/打印年份的日历/

{

int i,j,k;

if(leapyear(n)==1)

{

for(j=1;j<=12;j++)

{

cout<<j;

cout<<"月份"<<endl;

cout<<" 日"<<" 一"<<" 二"<<" 三"<<" 四"<<" 五"<<" 六"<<endl;

for(i=0;i<ww(1,j,n);i++)

{

cout<<setw(4)<<"";

}

for(k=1;k<=cc[j-1];k++)

{

cout<<setw(4)<<k;

if((ww(1,j,n)+k)%7==0)

cout<<endl;

}

cout<<endl;

}

}

else

{

for(j=1;j<=12;j++)

{

cout<<j;

cout<<"月份"<<endl;

cout<<ww(1,j,n)<<endl;

cout<<endl<<" 日"<<" 一"<<" 二"<<" 三"<<" 四"<<" 五"<<" 六"<<endl;

for(i=0;i<ww(1,j,n);i++)

{

cout<<setw(4)<<"";

}

for(k=1;k<=aa[j-1];k++)

{

cout<<setw(4)<<k;

if((ww(1,j,n)+k)%7==0)

cout<<endl;

}

cout<<endl;

}

}

}

void nianyue(int n,int y)/打印某年某月的月历/

{

int i,k;

if(leapyear(n)==1)

{

cout<<" 日"<<" 一"<<" 二"<<" 三"<<" 四"<<" 五"<<" 六"<<endl;

for(i=0;i<ww(1,y,n);i++)

{

cout<<setw(4)<<"";

}

for(k=1;k<=cc[y-1];k++)

{

cout<<setw(4)<<k;

if((ww(1,y,n)+k)%7==0)

cout<<endl;

}

cout<<endl;

}

else

{ cout<<endl<<" 日"<<" 一"<<" 二"<<" 三"<<" 四"<<" 五"<<" 六"<<endl;

for(i=0;i<ww(1,y,n);i++)

{

cout<<setw(4)<<"";

}

for(k=1;k<=aa[y-1];k++)

{

cout<<setw(4)<<k;

if((ww(1,y,n)+k)%7==0)

cout<<endl;

}

cout<<endl;

}

}

void main()

{

int n,m;

int day,month ,year;

while(1)

{

cout<<":"<<endl;

cout<<"1查询某年某月某日是星期几"<<endl

<<"2是否为闰年"<<endl

<<"3查询某月的最大天数"<<endl

<<"4打印某年的全年日历"<<endl

<<"5打印某年某月的月历"<<endl

<<"6exit"<<endl

<<":"<<endl;

cout<<"请输入要 *** 作的指令:"<<endl;

cin>>n;

switch(n)

{

case 1:cout<<"请输入要查询的日期:";

cout<<"year:";

cin>>year;

cout<<endl<<"month:";

cin>>month;

cout<<endl<<"day:";

cin>>day;

cout<<"星期是:";

cout<<bb[ww(day,month,year)]<<endl;break;

switch(ww(day,month,year))

{

case 1:cout<<"星期一";break;

case 2:cout<<"星期二";break;

case 3:cout<<"星期三";break;

case 4:cout<<"星期四";break;

case 5:cout<<"星期五";break;

case 6:cout<<"星期六";break;

case 7:cout<<"星期日";break;

}

cout<<endl;break;

case 2:cout<<"请输入要查询的年份:";

cin>>m;

if(leapyear(m)==1) cout<<"是闰年"<<endl;

else cout<<"不是闰年,请返回重新输入"<<endl;

break;

case 3:cout<<"请输入月份:";

cin>>m;

yuefen(m);break;

case 4:cout<<"请输入所要打印年份:";

cin>>m;

nianfen(m);break;

case 5:cout<<"请输入年份:";

cin>>n;

cout<<endl<<"请输入月份:";

cin>>m;

cout<<endl;

nianyue(n,m);break;

case 6:exit(0);

}

}

}

在今年3月4号,西门子官网发布了S7-200 SMART V24固件版本,这个新版本的最大看点是标准型CPU模块开始支持PROFINET通信了!此次大更新说明了S7-200 SMART加入PROFINET,对以后各行业的应用会更为广泛。

目前发布的标准CPU模块包括:CPU SR20,ST20,SR30,ST30,SR40,ST40,SR60和ST60。每个标准CPU支持的最大PROFINET IO设备数为8;每个PROFINET IO设备的最大输入存储区为128字节;输出存储区最多128个字节;最多支持64个模块;

涉及的CPU型号及系列号:

6ES7288-1SR20-0AA0CPU SR20, AC/DC/RELAY, 12DI/8DO

6ES7288-1SR30-0AA0CPU SR30, AC/DC/RELAY, 18DI/12DO

6ES7288-1SR40-0AA0CPU SR40, AC/DC/RELAY, 24DI/16DO

6ES7288-1SR60-0AA0CPU SR60, AC/DC/RELAY, 36DI/24DO

6ES7288-1ST20-0AA0CPU ST20, DC/DC/DC, 12DI/8DO

6ES7288-1ST30-0AA0CPU ST30, DC/DC/DC, 18DI/12DO

6ES7288-1ST40-0AA0CPU ST40, DC/DC/DC, 24DI/16DO

6ES7288-1ST60-0AA0CPU ST60, DC/DC/DC, 36DI/24DO

同时,STEP 7-Micro/WIN SMART V24版本提供了GSDML文件管理、PROFINET配置向导、PROFINET编程指令及PROFINET设备查找等功能。

相信大家对于此次固件更新会有很大兴趣,也许有一些学员还不清楚如何对固件进行升级。以下步骤能帮助到你。因为小编太兴奋隔天就已经升级并且忽略了截图,所以只能用文字去表达了,步骤如下:

1、首先到西门子官网S7-200 SMART下载最新固件;

2、打开STEP 7-Micro/WIN SMART V24,连接CPU;

3、单击菜单栏PLC选项卡的PLC按钮;

4、在d出的PLC信息对话框中,可以看到当前PLC的信息,包括:订货号、序列号、固件版本号等;

5、单击固件更新按钮;

6、在固件更新对话框中,单击浏览按钮,找到下载的固件路径

7、单击更新对CPU的固件进行更新,切记更新过程中不要关闭CPU的电源。

8、预计等待3-10分钟。更新完成,STEP 7-Micro/WIN SMART会d出提示。

9、等待更新完成后, CPU断电,稍等几秒后,重新上电,激活新的固件。

10、重新上电后连接CPU模块,检查固件版本是否得到更新。信息也是在PLC信息菜单页当中能看到。

还有一个方式就是通过下载到SD卡当中,同样首先在西门子官网下载最新固件,拷贝到SD卡当中。

S7-200 SMART CPU支持MicroSD卡支持4G、8G、16G

SD卡采用FAT32文件系统格式

步骤:

1、首先到西门子官网S7-200 SMART下载最新固件;然后拷贝到SD卡根目录上;

2、将CPU断电,讲SD卡插入CPU中;

3、CPU上电,自动识别储存卡并自动更新固件,此时可看RUN指示灯和STOP指示灯是否交替闪亮,是的话表示正在更新;

4、当只有STOP灯在闪烁时,说明固件更新完毕,此时可断电取下内存卡;

5、重新上电后使用STEP 7-Micro/WIN SMART查看固件版本;

好了,关于使用STEP 7-Micro/WIN SMART V24进行固件升级的两种方法就先介绍到这里。

按下I01,100ms后T32导通,并给Q01一20MS的高电平

LD I01

LPS

TON T32, 100

AW>= T32, 100

TON T33, 20

LPP

A T33

= Q11

当T32等于20,T34导通,同时复位Q11和I01

LDW>= T32, 20

TON T34, 1000

R Q11, 1

R I01, 1

T34到达1000时导通,复位I01

LDW>= T34, 1000

S I01, 1

PLC交流群:

280181496

 

自己记得仿真一下

建议先下载S7-200系统手册,翻到P120,里面就有高速计数器的模式介绍。P129有编程介绍。

HSC0为PLC里面的一个高速计数器,模式9为A/B正交高速计数器模式。HSC0在模式9下面,使用I00作为A,I01作为B。(如果用HSC1,那么使用I06作为A,I07作为B)

假设编码器一圈有4000个脉冲。那么每个脉冲就代表=36000度/4000脉冲=009度/1脉冲。也就是每计入一个脉冲,角度就+009

编程时首先需要初始化HSC,确定工作模式,写入的初始值,然后用HSC指令激活高速计数器口,HSC就开始计数。

MW0是一个字,包含MB0与MB1 两个字节MB0是由M00--M07 8个位组成。所以当你用了M01参与逻辑控制时,再用MW0来读取模拟量,就会有冲突,编程是不合理的。这种情况下你可以把进来的模拟量读到其它字节数据去,如 MW20 或vw20 等等。

在子程序中用了M01 或者MW1后,在其它程序下可以再用这些数据。应该不矛盾。

DIP7配置开关 为零时,读取到摄氏温度 为1时读取到华氏温度。地址数据是极限情况下的读取值!实际上如果测量温度是100度,那么你读入的数据应该是1000(温度单位为01度情况下)

温度模块在实际应用过程中,你不必去计较什么地址数据+27648--27648啥关系 ,只要你拨码能与你选用的测温元件型号相对应,你通过测温通道 读进的数据,乘上输入分辨率就是你所要测得温度。

以上就是关于求C语言200行以上的程序2个全部的内容,包括:求C语言200行以上的程序2个、200plc程序升级200smart、西门子PLCs7-200小程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10077195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存