C语言程序设计班级财务管理系统.doc_第1页
C语言程序设计班级财务管理系统.doc_第2页
C语言程序设计班级财务管理系统.doc_第3页
C语言程序设计班级财务管理系统.doc_第4页
C语言程序设计班级财务管理系统.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、#include#include#include#includetypedef 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;Output

2、Link,* 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(Poi

3、nter1 Head1);void Show2(Pointer2 Head2);void Count1(Pointer1 Head1);void Count2(Pointer2 Head2);void Save1(Pointer1 Head1);void Save2(Pointer2 Head2);Pointer1 load1();Pointer2 load2();int n,k;int main()void menu1(); void menu2();char m7;char M7;char num15; int i,j,out;long sum;Pointer1 Head1=NULL;Po

4、inter1 r1,p1;Pointer2 Head2=NULL;Pointer2 r2,p2;p1=r1=(Pointer1)malloc(sizeof(IncomeLink);p2=r2=(Pointer2)malloc(sizeof(OutputLink);FILE *fp1,*fp2;printf(请输入你的帐号(即你的学号):);gets(num);for(i=4;i10;i+)mi-4=numi;m6=0;for(i=0;inumber=in_number)printf( 已经有相同的编号:);printf(n按任意键继续!n);getchar();return;elseq=p;p

5、=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

6、);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(

7、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:

8、 吃喝 (eat)n2: 娱乐 (amusement)n3: 学习 (studying)n4:其它 (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 number1;Pointer1 p;printf( 请输入查询的编号:);scanf(%d,&number1);p=Head1;while(p!=NULL&flag)if(p-number=number1)pri

9、ntf( 收入金额 :%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(Pointer2 Head2)/查询支出void Search_name(Pointer2 Head2);void Search_number(Poin

10、ter2 Head2);int i;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(Pointer2 Head2)/ 支出查询函数(姓名)int flag=1;char name50;Pointer2 p;printf( 请输入查询的姓名:);scanf(%s,name);p=Head2

11、;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按任意键

12、继续!n);getchar();flag=0;else p=p-next;if(flag)printf( 没有查到 n);void Search_number(Pointer2 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, 日 :%

13、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(Pointer1 Head1)/修改收入int flag=1;int number;Pointer

14、1 p;printf( 请输入要修改的编号:);scanf(%d,&number);p=Head1;while(p!=NULL&flag)if(p-number=number)printf( 请输入新的收入:);scanf(%lf,&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);e

15、lsep=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( 请输入新的支出:);scanf(%lf,&p-output);printf( 请输入新的支出时间:n);printf( 年 :);scanf(%d,&p-year);prin

16、tf( 月 :);scanf(%d,&p-month);printf( 日 :);scanf(%d,&p-day);printf( 请选择新的用途:);printf(1: 吃喝 (eat)n2:娱乐 (amusement)n3: 学习 (studing)n4:其它 (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);

17、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);elseq-next=p-next;free(p);flag=0;printf( 记录已删除 !);printf(n按任意键继续!n);getchar();elseq=p;p=p-next;if(flag)prin

18、tf( 没有找到可以删除的数据);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记录已

19、删除,按任意键继续!n);getchar();elseq=p;p=p-next;if(flag)printf( 没有找到可以删除的数据!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-next;Sleep(100

20、0);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( 用途 :吃喝 n);else if(p-use=2)printf( 用途 :娱乐 n);else if(p-use=3)printf( 用途 :学习

21、n);elseprintf( 用途 :其它 n);printf( 使用人姓名 :%s,p-name);printf(n);p=p-next;Sleep(1000);printf(n按任意键继续!n);getchar();void Count1(Pointer1 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=sum

22、10=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;br

23、eak;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);brea

24、k;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( 该月份总计为:%l

25、fn,sum10);break;case 11:printf( 该月份总计为:%lfn,sum11);break;case 12:printf( 该月份总计为:%lfn,sum12);break;default:printf( 错误选择 !n);break;printf( 请输入您要统计的学期:n);printf(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,s

26、um1+sum8+sum9+sum10+sum11+sum12);break;case 3: break;default: printf( 错误选择 !n);break;void Count2(Pointer2 Head2)/ 统计支出void Counter_use(Pointer2 Head2);void Counter_time(Pointer2 Head2);int i;printf( 请选择统计的方式:n);printf(1. 按用途2.按时间scanf(%d,&i);n);case 1:Counter_use(Head2);break;case 2:Counter_time(Hea

27、d2);break;default:printf( 错误选择 !n);break;Sleep(1000);printf(n 按任意键继续!n);getchar();void Counter_use(Pointer2 Head2)/按用途统计支出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=su

28、m3+p-output;elsesum4=sum4+p-output;p=p-next;printf( 请选择您要统计的用途printf(n);printf( 请选择scanf(%d,&b);switch(b)case 1: printf(case 2: printf(case 3: printf(case 4: printf(default: printf(1-4):n);在该用途上的支出为在该用途上的支出为在该用途上的支出为在该用途上的支出为错误选择 !n);break;:%lfn,sum1);break;:%lfn,sum2);break;:%lfn,sum3);break;:%lfn,

29、sum4);break;void Counter_time(Pointer2 Head2)int j;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-o

温馨提示

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

评论

0/150

提交评论