C语言课程设计-班级财务管理

上传人:B**** 文档编号:40829728 上传时间:2021-11-17 格式:DOC 页数:22 大小:315.50KB
返回 下载 相关 举报
C语言课程设计-班级财务管理_第1页
第1页 / 共22页
C语言课程设计-班级财务管理_第2页
第2页 / 共22页
C语言课程设计-班级财务管理_第3页
第3页 / 共22页
点击查看更多>>
资源描述
C语言课程设计论文学生姓名:金灿学生学号:1310321109所在班级:软件一班任课教师:熊英班级财务管理系统【设计目 的】设计一个班级财务管理系统,该程序具有以下功能:(1)用户登录:输入用户名和密码,并判断是管理员还是普通成员,管理员和普通成员具有不同的功能选择界面。(2)录入信息:各项财务信息(包括用途、收入、支出、收入(或支出)时间、总计、使用人等。)。(3)修改班级成员信息。(4)删除班级成员信息。(5)查询班级财务状况。(6)统计班级财务情况:班级每月共收入、支出各多少,整个学期共收入、支出多少。(7)分类统计:根据用途对支出进行统计排序输出【设计思 路】根据要求,班级财务数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。【总体设计】班费管理系统数据输入数据添加数据修改查找删除浏览图 1 系统功能模块图【详细设 计】1. 主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】开始显示一系列功能选项n输入 n,判断 n 是否是 07?根据 n 的值调用各功能模块函数结束图 2.主函数流程图附录:源代码#include<stdio.h>#include<string.h>#include<stdlib.h>#include<windows.h>typedef structincome_infoint number;double income;int month;int day;int year;char name50;struct income_info* next;IncomeLink,*Pointer1;typedef structoutput_infoint number;double output;int month;int day;int year;int use;char name50;struct output_info* next;OutputLink,*Pointer2;int Select(void);/ 收入和支出管理选择函数void Insert1(Pointer1* Head1);void Insert2(Pointer2* Head2);void Search1(Pointer1Head1);void Search2(Pointer2Head2);void Update1(Pointer1Head1);void Update2(Pointer2Head2);void Delete1(Pointer1*Head1);void Delete2(Pointer2*Head2);void Show1(Pointer1Head1);void Show2(Pointer2Head2);void Count1(Pointer1Head1);void Count2(Pointer2Head2);int n,k;int main()void printf_message1();void menu();char m7;charM7;char num15;int i,j;long sum;Pointer1 Head1=NULL;Pointer2 Head2=NULL;printf("*欢迎使用班级财务管理系统*printf("请输入你的帐号( 即你的学号 ):");gets(num);n");for(i=4;i<10;i+)mi-4=numi;m6='0'for(i=0;i<10;i+)numi=numi-48;sum=num0*1000000000+num1*100000000+num2*10000000+num4*100000+num5*10000+num6*1000+num7*100+num8*10+num9;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("*nnn");Sleep(1000);system("cls");doprintf_message1();scanf("%d",&j);switch(j)case 1: k=Select();if(k=1)Insert1(&Head1);elseif(k=2)Insert2(&Head2);elseprintf("错误选择 !nnnn");break;case 2: k=Select();if(k=1)Search1(Head1);elseif(k=2)Search2(Head2);elseprintf("错误选择 !nnnn");break;case 3: k=Select();if(k=1)Update1(Head1);elseif(k=2)Update2(Head2);elseprintf("错误选择 !nnnn");break;case 4: k=Select();if(k=1)Delete1(&Head1);elseif(k=2)Delete2(&Head2);elseprintf("错误选择 !nnnn");break;case 5: k=Select();if(k=1)Show1(Head1);elseif(k=2)Show2(Head2);elseprintf("错误选择 !nnnn");break;case 6: k=Select();if(k=1)Count1(Head1);elseif(k=2)Count2(Head2);elseprintf("错误选择 !nnnn");break;case 0: break;default:printf("错误选择 !n");break;while(j!=0);elseprintf("*n");printf("*欢迎使用班级财务管理系统( 普通用户版)*n");printf("*nnn");Sleep(1000);system("cls");domenu();scanf("%d",&j);switch(j)case 1: k=Select();if(k=1)Insert1(&Head1);elseif(k=2)Insert2(&Head2);elseprintf("错误选择 !nnnn");break;case 2: k=Select();if(k=1)Search1(Head1);elseif(k=2)Search2(Head2);elseprintf("错误选择 !nnnn");break;case 3: k=Select();if(k=1)Show1(Head1);elseif(k=2)Show2(Head2);elseprintf("错误选择 !nnnn");break;case 4: k=Select();if(k=1)Count1(Head1);elseif(k=2)Count2(Head2);elseprintf("错误选择 !nnnn");break;case 0: break;default:printf("错误选择 !nnnn");break;while(j!=0);return 0;else printf("密码错误!请查证后再来!n");else printf("用户名不存在 ! 请验证后再输 !an");return 0;void printf_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 .读取数据库n");printf("0 .退出系统n");printf("n");printf("*n");printf("请选择 (0-7):n");void menu()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");int Select(void)/ 第二次选择的函数int w;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);void Insert1(Pointer1*Head1)/ 添加收入int in_number;Pointer1 p,q,r;printf("请输入编号 :");scanf("%d",&in_number);p=q=*Head1;while(p!=NULL)if(p->number=in_number)printf("已经有相同的编号:");printf("n按任意键继续 !n");getchar();return;elseq=p;p=p->next;r=(Pointer1)malloc(sizeof(IncomeLink);r->next=NULL;if(r=NULL)printf("分配空间失败 n");return;if(q=NULL)*Head1=r;elseq->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("nnnn");Sleep(300);void Insert2(Pointer2*Head2)/ 添加支出int in_number;Pointer2 p,q,r;printf("请输入编号 :");scanf("%d",&in_number);p=q=*Head2;while(p!=NULL)if(p->number=in_number)printf("已经有相同的编号:");printf("n按任意键继续 !n");getchar();return;elseq=p;p=p->next;r=(Pointer2)malloc(sizeof(IncomeLink);r->next=NULL;if(r=NULL)printf("分配空间失败 n");return;if(q=NULL)*Head2=r;elseq->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);void Search1(Pointer1Head1)/ 查询收入int flag=1;int number1;Pointer1 p;printf("请输入查询的编号:");scanf("%d",&number1);p=Head1;while(p!=NULL&&flag)if(p->number=number1)printf("收入金额:%lf元 n",p->income);printf("收入时间:n");printf("年 :%d, 月:%d, 日:%dn",p->year,p->month,p->day);printf("姓名 :%s",p->name);printf("nnnn");getchar();flag=0;else p=p->next;if(flag)printf("没有查到 n");printf("nnnn");getchar();void Search2(Pointer2Head2)/ 查询支出void Search_name(Pointer2 void Search_number(Pointer2 int i;Head2);Head2);printf("请选择查询的方式:n");printf("1.姓名2. 编号 n");scanf("%d",&i);switch(i)case 1:Search_name(Head2);break;case 2:Search_number(Head2);break;Sleep(1000);printf("nnnn");getchar();void Search_name(Pointer2Head2)/ 支出查询函数(姓名)int flag=1;char name50;Pointer2 p;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, 日:%dn",p->year,p->month,p->day);if(p->use=1)printf("用途 : 吃喝 n");elseif(p->use=2)printf("用途 : 娱乐 n");elseif(p->use=3)printf("用途 : 学习 n");elseprintf("用途 : 其它 n");printf("使用人姓名 :%s",p->name);printf("n按任意键继续 !n");getchar();flag=0;else p=p->next;if(flag)printf("没有查到 n");void Search_number(Pointer2Head2)/ 支出查询函数(编号)int flag=1;long number;Pointer2 p;printf("请输入查询的编号scanf("%ld",&number);p=Head2;while(p!=NULL&&flag):");if(p->number=number)printf("支出金额:%lf元 n",p->output);printf("支出时间:n");printf("年 :%d, 月:%d, 日:%dn",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");elseprintf("用途 : 其它 n");printf("使用人姓名 :%s",p->name);printf("nnnn");getchar();flag=0;else p=p->next;if(flag)printf("没有查到 n");void Update1(Pointer1Head1)/ 修改收入int flag=1;int number;Pointer1 p;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");elsep=p->next;if(flag)printf("没有找到要修改的记录!n");Sleep(300);void Update2(Pointer2Head2)/ 修改支出int flag=1,b;int number;Pointer2 p;printf("请输入要修改的编号:");scanf("%d",&number);p=Head2;while(p!=NULL&&flag)if(p->number=number)printf("请输入新的支出:");scanf("%d",&p->output);printf("请输入新的支出时间:n");printf("年:");scanf("%d",&p->year);printf("月:");scanf("%d",&p->month);printf("日:");scanf("%d",&p->day);printf("请选择新的用途:");printf("<1:吃喝 (eat)2: 娱乐 (amusement)3: 学习 (studing)4: 其它 (other)>n");printf("请选择 (1-4):n");scanf("%d",&b);p->use=b;printf("请输入新的使用人名称:");scanf("%s",p->name);flag=0;printf("记录已修改 n");elsep=p->next;if(flag)printf("没有找到要修改的记录!n");Sleep(300);void Delete1(Pointer1*Head1)/ 删除收入int flag=1;int number;Pointer1 p,q;printf("请输入要删除数据的编号scanf("%d",&number);:");p=q=*Head1;while(p!=NULL&&flag) if(p->number=number) if(p=*Head1) *Head1=p->next;free(p);else q->next=p->next;free(p);flag=0;printf("记录已删除 !");printf("n按任意键继续 !n");getchar();elseq=p;p=p->next;if(flag)printf("没有找到可以删除的数据");printf("n按任意键继续 !n");getchar();void Delete2(Pointer2*Head2)/ 删除支出int flag=1;int number;Pointer2 p,q;printf("请输入要删除数据的编号:");scanf("%d",&number);p=q=*Head2;while(p!=NULL&&flag) if(p->number=number)if(p=*Head2)*Head2=p->next;free(p);elseq->next=p->next;free(p);flag=0;printf("记录已删除 !");printf("n记录已删除,按任意键继续!n");getchar();elseq=p;p=p->next;if(flag)printf("没有找到可以删除的数据!n");void Show1(Pointer1Head1)/ 显示收入Pointer1 p;p=Head1;while(p!=NULL)printf("编号 :%dn",p->number);printf("收入金额 :%lf元n",p->income);printf(" 收入时间 : %d年%d月 %d日n",p->year,p->month,p->day); printf(" 姓名 :%s",p->name);printf("n");p=p->next;Sleep(1000);printf("n按任意键继续 !n");getchar();void Show2(Pointer2Head2)/ 显示支出Pointer2 p;p=Head2;while(p!=NULL)printf("编号 :%dn",p->number);printf("支出金额 :%lfn",p->output);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");elseprintf("用途 : 其它 n");printf("使用人姓名 :%s",p->name);printf("n");p=p->next;Sleep(1000);printf("n按任意键继续 !n");getchar();void Count1(Pointer1Head1)/ 统计收入int j;int b;double sum1;double sum2,sum3,sum4,sum5,sum6,sum7,sum8,sum9,sum10,sum11,sum12;Pointer1 p;p=Head1;sum1=sum2=sum3=sum4=sum5=sum6=sum7=sum8=sum9=sum10=sum11=sum12=0.0;while(p!=NULL)switch(p->month)case 1:sum1=sum1+p->income;break;case 2:sum2=sum2+p->income;break;case 3:sum3=sum3+p->income;break;case 4:sum4=sum4+p->income;break;case 5:sum5=sum5+p->income;break;case 6:sum6=sum6+p->income;break;case 7:sum7=sum7+p->income;break;case 8:sum8=sum8+p->income;break;case 9:sum9=sum9+p->income;break;case 10:sum10=sum10+p->income;break;case 11:sum11=sum11+p->income;break;case 12:sum12=sum12+p->income;break;default:printf("错误选择 !n");break;p=p->next;printf("请输入您要统计的月份:");scanf("%d",&j);switch(j)case 1:printf("该月份总计为 :%lfn",sum1);break;case 2:printf("该月份总计为 :%lfn",sum2);break;case 3:printf("该月份总计为 :%lfn",sum3);break;case 4:printf("该月份总计为 :%lfn",sum4);break;case 5:printf("该月份总计为 :%lfn",sum5);break;case 6:printf("该月份总计为 :%lfn",sum6);break;case 7:printf("该月份总计为:%lfn",sum7);break;case 8:printf("该月份总计为:%lfn",sum8);break;case 9:printf("该月份总计为:%lfn",sum9);break;case 10:printf("该月份总计为:%lfn",sum10);break;case 11:printf("该月份总计为:%lfn",sum11);break;case 12:printf("该月份总计为:%lfn",sum12);break;default:printf("错误选择!n");break;printf("请输入您要统计的学期:n");printf("<1:上学期2: 下学期3: 退出 >n");printf("请选择(1-3):n");scanf("%d",&b);switch(b)case 1: printf("case 2: printf("上学期的总计为上学期的总计为:%lfn",sum2+sum3+sum4+sum5+sum6+sum7);break; :%lfn",sum1+sum8+sum9+sum10+sum11+sum12);break;case 3: break;default: printf("错误选择!n");break;void Count2(Pointer2Head2)/ 统计支出void Counter_use(Pointer2 void Counter_time(Pointer2Head2);Head2);int i;printf("请选择统计的方式:n");printf("1.按用途2. 按时间 n");scanf("%d",&i);switch(i)case 1:Counter_use(Head2);break;case 2:Counter_time(Head2);break;default:printf("错误选择 !n");break;Sleep(1000);printf("n按任意键继续 !n");getchar();void Counter_use(Pointer2Head2)/ 按用途统计支出int b;Pointer2 p;double sum1,sum2,sum3,sum4;sum1=sum2=sum3=sum4=0.0;p=Head2;while(p!=NULL)if(p->use=1)sum1=sum1+p->output;else if(p->use=2)sum2=sum2+p->output;else if(p->use=3)sum3=sum3+p->output;elsesum4=sum4+p->output;p=p->next;printf("请选择您要统计的用途 :");printf("<1:吃喝2: 娱乐3: 学习4: 其它 >n");printf(" 请选择 (1-4):n");scanf("%d",&b);switch(b)case 1: printf("在该用途上的支出为 :%lfn",sum1);break;case 2: printf("在该用途上的支出为 :%lfn",sum2);break;case 3: printf("在该用途上的支出为 :%lfn",sum3);break;case 4: printf("在该用途上的支出为 :%lfn",sum4);break;default: printf("错误选择 !n");break;void Counter_time(Pointer2Head2)/ 按时间统计支出int j;int b;Pointer2 p;double sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8,sum9,sum10,sum11,sum12; sum1=sum2=sum3=sum4=sum5=sum6=sum7=sum8=sum9=sum10=sum11=sum12=0.0; p=Head2;while(p!=NULL)switch(p->month)case 1:sum1=sum1+p->output;break;case 2:sum2=sum2+p->output;break;case 3:sum3=sum3+p->output;break;case 4:sum4=sum4+p->output;break;case 5:sum5=sum5+p->output;break;case 6:sum6=sum6+p->output;break;case 7:sum7=sum7+p->output;break;case 8:sum8=sum8+p->output;break;case 9:sum9=sum9+p->output;break;case 10:sum10=sum10+p->output;break;case 11:sum11=sum11+p->output;break;case 12:sum12=sum12+p->output;break;default:printf("错误选择 !n");break;p=p->next;printf("请输入您要统计的月份:");scanf("%d",&j);switch(j)case 1:printf("该月份总计为 :%lfn",sum1);break;case 2:printf("该月份总计为 :%lfn",sum2);break;case 3:printf("该月份总计为 :%lfn",sum3);break;case 4:printf("该月份总计为 :%lfn",sum4);break;case 5:printf("该月份总计为 :%lfn",sum5);break;case 6:printf("该月份总计为 :%lfn",sum6);break;case 7:printf("该月份总计为 :%lfn",sum7);break;case 8:printf("该月份总计为 :%lfn",sum8);break;case 9:printf("该月份总计为 :%lfn",sum9);break;case 10:printf("该月份总计为 :%lfn",sum10);break;case 11:printf("该月份
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!