版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学号:课程设计题目个人账簿管理系统教学院计算机专业信息管理班级姓名指引教师年12月30日课程设计任务书~第一学期学生姓名:专业班级:10信息管理指引教师:工作部门:计算机学院一、课程设计题目:个人账簿管理系统二、课程设计内容个人帐簿管理系统记录某人每月所有收入及各项开支状况,涉及食品消费,房租,子女教诲费用,水电费,医疗费,储蓄等。该系统采用了WindowsXP操作系统结合VisualC++6.0,TC2.0等软件开发,可以输入和修改某月收支状况,可以对每月开支从小到大进行排序,可以依照输入月份查询每月收支状况。三、进度安排系统设计,拟定函数功能及其实现过程;依照前面成果,编写程序清单,进行调试;通过重复编译,调试,测试,程序运营成功;撰写课程设计报告,完毕整个论文报告工作,并打印;课题答辩。四、基本规定初步完毕总体设计,搭好框架,拟定人机对话界面,拟定函数个数;完毕最低规定:建立一种文献,涉及某人5个月收支状况,能对文献中信息进行扩充(追加),修改和删除;进一步规定:完毕对每月开支排序,以及完毕系统查询功能;应提供一种界面来调用各个功能,调用界面和各个功能操作界面应尽量清晰美观。目录TOC\o"1-4"\h\u22700一概述 332161二总体方案设计 325381.整体设计思路 3130582.输入系统 3203663.排序系统 4280054.查询系统 4185935.删除系统 4110316.其她某些函数功能 512263三命令行界面代码 617108四程序调试与运营成果阐明 1729731五课程设计总结 2030561参照文献 2026580数据构造课程设计成绩评估表 21一概述该课程设计重要设计个人账簿管理系统已记录某人每月所有收入及各项开支状况,涉及食品消费,房租,子女交用费用,水电费,医疗费,储蓄等。在课程设计中,用到了C语言以及数据构造中有关知识,固然也有少数参照了其她人对某些问题解决经验。对于进入系统后可以输入和修改某月收支状况,可以对每月开支从小到大进行排序,可以依照输入月份查询每月收支状况,可以对某月开支进行删除操作。二总体方案设计1.整体设计思路系统共分五个子系统:信息输入,信息浏览及排序,信息查询,信息更改,文献操作。在相应系统内可完毕相应功能。各模块相对独立,每个模块用一种大型函数来解决数据。主程序:1、信息输入2、信息浏览及排序3、信息查询4、信息更改5、文献操作0、退出管理系统2.输入系统功能:输入数据,然后将数据写入文献。算法:intenter(MYBILLt[])for(i=0;i<n;i++) {scanf("%s%s%s%s%s%s%s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy);f=atof(t[i].spxf)+atof(t[i].fzfy)+atof(t[i].znjy)+atof(t[i].sdfy)+atof(t[i].ylfy)+atof(t[i].cxfy);sprintf(t[i].srfy,"%.2f",f);}voidsave(MYBILLt[],intn)for(i=0;i<n;i++){fprintf(fp,"%-8s%4s%13s%8s%7s%12s%8s%12s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].srfy,t[i].cxfy);fprintf(fp,"\r\n");}3.排序系统功能:1、按月份排序2、按输入排序算法:voidmonthsort(MYBILLt[],intn)for(i=0;i<n;i++){flag=0;for(j=0;j<n-1;j++)if((strcmp(t[j].month,t[j+1].month))>0){flag=1;temp=t[j];t[j]=t[j+1];t[j+1]=temp;}if(flag==0)break;}voidsrfysort(MYBILLt[],intn)for(i=0;i<n;i++){flag=0;for(j=0;j<n-1;j++)if((strcmp(t[j].srfy,t[j+1].srfy))>0){flag=1;temp=t[j];t[j]=t[j+1];t[j+1]=temp;}if(flag==0)break;}4.查询系统功能:按月份循序查找,调用输出函数输出算法:voidmonthsearch(MYBILLt[],intn)for(i=0;i<n;++i){if(strcmp(s,t[i].month)==0){mprint(t[i]);break;}}voidmprint(MYBILLtemp)printf("%8s%6s%10s%10s%10s%10s%10s%10s\n",temp.month,temp.spxf,temp.fzfy,temp.znjy,temp.sdfy,temp.ylfy,temp.cxfy,temp.srfy);5.删除系统功能:先是查找要删除月份账单,然后对其删除,删除某月账单后,其她月份依次向前移动算法:intdelet(MYBILLt[],intn)//删除信息for(j=i+1;j<n;j++){strcpy(t[j-1].month,t[j].month);}6.其她某些函数功能voidlist(MYBILLt[],intn)//输出voidrewrite(MYBILLt[],intn)//依照查找月份,修改信息intadd(MYBILLt[],intn)//添加信息intload(MYBILLt[])//读取文献voidcopy()//另生成新文献7.程序流程图开始开始列出一种操作目录,选取要操作编号列出一种操作目录,选取要操作编号010154325432退出系统信息浏览及排序文件操作退出系统信息浏览及排序文件操作信息更改信息查询信息输入结束列出操作目录选取要操作编号结束列出操作目录选取要操作编号三命令行界面代码#include"stdio.h"#include"stdlib.h"#include<string.h>#include"conio.h"typedefstruct{charmonth[10];charspxf[5];charsdfy[5];charylfy[5];charcxfy[5];charfzfy[5];charznjy[5];charsrfy[20];}MYBILL;voidmprint(MYBILLtemp){printf("月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入\n");printf("\n");printf("%8s%6s%10s%10s%10s%10s%10s%10s\n",temp.month,temp.spxf,temp.fzfy,temp.znjy,temp.sdfy,temp.ylfy,temp.cxfy,temp.srfy);}//输入信息intenter(MYBILLt[]){inti,n;doublef;system("cls");printf("请拟定您要输入几种月账单:");scanf("%d",&n);if(n>0){printf("请输入您个人账单信息:\n");printf("\n月份食品消费房租费用子女费用水电费用医疗费用储蓄费用\n");printf("\n");for(i=0;i<n;i++){scanf("%s%s%s%s%s%s%s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy);f=atof(t[i].spxf)+atof(t[i].fzfy)+atof(t[i].znjy)+atof(t[i].sdfy)+atof(t[i].ylfy)+atof(t[i].cxfy);sprintf(t[i].srfy,"%.2f",f);printf("\n");}printf("信息录入成功!");returnn;}if(n<=0)printf("对不起,您输入月数不对的!\n");exit(0);}//输出voidlist(MYBILLt[],intn){inti;system("cls");printf("***********************************个人账簿信息*********************************\n");printf("总共有%d个月账单\n",n);printf("月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入\n");for(i=0;i<n;i++){printf("%8s%6s%10s%10s%10s%10s%10s%10s\n",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy,t[i].srfy);if((i+1)%10==0){printf("请输入任意键继续\n");getchar();}}}//依照月份查找,参数有构造体变量,长度,字符指针intmonthfind(MYBILLt[],intn,char*s){inti;for(i=0;i<n;i++){if(strcmp(s,t[i].month)==0)returni;}returni;}//依照月份查找,删除信息intdelet(MYBILLt[],intn){chars[20];intch=0;inti,j;printf("请输入您要删除账单月份:\n");scanf("%s",s);i=monthfind(t,n,s);if(i>n-1)printf("对不起,没有找到要删除月份账单!\n");else{mprint(t[i]);printf("您确认要删除该月账单么?(1.是/0.否)\n");scanf("%d",&ch);if(ch==1){for(j=i+1;j<n;j++){strcpy(t[j-1].month,t[j].month);strcpy(t[j-1].spxf,t[j].spxf);strcpy(t[j-1].fzfy,t[j].fzfy);strcpy(t[j-1].znjy,t[j].znjy);strcpy(t[j-1].sdfy,t[j].sdfy);strcpy(t[j-1].ylfy,t[j].ylfy);strcpy(t[j-1].cxfy,t[j].cxfy);strcpy(t[j-1].srfy,t[j].srfy);}n--;printf("记录删除成功!\n");}}returnn;}//依照查找月份,修改信息voidrewrite(MYBILLt[],intn){chars[20];intch=0;inti;doublef;printf("请输入您要修改账单月份:\n");scanf("%s",s);i=monthfind(t,n,s);if(i>n-1)printf("对不起,没有找到要修改记录!\n");else{mprint(t[i]);printf("您拟定要修改这条记录么?(1.是/0.否)\n");scanf("%d",&ch);if(ch==1){printf("请输入新记录\n");printf("月份食品消费房租费用子女教诲费用水电费用医疗费用储蓄费用\n");printf("\n");scanf("%s%s%s%s%s%s%s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy);f=atof(t[i].spxf)+atof(t[i].fzfy)+atof(t[i].znjy)+atof(t[i].sdfy)+atof(t[i].ylfy)+atof(t[i].cxfy);sprintf(t[i].srfy,"%.2f",f);printf("\n");printf("记录修改成功!\n");}}}//添加信息intadd(MYBILLt[],intn){MYBILLtemp;inti,j;doublef;chars[20];printf("请输入您要插入记录:\n");printf("月份食品消费房租费用子女教诲费用水电费用医疗费用储蓄费用\n");printf("\n");scanf("%s%s%s%s%s%s%s",temp.month,temp.spxf,temp.fzfy,temp.znjy,temp.sdfy,temp.ylfy,temp.cxfy);f=atof(temp.spxf)+atof(temp.fzfy)+atof(temp.znjy)+atof(temp.sdfy)+atof(temp.ylfy)+atof(temp.cxfy);sprintf(temp.srfy,"%.2f",f);printf("\n");printf("请输入您要插入位置:\n");scanf("%s",s);i=monthfind(t,n,s);//依照查找月份,找到要添加位置for(j=n-1;j>=i;j--){strcpy(t[j+1].month,t[j].month);strcpy(t[j+1].spxf,t[j].spxf);strcpy(t[j+1].fzfy,t[j].fzfy);strcpy(t[j+1].znjy,t[j].znjy);strcpy(t[j+1].sdfy,t[j].sdfy);strcpy(t[j+1].ylfy,t[j].ylfy);strcpy(t[j+1].cxfy,t[j].cxfy);strcpy(t[j+1].srfy,t[j].srfy);}strcpy(t[i].month,temp.month);//在最后添加strcpy(t[i].spxf,temp.spxf);strcpy(t[i].fzfy,temp.fzfy);strcpy(t[i].znjy,temp.znjy);strcpy(t[i].sdfy,temp.sdfy);strcpy(t[i].ylfy,temp.ylfy);strcpy(t[i].cxfy,temp.cxfy);strcpy(t[i].srfy,temp.srfy);n++;printf("记录插入成功!\n");returnn;}//写入文献voidsave(MYBILLt[],intn){inti;FILE*fp;if((fp=fopen("mybill.txt","wb"))==NULL){printf("文献不能打开!\n");exit(1);}fprintf(fp,"%d",n);fprintf(fp,"\r\n");for(i=0;i<n;i++){fprintf(fp,"%-8s%4s%13s%8s%7s%12s%12s%8s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy,t[i].srfy);fprintf(fp,"\r\n");}fclose(fp);}//读取文献intload(MYBILLt[]){inti,n;FILE*fp;if((fp=fopen("mybill.txt","rb"))==NULL)//只读取文献{printf("对不起,不能打开文献!\n");exit(1);}fscanf(fp,"%d",&n);for(i=0;i<n;i++)fscanf(fp,"%s%s%s%s%s%s%s%s",t[i].month,t[i].spxf,t[i].fzfy,t[i].znjy,t[i].sdfy,t[i].ylfy,t[i].cxfy,t[i].srfy);fclose(fp);returnn;}//按月份排序voidmonthsort(MYBILLt[],intn){inti,j,flag;MYBILLtemp;for(i=0;i<n;i++){flag=0;for(j=0;j<n-1;j++)if((strcmp(t[j].month,t[j+1].month))>0)//先后两个字符串互相比较{flag=1;temp=t[j];t[j]=t[j+1];t[j+1]=temp;}if(flag==0)break;}printf("按月份排序成功!\n");}//按收入排序voidsrfysort(MYBILLt[],intn){inti,j,flag;MYBILLtemp;for(i=0;i<n;i++){flag=0;for(j=0;j<n-1;j++)if((strcmp(t[j].srfy,t[j+1].srfy))>0){flag=1;temp=t[j];t[j]=t[j+1];t[j+1]=temp;}if(flag==0)break;}printf("按每月收入排序成功!\n");}//另生成新文献voidcopy(){charoutfile[20];inti,n;MYBILLt;FILE*sfp,*tfp;if((sfp=fopen("mybill.txt","rb"))==NULL){printf("对不起,不能打开您所需要文献!\n");exit(1);}printf("请输入目的文献名,例如:c:\\f1\\mybill.txt\n");scanf("%s",outfile);if((tfp=fopen(outfile,"wb"))==NULL){printf("对不起,不能打开您所需要文献!\n");exit(1);}fscanf(sfp,"%d",&n);//从sfp中读取文献fprintf(tfp,"%d",n);//写入tfp中fprintf(tfp,"\r\n");for(i=0;i<n;i++){fscanf(sfp,"%s%s%s%s%s%s%s%s",t.month,t.spxf,t.fzfy,t.znjy,t.sdfy,t.ylfy,t.cxfy,t.srfy);fprintf(tfp,"%-8s%4s%13s%8s%7s%12s%12s%8s",t.month,t.spxf,t.fzfy,t.znjy,t.sdfy,t.ylfy,t.cxfy,t.srfy);fprintf(tfp,"\r\n");}fclose(sfp);fclose(tfp);}//依照月份查找,参数构造体,长度voidmonthsearch(MYBILLt[],intn){chars[20];inti;printf("请输入您要查找月份:");scanf("%s",s);for(i=0;i<n;++i){if(strcmp(s,t[i].month)==0){mprint(t[i]);//输出该月信息break;}}if(i==n)printf("对不起,查找不到您所需要信息!");}voidshowpaixu(MYBILLbill[],intlength){intchoice;menu1:system("cls");printf("*************************个人账簿信息管理系统***********************\n\n");printf("1.显示所有信息\n\n");printf("2.按月份顺序排序\n\n");printf("3.按每月收入排序\n\n");printf("0.返回上一级菜单\n\n");printf("请选取(0-3)\n");scanf("%d",&choice);switch(choice){case1:length=load(bill);list(bill,length);printf("请按任意键返回...\n");getch();break;case2:length=load(bill);monthsort(bill,length);list(bill,length);save(bill,length);printf("请按任意键返回...\n");getch();break;case3:length=load(bill);srfysort(bill,length);list(bill,length);save(bill,length);printf("请按任意键返回...\n");getch();break;case0:return;}gotomenu1;}voidchazhao(MYBILLbill[],intlength){intchoice;menu2:system("cls");printf("*************************个人账簿信息管理系统*************************\n\n");printf("1.通过月份查询\n\n");printf("0.返回上一级菜单\n\n");printf("请选取(0-1):\n");scanf("%d",&choice);switch(choice){case1:length=load(bill);monthsearch(bill,length);printf("请按任意键返回...\n");getch();break;case0:return;}gotomenu2;}voidbiangeng(MYBILLbill[],intlength){intchoice;menu3:system("cls");printf("***************************个人账簿管理系统*************************\n\n");printf("1.删除记录\n\n");printf("2.修改记录\n\n");printf("3.添加记录\n\n");printf("0.返回上一级菜单\n\n");printf("请选取(0-3):\n");scanf("%d",&choice);switch(choice){case1:length=load(bill);length=delet(bill,length);save(bill,length);printf("请按任意键返回...\n");getch();break;case2:length=load(bill);rewrite(bill,length);save(bill,length);printf("请按任意键返回...\n");getch();break;case3:length=load(bill);length=add(bill,length);save(bill,length);printf("请按任意键返回...\n");getch();break;case0:return;}gotomenu3;}voidwenjian(MYBILLbill[],intlength){intchoice;menu4:system("cls");printf("*************************个人账簿管理系统*************************\n\n");printf("1.保存文献\n\n");printf("2.另存新文献\n\n");printf("0.返回上一级菜单\n\n");printf("请选取(0-2):\n");scanf("%d",&choice);switch(choice){case1:length=load(bill);printf("您已经成功将文献保存!\n");printf("请按任意键返回...\n");getch();break;case2:copy();printf("新文献生成!\n");printf("请按任意键返回...\n");getch();break;case0:return;}gotomenu4;}voidmain(){intchoice;intlength;MYBILLbill[20];menu:system("cls");printf("**************************个人账簿管理系统**************************\n\n");printf("请选取如下账簿管理功能:\n\n");printf("1.信息输入\n\n");printf("2.信息浏览及排序\n\n");printf("3.信息查询\n\n");printf("4.信息更改\n\n");printf("5.文献操作\n\n");printf("0.退出管理系统\n\n");printf("请选取(0-5):\n");scanf("%d",&choice);switch(choice){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮阴师范学院《区域分析与区域规划》2023-2024学年第一学期期末试卷
- 淮阴师范学院《秘书理论与实务》2021-2022学年第一学期期末试卷
- 淮阴师范学院《中国民族民间音乐》2022-2023学年第一学期期末试卷
- 淮阴师范学院《移动开发技术》2023-2024学年期末试卷
- 淮阴师范学院《小型乐队编配》2021-2022学年第一学期期末试卷
- 淮阴师范学院《工程电磁场》2023-2024学年期末试卷
- 淮阴工学院《食品添加剂》2022-2023学年第一学期期末试卷
- 淮阴师范学院《地理信息系统概论》2022-2023学年第一学期期末试卷
- 淮阴师范学院《JAVA+Web项目综合实训》2021-2022学年期末试卷
- DB3711-T 155-2024生态茶园土壤培肥技术规程
- 部编版七年级上册道德与法治期中模拟试卷(附答案)
- 初三化学第一单元检测质量分析
- 危重病人护理评估及安全管理
- 工业自动化的柔性制造与定制化生产
- 材料成型工艺pdf
- 小班化教学和合作学习
- 《永辉案例分享》课件
- 酒店总经理管理培训课件
- 时钟的英语表达法
- 《同学之间如何相处》课件
- 《巴洛克风格》课件
评论
0/150
提交评论