数据结构课程设计-个人帐簿管理系统.docx_第1页
数据结构课程设计-个人帐簿管理系统.docx_第2页
数据结构课程设计-个人帐簿管理系统.docx_第3页
数据结构课程设计-个人帐簿管理系统.docx_第4页
数据结构课程设计-个人帐簿管理系统.docx_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

长治学院课程设计报告课程名称:数据结构课程设计设计题目: 个人帐簿管理系统 系 别: 计算机系 专 业: 计算机科学与技术 组 别: 第22组 学生姓名: 学 号: 09407224 起止日期: 2011年 6月29日2011年7月6日 指导教师: 目录1 需求分析21.1课程设计题目21.2课程设计任务及要求21.3课程设计思想21.4软硬件运行环境及开发工具22.概要设计22.1课题设计的流程32.2主要的数据结构、所用方法及原理33.详细设计33.1计算机程序框图33.2自编的程序44调试分析及操作说明 15 4.1系统调试分析 15 4.2操作使用说明 165.课程设计总结与体会 196.致谢 197.参考文献 20 1需求分析随着社会经济的发展,大学生已经成为这个社会上一个很重要的团体,而他们的消费情况也越来越多的被更多的人关注,大学生自己也应当管理好自己的消费内容,让自己的消费更加合理化,提高自己生活的质量。在这种情况下,就需要一个软件对大学生每月的消费情况作一个较为详细的统计,该系统可以实现由计算机代替人工执行吸血复杂而且较为繁琐的操作,从而使大学生们能够更为便捷地管理自己的消费,也为其他的一些调查研究提供了方便。1.1课程设计题目个人消费管理系统1.2课程设计任务及要求个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2)完成最低要求:建立一个文件,包括某人5个月的收支情况,能对文件中的信息进行扩充(追加),修改和删除;3)进一步要求: 完成对每月的开支排序,以及完成系统查询功能。有兴趣的同学可以自己扩充系统功能。1.3课程设计思想根据课程设计任务及要求,将课程设计划分成若干部分,根据每部分的要求,分别完成要求编写程序。1.4软硬件运行环境及开发工具软件的运行环境:windowsxp。所用的开发工具是vc6+。2.概要设计2.1课题设计的流程(各功能模块)本系统主要是对大学生消费情况的管理,包括了有关数据的录入、查看、修改、查询、排序删除等功能。整个系统分为以下几个模块。(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 2typedef struct infor int month; int spxf; int fz; int znjy; int sdf; int ylf; int cx; int byzhf; 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,&item);if(item6 | item-1) printf(请重新输入要进行的操作: ); menu(); else xuanze( item); int panduan(infor *a,int mon) int item; file *fp; fp=fopen(filepath1,ab+); if(fp=null) printf(无法创建文件:%s,filepath1); exit(0); if(monmonth; 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,&mon); item=search(a,mon); 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); break; case 5: printf(请输入要查找的月份:n); scanf(%d,&mon); item=search(a,mon); if (item!=ok) printf(n没有符合条件的记录!n); else paixu(a); break; case 6: printf(请输入要查找的月份:n); scanf(%d,&mon); 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-spxf,&newi-fz,&newi-znjy,&newi-sdf,&newi-ylf,&newi-cx); 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-month,&newi-spxf,&newi-fz,&newi-znjy,&newi-sdf,&newi-ylf,&newi-cx);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) 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!#¥%&*(&¥#?我的大学生活消费管理系统!#¥%&*(&¥#!nn,fp2); 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,&mon); 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; 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;i8;i+) flag=0; for(j=0;jpxj+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;i8;i+) printf( %s,strpxi.no);printf(n- 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); 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录入界面3.查看数据界面图4 查看数据界面4.修改数据界面图5修改数据界面5查询数据界面图6查询数据界面6.排序数据界面图7排序数据界面7删除数据界面图8删除数据界面5.课程设计总结与体会本设计开发的大学生消费管理系统从最后的运行结果来看,基本上实现了消费管理系统的几大功能:录入、查看、修改、查

温馨提示

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

评论

0/150

提交评论