期末的作业吧?呵呵 给你两个:
一、题目:家庭财务管理小程序
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小程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)