❶ SCL語言中的整除是什麼
c語言中未初始化的變數的值是0么
就是定義了變數但是未給其賦值,此時它的值是隨機數還是0?
這要看你定義的變數的屬性
全局變數 靜態變數初始值為0
局部變數,自動變數初始值隨機分配
❷ scl是什麼意思
scl意思如下:
SCL作為英文縮寫,具有多項意義。
如源程序清單、安全檢查表、硬皮病、結構化控制語言、皮膚傳導水平、標准及校正實驗所、森馬船務公司、I2C時鍾信號、軟性接觸鏡等。
補充
概念
SCL是一個以三人為首的游戲製作小組。主要的製作成果有「竟樂賽車島」,但還沒有任何公測的消息,還在內測中。
源程序清單
SCL(Source list),源程序清單。
結構化
SCL(Structured Control Language),結構化控制語言。
結構化控制語言編程結構和C語言和Pascal語言相似,特別適合於習慣於使用高級語言編程的人使用。SCL程序可以在CPU314及其以上的S7(包括400)中運行。
軟性接觸鏡
SCL(軟性角膜接觸鏡的簡稱)。
變電站
變電站配置描述語言
(Substation Configuration Language)
變電站配置語言SCL是IEC61850採用的變電站專用描述語言,基於XML1.0。它採用可擴展的標記語言清楚地描述變電站IED設備、變電站系統和變電站網路通信拓撲結構的配置。
使用SCL能夠方便地收集不同廠家設備的配置信息並對設備進行配置,使系統維護升級、智能電子器件控制變得更為簡單易行。使用SCL形成標準的IED數據傳輸文件,可以避免協議轉換的開銷,同時大大減少數據集成和維護的成本。
❸ c語言,白痴不會,,求教。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <windows.h>
#include <conio.h>
typedef struct student
{
//1、數據結構:學號 姓名 數學 英語 語文 C語言 總分 平均分
int num;
char name[10];
int math;
int english;
int chinese;
int cl;
int mark;
double average;
} student;
void Menu(); //主菜單
void Password(char *password);//密碼驗證
void Student_file(student people[]);//輸入數據
void Save(student people[]);//保存檔案
void Search();//查找學生檔案
void Search_Name(student people[]);//按照姓名查找學生信息
void Search_Num(student people[]);//按照學號查找學生信息
void Student_Add(); //添加學生檔案
void Student_Del(); //刪除學生檔案
void Student_Pass_Rate(); //學科及格概率
void Student_Sort(); //總分由高到低排序
void Student_Average(); //學科平均分
void Student_All_Del(); //刪除所有學生檔案
//void Student_Change_Password(); //修改密碼
void Student_Stat();//統計各分數段人數並輸出各科補考名單
int main()
{
FILE *fpn;
int s,n; //選項和人數
char password[50]="123456"; //初始密碼
student people[50]; //支持的最大人數
system("color 4e");
system("title 學生信息管理系統");
Password(password);
for(;;)
{
Menu();
printf("請輸入選項:");
scanf("%d",&s);
switch(s)
{
case 1:
printf("請輸入人數:");
scanf("%d",&n);
if((fpn=fopen("n.dat","wb"))==NULL)
{
printf("Error!");
exit(0);
}
fputc(n,fpn);
fclose(fpn);
Student_file(people);
break;
case 2:
Search_Name(people);
break;
case 3:
Search_Num(people);
break;
case 4:
Student_Add();
break;
case 5:
Student_Del();
break;
case 6:
Student_Pass_Rate();
break;
case 7:
Student_Sort();
break;
case 8:
Save(people);
break;
case 9:
Search();
system("pause");
break;
case 10:
Student_Average();
break;
case 11:
Student_All_Del();
break;
case 12:
Student_Stat();
break;
case 0:
exit(0);
break;
}
}
return 0;
}
void Menu()
{
system("cls");
printf(" 學生信息管理系統\n");
printf("**********************菜單****************************\n");
printf("按1鍵:讀入學生檔案 按6鍵:學科及格概率\n");
printf("按2鍵:按照姓名查詢 按7鍵:學生檔案排序\n");
printf("按3鍵:按照學號查詢 按8鍵:保存學生檔案\n");
printf("按4鍵:添加學生檔案 按9鍵: 查看學生檔案\n");
printf("按5鍵:刪除學生檔案 按10鍵:求各科平均分\n");
printf("按0鍵:退出管理系統 按11鍵:刪除所有學生檔案\n");
printf("按12鍵:統計各分數段人數並輸出各科補考名單\n");
printf("******************************************************\n");
}
void Password(char *password)
{
int i,j;
char p;
char password2[50];
printf("請輸入登錄密碼:");
for(i=2; i>=0; i--)
{
j=0;
while((p=getch())!='\r')
{
password2[j]=p;
printf("*");
j++;
}
password2[j]='\0';
if((strcmp(password,password2))==0)
{
printf("密碼輸入正確!\n");
break;
}
else
{
if(i>0)
printf("\n密碼輸入錯誤,請重新輸入(還有%d次機會):",i);
else
printf("密碼輸入錯誤,退出程序!\n");
}
}
if(i<0)
{
exit(0);
}
}
void Student_file(student people[])
{
int i,flag,j;
FILE *fpn;
int n,NUMS;
if((fpn=fopen("n.dat","rb"))==NULL)
{
printf("Error!\n");
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
for(i=0; i<n; i++)
{
system("cls");
printf("請輸入第%d個同學的數據:\n",i+1);
printf("學號:");
//scanf("%d",&people[i].num);
//Inputnum(people,&n,&i);
scanf("%d",&NUMS); //外面聲明一個int型變數NUM
for(flag=0,j=0; j<i; j++)
{
if(people[j].num==NUMS)
{
flag=1; //標志位,有重復就置1,需要外面聲明
break;
}
}
if(flag==1)
{
i--;
printf("學號重復!請按任意鍵重新輸入!\n");
system("pause");
continue;
}
else
{
people[i].num = NUMS;
}
printf("姓名:");
scanf("%s",people[i].name);
printf("數學成績:");
for(;;)
{
scanf("%d",&NUMS);
if(NUMS<0||NUMS>100)
{
printf("成績超出程序規定范圍,請重新輸入數學成績:");
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people[i].math=NUMS;
printf("英語成績:");
for(;;)
{
scanf("%d",&NUMS);
if(NUMS<0||NUMS>100)
{
printf("成績超出程序規定范圍,請重新輸入英語成績:");
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people[i].english=NUMS;
printf("語文成績:");
for(;;)
{
scanf("%d",&NUMS);
if(NUMS<0||NUMS>100)
{
printf("成績超出程序規定范圍,請重新輸入語文成績:");
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people[i].chinese=NUMS;
printf("C語言成績:");
for(;;)
{
scanf("%d",&NUMS);
if(NUMS<0||NUMS>100)
{
printf("成績超出程序規定范圍,請重新輸入C語言成績:");
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people[i].cl=NUMS;
people[i].mark=people[i].math + people[i].english + people[i].chinese + people[i].cl;
people[i].average=(double)(people[i].math+people[i].english+people[i].chinese+people[i].cl)/4.0;
}
Save(people);
}
void Search()
{
FILE *fpn,*fp1;
int i;
int n;
student people2[50];
if((fpn=fopen("n.dat","rb"))==NULL)
{
printf("Error!");
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp1=fopen("stu.dat","rb"))==NULL)
{
printf("查看檔案失敗!\n");
exit(0);
}
fread(people2,sizeof(student),n,fp1);
fclose(fp1);
printf("學號 姓名 數學 英語 語文 C語言 總分 平均分\n");
for(i=0; i<n; i++)
{
printf("%-8d\t%-8s\t%-8d\t%-8d\t%-8d\t%-8d\t%-8d\t%-8.2lf\n",people2[i].num,people2[i].name,people2[i].math,people2[i].english,people2[i].chinese,people2[i].cl,people2[i].mark,people2[i].average);
}
}
void Save(student people[])
{
FILE *fp,*fpn;
int n;
if((fpn=fopen("n.dat","rb"))==NULL)
{
printf("Error!\n");
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen("stu.dat","wb"))==NULL)
{
printf("保存檔案失敗!\n");
exit(0);
}
fwrite(people,sizeof(student),n,fp);
fclose(fp);
printf("保存成功!\n");
system("pause");
}
void Search_Name(student people[])
{
FILE *fpn,*fp1;
int i;
int n;
student people2[50];
char Name2[20];
printf("請輸入要查找的姓名:");
scanf("%s",Name2);
if((fpn=fopen("n.dat","rb"))==NULL)
{
printf("Error!");
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp1=fopen("stu.dat","rb"))==NULL)
{
printf("查看檔案失敗!\n");
exit(0);
}
fread(people2,sizeof(student),n,fp1);
fclose(fp1);
printf("學號 姓名 數學 英語 語文 C語言 總分 平均分 \n");
for(i=0; i<n; i++)
{
if(strcmp(people2[i].name,Name2)==0)
{
printf("%-8d\t%-8s\t%-8d\t%-8d\t%-8d\t%-8d\t%-8d\t%-8.2lf\n",people2[i].num,people2[i].name,people2[i].math,people2[i].english,people2[i].chinese,people2[i].cl,people2[i].mark,people2[i].average);
break;
}
}
if(i==n)
{
printf("您要查找的姓名不存在!\n");
}
system("pause");
}
void Search_Num(student people[])
{
FILE *fpn,*fp1;
int i;
int n;
student people2[50];
int Num2;
printf("請輸入要查找的學號:");
scanf("%d",&Num2);
if((fpn=fopen("n.dat","rb"))==NULL)
{
printf("Error!");
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp1=fopen("stu.dat","rb"))==NULL)
{
printf("查看檔案失敗!\n");
exit(0);
}
fread(people2,sizeof(student),n,fp1);
fclose(fp1);
printf("學號 姓名 數學 英語 語文 C語言 總分 平均分 \n");
for(i=0; i<n; i++)
{
if(people2[i].num==Num2)
{
printf("%-8d\t%-8s\t%-8d\t%-8d\t%-8d\t%-8d\t%-8d\t%-8.2lf\n",people2[i].num,people2[i].name,people2[i].math,people2[i].english,people2[i].chinese,people2[i].cl,people2[i].mark,people2[i].average);
break;
}
}
if(i==n)
{
printf("您要查找的學號不存在!\n");
}
system("pause");
}
void Student_Add()
{
FILE *fp,*fpn;
int n,NUMS,i,flag;
//int b;
student people2[50];
if((fpn=fopen("n.dat","rb"))==NULL)
{
printf("Error!\n");
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
n=n+1;
if((fpn=fopen("n.dat","wb"))==NULL)
{
printf("Error!\n");
exit(0);
}
n=fputc(n,fpn);
fclose(fpn);
if((fp=fopen("stu.dat","rb"))==NULL)
{
printf("查看檔案失敗!\n");
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
printf("請輸入第%d個同學的數據:\n",n);
printf("學號:");
for(;;)
{
scanf("%d",&NUMS);
for(i=0;i<n-1;i++)
{
if(NUMS==people2[i].num)
{
flag=1;
break;
}
else
{
flag=0;
}
}
if(flag==1)
{
printf("學號重復!請重新輸入學號:");
}
if(flag==0)
{
break;
}
}
people2[n-1].num=NUMS;
printf("姓名:");
scanf("%s",people2[n-1].name);
printf("數學成績:");
for(;;)
{
scanf("%d",&NUMS);
if(NUMS<0||NUMS>100)
{
printf("成績超出程序規定范圍,請重新輸入數學成績:");
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people2[n-1].math=NUMS;
printf("英語成績:");
for(;;)
{
scanf("%d",&NUMS);
if(NUMS<0||NUMS>100)
{
printf("成績超出程序規定范圍,請重新輸入英語成績:");
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people2[n-1].english=NUMS;
printf("語文成績:");
for(;;)
{
scanf("%d",&NUMS);
if(NUMS<0||NUMS>100)
{
printf("成績超出程序規定范圍,請重新輸入語文成績:");
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people2[n-1].chinese=NUMS;
printf("C語言成績:");
for(;;)
{
scanf("%d",&NUMS);
if(NUMS<0||NUMS>100)
{
printf("成績超出程序規定范圍,請重新輸入C語言成績:");
flag=0;
}
else
{
flag=1;
}
if(flag==1)
break;
}
people2[n-1].cl=NUMS;
people2[n-1].mark=people2[n-1].math + people2[n-1].english + people2[n-1].chinese + people2[n-1].cl;
people2[n-1].average=(double)(people2[n-1].math+people2[n-1].english+people2[n-1].chinese+people2[n-1].cl)/4.0;
if((fp=fopen("stu.dat","wb"))==NULL)
{
printf("查看檔案失敗!\n");
exit(0);
}
fwrite(people2,sizeof(student),n,fp);
fclose(fp);
printf("添加成功!\n");
/*printf("是否繼續添加?0(否) / 1(是):");
scanf("%d",&b);
switch(b)
{
case 1:
Student_Add();
break;
case 0:
break;
}*/
system("pause");
}
void Student_Del()
{
FILE *fp,*fpn;
int n,nums,i,j;
student people2[50];
if((fpn=fopen("n.dat","rb"))==NULL)
{
printf("Error!\n");
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen("stu.dat","rb"))==NULL)
{
printf("查看檔案失敗!\n");
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
printf("請輸入要刪除學生的學號:");
scanf("%d",&nums);
for(i=0; i<n; i++)
{
if(people2[i].num==nums)
{
for(j=i; j<n-1; j++)
{
people2[j]=people2[j+1];
}
break;
}
}
n=n-1;
if((fpn=fopen("n.dat","wb"))==NULL)
{
printf("Error!\n");
exit(0);
}
n=fputc(n,fpn);
fclose(fpn);
if((fp=fopen("stu.dat","wb"))==NULL)
{
printf("打開檔案失敗!\n");
exit(0);
}
fwrite(people2,sizeof(student),n,fp);
fclose(fp);
printf("刪除檔案成功!\n");
system("pause");
}
void Student_Pass_Rate()
{
FILE *fp,*fpn;
int n,smp=0,sep=0,scp=0,sclp=0,i;//數學 英語 語文 c語言的及格的人數
double mp,ep,cp,clp;// 及格率
int count1=0,count2=0,count3=0,count4=0;//及格的人數
student people2[50];
if((fpn=fopen("n.dat","rb"))==NULL)
{
printf("Error!\n");
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen("stu.dat","rb"))==NULL)
{
printf("查看檔案失敗!\n");
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
for(i=0; i<n; i++)
{
if(people2[i].math >= 60)
{
smp++;
count1++;
}
if(people2[i].english >= 60)
{
sep++;
count2++;
}
if(people2[i].chinese >= 60)
{
scp++;
count3++;
}
if(people2[i].cl >= 60)
{
sclp++;
count4++;
}
}
//mp,ep,cp,clp
mp=((double)(smp))/n;
ep=((double)(sep))/n;
cp=((double)(scp))/n;
clp=((double)(sclp))/n;
printf("總人數為:%d\n",n);
printf("各科的及格率和不及格率分別為:\n");
printf("\n數學:\n及格率%.2lf\t不及格率%.2lf\t不及格人數為:%d\n",mp,1-mp,n-count1);
printf("\n英語:\n及格率%.2lf\t不及格率%.2lf\t不及格人數為:%d\n",ep,1-ep,n-count2);
printf("\n語文:\n及格率%.2lf\t不及格率%.2lf\t不及格人數為:%d\n",cp,1-cp,n-count3);
printf("\nC語言:\n及格率%.2lf\t不及格率%.2lf\t不及格人數為:%d\n",clp,1-clp,n-count4);
system("pause");
}
void Student_Sort()
{
FILE *fp,*fpn;
int n,i,j;
student people2[50];
student temp;
if((fpn=fopen("n.dat","rb"))==NULL)
{
printf("Error!\n");
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen("stu.dat","rb"))==NULL)
{
printf("查看檔案失敗!\n");
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
for(i=0; i<n-1; i++)
{
for(j=0; j<n-i; j++)
{
if(people2[j].mark<people2[j+1].mark)
{
temp=people2[j];
people2[j]=people2[j+1];
people2[j+1]=temp;
}
}
}
printf("學號 姓名 數學 英語 語文 C語言 總分 平均分 \n");
for(i=0; i<n; i++)
{
printf("%-8d\t%-8s\t%-8d\t%-8d\t%-8d\t%-8d\t%-8d\t%-8.2lf\n",people2[i].num,people2[i].name,people2[i].math,people2[i].english,people2[i].chinese,people2[i].cl,people2[i].mark,people2[i].average);
}
system("pause");
}
void Student_Average()
{
FILE *fp,*fpn;
int n,i;
double smp=0,sep=0,scp=0,sclp=0; //數學 英語 語文 c語言的總分
student people2[50];
if((fpn=fopen("n.dat","rb"))==NULL)
{
printf("Error!\n");
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen("stu.dat","rb"))==NULL)
{
printf("查看檔案失敗!\n");
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
for(i=0; i<n; i++)
{
smp+=people2[i].math;
sep+=people2[i].english;
scp+=people2[i].chinese;
sclp+=people2[i].cl;
}
smp=smp/n;
sep=sep/n;
scp=scp/n;
sclp=sclp/n;
printf("各科的平均分為:\n");
printf("數學: %.2lf\n",smp);
printf("英語: %.2lf\n",sep);
printf("語文: %.2lf\n",scp);
printf("C語言: %.2lf\n",sclp);
system("pause");
}
void Student_All_Del()
{
FILE *fpn,*fp1;
int i;
int n=0;
student people2[50];
printf("是否選擇刪除所有學生的檔案? 0(否) / 1(是):");
scanf("%d",&i);
switch(i)
{
case 1:
if((fpn=fopen("n.dat","wb"))==NULL)
{
printf("Error!");
exit(0);
}
fputc(n,fpn);
fclose(fpn);
if((fp1=fopen("stu.dat","wb"))==NULL)
{
printf("刪除檔案失敗!\n");
exit(0);
}
fwrite(people2,sizeof(student),0,fp1);
fclose(fp1);
printf("刪除成功!\n");
break;
case 0:
printf("已經取消刪除操作!\n");
break;
}
system("pause");
}
void Student_Stat()
{
FILE *fp,*fpn;
int n,i,j,k,l,p;//數學 英語 語文 c語言的及格的人數
int count[4][4]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//人數分布:0~59 60~74 75~89 90~100
/*count[1]shuxue count[2]yingyu count[3]yuwen count[4]cyuyan*/
int swap[4][50];
student people2[50];
if((fpn=fopen("n.dat","rb"))==NULL)
{
printf("Error!\n");
exit(0);
}
n=fgetc(fpn);
fclose(fpn);
if((fp=fopen("stu.dat","rb"))==NULL)
{
printf("查看檔案失敗!\n");
exit(0);
}
fread(people2,sizeof(student),n,fp);
fclose(fp);
for(i=0,j=0,k=0,l=0,p=0; i<n; i++)
{
if(0 <= people2[i].math && people2[i].math < 60)
{
count[0][0]++; //記錄不及格的人數
swap[0][j]=i; //記錄不及格人數的位置
j++;
}
if(60 <= people2[i].math && people2[i].math < 75)
{
count[0][1]++;
}
if(75 <= people2[i].math && people2[i].math < 90)
{
count[0][2]++;
}
if(90 <= people2[i].math && people2[i].math <= 100)
{
count[0][3]++;
}
if(0 <= people2[i].english && people2[i].english < 60)
{
count[1][0]++; //記錄不及格的人數
swap[1][k]=i; //記錄不及格人數的位置
k++;
}
if(60 <= people2[i].english && people2[i].english < 75)
{
count[1][1]++;
}
if(75 <= people2[i].english && people2[i].english< 90)
{
count[1][2]++;
}
if(90 <= people2[i].english && people2[i].english <=100)
{
count[1][3]++;
}
if( 0 <= people2[i].chinese && people2[i].chinese < 60)
{
count[2][0]++; //記錄不及格的人數
swap[2][l]=i; //記錄不及格人數的位置
l++;
}
if( 60 <= people2[i].chinese && people2[i].chinese < 75)
{
count[2][1]++;
}
if( 75 <= people2[i].chinese && people2[i].chinese < 90)
{
count[2][2]++;
}
if( 90 <= people2[i].chinese && people2[i].chinese <= 100)
{
count[2][3]++;
}
if(0 <= people2[i].cl && people2[i].cl< 60)
{
count[3][0]++; //記錄不及格的人數
swap[3][p]=i; //記錄不及格人數的位置
p++;
}
if(60 <= people2[i].cl && people2[i].cl< 75)
{
count[3][1]++;
}
if(75 <= people2[i].cl && people2[i].cl < 90)
{
count[3][2]++;
}
if(90 <= people2[i].cl && people2[i].cl <= 100)
{
count[3][3]++;
}
}
printf("總人數為:%d\n",n);
printf("在0-59范圍內的各科人數:\n");
printf("數學:%d\t英語:%d\t語文:%d\tC語言:%d\n",count[0][0],count[1][0],count[2][0],count[3][0]);
printf("在60-74范圍內的各科人數:\n");
printf("數學:%d\t英語:%d\t語文:%d\tC語言:%d\n",count[0][1],count[1][1],count[2][1],count[3][1]);
printf("在75-89范圍內的各科人數:\n");
printf("數學:%d\t英語:%d\t語文:%d\tC語言:%d\n",count[0][2],count[1][2],count[2][2],count[3][2]);
printf("在90-100范圍內的各科人數:\n");
printf("數學:%d\t英語:%d\t語文:%d\tC語言:%d\n",count[0][3],count[1][3],count[2][3],count[3][3]);
printf("**********************************************************************\n");
printf("補考名單\n");
printf("\n數學的補考名單為:\n");
printf("\n學號 姓名 數學成績\n");
for(i=0;i<count[0][0];i++)//循環不及格人數次
{
printf("%-10d%-22s%-10d\n",people2[swap[0][i]].num,people2[swap[0][i]].name,people2[swap[0][i]].math);//找到不及格人數的位置進行讀取
}
printf("**********************************************************************\n");
printf("\n學號 姓名 英語成績\n");
for(i=0;i<count[1][0];i++)
{
printf("%-10d%-22s%-10d\n",people2[swap[1][i]].num,people2[swap[1][i]].name,people2[swap[1][i]].english);
}
printf("**********************************************************************\n");
printf("\n學號 姓名 語文成績\n");
for(i=0;i<count[2][0];i++)
{
printf("%-10d%-22s%-10d\n",people2[swap[2][i]].num,people2[swap[2][i]].name,people2[swap[2][i]].chinese);
}
printf("**********************************************************************\n");
printf("\n學號 姓名 C語言成績\n");
for(i=0;i<count[3][0];i++)
{
printf("%-10d%-22s%-10d\n",people2[swap[3][i]].num,people2[swap[3][i]].name,people2[swap[3][i]].cl);
};
printf("**********************************************************************\n");
system("pause");
}
/*void Student_Change_Password()
{
FILE *fp;
int i,j;
char ps[50];
printf("是否修改密碼?0(否) / 1(是):");
scanf("%d",&j);
switch(j)
{
case 1:
printf("請輸入新密碼:");
scanf("%s",ps);
if((fp=fopen("password.dat","wb"))==NULL)
{
printf("修改密碼失敗!\n");
exit(0);
}
fprintf(fp,"%s",ps);
fclose(fp);
printf("修改密碼成功!\n");
break;
case 0:
printf("成功取消修改操作!\n");
break;
}
system("pause");
}*/
❹ PLC編程和c語言編程有區別是什麼plc編程初學者應該做些什麼
C語言是計算機編程語言,是高級語言。PLC編程只適用於PLC,並且不同品牌PLC編程語言不同,梯形圖、功能塊圖是低級語言,STL、SCL屬於高級語言。
初學要熟悉指令用法,編程規則。再就是多編程。
❺ 大神們指點一下在對PLC編程時有人使用SCL編程,SCL是什麼編程語言屬於C語言范疇嗎
SCL語言是類似於Pascal的語言,西門子上叫做SCL,其他廠牌叫做ST語言,因為西門子指令表編程方式叫做STL語言,因此結構文本編程方式叫做SCL了。
❻ 問一個問題:PLC中,在SCL編程時,如何讓IF語句中,Then後面的兩條語句連續執行加什麼符號
SCL語言中,用BEGIN和END分別代替C語言中的「{」和"}",這樣應該清楚了吧
比如,C語言這樣寫
main
{
int i,j,num;
if(num==0)
{
i=i+1;
j=j+1;
}
}
那麼SCL就要這樣:
BEGIN
I,J,NUM:INT;
IF NUM=0 THEN
BEGIN
I:=I+1;
J:=J+1;
END
END
❼ 學會了SCL語言再去學C語言還會有難度嗎
對初學者來說,C語言確實有一定的難點,但是C語言是基礎的語言,並不是最難的所以學不好的主要還是自身的問題。依據本人這么多年的經驗,這嘗試分析下為何這么多人學不好C語言?
C語言本身存在一定難度
C語言主要應用於操作系統、嵌入式底層開發等,在這些領域C語言一直都咱局主導位置,但是在入門上現在比較熱門的php、python、java等語言比C語言稍微容易一些。所以很多人學習到C語言的時候,理解起來很抽象,使用時變化莫測,覺得很難,自己就失去了興趣,慢慢地放棄了。特別是在指針的學習上,是一個檻,很多人就是倒在指針上的。
當然除了指針,C語言裡面還有一些回調、遞歸、函數指針、指針函數也有一定的難點,所以總的來講C語言還是有一定的難度 的,學習C語言一定要多練,不能光看書,多做一些項目慢慢地就好了。
❽ 使用PIC24F上的bus I2C連接6腳液晶LCD進行顯示(主要是SDA, SCL的C語言編程問題)
i2c有現成的庫,你在lcd的網站上或者是單片機網上可以下到,然後按照lcd的pdf對它初始話,我給個簡單的幾個函數,可以實現初始化
下面3個就是lcd的初始化配置,下面3個函數是找到的i2c庫代碼,你按照這個lcd的pdf進行對應的修改就行
#define pcf8576 0x70
ISendByte(pcf8576,0x48); //設置背級方式
ISendByte(pcf8576,0x70); //設置閃爍
ISendByte(pcf8576,0x60); //設置器件子地址
你可以把lcd當成一個介面,向這個介面地址發送數據就可以讓它進行對應的操作,這個是我寫過的lcd顯示模塊,pcf8576是lcd的地址,這個你可以在lcd的pdf里找到
顯示的話,就是向對應的lcd寄存器寫入數據,比如要顯示第一個數字,就是將lcd的顯示數據里修改,然後發送顯示數據到lcd的對應寄存器里,下面的lcdnum就是8576的顯示數據數組
void Refresh_LCD()
{
ISendByte(pcf8576,0x60);
ISendStr(pcf8576,0x00,lcdnum,9);
}
void Start_I2c()
{
SDA=1; /*發送起始條件的數據信號*/
_Nop();
SCL=1;
_Nop(); /*起始條件建立時間大於4.7us,延時*/
_Nop();
_Nop();
_Nop();
_Nop();
SDA=0; /*發送起始信號*/
_Nop(); /* 起始條件鎖定時間大於4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
SCL=0; /*鉗住I2C匯流排,准備發送或接收數據 */
_Nop();
_Nop();
}
/*******************************************************************
結束匯流排函數
函數原型: void Stop_I2c();
功能: 結束I2C匯流排,即發送I2C結束條件.
********************************************************************/
void Stop_I2c()
{
SDA=0; /*發送結束條件的數據信號*/
_Nop(); /*發送結束條件的時鍾信號*/
SCL=1; /*結束條件建立時間大於4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
_Nop();
SDA=1; /*發送I2C匯流排結束信號*/
_Nop();
_Nop();
_Nop();
_Nop();
}
bit ISendByte(unsigned char sla,unsigned char c)
{
Start_I2c(); /*啟動匯流排*/
SendByte(sla); /*發送器件地址*/
if(ack==0)
return(0);
SendByte(c); /*發送數據*/
if(ack==0)
return(0);
Stop_I2c(); /*結束匯流排*/
return(1);
}
❾ 西門子SCL語言編程 之 <多重背景 >
樓主,雖然我沒有細看你的內容,但是,還是幫你定下!我有點小小建議:1:在使用SCL編程的時候別帶上「復雜的演算法」之類的字樣,SCL是門語言。它可以做到LAD裡面的任何事情,並且,你所說的調用DB的問題,在本質上不存在節省內存,頂多幫你節省了DBX中的X的號碼。2:你程序上一些輸入輸出,以及變數,都沒有在取名上給予辨別,換言之,我就是看你的取名很累,才沒有看下去。真正從事模塊化編程人員,都會在一些變數取名上就辨認出什麼類型等。這兩點就是建議,沒有指正或者批評。我從事SCL語言程序5年,得出的僅僅是個人總結而已。對於SCL難易:SCL本事來說,對於沒有受過高等教育而直接從事電氣人員來說的確有點難。但是有過Windows計算機編程語言基礎的人來說,的的確確簡單了許多。(我相信大多數從事控制類的人員都會有編程基礎)如果一個程序員不光從事PLC工作,還要從事其他工控作業的人員用SCL反而輕松和自在,因為習慣了IF Then這個模式。有過SCL編程多年的老手,歡迎批評和交流
❿ 西門子的編程語言中是不是SCL語言最接近C語言了
SCL我感覺接近VB6就是一些符號不一樣,我覺得可能是VBA
西門子SCL語言詳解 希望對您有所幫助