个人消费管理系统_课程设计1_第1页
个人消费管理系统_课程设计1_第2页
个人消费管理系统_课程设计1_第3页
个人消费管理系统_课程设计1_第4页
个人消费管理系统_课程设计1_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

长 治 学 院 课 程 设 计 报 告 课程名称:数据结构课程设计 设计题目: 个人帐簿管理系统 系 别: 计算机系 专 业: 计算机科学与技术 组 别: 第 22 组 学生姓名: 王冬冬 学 号: 09407224 起止日期: 2011 年 6 月 29 日2011 年 7 月 6 日 指导教师: 马 强 目录 1 需求分析2 1.1 课程设计题目2 1.2 课程设计任务及要求2 1.3 课程设计思想2 1.4 软硬件运行环境及开发工具2 2.概要设计2 2.1 课题设计的流程3 2.2 主要的数据结构、所用方法及原理3 3.详细设计3 3.1 计算机程序框图3 3.2 自编的程序4 4 调试分析及操作说明 15 4.1 系统调试分析 15 4.2 操作使用说明 16 5.课程设计总结与体会 19 6.致谢 19 7.参考文献 20 1 需求分析 随着社会经济的发展,大学生已经成为这个社会上一个很重要的团体,而 他们的消费情况也越来越多的被更多的人关注,大学生自己也应当管理好自己 的消费内容,让自己的消费更加合理化,提高自己生活的质量。在这种情况下, 就需要一个软件对大学生每月的消费情况作一个较为详细的统计,该系统可以 实现由计算机代替人工执行吸血复杂而且较为繁琐的操作,从而使大学生们能 够更为便捷地管理自己的消费,也为其他的一些调查研究提供了方便。 1.1 课程设计题目 个人消费管理系统 1.2 课程设计任务及要求 个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消 费,房租,子女教育费用,水电费,医疗费,储蓄等。进入系统后可以输入和 修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的 月份查询每月的收支情况。 1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2)完成最低要求: 建立一个文件,包括某人 5 个月的收支情况,能对文件中的信息进行扩充 (追加) ,修改和删除; 3)进一步要求: 完成对每月的开支排序,以及完成系统查询功能。有兴趣的同学可以自 己扩充系统功能。 1.3 课程设计思想 根据课程设计任务及要求,将课程设计划分成若干部分,根据每部分的要 求,分别完成要求编写程序。 1.4 软硬件运行环境及开发工具 软件的运行环境:windowsxp。 所用的开发工具是 VC6+。 2.概要设计 2.1 课题设计的流程(各功能模块) 3 本系统主要是对大学生消费情况的管理,包括了有关数据的录入、查看、 修改、查询、排序删除等功能。整个系统分为以下几个模块。 (1)、主界面模块 本模块提供大学生消费系统的主菜单界面,供用户选择与执行各项管理工 作。 (2)、录入模块 本模块用于录入用户的具体某一月份的各项消费记录,例如食品消费,房 租,子女教育费用,水电费,医疗费等。排除不符合的月份,如 0=month=12。并排除已存在的月份。 (3)、查看模块 本模块用于用户查看自己已经录入的各项信息,包括用户每个月份的各项 消费情况。 (4)、修改模块 本模块用于用户对自己已经录入的信息进行修改,修改具体某一月份的信 息。 (5)、查询模块 本模块用于用户查询到自己已经录入的信息中某一月份的各项记录 (6)、排序模块 本模块用于对用户已经输入的某一月份的各项记录按数值进行升序排列。 (7)、删除模块 本模块用于用户对自己已经录入的数据进行删除。 2.2 主要的数据结构、所用方法及原理。 主要的数据结构:结构体的运用以及对结构体的操作。通过对子程序的调 用。 完成课程设计的方法及原理的说明: 根据题目的要求对课程设计做了各个模块的划分,按照各模块功的不同做 不同的处理,最后通过对各个模块的调用达到完成课程设计的方法。 3.详细设计 3.1 计算机程序框图 图 1 程序模块图 3.2 自编的程序 #include #include #define FilePath1 “Myinfor.dat“ #define FilePath2 “Myinfor.txt“ #define Status int #define OK 1 #define Error 0 #define NotFound 2 typedef struct Infor int month; int spxf; int fz; int znjy; int sdf; int ylf; int cx; int byzhf; 录 入 数 据 查 看 数 据 修 改 数 据 查 询 数 据 修 改 数 据 生活消费 管理系统 5 Infor,*Infor1; typedef struct pType int no; int data; pType; void menu(void); void input1(Infor *newI,int mon); void input(Infor *newI); void writeinfor(Infor *newI); void changeFormat(void ); Status search(Infor *a,int mon); void paixu(Infor *a); void modify(Infor *a,int mon); void delRecord(int mon); void xuanze(int item); void xiugai(int m); int panduan(Infor *a,int mon); void main() while(1) menu(); void menu(void)/*菜单*/ int item; printf(“n“我的大学“生活消费管理系统nn“); printf(“tt1.录 入 数 据.n“); printf(“tt2.查 看 数 据.n“); printf(“tt3.修 改 数 据.n“); printf(“tt4.查 询 数 据.n“); printf(“tt5.排 序 数 据.n“); printf(“tt6.删 除 数 据.n“); printf(“tt0.退 出 系 统.n“); printf(“请输入要进行的操作: “ ); scanf(“%d“, if(item6 | itemmonth; if (item!=OK) printf(“n 没有符合条件的记录!n“); else printf(“n 记录月份 食品消费 房租 子女教育费用 水电费 医疗费 储蓄 本月总花费 n“); printf(“- n“); printf(“%7d %8d %8d %8d %8d %8d %8d %8dn“,a-month,a-spxf,a-fz,a- znjy,a-sdf,a-ylf,a-cx,a-byzhf); input(a); modify(a,mon); break; case 4: printf(“请输入要查找的月份:n“); scanf(“%d“, item=search(a,mon); if (item!=OK) printf(“n 没有符合条件的记录!n“); 9 else printf(“n 记录月份 食品消费 房租 子女教育费用 水电费 医疗费 储蓄 本月总花费 n“); printf(“- n“); printf(“%7d %8d %8d %8d %8d %8d %8d %8dn“,a-month,a-spxf,a-fz,a- znjy,a-sdf,a-ylf,a-cx,a-byzhf); break; case 5: printf(“请输入要查找的月份:n“); scanf(“%d“, item=search(a,mon); if (item!=OK) printf(“n 没有符合条件的记录!n“); else paixu(a); break; case 6: printf(“请输入要查找的月份:n“); scanf(“%d“, item=search(a,mon); mon=a-month; if (item!=OK) printf(“n 没有符合条件的记录!n“); else printf(“- n“); printf(“%7d %8d %8d %8d %8d %8d %8d %8dn“,a-month,a-spxf,a-fz,a- znjy,a-sdf,a-ylf,a-cx,a-byzhf); delRecord(mon); break; free(a); void input1(Infor *newI,int mon) printf(“n 请依次输入数据说明:中间以空格符隔开:n( 食品消费 房 租 子女教育费用 水电费 医疗费 储蓄 )n“); scanf(“%d%d%d%d%d%d“, newI-month=mon; newI-byzhf=newI-spxf+newI-fz+newI-znjy+newI-sdf+newI- ylf+newI-cx; fflush(stdin); void input(Infor *newI) printf(“n 请依次输入数据说明:中间以空格符隔开:n( 食品消费 房 租 子女教育费用 水电费 医疗费 储蓄 )n“); scanf(“%d%d%d%d%d%d“, newI-byzhf=newI-spxf+newI-fz+newI-znjy+newI-sdf+newI-ylf; fflush(stdin); void writeinfor(Infor *newI) FILE *fp; fp=fopen(FilePath1,“ab+“); if(fp=NULL) printf(“无法创建文件:%s“,FilePath1); exit(0); fwrite(newI,sizeof(Infor),1,fp); fclose(fp); printf(“数据录入成功!n“); void changeFormat(void) 11 FILE *fp1,*fp2; Infor *a; a=(Infor *)malloc(sizeof(Infor); fp1=fopen(FilePath1,“rb+“); if(fp1=NULL) printf(“无法找到文件:%sn“,FilePath1); return ; fp2=fopen(FilePath2,“wt+“); if(fp2=NULL) printf(“无法创建文件:%sn“,FilePath2); return ; /fputs(“ n!#¥% fputs(“记录月份 食品消费 房租 子女教育费用 水电费 医疗费 储蓄 本月总花费 n“,fp2); fputs(“- n“,fp2); printf(“n 记录月份 食品消费 房租 子女教育费用 水电费 医疗费 储蓄 本月总花费 n“); printf(“- n“); rewind(fp1); fread(a,sizeof(Infor),1,fp1); while(!feof(fp1) printf(“%7d %8d %8d %8d %8d %8d %8d %8dn“,a-month,a-spxf,a-fz,a- znjy,a-sdf,a-ylf,a-cx,a-byzhf); fprintf(fp2,“%7d %8d %8d %8d %8d %8d %8d %8dn“,a-month,a-spxf,a- fz,a-znjy,a-sdf,a-ylf,a-cx,a-byzhf); fread(a,sizeof(Infor),1,fp1); fputs(“- n“,fp2); fputs(“关闭本程序继续原程序!n“,fp2); fclose(fp1); fclose(fp2); system(FilePath2); remove(FilePath2); Status search(Infor *a,int mon) FILE *fp1; int isfound=0; /printf(“请正确输入要查询的月份:“); /scanf(“%d“, fflush(stdin); fp1=fopen(FilePath1,“rb+“); if(fp1=NULL) printf(“无法找到文件:%sn“,FilePath1); return Error; rewind(fp1); fread(a,sizeof(Infor),1,fp1); while(!feof(fp1) if(a-month=mon) isfound=1; Break; else isfound=0; fread(a,sizeof(Infor),1,fp1); fclose(fp1); if(isfound) return OK; 13 else return NotFound; void paixu(Infor *a) int i=0,j=0,flag=0,t; pType px8=0,0; char str814=“记录月份“,“食品消费“,“ 房租“, “子女教育费用“, “水电费“,“ 医疗费“,“ 储蓄“,“ 本月总花费“; for(;imonth; px1.data=a-spxf; px2.data=a-fz; px3.data=a-znjy; px4.data=a-sdf; px5.data=a-ylf; px6.data=a-cx; px7.data=a-byzhf; for(i=1;ipxj+1.data) t=pxj.data; pxj.data=pxj+1.data; pxj+1.data=t; t=pxj.no; pxj.no=pxj+1.no; pxj+1.no=t; flag=1; if(flag=0) break; printf(“n“); for(i=0;imonth=mon) fwrite(a,sizeof(Infor),1,fp2); else fwrite(b,sizeof(Infor),1,fp2); fread(b,sizeof(Infor),1,fp1); fclose(fp1); fclose(fp2); remove(FilePath1); 15 rename(“temp.dat“,FilePath1); printf(“修改数据成功!n“ ); changeFormat(); void delRecord(int mon) FILE *fp1,*fp2; Infor *b; b=(Infor *)malloc(sizeof(Infor); fp1=fopen(FilePath1,“rt“); fp2=fopen(“temp.dat“,“wt+“); rewind(fp1); fread(b,sizeof(Infor),1,fp1); while (!feof(fp1) if(b-month!=mon) fwrite(b,sizeof(Infor),1,fp2); fread(b,sizeof(Infor),1,fp1); fclose(fp1); fclose(fp2); remove(FilePath1); rename(“temp.dat“,FilePath1); printf(“删除数据成功!n“ ); changeFormat(); 4.调试分析及操作说明 4.1 系统调试分析 在完成各个模块之后,对各个模块进行检测,根据调试环境的编译器的提 示,把出现的错误改正,然后,对各个模块进行数据检测,已确保课程设 计的完成及准确。 4.2 操作使用说明 1.菜单界面 图2 菜单界面 这是个人消费管理系统的人机交互界面,通过它我们进行选择已达到我们 对数据的操作,在进入各个选择之后根据提示进行操作即可。 2.录入界面 图 3 录入界面 17 3.查看数据界面 图 4 查看数据界面 4.修改数据界面 图 5 修改数据界面 5查询数据界面 图 6 查询数据界面 6.排序数据界面 图 7 排序数据界面 19 7 删除数据界面 图 8 删除数据界面 5.课程设计总结与体会 本设计开发的大学生消费管理系统从最后的运行结果来看,基本上实现了 消费管理系统的几大功能:录入、查看、修改、查询、排序等。并达到操作过 程中的直观、方便、实用等要求。系统采用模块化程序设计的

温馨提示

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

评论

0/150

提交评论