前言
基于c&c++课程设计-个人收支管理系统(附源码+可执行程序)
非常完整的一个项目,可以作为课程设计去学习。
本系统的完整源码在文章结尾处,大家自行获取即可。
项目简介
个人收支管理系统有13个子菜单。
- 个人信息输入
- 添加新的收支信息
- 按月份排序打印出收支清单
- 删除已有信息
- 修改已有信息
- 统计总收入
- 统计总支出
- 查询当前个人信息及余额
- 把收支信息输入到文件
- 从文件中读入收支信息
- 把个人信息输入到文件
- 从文件中读入个人信息
- 结束程序
涉及知识点
文件读写、内存管理、结构体定义、基本数据结构、高级格式化输入输出。
源码获取方法:
需要完整源码的朋友,希望你能点赞+收藏+评论,然后私信我即可~
系统登陆界面
代码如下:
void displayMenu()
{
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("+ 9.把收支信息输入到文件 +\n");
printf("+ 10.从文件中读入收支信息 +\n");
printf("+ 11.把个人信息输入到文件 +\n");
printf("+ 12.从文件中读入个人信息 +\n");
printf("+ 13.结束程序 +\n");
printf("+ +\n");
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
}
}
判断月份是否唯一
代码如下():
int unique(MI ioi[],int length,int ioimonth)
{
int flag=1,i;
for(i=0;i<length;i++)
{
if(ioi[i].month==ioimonth)
{
flag=0;
break;
}
}
return flag;
}
int inputInfo2(struct MI ioi[],int length)
{
int i=length;
int endFlag=0;
printf("是否确认结束(以0为结束):\n");
while(i<SIZE)
{
while(1)
{
int flag;
printf("月份:");
scanf("%d",&ioi[i].month);
if(ioi[i].month>12||ioi[i].month<0)
printf("月份有误,请重新输入!\n");
else if(ioi[i].month==0)
{
endFlag=1;
break;
}
if(ioi[i].month<=12&&ioi[i].month>0)
{
flag=unique(ioi,i,ioi[i].month);
if(flag) break;
printf("该月份已经存在,请重新输入!\n");
}
}
if(endFlag==1)
break;
while(1)
{
printf("收入:");
scanf("%f",&ioi[i].into);
printf("\n");
break;
}
while(1)
{
printf("支出:");
scanf("%f",&ioi[i].outto);
printf("\n");
break;
}
while(1)
{
printf("收入来源:");
scanf("%s",ioi[i].inaim);
printf("\n");
break;
}
while(1)
{
printf("支出目的:");
scanf("%s",ioi[i].outaim);
printf("\n");
break;
}
while(getchar()!='\n')
continue;
i++;
}
return i;/*新增完成后,有多少个收支信息*/
}
根据月份删除数组中收支信息
功能:根据月份删除数组中收支信息
参数:
参数1:ioi
类型:IM
说明:用来存储收支信息的数组
参数2:length
类型:int
说明:表示实际数组的长度
参数3:stuNum
类型:int
说明:表示要删除的月份
返回值:length
删除后月份的个数
int deleteInfoByNumber(MI ioi[],int length,int stuNum)
{
int i,j;
char choice;
for(i=0;i<length;i++)
{
if(stuNum==ioi[i].month)
{
printf("找到啦!它的下标是:%d\n", i);
printf("%d %f %f %s %s","月份", "收入", "支出", "收入来源", "支出目的\n");
printf("%d %5f %5f %5s %5s\n",ioi[i].month,ioi[i].into,ioi[i].outto,ioi[i].inaim,ioi[i].outaim);
break;
}
}
if(i<length)
{
printf("你确实要删除这个月的收支信息吗?(Y/N)");
getchar();
scanf("%c",&choice);
if(choice=='Y'||choice=='y')
{
for(j=i;j<length;j++)
ioi[j]=ioi[j+1];
length--;
printf("删除成功!\n");
}
}
else
printf("\n指定的月份收支信息不存在!\n");
return length;
}
结构体数组中的收支信息输出到文件
功能:结构体数组中的收支信息输出到文件
参数:
参数1:ioi[]
类型:MI
说明:用来存储从文件读到的学生信息
参数2:length
类型:int
说明:表示实际数组的长度
返回值:无
void writeToFile1(MI ioi[],int length)
{
FILE *fp=NULL;
int i=0;
fp=fopen(FILENAME,"wb");
if(fp==NULL)
{
printf("打开文件出错!\n");
exit(0);
}
for(i=0;i<length;i++)
fwrite(ioi+i,sizeof(MI),1,fp);
printf("信息已保存到文件information.txt中\n");
fclose(fp);
}
源码获取方法:
需要完整源码的朋友,希望你能点赞+收藏+评论,然后私信我即可~文章来源:https://www.toymoban.com/news/detail-484607.html
个人收支管理系统源码分享
还有自己的工作要做,所以很多粉丝的私信来不及回,见谅。如果有问题,请添加下列名片信息,有源码的。文章来源地址https://www.toymoban.com/news/detail-484607.html
到了这里,关于基于c&c++课程设计-个人收支管理系统(附源码+可执行程序)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!