当前位置:首页 > 黑客业务 > 正文内容

c语言程序带注释50个(c语言程序注释有两种方式)

hacker2年前 (2022-08-12)黑客业务76

本文目录一览:

谁提供一原创C语言完整程序,50行以上,有程序注释,急用

#includereg52.h

#define uchar unsigned char //宏定义

#define uint unsigned int

sbit rs=P2^6; //液晶引脚位定义

sbit rw=P2^5;

sbit en=P2^7;

sbit k5=P2^3; //独立键盘位定义

sbit k6=P2^2;

sbit k7=P2^4;

sbit sda=P2^1; //EEPROM位定义

sbit scl=P2^0;

sbit JD=P1^4;

uchar i,tt,a;

char shi,fen,miao;

uchar code D[]=" 2011-3-24";

uchar code D1[]=" : : ";

void delay1() //延时函数,延时时间约4us

{;;}

void start() //EEPROM中开始信号

{

sda=1;

delay1();

scl=1;

delay1();

sda=0;

delay1();

}

void stop() //EEPROM中停止信号

{

sda=0;

delay1();

scl=1;

delay1();

sda=1;

delay1();}

void response() //EEPROM中应答信号

{

uint i;

scl=0;

delay1();

scl=1;

delay1();

while((sda==1)(i250))i++)

scl=0;

delay1();

}

void write_byte(uchar shu)//在EEPROM中写8位2进制数

{

uint i;

uchar temp;

temp=shu;

for(i=0;i8;i++)

{

temp=temp1;

scl=0;

delay1();

sda=CY;

delay1();

scl=1;

delay1();

}

scl=0;

delay1();

sda=1;

delay1();

}

uchar read_byte()//从EEPROM中读8位2进制数

{

uint i;

uchar a;

scl=0;

delay1();

sda=1;

delay1();

for(i=0;i8;i++)

{

scl=1;

delay1();

a=(a1)|sda;

delay1();

scl=0;

delay1();

}

return a;

}

void write(uchar address,uchar date)//在EEPROM指定地址写入数据

{

start();

write_byte(0xa0);

response();

write_byte(address);

response();

write_byte(date);

response();

stop();}

uchar read(uchar address) //从EEPROM中指定地址读数据

{

uchar date;

start();

write_byte(0xa0);

response();

write_byte(address);

response();

start();

write_byte(0xa1);

response();

date=read_byte();

stop();

return date;

}

void delay(uchar z) //延时函数

{

uchar x,y;

for(x=z;x0;x--)

for(y=120;y0;y--);

}

write_com(uchar com) //给液晶写指令

{

en=0;

rs=0;

rw=0;

P0=com;

delay(5);

en=1;

delay(5);

en=0;

}

write_date(uchar date) //给液晶写数据

{

en=0;

rs=1;

rw=0;

P0=date;

delay(5);

en=1;

delay(5);

en=0;

}

void write_sfm(uchar add,char date)//液晶在指定位置开始写指定的数

{ char x,y;

x=date/10;

y=date%10;

write_com(0x80+0x40+add);

write_date(0x30+x);

write_date(0x30+y);

}

void init()

{ TMOD=0x01; //定时器0的初始化

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;ET0=1;

TR0=1;

write_com(0x38); //液晶的初始化

write_com(0x0c);

write_com(0x06);

write_com(0x01);

write_com(0x80);

for(i=0;i12;i++) //显示液晶的第一行

{write_date(D[i]);br delay(20);br }

write_com(0x80+0x40);//显示液晶的第二行

for(i=0;i12;i++)

{write_date(D1[i]);br delay(20);br }

shi=read(4);//从eeprom中读值分别赋给时分秒

fen=read(5);

miao=read(2);

write_sfm(4,shi);//液晶第二行显示时分秒

write_sfm(7,fen);

write_sfm(10,miao);}

void main()

{

init();

while(1)

{

if(k5==0)

{

delay(5);

if(k5==0)

{

while(!k5);//松手检测

delay(5);

while(!k5);

a++;

TR0=0;

if(a==4)

{

a=0;

TR0=1;

tt=0;

}

}

}

switch(a)

{

case 1: //秒的调整

{ write_com(0x80+0x40+11);//调光标到秒的位置

write_com(0x0f); //光标闪烁

if(k6==0)

{

delay(5);

if(k6==0)

{ while(!k6);

delay(5);

while(!k6);

miao++;

if(miao==60)

miao=0;

write(2,miao);

write_sfm(10,miao);

write_com(0x80+0x40+11);

}

}

if(k7==0)

{

delay(5);

if(k7==0)

{ while(!k7);

delay(5);

while(!k7);

miao--;

if(miao0)

miao=59;

write(2,miao);

write_sfm(10,miao);

write_com(0x80+0x40+11);

}

}

} break;

case 2: //分钟的调整

{ write_com(0x80+0x40+8);//调光标到分的位置

if(k6==0)

{

delay(5);

if(k6==0)

{ while(!k6);

delay(5);

while(!k6);

fen++;

if(fen==60)

fen=0;

write(5,fen);

write_sfm(7,fen);

write_com(0x80+0x40+8);

}

}

if(k7==0)

{

delay(5);

if(k7==0)

{ while(!k7);

delay(5);

while(!k7);

fen--;

if(fen0)

fen=59;

write(5,fen);

write_sfm(7,fen);

write_com(0x80+0x40+8);

}

}

} break;

case 3: //小时的调整

{ write_com(0x80+0x40+5);//调光标到小时的位置

if(k6==0)

{

delay(5);

if(k6==0)

{ while(!k6);

delay(5);

while(!k6);

shi++;

if(shi==24)

shi=0;

write(4,shi);

write_sfm(4,shi);

write_com(0x80+0x40+5);

}

}

if(k7==0)

{

delay(5);

if(k7==0)

{ while(!k7);

delay(5);

while(!k7);

shi--;

if(shi0)

shi=23;

write(4,shi);

write_sfm(4,shi);

write_com(0x80+0x40+5);

}

}

} break;

case 0:

{

write_com(0x0c); //开液晶显示,不显光标,光标不闪

if(tt==20) //每过一秒时钟走一秒

{

tt=0;

miao++;

if(miao==60)

{

JD=0;

miao=0;

fen++;

if(fen==60)

{

fen=0;

shi++;

if(shi==24)

shi=0;

write_sfm(4,shi);

write(4,shi);

}

write_sfm(7,fen);

write(5,fen);

}

write_sfm(10,miao);

write(2,miao);

if(miao==30)

JD=1;

}

}

}

}

}

void timer0() interrupt 1 //定时器0函数

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

tt++;

}

C++的~~LCD时钟程序

求用c语言编写的程序,最好带着注释(越详细越好!!)

#includestdio.h

#includestring.h

#includestdlib.h

#include"conio.h"

#define N 20

struct depositor

{char num[20];br char name[20];br char per[20];br float sec;br float mon;br};

void menu();

int reads(struct depositor dep[N]);

void save(struct depositor dep[N],int n);

void add();

void del();

void change();

void show();

void main()

{

int n;

while(1)

{

menu();

printf("\n 请输入您要选择的操作序号,按回车键确认:");

scanf("%d",n);

switch(n)

{

case 1: add();break;

case 2: show();break;

case 3: del();break;

case 4: change();break;

case 5: exit(0);

default: printf("输入错误,请输入列表中存在的序号!\n ");

}

}}

void menu()

{

printf(" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ");

printf("\n ************************* 银行个人账户管理系统*************************** ");

printf("\n 1 储户开户");

printf("\n 2 余额查询");

printf("\n 3 储户销户");

printf("\n 4 密码修改");

printf("\n 5 退出");

printf("\n ************************************************************************** ");

printf("\n %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ");

}

int reads(struct depositor dep[N]) // 读取储户内容

{

FILE *fp;

int i=0;

if((fp=fopen("account.dat","r"))==NULL)

{

printf("文件打开失败!\n");

return 0;

}

else

{

for(i=0;!feof(fp);i++)

fscanf(fp,"\n%s %s %s %f %f\n",dep[i].num,dep[i].name,dep[i].per,dep[i].sec,dep[i].mon);

}

fclose(fp);

return i;

}

void save(struct depositor dep[N],int n) // 储户保存后信息

{

FILE *fp;

int i=0;

if((fp=fopen("account.dat","w"))==NULL)

{

printf("文件打开失败!\n");

return ;

}

else

{

for(i=0;in;i++)

fprintf(fp,"\n%s %s %s %f %f\n",dep[i].num,dep[i].name,dep[i].per,dep[i].sec,dep[i].mon );

}

fclose(fp);

}

void add()/*储户开户*/

{

FILE *fp;

struct depositor dep;

if((fp=fopen("account.dat","a"))==NULL) //如果文件已经存在,可以追加储户信息

{

if((fp=fopen("account.dat","w"))==NULL) // 文件不存在时,创建新文件,输入储户信息

{

printf("用户不存在!\n");

return ;

}

}

printf("\n请输入储户帐号,并按回车键确认:\n");

scanf("%s",dep.num);

fprintf(fp,"\n%s\n",dep.num);

printf("\n请输入储户姓名,并用回车键确认: \n");

scanf("%s",dep.name);

fprintf(fp,"\n%s\n",dep.name);

printf("\n请输入储户身份证号,并用回车键确认: \n");

scanf("%s",dep.per);

fprintf(fp,"\n%s\n",dep.per);

printf("\n请输入储户密码,并用回车键确认: \n");

scanf("%f",dep.sec);

fprintf(fp,"\n%f\n",dep.sec);

printf("\n请输入储户金额,并按回车键确认: \n");

scanf("%f",dep.mon);

fprintf(fp,"\n%f\n",dep.mon);

if(dep.mon10 )

{ printf("\n 储户金额低于十元,不予开户 \n");

return ;

}

printf("\n **********************开户成功*************************\n");

fclose(fp);

}

void show() //余额查询

{

struct depositor dep[N];

int i,n ;

char s[20];

float t ;

n=reads(dep);

printf("\n请用户输入账号,密码,用空格隔开,按回车键确认:\n");

scanf("%s %f",s,t);

for(i=0;in;i++)

if (strcmp(s,dep[i].num)==0 t==dep[i].sec) break;

if (i=n || t!=dep[i].sec)

{

printf("\n 输入错误 \n");

return ;

}

else

{ printf("*********************储户的余额如下**********************\n");

printf(" 余额 \n");

printf("\n %11.2f \n", dep[i].mon);

printf("**********************************************************\n");

}

}

void del() /*储户信息删除函数*/

{

struct depositor dep[N];

char number[20];

float t;

int n,i,j;

n=reads(dep);

printf("\n请输入要删除储户账号,密码,用空格隔开,按回车键确认:");

scanf("%s %f",number,t);

for(i=0;in;i++)

if(strcmp(number,dep[i].num)==0t==dep[i].sec) break;

if(i=n||t!=dep[i].sec)

{

printf("没有找到该储户信息!\n");

return;

}

else

{

for(j=i+1;jn;j++)

dep[j-1]=dep[j];

}

save(dep,n-1);

printf("销户成功!\n");

}

void change() //储户密码更改

{

struct depositor dep[N];

int n,i;

float t;

char number[20];

printf("\n请输入要更改密码的储户账号,密码,用空格隔开,按回车键确认:");

scanf("%s %f",number,t);

n=reads(dep);

for(i=0;in;i++)

if(strcmp(number,dep[i].num)==0t==dep[i].sec)

break;

if(i=n||t!=dep[i].sec)

{

printf("无此储户信息!");

return;

}

printf("\n请输入更改后密码,按回车键确认:\n");

scanf("%f",dep[i].sec);

save(dep,n);

printf("\n修改成功\n");

}

急求:写c语言注释--只有50行!满意加200分

#includestdio.h//standard input output 标准输入输出头文件

#includestdlib.h//standard library标准库头文件

#includeconio.h//Console Input/Output(控制台输入输出)

#includestring.h//字符数组的函数定义的头文件

#includectype.h//判断字符类型 字符转换

struct n//结构体 n

{int G;}s;//定义结构体变量 s

void save()

{ FILE *fp;//文件指针

int i;//循环控制变量

char str[100];//字符数组

if((fp=fopen("x.txt","w+"))==NULL)//fp 写方式打开x.txt

{printf("\n canot open file \n");//文件打开失败提示

getch();//暂停用

exit(1);//退出程序

}

for(i=1;i=10;i++)

{gets(str);//输入字符串

fputs(str,fp);//将字符串写入 x.txt

fputs("\n",fp);//写入换行符到 x.txt

}

fclose(fp);//关闭x.txt

}

void fun()

{struct n s;//定义结构体变量 s

FILE *fp;//文件指针

char str[100];//字符数组

if((fp=fopen("x.txt","r+"))==NULL)//读方式打开x.txt

{printf("\n canot open file \n");//同上 文件打开失败

getch();

exit(1);

}

int i,j;//循环控制变量

char *p;//

char *b[1000];//

char strg[1000];//暂存字符串

i=0;j=0;s.G=0;//初始化

while(fgets(str,100,fp)!=NULL)//从x.txt读出100个字符到str中

strcpy(strg,str);//将str复制到 strg

p=strg;//获得字符串首地址

b[j]=p;j=j+1;//将strg存入b第一个位置

for(i=1;i=1000;i++)

{if((strg[i]=='\32'strg[i+1]!='\32')||(strg[i]=='\n')strg[i+1]!='\n')

{*p=strg[i+1];b[j]=p;j=j+1;s.G=s.G+1;}}//依次剔除第一字符 将剔除后字符串依次存入b

//结构体记录字符串个数 字符串结束时跳出

for(i=0;i=1000;i++)

printf("%s",b[i]);//打印b中字符串

printf("%d",s.G);//打印字符串个数

FILE *fp2;//文件指针

if((fp=fopen("x1.txt","w+"))==NULL)//写方式打开文件x1.txt

{printf("\n canot open file \n");//失败操作

getch();

exit(1);

}

if(fwrite(b,sizeof(1000),1,fp2)!=1);//将b中保存字符串写入x1.txt

printf("file write error!");//写入失败提示

if(fwrite(s,sizeof(struct n),1,fp2)!=1);//结构体s写入x1.txt 即字符串个数

printf("file write error!");//写入失败提示

fclose(fp2);//关闭文件

}

void main()

{save();//写文件操作

fun();//读出 写入另一个文件

}

扫描二维码推送至手机访问。

版权声明:本文由黑客平台在线接单_免费黑客平台的网站发布,如需转载请注明出处。

本文链接:http://heikexuexi.com/64436.html

分享给朋友:

“c语言程序带注释50个(c语言程序注释有两种方式)” 的相关文章

初中生心得体会300字

初中生心得体会300字

                                                                                               进修 口吃领会 总结:外教是一个熟悉的春天,是一个年轻人身体少、常识少、成熟不雅的异常 主要 的时期。这是一...

感谢老师的话简短,精选

感谢老师的话简短,精选

                                                                                               每个人都应该感谢 先生 ,他们给我们带来了常识 ,给我们带来了熟悉 世界的机会 ,昨天他们在那里分享一点关于感...

公务员申论主要考什么

公务员申论主要考什么

                                                                                               应用 加入 公务 员测试 长度 通常主要是 。即使 没有参加 私人考试,外部应用也不仅仅是为了处理 本身 日常...

廉政教育心得体会

廉政教育心得体会

                                                                                               每一个湿部都必须是 ,浑邪廉明 ,所以以上是为了了了解除夕 野整顿 的几个廉政学育口病 范文,欢迎 评估。领会...

工作个人简历自我介绍,经典

工作个人简历自我介绍,经典

                                                                                               我们正在寻找东西 都邑 提前准备 懦夫本身 小我 简历,在 简历外面,毛遂自我推荐 也长度 通常是主要 部门...

应急预案包括哪6个方面

应急预案包括哪6个方面

                                                                                               应慢计划是指面对 突发事件 ,如 自然 灾害、重特殊除夕 混乱 、情况 私害和工资 粉碎 应慢处理 、救援计划...

评论列表

双笙长野
2年前 (2022-08-12)

!k6); delay(5); while(!k6); shi++; if(shi==24) shi=0; write(4,shi); write_sfm(4,shi); writ

性许婳悕
2年前 (2022-08-12)

=1;i=1000;i++){if((strg[i]=='\32'strg[i+1]!='\32')||(strg[i]=='\n')strg[i+1]!='\n'){*p=strg[i+1];b[j]=p;j=j+1;s.G=s.G+1;}}//依次剔除第一字符 将剔除后字符串依次存入b

澄萌池木
2年前 (2022-08-12)

3 储户销户"); printf("\n 4 密码修改"); printf("\

性许山柰
2年前 (2022-08-12)

; while(!k7); miao--; if(miao0) miao=59; write(2,miao); wri

酒奴殊姿
2年前 (2022-08-12)

n=reads(dep); for(i=0;in;i++) if(strcmp(number,dep[i].num)==0t==dep[i].sec) bre

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。