C语言课设(个人帐簿管理系统)

合集下载

c语言课程设计个人财务

c语言课程设计个人财务

c语言课程设计个人财务一、教学目标本节课的教学目标是使学生掌握C语言编程的基本方法,能够运用C语言编写简单的个人财务管理系统。

具体目标如下:1.知识目标:使学生了解C语言的基本语法、数据类型、运算符、控制结构等,为编写个人财务管理系统打下基础。

2.技能目标:培养学生运用C语言进行编程的能力,使其能够独立完成个人财务管理系统的开发。

3.情感态度价值观目标:培养学生对计算机编程的兴趣,提高其主动学习和解决问题的能力,使其认识到计算机编程在实际生活中的应用价值。

二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言基本语法和数据类型:介绍C语言的基本语法规则、数据类型及其运算。

2.控制结构:讲解条件语句和循环语句的用法,为编写个人财务管理系统提供逻辑支持。

3.函数:介绍函数的定义、声明和调用,使学生能够理解模块化编程的思想。

4.个人财务管理系统的设计与实现:引导学生运用所学知识,分析并设计个人财务管理系统,最后通过编程实现。

三、教学方法为了提高教学效果,本节课将采用以下几种教学方法:1.讲授法:讲解C语言的基本语法、数据类型、运算符和控制结构等知识。

2.案例分析法:通过分析实际案例,使学生了解个人财务管理系统的设计过程,提高其编程能力。

3.实验法:安排课堂实验,让学生动手编写代码,巩固所学知识。

4.讨论法:学生进行小组讨论,培养其合作精神和解决问题的能力。

四、教学资源为了支持教学内容的传授和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,为学生提供理论知识的学习材料。

2.参考书:提供一些经典的C语言编程实例,帮助学生更好地理解编程技巧。

3.多媒体资料:制作课件、演示文稿等,以便于生动、形象地展示教学内容。

4.实验设备:提供计算机、编程环境等,让学生能够进行实际操作。

五、教学评估为了全面、客观地评估学生的学习成果,本节课将采用以下几种评估方式:1.平时表现:观察学生在课堂上的参与程度、提问回答等情况,了解其对C语言编程的掌握程度。

C语言个人账簿管理系统报告

C语言个人账簿管理系统报告

程序设计课程设计程序设计课程设计报告( 2012-- 2013年度第2学期)个人账簿管理系统的设计专业 软件工程学生姓名 班级 软件121学号指导教师 完成日期2013.7.4个人账簿管理系统目录1概述 (1)1.1课程设计目的 (1)1.2 课程设计内容 (1)2系统需求分析 (1)2.1 系统目标 (1)2.2 主体功能 (1)2.3 开发环境 DEVC++ (2)3系统概要设计 (2)3.1 系统的功能模块划分 (2)3.2 系统流程图 (2)4系统详细设计 (4)4.1 个人账簿管理系统主函数前常变量定义和函数声明 (4)4.2 个人账簿管理系统主函数 (4)4.3个人账簿管理系统注册函数、登陆函数和正常退出函数(Quit) (5)4.4 个人账簿管理系统主菜单函数和查找子菜单函数 (5)4.5 个人账簿管理系统录入收支模块 (6)4.6 个人账簿管理系统查询模块 (6)4.7 个人账簿管理系统修改数据模块 (7)4.8 个人账簿管理系统排序模块 (7)4.9 个人账簿管理系统帮助说明 (7)5测试 (7)5.1 测试方案 (7)5.2 测试结果 (7)6小结 (13)参考文献 (14)附录 (15)附录1源程序清单 (15)附录1.1个人账簿管理系统主函数前声明 (15)附录1.2个人账簿管理系统注册、登陆和退出 (16)附录1.3个人账簿管理系统菜单和子菜单函数 (19)附录1.4个人账簿管理系统收支录入和写入文件 (25)附录1.5 个人账簿管理系统查找函数 (26)附录1.6 个人账簿管理系统移除记录函数 (29)附录1.7 个人账簿管理系统排序函数 (29)附录1.8 个人账簿管理系统说明函数 (30)个人账簿管理系统的设计1 概述1.1课程设计目的1).加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开发方法和步骤;2).进一步掌握和利用C语言进行设计的能力;3).进一步理解和运用结构化程序设计的思想和方法;4).初步掌握开发一个小型实用系统的基本方法;5).学会调试一个较长程序的基本方法;6).学会利用流程图或N-S图表示算法;7).掌握书写程序设计开发文档的能力(书写课程设计报告)。

c语言课程设计账户管理系统

c语言课程设计账户管理系统

c语言课程设计账户管理系统一、教学目标本课程的教学目标是使学生掌握C语言账户管理系统的基本概念、原理和编程方法。

通过本课程的学习,学生应能理解C语言编程的基本流程,熟悉账户管理系统的功能和结构,并能运用C语言实现简单的账户管理系统。

具体来说,知识目标包括:1.掌握C语言的基本语法和数据结构。

2.理解账户管理系统的功能和结构。

3.了解C语言在账户管理系统中的应用。

技能目标包括:1.能够使用C语言编写简单的程序。

2.能够运用C语言实现账户管理系统的功能。

3.能够对编写的程序进行调试和优化。

情感态度价值观目标包括:1.培养学生对计算机科学的兴趣和热情。

2.培养学生独立思考、解决问题的能力。

3.培养学生团队合作、积极进取的精神。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、账户管理系统的功能和结构,以及C语言在账户管理系统中的应用。

具体的教学大纲如下:1.C语言的基本语法:变量、数据类型、运算符、表达式、控制结构等。

2.数据结构:数组、链表、栈、队列等。

3.账户管理系统的功能和结构:账户的创建、查询、修改、删除等。

4.C语言在账户管理系统中的应用:账户信息的数据结构设计、程序实现等。

三、教学方法为了达到本课程的教学目标,我们将采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。

1.讲授法:通过讲解C语言的基本语法、数据结构和账户管理系统的原理,使学生掌握相关知识。

2.讨论法:学生针对实际问题进行讨论,培养学生的独立思考和解决问题的能力。

3.案例分析法:分析典型的账户管理系统的案例,使学生了解C语言在实际应用中的作用。

4.实验法:让学生通过动手实践,运用C语言实现简单的账户管理系统,提高学生的编程能力。

四、教学资源为了支持本课程的教学内容和教学方法,我们将准备以下教学资源:1.教材:《C语言程序设计》等。

2.参考书:《C Primer Plus》等。

3.多媒体资料:教学PPT、视频教程等。

C课程设计个人账本

C课程设计个人账本

C 课程设计个人账本一、教学目标本课程的目标是使学生掌握个人账本的基本概念、分类和记账方法,培养学生合理管理财务的能力。

知识目标包括了解个人账本的定义、组成部分和记账原则;技能目标包括能够熟练运用记账方法记录日常收支、分类和管理账目;情感态度价值观目标包括培养学生正确的理财观念,养成良好的消费习惯。

二、教学内容教学内容主要包括个人账本的基本概念、分类和记账方法。

首先,介绍个人账本的定义和组成部分,使学生了解个人账本在财务管理中的重要性。

其次,讲解不同类型的个人账本及其适用场景,帮助学生学会合理设置账本。

接着,教授记账方法,包括流水账法和复式记账法,让学生掌握正确的记账技巧。

最后,通过实际案例分析,使学生学会运用个人账本对日常收支进行分类和管理。

三、教学方法本课程采用讲授法、讨论法和案例分析法相结合的教学方法。

首先,通过讲授法向学生传授个人账本的基本概念和记账方法;其次,通过讨论法引导学生探讨和分析实际案例,巩固所学知识;最后,运用案例分析法,让学生在实际操作中掌握个人账本的设置和运用。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。

教材和参考书用于提供理论知识,多媒体资料用于辅助教学,使抽象的概念更直观易懂。

实验设备如计算机、投影仪等用于展示案例分析和实际操作过程,让学生在实践中学会运用个人账本。

同时,鼓励学生利用网络资源,了解更多关于个人账本的知识和技巧。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。

平时表现主要评估学生在课堂上的参与程度、提问和回答问题的积极性等;作业包括课后练习和实际账本操作,评估学生对所学知识的掌握和运用能力;考试则全面考察学生对个人账本知识的掌握和运用,包括理论知识和实际操作。

评估方式应客观、公正,能够全面反映学生的学习成果。

六、教学安排本课程的教学安排如下:共10课时,每周2课时,共计5周完成。

教学地点安排在教室,以便于学生集中注意力和互动讨论。

c语言个人账簿管理系统代码

c语言个人账簿管理系统代码

个人帐簿管理系统设计五、程序运行结果1、原文件内容#include <stdio.h>#include <stdlib.h>#include <memory.h>#include <windows.h>//文件保存路径#define FilePath1 "Myinfor.dat"#define FilePath2 "Myinfor.txt"//查询用声明#define Status int#define OK 1#define Error 0#define NotFound 2typedef struct {int month;//月份int spxf;//食品消费int fzfy;//房租费用int znjy;//子女教育费用int sdfy;//水电费用int ylfy;//医疗费用int cxfy;//储蓄费用int srfy;//收入费用} Infor;typedef struct {// 查询用自定义数据类型int no;int data;}pType;void menu(void); //菜单void input(Infor *newI); //接收键盘输入void writeinfor(Infor *newI);//向文件内写入内容void changeFormat(void );//将dat格式文件转换为txt文件Status search(Infor *a);//查询函数[返回查询的结果及查询的状态] void paixu(Infor *a);//对查询据结果排序void modify(Infor *a,int mon);//修改数据void delRecord(int mon);//删除数据void main(){while(1){menu();}}void menu(void){int item;int mon;Infor *a;a=(Infor *)malloc(sizeof(Infor));do{printf("\n******个人帐簿管理系统设计*****\n\n");printf("1.录入数据\n");printf("2.查看数据\n");printf("3.修改数据\n");printf("4.查询数据\n");printf("5.排序数据\n");printf("6.删除数据\n");printf("0.退出系统\n\n");printf("请输入要进行的操作: " );scanf("%d",&item);}while(item>6 || item<-1);switch(item){ //退出程序case 0: getchar();getchar();exit(1);break;//录入数据case 1: input(a);writeinfor(a);break;//查看数据case 2: changeFormat();break;//修改数据case 3: item=search(a);mon=a->month;if (item!=OK) printf("\n没有符合条件的记录!\n");else{printf("\n记录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入\n");printf("----------------------------------------------------------------------- \n");printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy, a->cxfy,a->srfy);input(a);modify(a,mon);}break;//查询数据case 4: item=search(a);if (item!=OK) printf("\n没有符合条件的记录!\n");else{printf("\n记录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入\n");printf("----------------------------------------------------------------------- \n");printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy, a->cxfy,a->srfy);}break;//排序数据case 5: item=search(a);if (item!=OK) printf("\n没有符合条件的记录!\n");elsepaixu(a);break;//删除数据case 6:item=search(a);mon=a->month;if (item!=OK) printf("\n没有符合条件的记录!\n");else{printf("\n记录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入\n");printf("----------------------------------------------------------------------- \n");printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fzfy,a->znjy,a->sdfy,a->ylfy, a->cxfy,a->srfy);delRecord(mon);}break;}free(a);//释放内存空间}void input(Infor *newI){printf("\n请依次输入数据(中间以空格符隔开):\n(本月月份食品消费房租费用子女费用水电费用医疗费用储蓄费用收入费用)\n");scanf("%d%d%d%d%d%d%d%d",&newI->month,&newI->spxf,&newI->fzfy,&newI->znjy,&newI->s dfy,&newI->ylfy,&newI->cxfy,&newI->srfy);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);//这里可以做特别处理可防止存在同一月份有2条以上的记录问题。

C语言程序设计个人财务管理系统

C语言程序设计个人财务管理系统

程序设计工程训练报告C语言程序设计个人财务管理系统课程名称C语言程序设计工程训练姓名院(系)信息科学与技术学院专业班级学号指导教师教务处制目录1.需求分析 (1)2系统总框图和功能模块说明 (1)2.1系统总框图 (1)2.2功能模块说明 (1)3系统设计 (2)3.1主要结构体 (2)3.2主要功能函数 (2)4系统调试 (3)4.1、程序开始执行时系统的所显示的页面: (3)4.2、选择退出系统: (3)4.3、选择登陆,并且输入的帐号和密码都正确: (3)4.4、用户输入的帐号不正确: (4)4.5、用户输入的帐号正确,密码不正确: (4)4.6、用户进行具体操作: (5)5总结 (6)6源程序清单 (6)1.需求分析编写一个个人财政支出管理系统,主要解决的问题是作为一个系统而言,它所要面对不只是某一个人而言,而是要面对很多的用户。

那么想要解决这一问题,就必须要求这个系统能够存储许多用户的基本信息和记录。

同时也要求系统能够对不同的用户的身份进行查找和验证。

在验证通过之后,在对其进行用户所要求的操作。

作为一个财政支出系统,那么就要求对于用户关于金钱的每一项操作都要有相应的记录,同时并允许用户对于每一条整体的记录进行操作,例如可以根据时间来查找某一确定日期是否进行了收入或者支出的操作,也可以根据特定的需要来删除某一条整体的记录。

但不允许对每条记录的单项数据进行更改,因为不管是收入还是支出,所涉及的金额都是固定的,时间也是固定的,所以系统不允许用户对其进行操作。

除此之外,还必须有足够大的空间来存储新的记录。

所以此程序就是基于这个思想而编写出来的,基本满足了用户对于一个财政支出管理系统所要求的相关功能。

2系统总框图和功能模块说明2.1系统总框图2.2功能模块说明(1)old_record( ):此函数由系统自行调用,作用是将所有用户信息存入系统。

(2)void save( ): 此函数的作用是将结构体数组中的信息写入文件存储,由系统调用。

c语言账单管理系统课程设计

c语言账单管理系统课程设计

c语言账单管理系统课程设计一、教学目标本课程旨在通过学习C语言账单管理系统的设计与实现,让学生掌握C语言编程的基本技能,理解程序设计的基本流程,培养其问题解决能力。

具体目标如下:1.理解C语言的基本语法和数据结构。

2.掌握函数的定义和调用。

3.学习结构体和文件操作等相关知识。

4.能够运用C语言进行简单的程序设计。

5.学会使用结构体设计数据模型。

6.掌握文件读写操作,实现数据的持久化存储。

情感态度价值观目标:1.培养学生对计算机科学的兴趣和好奇心。

2.培养学生独立思考、解决问题的能力。

3.培养学生团队协作的意识和精神。

二、教学内容本课程的教学内容依据C语言账单管理系统的设计与实现进行,详细的教学大纲如下:1.C语言基础知识:数据类型、运算符、控制语句。

2.函数:定义、声明、调用。

3.数据结构:数组、结构体。

4.文件操作:文件的打开、读写。

5.账单管理系统的设计与实现:需求分析、系统设计、编码实现、测试。

三、教学方法为了提高教学效果,我们将采用多种教学方法相结合的方式进行教学:1.讲授法:用于讲解C语言的基础知识和编程概念。

2.案例分析法:通过分析具体的账单管理案例,让学生理解并掌握系统的实现。

3.实验法:让学生通过动手编写代码,加深对知识点的理解和运用。

4.讨论法:分组讨论,培养学生的团队协作能力和问题解决能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《C程序设计语言》。

2.参考书:《C Primer Plus》、《C和指针》。

3.多媒体资料:教学PPT、视频教程。

4.实验设备:计算机、网络环境。

以上教学资源将有助于学生更好地学习和掌握C语言账单管理系统的设计与实现。

五、教学评估本课程的评估方式将分为以下几个部分,以全面、客观、公正地评估学生的学习成果:1.平时表现:包括课堂参与度、小组讨论、提问等,占总成绩的20%。

2.作业:包括编程练习和小论文等,占总成绩的30%。

C语言程序的设计个人财务管理系统方案

C语言程序的设计个人财务管理系统方案

程序设计工程训练报告C语言程序设计个人财务管理系统课程名称C语言程序设计工程训练姓名院(系)信息科学与技术学院专业班级学号指导教师教务处制目录1.需求分析 (1)2系统总框图和功能模块说明 (1)2.1系统总框图 (1)2.2功能模块说明 (1)3系统设计 (2)3.1主要结构体 (2)3.2主要功能函数 (2)4系统调试 (3)4.1、程序开始执行时系统的所显示的页面: (3)4.2、选择退出系统: (3)4.3、选择登陆,并且输入的和密码都正确: (3)4.4、用户输入的不正确: (4)4.5、用户输入的正确,密码不正确: (4)4.6、用户进行具体操作: (5)5总结 (6)6源程序清单 (6)1.需求分析编写一个个人财政支出管理系统,主要解决的问题是作为一个系统而言,它所要面对不只是某一个人而言,而是要面对很多的用户。

那么想要解决这一问题,就必须要求这个系统能够存储许多用户的基本信息和记录。

同时也要求系统能够对不同的用户的身份进行查找和验证。

在验证通过之后,在对其进行用户所要求的操作。

作为一个财政支出系统,那么就要求对于用户关于金钱的每一项操作都要有相应的记录,同时并允许用户对于每一条整体的记录进行操作,例如可以根据时间来查找某一确定日期是否进行了收入或者支出的操作,也可以根据特定的需要来删除某一条整体的记录。

但不允许对每条记录的单项数据进行更改,因为不管是收入还是支出,所涉及的金额都是固定的,时间也是固定的,所以系统不允许用户对其进行操作。

除此之外,还必须有足够大的空间来存储新的记录。

所以此程序就是基于这个思想而编写出来的,基本满足了用户对于一个财政支出管理系统所要求的相关功能。

2系统总框图和功能模块说明2.1系统总框图2.2功能模块说明(1)old_record( ):此函数由系统自行调用,作用是将所有用户信息存入系统。

(2)void save( ): 此函数的作用是将结构体数组中的信息写入文件存储,由系统调用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

个人帐簿管理系统目录摘要 (1)1绪论 (1)2系统分析 (1)2.1功能需求 (1)2.2数据需求 (1)2.3性能需求 (2)3总体设计 (2)3.1系统设计方案 (2)3.2功能模块设计 (2)4详细设计 (3)4.1录入数据模块 (3)4.2修改数据子模块 (4)4.3查询数据子模块 (5)4.4排序数据子模块 (6) (6)4.6删除数据子模块 (7)5调试与测试 (8)5.1调试 (8)5.2测试 (8)6结论 (9)结束语 (9)参考文献 (9)附录1-用户手册 (10)附录2-源程序 (13)摘要个人帐簿管理系统的开发是为了方便个人记录每月的全部收入及开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。

并进行查询和排序等。

主要实现以下功能:(1) 记录月份以及每月的食品消费,房租,子女教育费用,水电费,医疗费,储蓄等内容。

(2) 要求该系统能查看该数据并进行修改和查询等。

(3)并用冒泡法进行排序以及能进行内容的删除。

报告从系统分析,总体设计,详细设计,调试与测试方面进行描述和介绍。

关键词:个人帐簿管理系统;扩充;修改;删除。

1绪论当今社会是个劳逸结合的社会,计算机在人们的生活中越来越重要,个人账簿管理的开发给大众的生活平添了方便。

个人账簿管理系统是一个比较普遍的管理系统,它的存在方便个人记录每月的全部收入及开支情况。

根据课程设计任务书要求,个人帐簿管理系统记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等。

进入系统后可以输入和修改某月的收支情况,可以对每月的开支从小到大进行排序,可以根据输入的月份查询每月的收支情况。

另外要求建立一个文件,包括某人5个月的收支情况,能对文件中的信息进行扩充(追加),修改和删除;完成对每月的开支排序,以及完成系统查询功能。

可进行功能的适当扩充。

2系统分析2.1 功能需求个人帐簿管理系统要求记录某人每月的全部收入及各项开支情况,包括食品消费,房租,子女教育费用,水电费,医疗费,储蓄等并能进行修改,查询,排序,删除等功能。

2.2数据需求系统主要处理的是个人帐簿信息,因此其输入和输出都与此相关。

(1) 输入数据:月份和食品消费,房租,子女教育费用,水电费,医疗费,储蓄等数据。

(2) 输出数据:月份和食品消费,房租,子女教育费用,水电费,医疗费,储蓄等的数据。

2.3 性能需求本系统主要需要达到以下性能要求:安全性高、可靠性强、稳定性强、响应速度快3总体设计3.1系统设计方案(1)菜单本系统根据需要主要设计了6个菜单,分别为①录入数据②.查看数据③修改数据④.查询数据⑤排序数据⑥退出系统(2) 文件保存方式系统需要保文件,文件存储月份和食品消费,房租,子女教育费用,水电费,医疗费,储蓄等数据。

(3) 数据类型系统定义了数组,结构体等类型,存储月份和食品消费,房租,子女教育费用,水电费,医疗费,储蓄等信息。

(4) 算法设计系统中主要排序算法(冒泡排序),即第1个数与第2个数比较,若第1个大,就与第2个数交换;若第2个数大,就不交换;继续第2个与第3个比较,。

,直到比较完为止。

3.2功能模块设计根据分析,系统主要设计了6个模块,分别是:录入数据模块,查看数据模块,修改数据模块,查询数据模块,排序数据模块,删除数据模块;功能模块图如图1所示。

个人帐簿管理系统录入数据模块查看数据模块修改数据模块查询数据模块排序数据模块删除数据模块图1功能模块图(1)录入数据录入数据模块把输入的信息存储到文件里,为以下操作提供数据。

(2)查看数据查看数据模块是输入要执行的操作,打开文件,查看帐户里面的信息(3)修改数据修改数据模块是输入要修改的月份,打开文件,找到该月的信息,把新输入的信息复制给原有信息,已达到修改的目的。

(4)查询数据查询数据模块是打开文件,输入要查看的月份,就将输出该月的信息。

(5)排序数据排序数据模块是用冒泡排序,把每月的费用从小到大排列。

(6)删除数据删除数据模块是用链表把其中某月删除。

4详细设计4.1录入数据模块录入主要通过scanf函数实现。

具体程序实现流程如图2所示。

图2输入月份和食品消费,房租,子女教育费用,水电费,医疗费,储蓄等数据。

4.2修改数据子模块修改文件中的信息,具体程序实现流程如图4所示。

图3输入月份首先判断文件中是否有该信息,没有,输出没有符合条件的记录,有,输出该信息,再进行修改;即重新输入月份和食品消费,房租,子女教育费用,水电费,医疗费,储蓄等数据。

4.3查询数据子模块查询某月的信息,具体程序实现流程如图5所示。

图4输入要查询的月份,首先判断文件中是否有该信息,没有,输出无法找到该文件,有,输出该信息。

4.4排序数据子模块图5冒泡排序:即第1个数与第2个数比较,若第1个大,就与第2个数交换;若第2个数大,就不交换;继续第2个与第3个比较,。

,直到比较完为止。

4.6删除数据子模块删除某月的信息,具体程序实现流程如图7所示。

图6输入要删除的月份,若文件中没有该信息,输出无法找到该文件,若文件中有该信息,输出请选择要删除的月份,输入月份,利用链表的知识删除该月份。

5调试与测试5.1 调试调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。

以解决问题。

(1) 系统提示的错误:函数没有起到作用,跟踪发现根本就没有结果,最后发现这个语句根本就没有被调用。

(2) 调试过程中遇到了储存内容重复的错误。

经多次实验后得得出是系统的问题,这将有待改进。

5.2 测试软件测试是软件生存期中的一个重要阶段,是软件质量保证的关键步骤从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序的过程”。

或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。

过度测试则会浪费许多宝贵的资源。

到测试后期,即使找到了错误,然而付出了过高的代价。

(1)输入正确的数:输入数据1:1 2 3 4 5 6 7 8预期结果:1 2 3 4 5 6 7 8运行结果:1 2 3 4 5 6 7 8说明:远行正确。

(2)输入错误的数:输入数据2:15 3 4 5 6 7 8 9预期结果:15 3 4 5 6 7 8 9运行结果:15 3 4 5 6 7 8 9说明:远行错误。

6结论经过两周的课程设计,个人帐簿管理系统基本完成,实现了任务书中的所有要求。

这对不熟悉程序的人来说操作起来也不是那么轻松上手,所以还有改进的地方,相信再以后,一定会写出更完善的程序结束语为期二个礼拜的数据结构课程设计终于顺利完成,在这期间真正的学到了一些经验,能够熟练的掌握一些C语言的编程思路及数据结构中的一些算法,能够熟练的运用学到的函数,学会了如何调试报告并加以改正,并知道了在输入信息时也要认真看清是何类型。

学到课本或一些理论中学不到的知识,这才达到了实践的目的,当程序经过多次调试,成功运行的时候,心里是激动的,这种成就感是前所未有的,也让大学生活显得不那么平常,格外的充实。

参考文献[1] 谭浩强.C语言程序设计(第三版).清华大学出版社,2007[2] 姜灵芝,余健.C语言课程设计案例精编.清华大学出版社,2008[3] 网上相关资料附录1-用户手册(1)录入数据图7 (2)查看数据图8图9 (4)查询数据图10图11(6)删除数据图12附录2-源程序#include <stdio.h>#include <stdlib.h>#include <memory.h>#include <windows.h>//文件保存路径#define FilePath1 "Myfile.dat"#define FilePath2 "Myfile.txt"//查询用声明#define Status int//宏定义#define OK 1//宏定义#define Error 0//宏定义#define NotFound 2//宏定义typedef struct {int month;//月份int spxf;//食品消费int fzfy;//房租费用int znjy;//子女教育费用int sdfy;//水电费用int ylfy;//医疗费用int cxfy;//储蓄费用int srfy;//收入费用} Infor;typedef struct {// 查询用自定义数据类型int no;int data;}pType;void menu(void); //菜单void input(Infor *newI); //接收键盘输入void writeinfor(Infor *newI);//向文件内写入内容void changeFormat(void );//将dat格式文件转换为txt文件Status search(Infor *a);//查询函数[返回查询的结果及查询的状态]void paixu(Infor *a);//对查询据结果排序void modify(Infor *a,int mon);//修改数据void delRecord(int mon);//删除数据void main()//主函数{while(1){menu();//函数调用}}void menu(void)//菜单{int item;//定义整型int mon;//定义整型Infor *a;a=(Infor *)malloc(sizeof(Infor));do{printf("\n\t\t…………个人帐簿管理系统设计…………\n\n");//输出printf("\t\t 1.录入数据。

\n");//输出printf("\t\t 2.查看数据。

\n");//输出printf("\t\t 3.修改数据。

\n");//输出printf("\t\t 4.查询数据。

\n");//输出printf("\t\t 5.排序数据。

\n");//输出printf("\t\t 6.删除数据。

\n");//输出printf("\t\t 0.退出系统。

\n");//输出printf("\t\t………………………………………………\n\n");//输出printf("请输入要进行的操作: " );//输出scanf("%d",&item);//输入}while(item>6 || item<-1);switch(item){ //退出程序case 0: getchar();//保存界面getchar();//保存界面exit(1);break;//结束//录入数据case 1: input(a);//函数调用writeinfor(a);//函数调用break;//结束//查看数据case 2: changeFormat();//函数调用break;//结束//修改数据case 3: item=search(a);//复制mon=a->month;//复制if (item!=OK) printf("\n没有符合条件的记录!\n"); //判断输出else{printf("\n记录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入\n");//输出printf("----------------------------------------------------------------------- \n");//输出printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fzfy,a->znjy ,a->sdfy,a->ylfy,a->cxfy,a->srfy);//输出input(a);//函数调用modify(a,mon);//函数调用}break;//结束//查询数据case 4: item=search(a);//复制if (item!=OK) printf("\n没有符合条件的记录!\n");//判断输出else{printf("\n记录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入\n");//输出printf("----------------------------------------------------------------------- \n");//输出printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fzfy,a->znjy ,a->sdfy,a->ylfy,a->cxfy,a->srfy);//输出}break;//结束//排序数据case 5: item=search(a);//复制if (item!=OK) printf("\n没有符合条件的记录!\n"); //判断输出elsepaixu(a);//函数调用break;//结束//删除数据case 6:item=search(a);//复制mon=a->month;//复制if (item!=OK) printf("\n没有符合条件的记录!\n"); //判断输出else{printf("\n记录月份食品消费房租费用子女费用水电费用医疗费用储蓄费用本月收入\n");//输出printf("----------------------------------------------------------------------- \n");//输出printf("%7d %8d %8d %8d %8d %8d %8d %8d\n",a->month,a->spxf,a->fzfy,a->znjy ,a->sdfy,a->ylfy,a->cxfy,a->srfy);//输出delRecord(mon);//函数调用}break;//结束}free(a);//释放内存空间}void input(Infor *newI)//函数定义{printf("\n请依次输入数据[说明:中间以空格符隔开]:\n(本月月份食品消费房租费用子女费用水电费用医疗费用储蓄费用收入费用)\n");//输出scanf("%d%d%d%d%d%d%d%d",&newI->month,&newI->spxf,&newI->fzfy,&newI ->znjy,&newI->sdfy,&newI->ylfy,&newI->cxfy,&newI->srfy);//输出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);//这里可以做特别处理可防止存在同一月份有2条以上的记录问题。

相关文档
最新文档