身为一名寝室长,每次寝室支出收入都要自己记录支出项目然后计算支出金额,最后算一下总余额编辑QQ群公告,所以我想捡起多年未用的C语言编一个我只要输入项目及金额就能把支出公告给显示出来的软件,代码很简单,可能还有点弱智,单纯只是为了记录我的学习而已
#include<stdio.h>
#include<stdlib.h>
int main()
{
int b=1;//大循环判别
int c=0;//小循环判别
int i=0;
int e=0;
int num=0;
int yue=0,yue0=0,yue1=0,yue2=0,yue3=0,yue4=0;//总余额及余额的各个位置,有负号时yue0=45
int a[10];//支出金额
char str1[10][10];//支出项目
char str[10];
FILE*fp;
//文件打开
if((fp=fopen("D:\\CC\\string.dat","r"))==NULL)
{
printf("can't open file!\n");
exit(0);
}
fgets(str,10,fp);
//文件中的字符转整型
yue0=int(str[0]);
yue1=int(str[1]);
yue2=int(str[2]);
yue3=int(str[3]);
yue4=int(str[4]);
if(yue1==0)//输出正数部分
{
yue=(yue0-'0');
}
if(yue2==0&&yue1!=0&&(yue0-45)!=0)
{
yue=(yue0-'0')*10+(yue1-'0');
}
if(yue3==0&&yue2!=0&&yue1!=0&&(yue0-45)!=0)
{
yue=(yue0-'0')*100+(yue1-'0')*10+(yue2-'0');
}
if((yue0-45)==0&&yue1!=0&&yue2==0) //输出负数部分
{
yue=-(yue1-'0');
}
if(yue4==0&&yue3!=0&&yue2!=0&&yue1!=0&&(yue0-45)==0)
{
yue=-((yue1-'0')*100+(yue2-'0')*10+(yue3-'0'));
}
if(yue3==0&&yue2!=0&&yue1!=0&&(yue0-45)==0)
{
yue=-((yue1-'0')*10+(yue2-'0'));
}
printf(" 欢迎使用寝费管理系统 V1.1\n");
printf("注意:仅支持金额数不超过一千的寝费管理\n");
while(b==1)
{
printf("当前余额:%d\n",yue);
printf("记录收入请按1 记录支出请按2 退出系统请按3\n");
scanf("%d",&c);
if(c==1)//收入模式
{
printf("进入收入模式!\n");
printf("请输入收入金额:");
scanf("%d",&num);
yue=yue+num;
printf("当前余额:%d\n",yue);
printf("继续操作请按1,退出系统请按2\n");
scanf("%d",&b);
}
if(c==2)//支出模式
{
printf("进入支出记录模式!\n");
for(i=0;i<10;i++)
{
printf("请输入支出项目:");
scanf("%s",str1[i]);
printf("请输入支出金额:");
scanf("%d",&a[i]);
yue=yue-a[i];
printf("当前余额:%d",yue);
printf(" ---继续记录支出请输1 结束记录支出请输2\n");
scanf("%d",&b);
if(b==2)
{
printf("退出支出模式,显示支出公告!\n");
e=i;
break;
}
}
printf(" ---支出公告\n");
for(i=0;i<e+1;i++)
{
printf(" ---%s花费%d元 \n",str1[i],a[i]);
}
printf(" ---现余额:%d\n",yue);
printf("继续操作请按1 退出系统请按2\n");
scanf("%d",&b);
}
if(c==3) //退出系统
break;
}
sprintf(str,"%d",yue);//整型转字符
if((fp=fopen("D:\\CC\\string.dat","w"))==NULL)//文件关闭
{
printf("can't open file!\n");
exit(0);
}
fputs(str,fp);
fclose(fp);
printf("当前余额:%d\n",yue);
printf("谢谢使用!");
for(int j=100000;j>0;j--){;//延时关闭
for(int k=10000;k>0;k--);}
return 0;
}
嘿嘿嘿