


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学 号:课程设计课程设计任务书20112012学年题目个人账簿管理系统第一学期学生姓名:教学院计算机专业班级:10信息管理专业信息管理指导教师:班级工作部门:计算机学院姓名201412-月30日、课程设计题目:指导教师个人账簿管理系统二、课程设计内容个人帐簿管理系统记录某人每月的全部收入及各项幵支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。该系统采用了Win dowsXP操作系统结合Visual C+ 6.0,TC 2.0 等软件幵发,可以输入和修改某月的收支情况,可以对每月 的幵支从小到大进行排序,可以根据输入的月份查询每月的收支情况。三、进度安排1. 系统设计,确定函数
2、功能及其实现过程;2. 根据前面的结果,编写程序清单,进行调试;3. 经过反复的编译,调试,测试,程序运行成功;4. 撰写课程设计报告,完成整个论文报告的工作,并打印;课题答辩。四、基本要求1. 初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2. 完成最低要求:建立一个文件,包括某人5个月的收支情况,能对文件中的信息进行扩充(追加),修改和删除;3. 进一步要求:完成对每月的幵支排序,以及完成系统查询功能;4. 应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美 观。目录一概述 1二总体方案设计 11. 整体设计思路 12. 输入系统 13 .排序系统 2
3、4. 查询系统 25. 删除系统 26. 其他部分函数功能 2三命令行界面代码 3四 程序的调试与运行结果说明 13五课程设计总结 13参考文献 14数据结构课程设计成绩评定表 14一概述该课程设计主要设计个人账簿管理系统已记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女交用费用,水电费,医疗费,储蓄等。在课程设计中,用到了 C语言以及数 据结构中的相关知识,当然也有少数参考了其他人对某些问题的处理经验。对于进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况,可以对某月的开支进行删除操作。二总体方案设计1. 整体设计思路
4、系统共分五个子系统:信息输入,信息浏览及排序,信息查询,信息更改,文件操作。在相应的系统内可完成相应的功能。各模块相对独立,每个模块用一个大型的函数来处理数据。主程序:1、信息输入2、信息浏览及排序3、信息查询4 、信息更改5、文件操作0 、退出管理系统2. 输入系统功能:输入数据,然后将数据写入文件。算法:int enter(MYBILL t)for(i=0;i n ;i+)sea nf(%s%s%s%s%s%s%s,ti.mo nth,ti.spxf,ti.fzfy,ti.znjy,ti.sdfy,ti.ylfy,ti.cxfy);f=atof(ti.spxf)+atof(ti.fzfy)
5、+atof(ti.znjy)+atof(ti.sdfy)+atof(ti.ylfy)+atof(ti.cxfy);spri ntf(ti.srfy,%.2f,f);void save(MYBILL t,i nt n)for(i=0;i n ;i+)fprin tf(fp,%-8s%4s%13s%8s%7s%12s%8s%12s,ti.m on th,ti.spxf,ti.fzfy,ti.znjy, ti.sdfy,ti.ylfy,ti.srfy,ti.cxfy);fprin tf(fp,rn);3 .排序系统功能:1、按月份排序 2、按输入排序算法:void monthsort(MYBILL
6、t,int n)for(i=0;i n ;i+)flag=O; for(j=0;j0) flag=1;temp=tj;tj=tj+1; tj+1=temp;if(flag=0)break; void srfysort(MYBILL t,i nt n)for(i=0;i n ;i+) flag=0; for(j=0;j0)flag=1; temp=tj; tj=tj+1;tj+1=temp; if(flag=0)break; 4. 查询系统功能:按月份循序查找,调用输出函数输出算法:void monthsearch(MYBILL t,int n)for(i=0;i n;+i)if(strcmp(
7、s,ti.mo nth)=0)mprint(ti); break; void mprin t(MYBILL temp)prin tf(%8s%6s%10s%10s%10s%10s%10s%10sn,temp.mo nth,temp.spxf,temp.fzfy,temp.znj y,temp.sdfy,temp.ylfy,temp.cxfy,temp.srfy);5. 删除系统功能:先是查找要删除的月份账单,然后对其删除,删除某月账单后,其他的月份依次向前移 动删除信息算法:int delet(MYBILL t,int n)for(j=i+1;j #in elude conio. typede
8、f struct char monthchar spxf5char sdfy5息更息命令行界面代码操10;列出操作目录选择要操作编号结束char ylfy5;char cxfy5;char fzfy5; char zn jy5;char srfy20;MYBILL;void mprin t(MYBILL temp)prin tf( 月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收 入 n);n);prin tf(%8s%6s%10s%10s%10s%10s%10s%10sn,temp.mo nth,temp.spxf,temp.fzfy,temp.znjy, temp.sdfy,te
9、mp.ylfy,temp.cxfy,temp.srfy);/输入信息int en ter(MYBILL t)int i,n;double f;system(cls);printf(请确定您要输入几个月的账单:);sca nf(%d,&n);if(n0)printf(请输入您的个人账单信息:n);n);printf(-n);for(i=0;i n ;i+)sea nf(%s%s%s%s%s%s%s,ti.mo nth,ti.spxf,ti.fzfy,ti.znjy,ti.sdfy,ti.ylfy,ti.cxfy);f=atof(ti.spxf)+atof(ti.fzfy)+atof(ti.znj
10、y)+atof(ti.sdfy)+atof(ti.ylfy)+ato f(ti.cxfy);spri ntf(ti.srfy,%.2f,f);printf(-n);printf( 信息录入成功!);return n;if(*=0) prin tf(对不起,您输入的月数不正确!n);exit(0);/输出 void list(MYBILL t,i nt n) int i;system(cls);个人账簿信息总共有%d个月的账单printf( * *n);printf( n, n);储蓄费用本月printf(月份 食品消费 房租费用子女费用水电费用 医疗费用收入n);for(i=0;i n;i+)
11、prin tf(%8s%6s%10s%10s%10s%10s%10s%10sn,ti.mo nth,ti.spxf,ti.fzfy,ti.znjy, ti.sdfy,ti.ylfy,ti.cxfy,ti.srfy);if(i+1)%10=0)printf(请输入任意键继续.n);getchar();/根据月份查找,参数有结构体变量,长度,字符指针int monthfin d(MYBILL t,i nt n,char *s)int i;for(i=0;i n-1)printf(对不起,没有找到要删除的月份的账单!n);elsempri nt(ti);printf(您确认要删除该月的账单么?(1.
12、是/0.否)n);scan f(%d,&ch);if(ch=1)for(j=i+1;j n-1)printf(对不起,没有找到要修改的记录!n);elsempri nt(ti);printf(您确定要修改这条记录么?(1.是/0.否)n);scan f(%d,&ch);if(ch=1)printf(请输入新的记录n);printf(月份 食品消费 房租费用 子女教育费用 水电费用 医疗费用n);printf(”n);sca nf(%s%s%s%s%s%s%s,ti.mo nth,ti.spxf,ti.fzfy,ti.znjy, ti.sdfy,ti.ylfy,ti.cxfy);f=atof(t
13、i.spxf)+atof(ti.fzfy)+atof(ti.znjy)+atof(ti.sdfy)+atof(ti.ylfy)+ato f(ti.cxfy);spri ntf(ti.srfy,%.2f,f);printf(”n);printf(记录修改成功!n);/添加信息int add(MYBILL t,i nt n)MYBILL temp;int i,j;double f;char s20;printf(请输入您要插入的记录:n);prin tf(月份食品消费房租费用子女教育费用水电费用医疗费用printf(-n);sca nf(%s%s%s%s%s%s%s,temp.m on th,te
14、mp.spxf,temp.fzfy,temp.znjy, temp.sdfy,temp.ylfy,temp.cxfy);f=atof(temp.spxf)+atof(temp.fzfy)+atof(temp.z njy )+atof(temp.sdfy)+atof(temp.ylfy)+ato f(temp.cxfy);spri ntf(temp.srfy,%.2f,f);printf(-n);printf(请输入您要插入的位置:n);sca nf(%s,s);i=mo nthfi nd(t, n, s); /根据查找月份,找到要添加的位置for(j=n-1;j=i;j-)strcpy(tj+
15、1.m on th,tj.mo nth);strcpy(tj+1.spxf,tj.spxf);strcpy(tj+1.fzfy,tj.fzfy);strcpy(tj+1.znjy,tj.znjy);strcpy(tj+1.sdfy,tj.sdfy);strcpy(tj+1.ylfy,tj.ylfy);strcpy(tj+1.cxfy,tj.cxfy);strcpy(tj+1.srfy,tj.srfy);strcpy(ti.m on th,temp.mo nth);/在最后添力卩strcpy(ti.spxf,temp.spxf);strcpy(ti.fzfy,temp.fzfy);strcpy(
16、ti.znjy,temp.znjy);strcpy(ti.sdfy,temp.sdfy);strcpy(ti.ylfy,temp.ylfy);strcpy(ti.cxfy,temp.cxfy);strcpy(ti.srfy,temp.srfy);n+;prin tf(记录插入成功! n);return n;/写入文件void save(MYBILL t,i nt n)int i;FILE *fp;if(fp=fope n(mybill.txt,wb)=NULL)prin tf(文件不能打开! n);exit(1);fprin tf(fp,%d, n);fprin tf(fp,rn);for(i
17、=0;i n;i+)fprin tf(fp,%-8s%4s%13s%8s%7s%12s%12s%8s,ti.mo nth,ti.spxf,ti.fzfy,ti.znjy, ti.sdfy,ti.ylfy,ti.cxfy,ti.srfy);fprin tf(fp,rn);fclose(fp);/读取文件in t load(MYBILL t)int i,n;FILE *fp;if(fp=fope n(mybill.txt,rb)=NULL)只读取文件printf( 对不起,不能打开文件! n);exit(1);fsca nf(fp,%d,&n);for(i=0;i n;i+)fscan f(fp,
18、%s%s%s%s%s%s%s%s,ti.mo nth,ti.spxf,ti.fzfy,ti.znjy, ti.sdfy,ti.ylfy,ti.cxfy,ti.srfy);fclose(fp);return n;/按月份排序void mon thsort(MYBILL t,i nt n)int i,j,flag;MYBILL temp;for(i=0;i n;i+)flag=0;for(j=0;j0)前后两个字符串相互比较flag=1;temp=tj;tj=tj+1;tj+1=temp;if(flag=0)break;prin tf(按月份排序成功! n);/按收入排序void srfysort
19、(MYBILL t,i nt n)int i,j,flag;MYBILL temp;for(i=0;i n;i+)flag=0;for(j=0;j0)flag=1;temp=tj;tj=tj+1;tj+1=temp;if(flag=0)break;printf(按每月收入排序成功!n);/另生成新文件void copy()char outfile20;int i,n;MYBILL t;FILE *sfp,*tfp;if(sfp=fope n(mybill.txt,rb)=NULL)printf(对不起,不能打开您所需要的文件!n);exit(1);printf(请输入目标文件名,例如:c:f1
20、mybill.txtn);scan f(%s,outfile);if(tfp=fope n( outfile,wb)=NULL)printf(对不起,不能打开您所需要的文件!n);exit(1);fscanf(sfp,%d,&n);/从 sfp 中读取文件fprintf(tfp,%d,n);写入 tfp 中fprin tf(tfp,rn);for(i=0;i n;i+)fscan f(sfp,%s%s%s%s%s%s%s%s,t.mo nth,t.spxf,t.fzfy,t.znjy,t.sdfy,t.ylfy,t.cxfy,t.srfy);fprin tf(tfp,%-8s%4s%13s%8
21、s%7s%12s%12s%8s,t.mo nth,t.spxf,t.fzfy,t.znjy,t.sdfy,t.ylfy,t.cxfy,t.srfy);fprin tf(tfp,rn);fclose(sfp);fclose(tfp);/根据月份查找,参数结构体,长度void mon thsearch(MYBILL t,i nt n)char s20;int i;printf( 请输入您要查找的月份:);sca nf(%s,s);for(i=0;i n;+i)if(strcmp(s,ti.m on th)=0)mpri nt(ti); /输出该月信息break;if (i=n)printf(对不起
22、,查找不到您所需要的信息!);void showpaixu(MYBILL bill,i nt len gth)int choice;men u1:system(cls);小 “;K-kJ-f/*、nn);prin tf(1.prin tf(2.prin tf(3.prin tf(0.printf();个人账簿信息管理系统显示全部信息nn); 按月份顺序排序nn); 按每月收入排序nn); 返回上一级菜单nn);请选择(0-3)nsca nf(%d,&choice);switch(choice)case 1: len gth=load(bill);请按任意键返回.n);list(bill,le
23、ngth); printf( getch();break;case 2: len gth=load(bill); mon thsort(bill,le ngth); list(bill,le ngth);save(bill,le ngth); printf( getch();break;case 3: len gth=load(bill); srfysort(bill,le ngth);Iist(bill,le ngth);请按任意键返回.n);save(bill,le ngth);printf( getch(); break;case 0: retur n;goto men u1;void
24、chazhao(MYBILL bill,i nt len gth)int choice; menu2:system(cls);printf( * *nn);1.0.printf(printf(printf();sca nf(%d,&choice);switch(choice)case 1: len gth=load(bill); mon thsearch(bill,le ngth);printf(请按任意键返回.ngetch(); break;case 0: retur n;个人账簿信息管理系统通过月份查询nn);返回上一级菜单nn) 请选择(0-1) : n);个人账簿管理系统删除记录nn)
25、;修改记录nn);添加记录nn);返回上一级菜单nn)请选择(0-3) : ngoto menu2;void bia ngen g(MYBILL bill,i nt len gth) int choice;menu3:system(cls);printf( * *nn);prin tf(1.prin tf(2.prin tf(3.prin tf(0.printf(sca nf(%d,&choice);switch(choice)case 1: len gth=load(bill);len gth=delet(bill,le ngth); save(bill,le ngth);printf( g
26、etch();break;case 2: len gth=load(bill); rewrite(bill,le ngth); save(bill,le ngth); printf( getch();break;case 3: len gth=load(bill); len gth=add(bill,le ngth); save(bill,le ngth); printf( getch();break;case 0: retur n;goto menu3;void wenjia n(MYBILL bill,i nt len gth) int choice;menu4:请按任意键返回.n);请按
27、任意键返回.n);请按任意键返回.n);system(cls);printf( * *nn);1.2.0.个人账簿管理系统printf(printf(printf(printf();sca nf(%d,&choice);switch(choice)case 1: len gth=load(bill);prin tf(您已经成功的将文件保存!prin tf(请按任意键返回getch();break;case 2: copy();printf( printf( getch();break;case 0: retur n;goto menu4;保存文件nn); 另存新文件nn);返回上一级菜单nn)
28、; 请选择(0-2) : n新文件生成! n);请按任意键返回n);.n);void mai n()int choice; in t le ngth;MYBILL bill20;menu:system(cls);个人账簿管理系统请选择以下账簿管理功能:nn);信息输入nn);信息浏览及排序nn);信息查询nn);信息更改nn);文件操作nn); 退出管理系统nn);请选择(0-5) : n );printf( *、nn);1.2.3.4.5.0.printf(printf(printf(printf(printf(printf(printf( printf( scan f(%d,&choice); switch(choice)请按任意键返回.n);case 1: len gth=e nter(bill); save(bill,le ngth);prin tf(n getch();break;case 2: showpaixu(bill,le ngth);break; case 3: chazhao(bill,le ngth);break; case 4: bia ngen g(bill,le ngth);break; case 5: wen jia n( bill,le ngth);break; case 0: re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数控技术应用试题及答案
- 2025年北京个人房屋租赁合同范本官方版下载
- 2025官方版股权投资合同范本
- 2025年高二【数学(人教A版)】两条平行直线间的距离公式-学习任务单
- 2025抵质押物的借款合同范本
- 公园养护基本知识培训总结
- 公司职工财务知识培训课件
- 高职卫生专业招生面试题库
- 2025关于汽车租赁的合同样本
- 市场调研与创意策划的关系面试题及答案解析
- 2025年景泰蓝工艺瓶行业深度研究报告
- 呼出气一氧化氮检测流程及临床应用的专家共识(2025版)解读课件
- 场景理论的内容框架及应对策略研究
- 《血液肿瘤免疫及靶向药物治疗相关性感染预防及诊治中国专家共识(2025年版)》解读
- 标准厂房混凝土预制构件施工现场的环境保护措施
- 电缆井及过轨管施工技术交底1
- 苏豪控股集团招聘笔试题库2025
- 肿瘤标志物临床应用试题及答案
- 高校辅导员考试全面解析试题及答案
- 超星尔雅学习通《脑洞大开背后的创新思维(大连理工大学)》2025章节测试答案
- 护理服务规范与礼仪标准:护理服务规范礼仪标准及考核评分标准
评论
0/150
提交评论