C语言程序设计班级财务管理系统.docx
《C语言程序设计班级财务管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计班级财务管理系统.docx(34页珍藏版)》请在冰豆网上搜索。
C语言程序设计班级财务管理系统
#include
#include
#include
#include
typedefstructincome_info
{intnumber;
doubleincome;
intmonth;
intday;
intyear;
charname[50];
structincome_info*next;
}IncomeLink,*Pointer1;
typedefstructoutput_info
{intnumber;
doubleoutput;
intmonth;
intday;
intyear;
intuse;
charname[50];
structoutput_info*next;
}OutputLink,*Pointer2;
intSelect(void);//收入和支出管理选择函数
voidInsert1(Pointer1*Head1);
voidInsert2(Pointer2*Head2);
voidSearch1(Pointer1Head1);
voidSearch2(Pointer2Head2);
voidUpdate1(Pointer1Head1);
voidUpdate2(Pointer2Head2);
voidDelete1(Pointer1*Head1);
voidDelete2(Pointer2*Head2);
voidShow1(Pointer1Head1);
voidShow2(Pointer2Head2);
voidCount1(Pointer1Head1);
voidCount2(Pointer2Head2);
voidSave1(Pointer1Head1);
voidSave2(Pointer2Head2);
Pointer1load1();
Pointer2load2();
intn,k;
intmain()
{voidmenu1();
voidmenu2();
charm[7];charM[7];charnum[15];
inti,j,out;
longsum;
Pointer1Head1=NULL;Pointer1r1,p1;
Pointer2Head2=NULL;Pointer2r2,p2;FILE*fp1,*fp2;
p1=r1=(Pointer1)malloc(sizeof(IncomeLink));
p2=r2=(Pointer2)malloc(sizeof(OutputLink));
printf("请输入你的帐号(即你的学号):
");
gets(num);
for(i=4;i<10;i++)
m[i-4]=num[i];
m[6]='\0';
for(i=0;i<10;i++)
num[i]=num[i]-48;
sum=num[0]*1000000000+num[1]*100000000+num[2]*10000000+num[4]*100000+num[5]*10000+num[6]*1000+num[7]*100+num[8]*10+num[9];
if(sum>=1210315101&&sum<=1210315133)
{
printf("请输入密码(密码为学号的后六位}:
");
gets(M);
if(strcmp(m,M)==0)
{printf("登陆成功!
!
\n");
fp1=fopen("C:
\\income_info.din","ab+");
fp2=fopen("C:
\\output_info.din","ab+");
Sleep(1000);
if(sum==1210315116||sum==1210315122||sum==1210315119||sum==1210315132)
{printf("★**************************************************************************★\n");
printf("★*********************欢迎使用班级财务管理系统(管理员版)*******************★\n");
printf("★**************************************************************************★\n\n\n");
Sleep(1000);
system("cls");
do
{
menu1();
scanf("%d",&j);
switch(j)
{
case1:
k=Select();
if(k==1)
Insert1(&Head1);
else
if(k==2)
Insert2(&Head2);
else
printf("错误选择!
\n\n\n\n");
break;
case2:
k=Select();
if(k==1)
Search1(Head1);
else
if(k==2)
Search2(Head2);
else
printf("错误选择!
\n\n\n\n");
break;
case3:
k=Select();
if(k==1)
Update1(Head1);
else
if(k==2)
Update2(Head2);
else
printf("错误选择!
\n\n\n\n");
break;
case4:
k=Select();
if(k==1)
Delete1(&Head1);
else
if(k==2)
Delete2(&Head2);
else
printf("错误选择!
\n\n\n\n");
break;
case5:
k=Select();
if(k==1)
Show1(Head1);
else
if(k==2)
Show2(Head2);
else
printf("错误选择!
\n\n\n\n");
break;
case6:
k=Select();
if(k==1)
Count1(Head1);
else
if(k==2)
Count2(Head2);
else
printf("错误选择!
\n\n\n\n");
break;
case7:
k=Select();
if(k==1)
Save1(Head1);
else
if(k==2)
Save2(Head2);
else
printf("错误选择!
\n\n\n\n");break;
case8:
k=Select();
if(k==1)
Head1=load1();
else
if(k==2)
Head2=load2();
else
printf("错误选择!
\n\n\n\n");break;
case0:
printf("是否保存数据\n");
printf("1:
是\n2:
否\n");
printf("◆请选择(1-2):
\n");
scanf("%d",&out);
if(out==1)
{k=Select();
if(k==1)
Save1(Head1);
else
if(k==2)
Save2(Head2);
else
printf("错误选择!
\n\n\n\n");
}
else
printf("感谢您的使用\n");
break;
default:
printf("错误选择!
\n");break;
}
}
while(j!
=0);
}
else
{printf("★**************************************************************************★\n");
printf("★*********************欢迎使用班级财务管理系统(普通用户版)*****************★\n");
printf("★**************************************************************************★\n\n\n");
Sleep(1000);
system("cls");
do
{
menu2();
scanf("%d",&j);
switch(j)
{
case1:
k=Select();
if(k==1)
Insert1(&Head1);
else
if(k==2)
Insert2(&Head2);
else
printf("错误选择!
\n\n\n\n");
break;
case2:
k=Select();
if(k==1)
Search1(Head1);
else
if(k==2)
Search2(Head2);
else
printf("错误选择!
\n\n\n\n");
break;
case3:
k=Select();
if(k==1)
Show1(Head1);
else
if(k==2)
Show2(Head2);
else
printf("错误选择!
\n\n\n\n");
break;
case4:
k=Select();
if(k==1)
Count1(Head1);
else
if(k==2)
Count2(Head2);
else
printf("错误选择!
\n\n\n\n");
break;
case5:
k=Select();
if(k==1)
Save1(Head1);
else
if(k==2)
Save2(Head2);
else
printf("错误选择!
\n\n\n\n");break;
case6:
k=Select();
if(k==1)
Head1=load1();
else
if(k==2)
Head2=load2();
else
printf("错误选择!
\n\n\n\n");break;
case0:
printf("是否保存数据\n");
printf("1:
是\n2:
否\n");
printf("◆请选择(1-2):
\n");
scanf("%d",&out);
if(out==1)
{k=Select();
if(k==1)
Save1(Head1);
else
if(k==2)
Save2(Head2);
else
printf("错误选择!
\n\n\n\n");
}
else
printf("感谢您的使用\n");
break;
default:
printf("错误选择!
\n\n\n\n");break;
}
}
while(j!
=0);
}
return0;
}
elseprintf("密码错误!
请查证后再来!
!
\n");
}
elseprintf("用户名不存在!
请验证后再输!
!
\a\n");
return0;
}
voidmenu1()
{printf("★**************************************************************★\n");
printf("§*******************★欢迎使用财务管理系统★*******************§\n");
printf("§**************************************************************§\n");
printf("§§§§\n");
printf("§§☆1.添加财务信息§§\n");
printf("§§☆2.查询财务信息§§\n");
printf("§§☆3.修改财务信息§§\n");
printf("§§☆4.删除财务信息§§\n");
printf("§§☆5.显示财务信息§§\n");
printf("§§☆6.统计财务信息§§\n");
printf("§§☆7.保存数据§§\n");
printf("§§☆8.读取数据§§\n");
printf("§§☆0.退出系统§§\n");
printf("§§§§\n");
printf("★**************************************************************★\n");
printf("◆请选择(0-8):
\n");
}
voidmenu2()
{printf("★**************************************************************★\n");
printf("§*******************★欢迎使用财务管理系统★*******************§\n");
printf("§**************************************************************§\n");
printf("§§§§\n");
printf("§§☆1.添加财务信息§§\n");
printf("§§☆2.查询财务信息§§\n");
printf("§§☆3.显示财务信息§§\n");
printf("§§☆4.统计财务信息§§\n");
printf("§§☆5.保存数据§§\n");
printf("§§☆6.读取数据§§\n");
printf("§§☆0.退出系统§§\n");
printf("§§§§\n");
printf("★**************************************************************★\n");
printf("◆请选择(0-6):
\n");
}
intSelect(void)//第二次选择的函数
{intw;
printf("★**************************************************************★\n");
printf("§*******************★欢迎使用财务管理系统★*******************§\n");
printf("§**************************************************************§\n");
printf("§§§§\n");
printf("§§☆1.收入§§\n");
printf("§§☆2.支出§§\n");
printf("§§§§\n");
printf("★**************************************************************★\n");
printf("◆◆◆请选择(1-2):
\n");
scanf("%d",&w);
return(w);
}
voidInsert1(Pointer1*Head1)//添加收入
{
intin_number;
Pointer1p,q,r;
printf("请输入编号:
");
scanf("%d",&in_number);
p=q=*Head1;
while(p!
=NULL)
{if(p->number==in_number)
{printf("已经有相同的编号:
");
printf("\n按任意键继续!
\n");
getchar();
return;
}
else
{q=p;p=p->next;}
}
r=(Pointer1)malloc(sizeof(IncomeLink));
r->next=NULL;
if(r==NULL)
{
printf("分配空间失败\n");
return;
}
if(q==NULL)
*Head1=r;
else
q->next=r;
r->number=in_number;
printf("请输入收入金额(单位:
元):
");
scanf("%lf",&r->income);
printf("请输入收入时间:
\n");
printf("年:
");
scanf("%d",&r->year);
printf("月:
");
scanf("%d",&r->month);
printf("日:
");
scanf("%d",&r->day);
printf("请输入您的姓名:
");
scanf("%s",r->name);
printf("\n\n\n\n");
Sleep(300);
}
voidInsert2(Pointer2*Head2)//添加支出
{
intin_number;
Pointer2p,q,r;
printf("请输入编号:
");
scanf("%d",&in_number);
p=q=*Head2;
while(p!
=NULL)
{if(p->number==in_number)
{printf("已经有相同的编号:
");
printf("\n按任意键继续!
\n");
getchar();
return;
}
else
{q=p;p=p->next;}
}
r=(Pointer2)malloc(sizeof(IncomeLink));
r->next=NULL;
if(r==NULL)
{
printf("分配空间失败\n");
return;
}
if(q==NULL)
*Head2=r;
else
q->next=r;
r->number=in_number;
printf("请输入支出金额(单位:
元):
");
scanf("%lf",&r->output);
printf("请输入支出时间:
\n");
printf("年:
");
scanf("%d",&r->year);
printf("月:
");
scanf("%d",&r->month);
printf("日:
");
scanf("%d",&r->day);
printf("请输入用途:
");
printf("1:
吃喝(eat)\n2:
娱乐(amusement)\n3:
学习(studying)\n4:
其它(other)\n");
printf("◆请选择(1-4):
\n");
scanf("%d",&r->use);
printf("请输入使用人名称:
");
scanf("%s",r->name);
Sleep(300);
}
voidSearch1(Pointer1Head1)//查询收入
{
intflag=1;
intnumber1;
Pointer1p;
printf("请输入查询的编号:
");
scanf("%d",&number1);
p=Head1;
while(p!
=NULL&&flag)
{
if(p->number==number1)
{
printf("收入金额:
%lf元\n",p->income);
printf("收入时间:
\n");
printf("年:
%d,月:
%d,日:
%d\n",p->year,p->month,p->day);
printf("姓名:
%s",p->name);
printf("\n\n\n\n");
getchar();
flag=0;
}
elsep=p->next;
}
if(flag)
{printf("没有查到\n");
printf("\n\n\n\n");
getchar();}
}
voidSearch2(Pointer2Head2)//查询支出
{
voidSearch_name(Pointer2Head2);
voidSearch_number(Pointer2Head2);
inti;
printf("请选择查询的方式:
\n");
printf("1.姓名2.编号\n");
scanf("%d",&i);
switch(i)
{
case1:
Search_name(Head2);
break;
case2:
Search_number(Head2);
break;
}
Sleep(1000);
printf(