C语言课程设计班级财务管理.docx
- 文档编号:13705595
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:34
- 大小:36.50KB
C语言课程设计班级财务管理.docx
《C语言课程设计班级财务管理.docx》由会员分享,可在线阅读,更多相关《C语言课程设计班级财务管理.docx(34页珍藏版)》请在冰点文库上搜索。
C语言课程设计班级财务管理
C语言课程设计论文
学生姓名:
金灿
学生学号:
1310321109
所在班级:
任课教师:
软件一班
熊英
(1)
(2)
(3)
(4)
(5)
(6)
(7)
班级财务管理系统【设计目的】
设计一个班级财务管理系统,该程序具有以下功能:
用户登录:
输入用户名和密码,并判断是管理员还是普通成员,管理员和普通成员具有不同的
功能选择界面。
录入信息:
各项财务信息(包括用途、收入、支出、收入(或支出)时间、总计、使用人等。
)。
修改班级成员信息。
删除班级成员信息。
查询班级财务状况。
统计班级财务情况:
班级每月共收入、支出各多少,整个学期共收入、支出多少。
分类统计:
根据用途对支出进行统计排序输出
【设计思路】
根据要求,班级财务数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。
【总体设计】
图1
系统功能模块图
【详细设计】
1.
主函数
主函数设计要求简洁,只提供部分提示语和函数的调用【程序】
输入n,判断n是否是0~7
?
图2.
主函数流程图
附录:
源代码
#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);
intn,k;
intmain()
{voidprintf_message1();
voidmenu();
charm[7];charM[7];charnum[15];
inti,j;
longsum;
Pointer1Head1=NULL;
Pointer2Head2=NULL;
printf("★*********************欢迎使用班级财务管理系统*******************★\n");
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>=1310321101&&sum<=1310321136)
{
printf("请输入密码(密码为学号的后六位}:
");
gets(M);
if(strcmp(m,M)==0)
{printf("登陆成功!
!
\n");
printf("正为你转接,请稍候。
。
\n");
Sleep(1000);
if(sum==1310321109||sum==1310321108||sum==1310321107||sum==1310321127||sum==1310321132)
{printf("★**************************************************************************★\n");
printf("★*********************欢迎使用班级财务管理系统(管理员版)
*******************★\n");
printf("
★**************************************************************************★\n\n\n");
Sleep(1000);
system("cls");
do
{
printf_message1();
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;
case0:
break;
default:
printf("错误选择!
\n");break;
}
}
while(j!
=0);
}
else
{printf("★**************************************************************************★\n");
printf("★*********************欢迎使用班级财务管理系统(普通用户版)
*****************★\n");
printf("★**************************************************************************★\n\n\n
");
Sleep(1000);
system("cls");
do
{
menu();
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;
case0:
break;
default:
printf("错误选择!
\n\n\n\n");break;
}
}
while(j!
=0);
}
return0;
}
elseprintf("密码错误!
请查证后再来!
!
\n");
}
elseprintf("用户名不存在!
请验证后再输!
!
\a\n");
return0;
}
voidprintf_message1()
{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.
printf("☆0.
printf("
读取数据库\n");退出系统\n");
\n");
printf("★**************************************************************★\n");printf("◆请选择(0-7):
\n");
}
voidmenu()
{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.
printf("☆0.
printf("
读取数据库\n");退出系统\n");
\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)2:
娱乐(amusement)3:
学习(studying)4:
其它(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("\n\n\n\n");
getchar();
}
voidSearch_name(Pointer2Head2)//支出查询函数(姓名){
intflag=1;
charname[50];
Pointer2p;
printf("请输入查询的姓名:
");
scanf("%s",name);
p=Head2;
while(p!
=NULL&&flag)
{
if(strcmp(p->name,name)==0)
{
printf("支出金额:
%lf元\n",p->output);
printf("支出时间:
\n");
printf("年:
%d,月:
%d,日:
%d\n",p->year,p->month,p->day);
if(p->use==1)
printf("用途:
吃喝\n");
else
if(p->use==2)
printf("用途:
娱乐\n");
else
if(p->use==3)
printf("用途:
学习\n");
else
printf("用途:
其它\n");
printf("使用人姓名:
%s",p->name);
printf("\n按任意键继续!
\n");
getchar();
flag=0;
}
elsep=p->next;
}
if(flag)
printf("没有查到\n");
}
voidSearch_number(Pointer2Head2)//支出查询函数(编号){
intflag=1;
longnumber;
Pointer2p;
printf("请输入查询的编号:
");
scanf("%ld",&number);
p=Head2;
while(p!
=NULL&&flag)
{
if(p->number==number)
{
printf("支出金额:
%lf元\n",p->output);
printf("支出时间:
\n");
printf("年:
%d,月:
%d,日:
%d\n",p->year,p->month,p->day);
if(p->use==1)
printf("用途:
吃喝\n");
elseif(p->use==2)
printf("用途:
娱乐\n");
elseif(p->use==3)
printf("用途:
学习\n");
else
printf("用途:
其它\n");
printf("使用人姓名:
%s",p->name);
printf("\n\n\n\n");
getchar();
flag=0;
}
elsep=p->next;
}
if(flag)
printf("没有查到\n");
}
voidUpdate1(Pointer1Head1)//修改收入{
intflag=1;
intnumber;
Pointer1p;
printf("请输入要修改的编号:
");scanf("%d",&number);
p=Head1;
while(p!
=NULL&&flag)
{if(p->number==number)
{
printf("请输入新的收入:
");scanf("%d",&p->income);
printf("请输入新的收入时间:
\n");
printf("年:
");
scanf("%d",&p->year);
printf("月:
");
scanf("%d",&p->month);
printf("日:
");
scanf("%d",&p->day);
printf("请输入新的姓名:
");scanf("%s",p->name);
flag=0;
printf("记录已修改\n");
}
else
p=p->next;
}
if(flag)
printf("没有找到要修改的记录!
!
\n");Sleep(300);
}
voidUpdate2(Pointer2Head2)//修改支出{
intflag=1,b;
intnumber;
Pointer
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 班级 财务管理