语言课程设计班级财务管理_第1页
语言课程设计班级财务管理_第2页
语言课程设计班级财务管理_第3页
语言课程设计班级财务管理_第4页
语言课程设计班级财务管理_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言课程设计论文学生姓名: 金灿 学生学号: 1310321109 所在班级: 软件一班 任课教师: 熊英 班级财务管理系统【设计目的】设计一个班级财务管理系统,该程序具有以下功能:(1)用户登录:输入用户名和密码,并判断是管理员还是普通成员,管理员和普通成员具有不同的功能选择界面。(2)录入信息:各项财务信息(包括用途、收入、支出、收入(或支出)时间、总计、使用人等。)。(3)修改班级成员信息。(4)删除班级成员信息。(5)查询班级财务状况。(6)统计班级财务情况:班级每月共收入、支出各多少,整个学期共收入、支出多少。(7)分类统计:根据用途对支出进行统计排序输出【设计思路】根据要求,班级

2、财务数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 【总体设计】班费管理系统数据输入数据修改删除数据添加查找浏览图1 系统功能模块图 【详细设计】1. 主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】 显示一系列功能选项输入n,判断n是否是07 ?根据n的值调用各功能模块函数结束开始n 图2. 主函数流程图附录:源代码 #include<stdio.h>#include<string.h>#include<stdlib.h>#include<

3、;windows.h>typedef struct income_infoint number; double income; int month; int day; int year; char name50; struct income_info * next;IncomeLink,* Pointer1;typedef struct output_infoint number; double output; int month; int day; int year; int use; char name50; struct output_info * next;OutputLink,

4、* Pointer2;int Select(void); /收入和支出管理选择函数void Insert1(Pointer1 * Head1);void Insert2(Pointer2 * Head2);void Search1(Pointer1 Head1);void Search2(Pointer2 Head2);void Update1(Pointer1 Head1);void Update2(Pointer2 Head2);void Delete1(Pointer1 *Head1);void Delete2(Pointer2 *Head2); void Show1(Pointer1

5、Head1);void Show2(Pointer2 Head2); void Count1(Pointer1 Head1);void Count2(Pointer2 Head2);int n,k;int main() void printf_message1(); void menu(); char m7;char M7;char num15; int i,j; long sum; Pointer1 Head1=NULL; Pointer2 Head2=NULL; printf("*欢迎使用班级财务管理系统*n"); printf(" 请输入你的帐号(即你的学号

6、):"); gets(num); 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

7、(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&

8、quot;); do printf_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; ca

9、se 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

10、("错误选择!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); else printf("*n"); printf("*欢迎使用班级财务管理系统(普通用户版)*n"); printf("*nnn&qu

11、ot;); Sleep(1000); system("cls"); do menu(); scanf("%d",&j); switch(j) case 1: k=Select(); if(k=1)Insert1(&Head1);else if(k=2)Insert2(&Head2);elseprintf("错误选择!nnnn");break; case 2: k=Select(); if(k=1)Search1(Head1);elseif(k=2)Search2(Head2);elseprintf("

12、错误选择!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

13、(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 . 查询财务信

14、息 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");v

15、oid menu() printf(" *n"); printf(" *欢迎使用财务管理系统*n"); printf(" *n"); printf(" n"); printf(" 1 . 添加财务信息 n"); printf(" 2 . 查询财务信息 n"); printf(" 3 . 显示财务信息 n"); printf(" 4 . 统计财务信息 n"); printf(" 5 . 保存一个新数据库 n"); pr

16、intf(" 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(&qu

17、ot; 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_nu

18、mber); 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; else q->n

19、ext=r; r->number=in_number; printf("请输入收入金额(单位:元):"); scanf("%lf",&r->income); printf("请输入收入时间:n"); printf("年:"); scanf("%d",&r->year); printf("月:"); scanf("%d",&r->month); printf("日:"); scanf(&qu

20、ot;%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->

21、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; else q->next=r; r->number=in_number; printf(&quo

22、t;请输入支出金额(单位:元):"); scanf("%lf",&r->output); printf("请输入支出时间:n"); printf("年:"); scanf("%d",&r->year); printf("月:"); scanf("%d",&r->month); printf("日:"); scanf("%d",&r->day); printf("

23、请输入用途:"); 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(Pointer1 Head1) /查询收入 int flag=1; int numbe

24、r1; 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(&quo

25、t;姓名:%s",p->name); printf("nnnn"); getchar(); flag=0; else p=p->next; if(flag) printf("没有查到n"); printf("nnnn"); getchar();void Search2(Pointer2 Head2) /查询支出 void Search_name(Pointer2 Head2); void Search_number(Pointer2 Head2); int i; printf("请选择查询的方式:n&q

26、uot;); 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(Pointer2 Head2) /支出查询函数(姓名) int flag=1; char name50; Pointer2 p; printf("请输入查询

27、的姓名:"); 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"); else

28、 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; else p=p->next; if(flag) printf("没有查到n");void Search_number(Pointer2

29、Head2) /支出查询函数(编号) 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->y

30、ear,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("nnnn"); getchar(); flag=0; else p=p-&g

31、t;next; if(flag) printf("没有查到n");void Update1(Pointer1 Head1) /修改收入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->inco

32、me);printf("请输入新的收入时间:n"); printf("年:"); scanf("%d",&p->year); printf("月:"); scanf("%d",&p->month); printf("日:"); scanf("%d",&p->day);printf("请输入新的姓名:"); scanf("%s",p->name);flag=0;print

33、f("记录已修改n");elsep=p->next;if(flag)printf("没有找到要修改的记录!n");Sleep(300);void Update2(Pointer2 Head2) /修改支出int flag=1,b;int number;Pointer2 p;printf("请输入要修改的编号:");scanf("%d",&number);p=Head2;while(p!=NULL&&flag)if(p->number=number) printf("请输

34、入新的支出:");scanf("%d",&p->output);printf("请输入新的支出时间:n"); printf("年:"); scanf("%d",&p->year); printf("月:"); scanf("%d",&p->month); printf("日:"); scanf("%d",&p->day); printf("请选择新的用途:&qu

35、ot;); 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(&quo

36、t;没有找到要修改的记录!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;f

37、ree(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(&q

38、uot;%d",&number);p=q=*Head2;while(p!=NULL&&flag) if(p->number=number)if(p=*Head2)*Head2=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("没有找到可以删除的数据

39、!n"); void Show1(Pointer1 Head1) /显示收入 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->n

40、ext;Sleep(1000);printf("n按任意键继续!n"); getchar();void Show2(Pointer2 Head2) /显示支出 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(

41、"用途:吃喝n"); else if(p->use=2) printf("用途:娱乐n"); else if(p->use=3) printf("用途:学习n"); else printf("用途:其它n");printf("使用人姓名:%s",p->name);printf("n");p=p->next;Sleep(1000);printf("n按任意键继续!n"); getchar();void Count1(Pointer1

42、Head1) /统计收入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;brea

43、k; 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

44、; 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",

45、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&

46、quot;,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&quo

47、t;); printf("<1:上学期 2:下学期 3:退出>n"); printf("请选择(1-3):n"); scanf("%d",&b); switch(b) case 1: printf("上学期的总计为:%lfn",sum2+sum3+sum4+sum5+sum6+sum7);break; case 2: printf("上学期的总计为:%lfn",sum1+sum8+sum9+sum10+sum11+sum12);break; case 3: break; default: printf(&quo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论