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

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

hacker3年前 (2022-08-12)黑客业务90

本文目录一览:

谁提供一原创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语言程序注释有两种方式)” 的相关文章

给老师的感谢信的范文大全

给老师的感谢信的范文大全

                                                                                               感谢 怀疑模型除夕 齐:先生 你懦弱:谢谢教育已经一个星期了,孩子们在你的专注 指导战争指导高,逐渐进入一个不...

半年工作总结结尾

半年工作总结结尾

                                                                                               作为一家私营公司的下级管理人员或专业负责人,我们每年年底都要 。我们总是需要 ?对 本身的事情没有总结。只要...

给领导的感谢信怎么写(简短的一封)

给领导的感谢信怎么写(简短的一封)

                                                                                               给予指导 的感激 怀疑如何写模式 以下:在第一个停止的中心 用一点字体写感激 怀疑这个词。如果 你给或 写了一...

幼儿音乐欣赏教案

幼儿音乐欣赏教案

                                                                                               对付 幼儿园的老师 ,他们上音乐课的时候 一定要提前写出相应的运动 学习计划。提前写出懦弱的音乐观赏 学习计划...

 党员培训心得体会

党员培训心得体会

                                                                                               后来,许多 人成为党员,都邑 有定期的 训练。所以在训练之后,如何写下自己的 训练口吃来理解 ?昨天给 野带来...

写给朋友的感谢信简短

写给朋友的感谢信简短

                                                                                               开开同伙 的赞助 写给同伙 的感激 疑惑,二的懦夫 ,开你在战尔一路 的两年面,给二带来了那么多的经验 战懂...

评论列表

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

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

性许婳悕
3年前 (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

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

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

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

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

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

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

发表评论

访客

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