钱包代码
来源:互联网 发布:windows 许可证过期 编辑:程序博客网 时间:2024/06/08 07:21
可以文档读取的钱包,记录自己的消费记录
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>typedef struct date{ char date[15];//时间 unsigned int consume;//消费 char where[150];//去向} Data;typedef struct cost{ Data data; struct cost* next;//下一个结点} Cost;Cost *p1=NULL,*p2=NULL,*head=NULL;unsigned int count=0,money=0,total=0;int main(){ void add_record();//新增数据 void see_record();//查看数据 void del_record();//删除数据 void rew_record();//修改数据 void total_record();//统计数据 void output_record();//导出数据 void input_record();//导入数据 void sort_record();//整理数据 void remarks();//寄语 void chang_money(); int i; FILE *pq; char password[12]={"332428"},input[12]; pq=fopen("data.dat","rb");//判断是否早已有了数据 if(pq==NULL) pq=fopen("data.dat","wb"); fclose(pq); pq=fopen("money.dat","rb"); if(pq==NULL) pq=fopen("money.dat","wb"); pq=NULL; printf("请输入我的专属密码\n"); scanf("%s",input); while(strcmp(password,input)!=0) { printf("输入错误,再试试\n"); fflush(stdin); getchar(); system("cls"); printf("请输入我的专属密码\n"); scanf("%s",input); } system("cls"); printf("\n\t\033[32m恭喜你进入了青哥的高大上记录系统\033[32m\n"); printf("\t\033[32m _______ \033[0m\n"); printf("\t\033[32m ,--' `--._ \033[32m\n"); printf("\t\033[32m ( `-.\033[0m\n"); printf("\t\033[32m ,-' _ )\033[0m\n"); printf("\t\033[32m / `. , |\033[0m\n"); printf("\t\033[32m | -.\_(_ __ |\033[0m\n"); printf("\t\033[32m | /\) `----' ( )\033[0m\n"); printf("\t\033[32m | / _____ ___| (\033[0m\n"); printf("\t\033[32m |,-. \ <_____) (__ ; /\033[0m\n"); printf("\t\033[32m |) ) ( (o) (o| (\033[0m\n"); printf("\t\033[32m ( | | ) . | ;\033[0m\n"); printf("\t\033[32m \ \| ( __) |(\033[0m\n"); printf("\t\033[32m ) `--' _____ (__)\033[0m\n"); printf("\t\033[32m `-.| `. `---- /\033[0m\n"); printf("\t\033[32m |`-._`-. (\033[0m\n"); printf("\t\033[32m `- `--^--'\033[0m\n"); fflush(stdin); getchar(); input_record(); while(1) { system("cls"); fflush(stdin); sort_record(); printf("\033[31m SKY消费管理系统\033[0m\n"); printf("\033[32m------------------------------------------------------------\033[0m\n"); printf("\033[32m| |\033[0m\n"); printf("\033[32m| 1:新增消费记录 |\033[0m\n"); printf("\033[32m| 2:查看消费记录 |\033[0m\n"); printf("\033[32m| 3:删除已有记录 |\033[0m\n"); printf("\033[32m| 4:修改已有记录 |\033[0m\n"); printf("\033[32m| 5:统计消费总额 |\033[0m\n"); printf("\033[32m| 6:修改补给金额 |\033[0m\n"); printf("\033[32m| 7:退出----系统 |\033[0m\n"); printf("\033[32m| 共有记录%d条 |\033[0m\n",count); printf("\033[32m| 应该还剩%d元 |\033[0m\n",money-total); printf("\033[32m------------------------------------------------------------\033[0m\n"); remarks(); printf("\033[33m ╭╯☆★☆★╭╯ \033[0m\n"); printf("\033[33m ╰╮★☆★╭╯\033[0m\n"); printf("\033[33m │☆╭─╯ \033[0m\n"); printf("\033[33m ╭ ╭╯ \033[0m\n"); printf("\033[33m ╔╝★╚╗ ★☆╮載滿『幸福』的列車╭☆★ \033[0m\n"); printf("\033[33m ║★☆★║ ╔═════╗ ╔═════╗ ╔═════╗ \033[0m\n"); printf("\033[33m ║☆★☆║ ║★ ☆║ ║★ ☆║ ║★ ☆║ ║★ ☆║\033[0m\n"); printf("\033[33m ◢◎══◎╚═╝◎═◎╝═╚◎═◎╝═╚◎═◎╝═╚◎═◎╝.\033[0m\n"); scanf("%d",&i); switch(i) { case 1: add_record(); break; case 2: see_record(); break; case 3: del_record(); break; case 4: rew_record(); break; case 5: total_record(); break; case 6: chang_money(); break; case 7: output_record(); return; } }}void remarks(){ printf("\033[36m世上没有绝望的处境,只有对处境绝望的人。\033[0m\n"); printf("\033[36m别想一下造出大海,必须先由小河川开始。\033[0m\n"); printf("\033[36m即使爬到最高的山上,一次也只能脚踏实地地迈一步。\033[0m\n");}void add_record(){ system("cls"); fflush(stdin); printf("\033[31m SKY消费管理系统\033[0m\n"); printf("\033[32m------------------------------------------------------------\033[0m\n"); printf("\033[31m\"时间格式;2016-12-20\"\033[0m\n"); printf("\033[31m\"时间为0则取消添加\"\033[0m\n"); p1=(Cost*)malloc(sizeof(Cost)); printf("\033[33m消费时间:\033[0m"); scanf("%s",p1->data.date); if(strcmp("0",p1->data.date)==0) { printf("\033[31m输入无效.\033[0m\n"); printf("\033[36m大大O(∩_∩)O请按任意键返回\033[0m\n"); getchar(); getchar(); free(p1); p1=NULL; return; } printf("\033[33m消费数额:\033[0m"); scanf("%u",&p1->data.consume); printf("\033[33m消费日记:\033[0m"); scanf("%s",p1->data.where); if(count==0) { head=p1; p2=p1; p1=NULL; p2->next=NULL; } else { p2->next=p1; p2=p1; p1=NULL; p2->next=NULL; } count++; printf("\033[32m记录成功,fighting!!\033[0m\n"); printf("\033[36m大大O(∩_∩)O请按任意键返回\033[0m\n"); getchar(); getchar();}void see_record(){ system("cls"); printf("\033[31m SKY消费管理系统\033[0m\n"); printf("\033[32m--------------------------消费清单--------------------------\033[0m\n"); if(count==0) printf("\033[31m\t暂无消费记录哦!\033[0m\n"); else { p1=head; while(p1!=NULL) { printf("\033[33m日期:%-15s\n金额:%-5u \033[0m\n",p1->data.date,p1->data.consume); printf("\033[33m日记:%s\033[0m\n",p1->data.where); printf("\033[32m------------------------------------------------------------\033[0m\n"); p1=p1->next; } } p1=NULL; printf("\033[36m大大O(∩_∩)O请按任意键返回\033[0m\n"); getchar(); getchar();}void del_record(){ fflush(stdin); char dele[15]; int d,flag=0; Cost *q; system("cls"); p1=head; printf("\033[31m SKY消费管理系统\033[0m\n"); printf("\033[32m------------------------------------------------------------\033[0m\n"); if(p1==NULL) { printf("\033[31m暂时没有记录\033[0m\n"); system("cls"); return; } printf("\033[33m删除哪天的数据呢?\033[0m\n"); scanf("%s",dele); while(p1!=NULL) { if(strcmp(dele,p1->data.date)==0) { printf("\033[33m找到啦!!\033[0m\n"); printf("\033[32m------------------------------------------------------------\033[0m\n"); printf("\033[33m日期:%-15s\n金额:%-5u \033[0m\n",p1->data.date,p1->data.consume); printf("\033[33m日记:%s\033[0m\n",p1->data.where); printf("\033[32m------------------------------------------------------------\033[0m\n"); flag=1; break; } q=p1; p1=p1->next; } if(flag==1) { printf("\033[33m是否真的删除该项数据?\033[0m\n"); printf("\033[33m1:确认删除\n2:其他按键取消操作\033[0m\n"); scanf("%d",&d); if(d==1&&count>1)//不止一个结点时 { if(p1==head)//数据若是第一个数据时 { head=head->next; free(p1); p1=NULL; } else if(p1->next==NULL)//若该项为最后一项(不是第一个结点) { q->next=NULL; free(p1); p1=NULL; } else//若数据在中间 { q->next=p1->next; free(p1); p1=NULL; } count--; printf("\033[33m删除成功\033[0m\n"); } else if(d==1&&count==1)//就一个结点时 { head=NULL; free(p1); p1=NULL; count--; printf("\033[33m删除成功\033[0m\n"); } } else printf("\033[31m该日好像没有数据哦!\033[0m\n"); printf("\033[36m大大O(∩_∩)O请按任意键返回\033[0m\n"); getchar(); getchar();}void rew_record(){ fflush(stdin); char search[15]; int i,flag=0; system("cls"); printf("\033[31m SKY消费管理系统\033[0m\n"); printf("\033[32m------------------------------------------------------------\033[0m\n"); printf("\033[33m修改哪天的数据呢?\033[0m\n"); scanf("%s",search); p1=head; while(p1!=NULL) { if(strcmp(search,p1->data.date)==0) { printf("\033[33m找到啦!!\033[0m\n"); printf("\033[32m------------------------------------------------------------\033[0m\n"); printf("\033[33m日期:%-15s\n金额:%-5u \033[0m\n",p1->data.date,p1->data.consume); printf("\033[33m日记:%s\033[0m\n",p1->data.where); printf("\033[32m------------------------------------------------------------\033[0m\n"); flag=1; break; } p1=p1->next; } if(flag==1) { printf("\033[33m选择修改哪项数据\033[0m\n"); printf("\033[33m1:日期\n2:金额\n3:日记\n4:其他按键取消操作\033[0m\n"); scanf("%d",&i); if(i==1) scanf("%s",p1->data.date); else if(i==2) scanf("%u",&p1->data.consume); else if(i==3) scanf("%s",p1->data.where); else return; system("cls"); printf("\033[33m修改成功\033[0m\n"); printf("\033[32m------------------------------------------------------------\033[0m\n"); printf("\033[33m日期:%-15s\n金额:%-5u \033[0m\n",p1->data.date,p1->data.consume); printf("\033[33m日记:%s\033[0m\n",p1->data.where); printf("\033[32m------------------------------------------------------------\033[0m\n"); } else printf("\033[31m未匹配到数据\033[0m\n"); printf("\033[36m大大O(∩_∩)O请按任意键返回\033[0m\n"); getchar(); getchar();}void total_record(){ fflush(stdin); unsigned int n,total=0; char a[15],b[15]; system("cls"); printf("\033[31m SKY消费管理系统\033[0m\n"); printf("\033[32m------------------------请选择统计区间----------------------\033[0m\n"); printf("\033[32m------------------------------------------------------------\033[0m\n"); printf("\033[33m1:统计全部消费金额\033[0m\n"); printf("\033[33m2:统计指定间段金额\033[0m\n"); printf("\033[33m3:退出统计\033[0m\n"); scanf("%d",&n); if(n==1) { p1=head; while(p1!=NULL) { total+=p1->data.consume; p1=p1->next; } p1=NULL; printf("\033[32m------------------------------------------------------------\033[0m\n"); printf("\033[33m总共消费%d元。\033[0m\n",total); printf("\033[32m------------------------------------------------------------\033[0m\n"); } else if(n==2) { printf("\033[33m请输入一个时间段(格式 2015-15-10)\n\033[0m"); printf("\033[33m起止时间:\033[0m"); scanf("%s",a); printf("\033[33m终止时间:\033[0m"); scanf("%s",b); p1=head; while(p1!=NULL&&strcmp(b,p1->data.date)) p1=p1->next; while(p1!=NULL&&strcmp(a,p1->data.date)) { total+=p1->data.consume; p1=p1->next; } if(p1!=NULL) total+=p1->data.consume; p1=NULL; printf("\033[32m------------------------------------------------------------\033[0m\n"); printf("\033[33m%s至%s期间共消费%d元。\033[0m\n",a,b,total); printf("\033[32m------------------------------------------------------------\033[0m\n"); } else if(n==3) return; printf("\033[36m大大O(∩_∩)O请按任意键返回\033[0m\n"); getchar(); getchar();}void sort_record(){ int i,j; Cost *ago,*p3; Data temp; p2=p1=head; count=0; total=0; while(p1!=NULL) { count++; total+=p1->data.consume; p1=p1->next; } while(count>0&&p2->next!=NULL) p2=p2->next;//让p2永远指向链表的尾端 if(count==2) { if(strcmp(head->data.date,p2->data.date)==-1) { temp=head->data; head->data=p2->data; p2->data=temp; } } else if(count>2) for(i=0,p1=head; i<count-1; i++,p1=p1->next) { ago=p1; for(j=i+1,p3=p1->next; j<count; j++,p3=p3->next) if(strcmp(ago->data.date,p3->data.date)==-1) ago=p3; if(ago!=p1) { temp=ago->data; ago->data=p1->data; p1->data=temp; } } p1=NULL;}void output_record(){ FILE *fp,*tp; fp=fopen("data.dat","wb"); tp=fopen("money.dat","wb"); fwrite(&money,sizeof(unsigned int),1,tp); if(fp==NULL) { printf("导出失败。\n"); system("cls"); return; } p1=head; while(p1!=NULL) { fwrite(&p1->data,sizeof(Data),1,fp); p1=p1->next; } fclose(fp); fclose(tp); p1=NULL;printf("\033[31m SKY消费管理系统\033[0m\n");}void input_record(){ FILE *fp,*tp; fp=fopen("data.dat","rb"); tp=fopen("money.dat","rb"); fread(&money,sizeof(unsigned int),1,tp); if(fp==NULL) { printf("没能成功导入\n"); system("cls"); return; } while(!feof(fp)) { p1=(Cost*)malloc(sizeof(Cost)); if(fread(&p1->data,sizeof(Data),1,fp)==1) { if(count==0) head=p2=p1; else { p2->next=p1; p2=p1; } p2->next=NULL; p1=NULL; count++; } else { free(p1); p1=NULL; } } fclose(fp);}void chang_money(){ fflush(stdin); int i,change; system("cls"); printf("\033[31m SKY消费管理系统\033[0m\n"); printf("\033[32m------------------------------------------------------------\033[0m\n"); printf("\033[33m1:获得了补给?\033[0m\n"); printf("\033[33m2:丢钱了?\033[0m\n"); printf("\033[33m3: 其他按键取消操作\033[0m\n"); scanf("%d",&i); switch(i) { case 1: printf("\033[33m老板得了多少钱?\033[0m\n"); scanf("%d",&change); money+=change; break; case 2: printf("\033[33m......掉了多少?\033[0m\n"); scanf("%d",&change); money-=change; break; default: return; } printf("\033[36m大大O(∩_∩)O请按任意键返回\033[0m\n"); getchar(); getchar();}
阅读全文
0 0
- 钱包代码
- 钱包
- 钱包
- 钱包风险
- 莱特币钱包
- 秒钱包
- Android 高逼格纯代码实现类似微信钱包带分割线的GridView
- 忘戴钱包
- 捡钱包了
- “电子钱包”正在发育
- 钱包丢了
- 谷歌钱包
- 关闭kde电子钱包
- 钱包丢了
- pts钱包不同步问题
- 【比特币】脑钱包
- 支付宝钱包界面
- 模仿百度钱包
- iOS开发错误及解决方法
- iOS架构模式MVC、MVP、MVVM(内附demo)
- linux学习笔记总结(链接)
- js基础
- Python标准库
- 钱包代码
- js旋转木马特效
- 最近实现的一个分离文章内容功能,挺有意思,分享一下
- 转帖matlab_1_图像处理imfinfo_imshow_funtion
- ArrayList
- The Hendrie Sequence UVA
- CityMaker平台下用C#实现不同场景切换的实现方法
- spring boot的发布方式
- (二)springboot整合thymeleaf模板