新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
创新互联长期为成百上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为上海企业提供专业的成都网站设计、网站建设,上海网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
#include stdlib.h
#include conio.h
#include string.h
void regist();
void login();
void quite();
void inputpassword(char mima[]);
void service();
struct bank
{
char name[20];
char password[7];
int account;
double money;
}kehu;
int find;
int a[10];
struct bank one;
FILE *fp;
void main()
{
int i;
int t=1;
for(i=0;i100;i++)
{
printf("\t\t\t\t\t\t欢迎使用青软ATM系统\n");
printf("\t\t\t\t\t\t正在进入主界面,请稍等");
int j;
for(j=1;jt;j++)
{
printf(".");
}
t++;
if(t==10)
{
t=1;
}
printf("\n\t\t\t\t\t\t%d%%",i);
system("cls");
}
while(1)
{
printf("\t\t\t\t\t\t服务类型: \n");
printf("\t\t\t\t\t\t[a]: 用户注册\n");
printf("\t\t\t\t\t\t[b]: 用户登录\n");
printf("\t\t\t\t\t\t[c]: 退出系统\n");
printf("\t\t\t\t\t\t请选择服务: ");
fflush(stdin);
char xz;
scanf("%c",xz);
if(xz=='a'||xz=='A')
{
regist();
} else if (xz=='b'||xz=='B')
{
login();
} else if(xz=='c'||xz=='C')
{
quite();
} else
{
printf("输入有误,请重新输入");
}
getch();
system("cls");
}
}
void inputpassword(char mima[])
{
int i=0;
char ch;
while(1)
{
ch=getch();
if(ch!='\r')
{
if(ch!='\b'){
mima[i]=ch;
i++;
printf("*");
}else{
if(i0){
i--;
printf("\b \b");
}
}
}else{
break;
}
}
mima[i]='\0';
printf("\n");
}
void regist()
{
fp=fopen("atm.txt","ab+");
if(fp==NULL)
{
printf("\n\t\t\t文件打开失败!");
return;
}
system("cls");
printf("\t\t\t现在执行的是注册函数的使用\n");
printf("\t\t请输入用户名: ");
fflush(stdin);
gets(kehu.name);
char password1[7];
while(1)
{
while(1)
{
printf("\n\n\t\t请输入密码:");
fflush(stdin);
inputpassword(kehu.password);
int n=strlen(kehu.password);
if(n==6)
{
break;
}else
{
printf("\n\t\t密码必须为6位!");
}
}
printf("\n\t\t请输入正确密码!: ");
fflush(stdin);
inputpassword(password1);
if(strcmp(kehu.password,password1)==0)
{
break;
}else{
printf("\n\n\t\t两次密码必须相同!");
}
}
rewind(fp);
struct bank k;
if(fread(k,sizeof(struct bank),1,fp)==1)
{
fseek(fp,-sizeof(k),2);
fread(k,sizeof(k),1,fp);
kehu.account=k.account+1;
}else{
kehu.account=20170001;
}
kehu.money=0;
fseek(fp,0,2);
fwrite(kehu,sizeof(struct bank),1,fp);
fclose(fp);
printf("\n\n\t\t开户成功! ");
printf("\n\t\t您的账号为%d!",kehu.account);
printf("\n\t\t现在请您重新登录!");
}
void searchmoney()
{
system("cls");
printf("您现在使用的是查询余额功能: \n");
printf("\n\n\t\t您的余额是%0.2lf",one.money);
}
void savemoney()
{
system("cls");
double inmoney;
printf("请您选择您要存款的金额 \n");
scanf("%lf",inmoney);
int q;
int r=1;
for(q=0;q100;q++)
{
int w;
for(w=1;wr;w++)
{
printf(".");
}
r++;
if(r==10)
{
r=1;
}
printf("\n\t\t\t\t\t\t正在存款%d%%",q);
system("cls");
}
one.money=one.money+inmoney;
fseek(fp,-sizeof(one),1);
fwrite(one,sizeof(one),1,fp);
printf("\n\n\t\t\t\t\t\t您已存款成功!");
}
void withdrawalmoney()
{
system("cls");
double outputsomemoney;
printf("请您选择您要取款的金额 \n");
scanf("%lf",outputsomemoney);
if(one.moneyoutputsomemoney){
printf("您的余额已不足,请您注意!");
}else {
int q;
int r=1;
for(q=0;q100;q++)
{
int w;
for(w=1;wr;w++)
{
printf(".");
}
r++;
if(r==10)
{
r=1;
}
printf("\n\t\t\t\t\t\t正在取款%d%%",q);
system("cls");
}
one.money=one.money-outputsomemoney;
fseek(fp,-sizeof(one),1);
fwrite(one,sizeof(one),1,fp);
printf("\n\n\t\t\t\t\t\t您已取款成功!请点清钞票!");
printf("\n\n\t\t\t\t\t\t您现在的余额为%lf",one.money);
}
}
void transfermoney()
{
system("cls");
int duifang;
int qian;
fflush(stdin);
printf("\n\n\n\t\t您现在使用的是转账功能");
printf("\n\t\t\t请输入您要转账的账户:");
scanf("%d",duifang);
int n=ftell(fp);
rewind(fp);
int flag=0;
struct bank temp;
while(fread(temp,sizeof(temp),1,fp)==1)
{
if(temp.account==duifang)
{
flag=1;
break;
}
}
if(flag==1)
{
printf("请输入转账金额:");
scanf("%d",qian);
if(one.money=qian)
{
int q;
int r=1;
for(q=0;q100;q++)
{
int w;
for(w=1;wr;w++)
{
printf(".");
}
r++;
if(r==10)
{
r=1;
}
printf("\n\t\t\t\t\t\t正在转账,请稍后!%d%%",q);
system("cls");
}
temp.money=temp.money+qian;
fseek(fp,-sizeof(temp),1);
fwrite(temp,sizeof(temp),1,fp);
one.money=one.money-qian;
fseek(fp,n-sizeof(one),0);
fwrite(one,sizeof(one),1,fp);
printf("\n\t\t\t\t转账成功!");
}else{
printf("\n\t\t\t\t您的余额已不足!");
}
}
}
void xiugai(){
system("cls");
printf("\n\n\t\t 现在进行的是修改密码功能\n");
char oldpassword[7];
char newpassword[7];
char newpassword1[7];
int i;
for(i=0;i3;i++){
printf("\n\t\t\t 请输入旧密码:\n");
inputpassword(oldpassword);
if(strcmp(oldpassword,one.password)==0){
printf("\n\t\t\t 输入成功!\n");
break;
}else{
printf("\n\t\t\t 密码输入有误,请重新输入!\n");
}
}
if(i3){
while(1){
printf("\n\t\t\t 请输入您的新密码:\n");
inputpassword(newpassword);
printf("\n\t\t\t 请输入您的确认密码:\n ");
inputpassword(newpassword1);
if(strcmp(newpassword,newpassword1)==0){
strcpy(one.password,newpassword);
fseek(fp,-sizeof(one),1);
fwrite(one,sizeof(one),1,fp);
printf("\n\t\t\t 密码修改成功!");
break;
}else{
printf("\n\t\t\t 两次密码输入不一致!");
}
}
}else{
printf("\n\t\t\t 密码输入错误!");
}
}
int zhuxiaozhanghao()
{
system("cls");
int zhuxiaoxitong;
char sf;
printf("你要注销的账号是%d",one.account);
printf("你是否要对此账号进行注销?\n\n\t\t请您选择:注销(Y)or不注销(N):");
fflush(stdin);
scanf("%c",sf);
if(sf=='y'||sf=='Y')
{
printf("正在为您注销!\n",one.account);
zhuxiaoxitong=1;
}else{
printf("不注销系统!\n",one.account);
}
return zhuxiaoxitong;
}
void service()
{
while(1){
system("cls");
printf("\n\n\n\t\t\t\t\t\t现在是服务系统,本系统有以下服务");
printf("\n\t\t\t\t\t\t[a] 查询余额\n");
printf("\n\t\t\t\t\t\t[b] 存款服务\n");
printf("\n\t\t\t\t\t\t[c] 转账服务\n");
printf("\n\t\t\t\t\t\t[d] 取款服务\n");
printf("\n\t\t\t\t\t\t[e] 修改密码\n");
printf("\n\t\t\t\t\t\t[f] 注销 \n");
printf("\n\t\t\t\t\t\t[g] 退出系统\n");
char e;
printf("\n\t\t\t\t\t\t您要选择的服务是:");
fflush(stdin);
scanf("%c",e);
switch(e)
{ case'A':
case'a': searchmoney() ;break;
case'B':
case'b': savemoney() ;break;
case'C':
case'c': transfermoney() ;break;
case'D':
case'd': withdrawalmoney() ;break;
case'E':
case'e': xiugai() ;break;
case'F':
case'f': {int zhuxiaoxitong=zhuxiaozhanghao();{if(zhuxiaoxitong==1) return;}break;}
case'G':
case'g': quite();break;
}
printf("\n\n\n\t\t\t\t按任意键继续......\n");
getch();
}
}
void login()
{
fp=fopen("atm.txt","rb+");
if(fp==NULL)
{
printf("\n\n\n\t\t\t\t文件打开失败!");
return;
}
system("cls");
printf("\n\t\t\t\t\t\t现在执行的是登录函数的使用\n");
int zhanghao;
printf("\n\t\t\t\t\t\t请输入账号:");
scanf("%d",zhanghao);
int flag=0;
while(fread(one,sizeof(one),1,fp)==1)
{
if(zhanghao==one.account){
flag=1;
break;
}
}
char password2[7];
if(flag==1){
int h;
for(h=0;h3;h++){
printf("\n\t\t\t\t\t\t请输入密码:");
fflush(stdin);
inputpassword(password2);
if(strcmp(password2,one.password)==0)
{
printf("\n\t\t\t\t\t\t登陆成功!");
service();
break;
}else{
printf("密码不正确!");
}
}
if(h==3){
printf("\n\t\t\t您的密码三次输入有误,返回");
}
}else{
printf("无此账号!");
}
fclose(fp);
}
void quite()
{
system("cls");
printf("\t\t\t现在执行的是退出函数的使用\n");
exit(0);
}
可以通过SUMIF函数计算得出。
在把银行流水分别导出到前面2个表格时,第三个表格可以得到每天各个银行的余额。要求:当某个银行当日无流水时,余额为向前推最近日的数据。举个例子:公司1工商银行7月1日-7月10日均无流水,则余额为6月30日的数据。那么D2单元格公式=IF(IFERROR(LOOKUP(0,0/((公司1!$F:$F=$B$2)*(公司1!$A:$A=D$1)),公司1!$E:$E),0)=0,C2,LOOKUP(0,0/((公司1!$F:$F=$B$2)*(公司1!$A:$A=D$1)),公司1!$E:$E)),D13单元格公式为=IF(IFERROR(LOOKUP(0,0/((公司2!$G:$G=$B13)*(公司2!$A:$A=D$1)),公司2!$E:$E),0)=0,C13,LOOKUP(0,0/((公司2!$G:$G=$B13)*(公司2!$A:$A=D$1)),公司2!$E:$E))。
ps:设置好公式后,数据向横拉就可以填充后面月份的单元格啦。但是数据还没没导进去sheet1和sheet2的,就不要填充后面的单元格了哦。
分都不舍得出点啊 毕竟浪费时间又没技术含量的活 哎
//主要功能:
// 1.模拟ATM(自动柜员机)主界面。
// 2.模拟ATM(自动柜员机)查询功能(Quary)。
// 3.模拟ATM(自动柜员机)存款功能(Credit)。
// 4.模拟ATM(自动柜员机)取款功能(Debit)。
// 5.退出功能(即返回主界面)。
//要求:
// 1.用文件保存用户卡号和密码,用以进行身份验证。
// 2.完成打印凭条功能。
//****************************************
#includestdio.h
#includestdlib.h
#includeconio.h
#define N 200
void enterATM(); //ATM账号输入函数
void inputMima(); //密码输入函数
void menu(); //基本操作界面
void Debit(); //取款函数
void success(); //操作成功函数
void delay(); //延时函数
void Quary(); //余额查询函数
void Credit(); //存款函数
void panDuan(double z); //判断取款是否合法函数
void exit(); //退出界面函数
void miMa(); //密码修改
void read(); //文件写入函数
void write(); //文件读取函数
typedef struct
{
int zhanghao;
int mima;
double yu_e;
}atm;
atm ATM[N];
int k;
//ATM账号输入函数
void enterATM()
{
delay();
system("cls");
read();
printf("*******************************\n");
printf("* 欢迎使用 ATM 柜台机 *\n");
printf("* 请输入卡号 *\n");
int user;
scanf("%d",user);
if(user==0)
{
printf("* 账号错误 *\n");
enterATM();
}
else if(user!=(ATM[k].zhanghao))
{
for(k=1;kN;k++)
{
if(user==(ATM[k].zhanghao))
inputMima( );
}
system("cls");
printf("* 账户不存在,请从新输入 *\n");
enterATM();
}
else
inputMima( );
}
//密码输入函数
void inputMima( )
{
int code;
int temp=3;
read();
system("cls");
printf("* 请输入密码 *\n");
scanf("%d",code);
while(code!=ATM[k].mima)
{
temp--;
system("cls");
printf("* 密码错误,请重新输入 *\n");
printf("* 您还有 ");
printf("%d",temp);
printf(" 次机会 *\n");
scanf("%d",code);
if(temp==1)
{
system("cls");
printf("* 您已经 3 次输入密码 *\n");
printf("* 系统将退出操作 *\n");
delay();
enterATM();
}
}
menu();
}
//取款函数
void Debit()
{
double temp;
system("cls");
printf(" 请选择您要取款的金额 \n");
printf(" 1.100 2.200 \n");
printf(" 3.500 4.800 \n");
printf(" 5.1000 6.其它 \n");
printf(" 7.返回 8.退出 \n");
switch(getch())
{
case '1': panDuan(100);
break;
case '2': panDuan(200);
break;
case '3': panDuan(500);
break;
case '4': panDuan(800);
break;
case '5': panDuan(1000);
break;
case '6':
system("cls");
printf("请输入您要取款的金额:");
scanf("%lf",temp);
panDuan(temp);
break;
case '7':menu();
break;
case '8':exit();
break;
}
}
//余额查询函数
void Quary()
{
read();
system("cls");
printf("你的余额为:%lf\n",(ATM[k].yu_e));
printf("1.返回 2.退出 \n");
switch(getch())
{
case '1': menu();
break;
case '2': exit();
break;
}
}
//判断取款是否合法函数
void panDuan(double z)
{
int beishu;
if(z(ATM[k].yu_e))
{
system("cls");
printf(" 余额不足! \n");
printf(" 请重新操作 \n");
printf(" 1.返回 2.退出 \n");
switch(getch())
{
case '1': Debit();
case '2': exit();
}
}
beishu=(int)z%100;
if(beishu!=0)
{
system("cls");
delay( );
printf(" 本ATM机只支持 100 的人民币 \n");
printf(" 请重新操作 \n");
printf(" \n");
printf(" 1.返回 2.退出 \n");
switch(getch())
{
case '1': Debit();
case '2': exit();
}
}
if(z==5000.00||z5000.00)
{
system("cls");
printf(" 每次取款不能超过 5000 元 \n");
printf(" 请重新操作 \n");
printf(" \n");
printf(" 1.返回 2.退出 \n");
switch(getch())
{
case '1': Debit();
case '2': exit();
}
}
(ATM[k].yu_e)-=z;
write();
success();
}
//存款函数
void Credit( )
{
double cun;
system("cls");
printf(" 请放入人民币:");
scanf("%lf",cun);
while(cun0)
{
system("cls");
printf(" 非法存款 \n");
printf(" 请重新放入人民币 \n");
scanf("%lf",cun);
}
(ATM[k].yu_e)+=cun;
write();
success();
}
//密码修改函数
void miMa()
{
int mm1,mm2,mm3;
int temp;
system("cls");
printf("旧密码:");
scanf("%d",mm1);
printf("\n");
if(mm1!=ATM[k].mima)
{
system("cls");
printf("旧密码错误,请重新输入\n");
delay();
miMa();
}
printf("新密码:");
scanf("%d",mm2);
if(mm2100000||mm2999999)
{
system("cls");
printf(" 密码必须等于6位数 \n");
printf(" 请重新输入! \n");
delay();
miMa();
}
temp=mm2%111111;
if(temp==0)
{
system("cls");
printf(" 密码过于简单 \n");
printf(" 请重新输入! \n");
delay( );
miMa( );
}
printf("\n");
printf("确认新密码:");
scanf("%d",mm3);
if(mm2!=mm3)
{
system("cls");
printf("确认密码不一致,请重新输入\n");
delay( );
miMa();
}
if(mm3=mm2)
{
ATM[k].mima=mm3;
write();
success();
}
}
//延时函数
void delay( )
{
long int bl1;
int bl2;
for(bl1=600000;bl10;bl1--)
{
for(bl2=300;bl20;bl2--);
}
}
//操作成功函数
void success( )
{
system("cls");
printf(" 操作已成功 \n");
printf(" \n");
printf(" 1.返回 2.退出 \n");
switch(getch())
{
case '1':menu();
break;
case '2':exit();
break;
}
}
//系统退出函数
void exit()
{
system("cls");
printf("* 欢迎您的再次使用 *\n");
printf("* 系统正在退出... *\n");
delay();
enterATM();
}
//文件读取函数
void read()
{
int i;
FILE *fp;
fp=fopen("xinxi.txt","r");
if(fp==NULL)
{
printf("打开文件失败\n");
return;
}
for(i=0;iN;i++)
{
fscanf(fp,"%d",(ATM[i].zhanghao));
fscanf(fp,"%d",(ATM[i].mima));
fscanf(fp,"%lf\n",(ATM[i].yu_e));
}
fclose(fp);
}
//文件写入函数
void write()
{
int i;
FILE *fp;
fp=fopen("xinxi.txt","w");
if(fp==NULL)
{
printf("打开文件失败\n");
return;
}
for(i=0;iN;i++)
{
fprintf(fp,"%d",ATM[i].zhanghao);
fprintf(fp,"%d",ATM[i].mima);
fprintf(fp,"%lf\n",ATM[i].yu_e);
}
fclose(fp);
}
//主操作界面函数
void menu( )
{
system("cls");
printf("********************************\n");
printf("* 请选择一下业务 *\n");
printf("* 1.修改密码 *\n");
printf("* 2.余额查询 *\n");
printf("* 3.取款 *\n");
printf("* 4.存款 *\n");
printf("* 5.退出 *\n");
printf("********************************\n");
switch(getch())
{
case '1': miMa();
break;
case '2': Quary();
break;
case '3': Debit();
break;
case '4': Credit();
break;
case '5': exit();
break;
default:
{
printf("\a非法操作\n");
menu();
};
}
}
//主函数
void main()
{
enterATM();
}
函数COUNT在计数时,将把数字、空值、逻辑值、日期或以文字代表的数计算进去;但是错误值或其他无法转化成数字的文字则被忽略。
如果参数是一个数组或引用,那么只统计数组或引用中的数字;数组中或引用的空单元格、逻辑值、文字或错误值都将忽略。如果要统计逻辑值、文字或错误值,请使用函数COUNTA。
示例
如果A1为1,A5为3,A7为2,其他均为空,则:
COUNT(A1:A7)等于3
COUNT(A4:A7)等于2
COUNT(A1:A7,2)等于4
特殊例子
COUNT(A1:A7,,TRUE,FALSE)等于6
原因:TRUE和FALSE计算机会转换为1与0所以也是数字。注意两个逗号间的空白,也默认为数字。
注意:distinct命令不能与count(*)一起使用,只能用于count(column_name).
扩展资料:
代码:
#includelt;stdio.hgt;
int main()
{
int i;
printf("输入整数:");
scanf("%d",i);
printf("%d",i);
int count=0;
while(i!=0){
count+=i1;
igt;gt;=1;
}
printf("的二进制表示中1的位数共有%d:\n",count);
return 0;
}
参考资料:
百度百科——Count(一种电脑计算机内部的数学函数的名字)
#includestdio.h
int main(){
int n,i,shul[100];
double dj[100],sum=0;
printf("输入书数\n");
scanf("%d",n);
for(i=0;in;i++){
printf("输入单价\n");
scanf("%lf",dj+i);
printf("输入数量\n");
scanf("%d",shul+i);
sum+=dj[i]*shul[i];}
for(i=0;in;i++)
printf("单价 %.3lf 数量 %d\n",dj[i],shul[i]);
printf("总价 %.3lf\n",sum);
return 0;}
#include#include#includeintmain(){charuser[4];charwaterNum[4];charelecNum[4];charinlinebuf[32];charoutlinebuf[32];charpbuf[256];FILE*fp1;FILE*fp2;intWaterNum=0;intElecNum=0;intlength=0;intm=0;intn=0;intweishuflag=0;intflagnum=0;inti=0;intj=0;floatwaterPrice=0.0;floatelecPrice=0.0;if((fp1=fopen("./input.dat","r"))==NULL){printf("openinputdataerror!\n");return-1;}if((fp2=fopen("./change.dat","w"))==NULL){printf("openinputdataerror!\n");return-1;}fseek(fp1,0,SEEK_END);length=ftell(fp1);fseek(fp1,0,SEEK_SET);memset(pbuf,0,sizeof(pbuf));printf("theinputdatalength==%d\n",length);fread(pbuf,length,1,fp1);fseek(fp2,0,SEEK_SET);sprintf(outlinebuf,"住户\t\t水费\t\t电费\n");fputs(outlinebuf,fp2);while(length--){if(pbuf[m]!='\n'){inlinebuf[n]=pbuf[m];n++;}else{j=0;inlinebuf[n++]='\t';//为处理每一行的最后一个数据(即用电量),需加入一个tab或空格键inlinebuf[n]='\0';//一行数据结束while(inlinebuf[j]!='\0'){switch(flagnum){case0://用户if(inlinebuf[j]!=''inlinebuf[j]!='\t'){user[i]=inlinebuf[j];i++;}else{user[i]='\0';flagnum++;//表示之前获取的是住户,下两个数据分别获取用水量与用电量i=0;}break;case1://用水量if(inlinebuf[j]!=''inlinebuf[j]!='\t'){waterNum[i]=inlinebuf[j];i++;}else{waterNum[i]='\0';weishuflag=i;//表示当前数据的位数,住户、用水量、用电量均限制为三位数以内flagnum++;//表示下个数据获取的是用电量if(weishuflag==1){WaterNum=waterNum[0]-48;}elseif(weishuflag==2){WaterNum=(waterNum[0]-48)*10+(waterNum[1]-48);}else{WaterNum=(waterNum[0]-48)*100+(waterNum[1]-48)*10+(waterNum[2]-48);}i=0;weishuflag=0;}break;case2://用电量if(inlinebuf[j]!=''inlinebuf[j]!='\t'){elecNum[i]=inlinebuf[j];i++;}else{elecNum[i]='\0';weishuflag=i;//表示当前数据的位数,住户、用水量、用电量均限制为三位数以内flagnum=0;//表示一行三个数据获取完毕if(weishuflag==1){ElecNum=elecNum[0]-48;}elseif(weishuflag==2){ElecNum=(elecNum[0]-48)*10+(elecNum[1]-48);}else{ElecNum=(elecNum[0]-48)*100+(elecNum[1]-48)*10+(elecNum[2]-48);}i=0;weishuflag=0;}break;default:break;}j++;}waterPrice=(float)WaterNum*1.5;elecPrice=(float)ElecNum*0.5;printf("Theuser==%s,waterNum==%d,elecNum==%d\n",user,WaterNum,ElecNum);//打印用户,用水量,用电量printf("Theuser==%s,waterPrice==%.1f,elecPrice==%.1f\n\n",user,waterPrice,elecPrice);//打印用户,水费,电费sprintf(outlinebuf,"%3s\t\t%4.1f\t\t%4.1f\n",user,waterPrice,elecPrice);fputs(outlinebuf,fp2);//写入每一行数据(数据格式为住户+水费+电费)memset(outlinebuf,0,sizeof(outlinebuf));memset(inlinebuf,0,sizeof(inlinebuf));n=0;//一行数据处理结束,开始新的一行}m++;}fclose(fp1);fclose(fp2);return0;}input.dat(每一行数据分别为住户用水量用电量,以空格或tab键隔开,且每行数据必须以回车结尾)101515020149030141204013785014606016105charge.dat(输出文件格式如下)住户水费电费1017.575.02016.045.03016.060.04014.539.05016.030.06019.052.5