C语言课程设计-班级财务管理(总20页)
C语言财务管理系统(源代码)教案.doc
void save_to_file();
void clear_data();
fi_data *get_last();
fi_data *get_previous(fi_data *p);
void input_info(fi_info *info);
void show_info(fi_data *p[],int count);
fflush(stdin);
getchar();
}
else
{
menu_fun[selected]();
}
selected=0;
}
}
void add_income()
{
fi_data *p=(fi_data *)malloc(sizeof(fi_data));
memset(p,0,sizeof(fi_data));
void delete_payout();
void update_payout();
void count_total();
void quit();
void search_data(fi_type type);
void delete_data(fi_type type);
void update_data(fi_type type);
input_info(&(p->info));
p->info.type=payout;
if(head==NULL)
{
head=p;
}
else
{
get_last(head)->next=p;
}
}
void search_payout()
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语言班级管理系统课程设计一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握面向过程的编程思维。
2. 学会使用C语言实现班级管理系统的基本功能,如学生信息录入、查询、修改和删除。
3. 了解文件操作在C语言中的应用,实现班级管理系统的数据持久化存储。
技能目标:1. 培养学生运用C语言进行程序设计的能力,特别是模块化设计和代码编写。
2. 培养学生分析问题、解决问题的能力,能够独立完成班级管理系统的设计与实现。
3. 培养学生的团队协作能力,分组合作完成课程设计任务。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习C语言的积极性。
2. 培养学生的创新意识,鼓励在课程设计中提出新功能、新算法。
3. 培养学生的责任感和合作精神,在团队中发挥积极作用。
课程性质:本课程设计以实践为主,结合理论,使学生通过动手实践,深入理解C语言编程,掌握班级管理系统的设计与实现。
学生特点:学生已具备一定的C语言基础,具有较强的学习能力和动手能力,但对复杂系统的设计尚缺乏经验。
教学要求:注重理论与实践相结合,以任务驱动的方式,引导学生自主探究、合作学习,培养学生的编程能力和团队协作能力。
将课程目标分解为具体的学习成果,以便于后续的教学设计和评估。
二、教学内容1. C语言基础语法回顾:包括数据类型、运算符、表达式、控制结构等,确保学生掌握C语言编程的基本框架。
相关教材章节:第一章至第三章。
2. 函数与模块化设计:介绍函数定义、调用、参数传递等,强调模块化编程思想。
相关教材章节:第四章。
3. 结构体与链表:讲解结构体的定义和使用,以及链表的基本操作,为班级管理系统设计打下基础。
相关教材章节:第五章。
4. 文件操作:介绍文件读写、文件指针操作等,实现班级管理系统数据的持久化存储。
相关教材章节:第十章。
5. 班级管理系统功能模块设计:- 学生信息录入:输入学生基本信息,保存到文件。
- 学生信息查询:按条件查询学生信息,显示查询结果。
c语言课程设计财务
c语言课程设计财务一、教学目标本章节的教学目标是使学生掌握C语言的基本语法和编程技巧,能够运用C语言进行简单的财务软件开发。
具体目标如下:1.知识目标:–掌握C语言的基本语法和数据类型。
–了解财务软件开发的基本流程。
2.技能目标:–能够使用C语言编写简单的财务计算程序。
–能够阅读和理解财务软件的代码。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情。
–培养学生具备良好的团队合作精神和创新意识。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型和财务软件开发流程。
具体内容如下:1.C语言的基本语法和数据类型。
2.财务软件开发的基本流程。
3.使用C语言编写简单的财务计算程序。
三、教学方法为了达到本章节的教学目标,我们将采用以下教学方法:1.讲授法:通过讲解C语言的基本语法和数据类型,使学生掌握基础知识。
2.案例分析法:分析财务软件开发的实际案例,使学生了解财务软件开发的基本流程。
3.实验法:引导学生动手编写财务计算程序,培养学生的实际操作能力。
四、教学资源为了支持本章节的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》。
2.参考书:《C语言编程实例解析》。
3.多媒体资料:财务软件开发案例视频教程。
4.实验设备:计算机、编程环境。
五、教学评估为了全面、客观地评估学生在C语言财务课程中的学习成果,我们将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与度、提问回答和团队协作表现,评估其学习态度和积极性。
2.作业:布置与课程内容相关的编程作业,评估学生对C语言语法和编程技巧的掌握程度。
3.考试:安排期末考试,测试学生对课程知识的全面理解和运用能力。
六、教学安排本章节的教学安排如下:1.教学进度:按照教材《C语言程序设计》的章节顺序,合理安排每个章节的教学内容和教学时间。
2.教学时间:每周安排2课时,共计10周完成本章节的教学任务。
3.教学地点:计算机实验室,以便学生进行实验和实践操作。
c语言班级管理系统课程设计
c语言班级管理系统课程设计一、教学目标本课程旨在让学生掌握C语言的基本语法,学会使用C语言进行编程,培养学生编写班级管理系统的实际操作能力。
通过本课程的学习,学生将能够熟练运用C 语言编写简单的班级管理系统,具备一定的编程思维和问题解决能力。
具体来说,知识目标包括:1.掌握C语言的基本语法和数据类型。
2.熟悉函数的定义和调用。
3.了解指针的概念和运用。
4.掌握结构体的定义和运用。
技能目标包括:1.能够使用C语言编写简单的程序。
2.能够运用C语言实现班级管理系统的功能。
3.能够根据实际需求,设计和优化班级管理系统的程序结构。
情感态度价值观目标包括:1.培养学生对编程的兴趣和热情。
2.培养学生解决问题的积极性和主动性。
3.培养学生团队合作的精神和良好沟通的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、函数、指针、结构体等知识点。
具体安排如下:1.第一章:C语言概述,基本语法,数据类型。
2.第二章:运算符与表达式,输入输出函数。
3.第三章:函数的定义和调用,局部变量和全局变量。
4.第四章:指针的概念和运用。
5.第五章:数组和字符串。
6.第六章:结构体和文件操作。
7.第七章:班级管理系统的实现。
在教学过程中,将结合具体知识点,通过实例分析和编程实践,使学生掌握C语言的基本编程技巧,并能够运用C语言编写班级管理系统。
三、教学方法本课程将采用讲授法、案例分析法、实验法等多种教学方法相结合的方式进行教学。
1.讲授法:通过讲解和演示,使学生掌握C语言的基本语法和编程技巧。
2.案例分析法:通过分析实际案例,使学生了解班级管理系统的实现过程。
3.实验法:通过编程实验,使学生巩固所学知识,提高编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。
1.教材:《C程序设计语言》(K&R)或《C语言入门到精通》。
2.参考书:《C语言程序设计教程》(谭浩强)等。
3.多媒体资料:教学PPT,视频教程等。
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 课程设计收支管理一、课程目标知识目标:1. 学生能够理解收支管理的概念,掌握收入和支出的分类及记录方法。
2. 学生能够运用基本的数学运算,计算出总收入、总支出及结余。
3. 学生能够了解家庭、企业及国家在不同情境下的收支状况,分析其影响因素。
技能目标:1. 学生能够运用图表、账本等工具,整理和展示收支数据。
2. 学生能够独立完成个人或小组的收支管理任务,提高解决问题的能力。
3. 学生能够运用所学知识,为家庭或学校设计合理的预算方案。
情感态度价值观目标:1. 学生能够认识到收支管理在生活中的重要性,培养良好的消费观念和理财意识。
2. 学生通过学习,增强团队合作意识,学会分享和互助。
3. 学生能够关注国家经济发展,理解国家收支平衡对社会稳定和繁荣的意义。
课程性质:本课程为实用性强的学科课程,结合数学、经济学等知识,帮助学生掌握收支管理的技能。
学生特点:考虑到学生所在年级,课程内容将贴近生活,以激发学生兴趣,培养学生实际操作能力。
教学要求:教师应采用生动的案例、互动的课堂活动,引导学生主动参与,确保课程目标的实现。
同时,关注学生的个体差异,提供个性化指导,使每个学生都能在课程中取得具体的学习成果。
二、教学内容1. 收支管理的概念与意义- 收入与支出的定义及分类- 收支管理的重要性2. 收支记录的方法与工具- 账本记录法- 电子表格记录法- 图表展示法3. 收支计算与分析- 总收入、总支出及结余的计算方法- 收支平衡与赤字的分析- 影响收支状况的因素4. 实践与应用- 个人或家庭收支管理案例- 企业收支管理案例- 国家收支管理案例5. 预算编制与执行- 预算编制的基本原则- 预算执行与调整的方法- 预算与实际收支的比较分析教学内容安排与进度:第一课时:收支管理的概念与意义,收入与支出的分类第二课时:账本记录法,电子表格记录法第三课时:收支计算与分析,实践案例一第四课时:图表展示法,实践案例二第五课时:预算编制与执行,实践案例三教材章节关联:本教学内容与教材中“个人与家庭理财”章节相关,涉及到的知识点包括收入、支出、预算、理财等。
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语言班级管理课程设计一、课程目标知识目标:1. 掌握C语言基础语法,如变量声明、数据类型、运算符和表达式;2. 学会使用C语言控制结构,包括顺序、选择和循环结构;3. 了解C语言数组、字符串和函数的基本应用;4. 掌握班级管理系统的基本功能需求,如学生信息录入、查询、修改和删除。
技能目标:1. 能够运用C语言编写简单的班级管理系统功能模块;2. 培养学生分析问题、解决问题的能力,通过编程解决班级管理中的实际问题;3. 提高学生的逻辑思维能力,学会运用C语言进行结构化编程。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养学习主动性和积极性;2. 培养学生良好的团队合作精神,学会在项目开发中分工合作;3. 增强学生的创新意识,鼓励学生发挥想象,设计出有特色的班级管理系统;4. 培养学生严谨、细心的编程习惯,提高代码质量和可维护性。
本课程针对初高中年级学生,结合C语言编程基础和班级管理实际需求,旨在通过项目驱动的教学方式,让学生在实践中掌握C语言编程技能,提高解决实际问题的能力。
同时,注重培养学生良好的情感态度和价值观,为我国信息技术产业发展输送高素质的人才。
二、教学内容1. C语言基础语法:变量声明、数据类型、运算符、表达式;教材章节:第一章至第三章。
2. 控制结构:顺序结构、选择结构(if-else)、循环结构(for、while);教材章节:第四章。
3. 函数:函数定义、函数调用、递归函数;教材章节:第五章。
4. 数组与字符串:一维数组、二维数组、字符串操作;教材章节:第六章。
5. 班级管理系统功能模块设计:a. 学生信息录入:输入学生信息,存储到文件;b. 学生信息查询:按条件查询学生信息;c. 学生信息修改:修改指定学生信息;d. 学生信息删除:删除指定学生信息;教材章节:第七章、第八章。
6. 项目实践:分组进行班级管理系统的设计与实现,完成各功能模块;教材章节:全书。
教学内容安排和进度:第一周:C语言基础语法学习;第二周:控制结构学习;第三周:函数学习;第四周:数组与字符串学习;第五周:班级管理系统功能模块设计;第六周:项目实践,完成班级管理系统;第七周:项目展示、评价与总结。
c语言课程设计财务管理
c语言课程设计财务管理一、教学目标本节课的教学目标是让学生掌握C语言在财务管理领域的应用,包括数据结构、算法和程序设计等方面的知识。
在知识目标方面,学生需要了解C语言的基本语法、数据类型、运算符、控制结构等;掌握数组、字符串、结构体等数据结构的使用;熟悉函数、指针的概念和应用。
在技能目标方面,学生需要能够运用C语言编写简单的财务管理程序,解决实际问题;具备良好的编程习惯和调试能力。
在情感态度价值观目标方面,学生需要培养对计算机科学的兴趣和热情,提高自主学习和解决问题的能力。
二、教学内容本节课的教学内容主要包括C语言的基本语法、数据结构、算法和程序设计等方面的知识。
首先,介绍C语言的基本语法,包括数据类型、运算符、控制结构等;其次,讲解数组、字符串、结构体等数据结构的使用方法;然后,介绍函数和指针的概念及应用;最后,通过实例分析,让学生掌握C语言在财务管理领域的实际应用。
三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法。
首先,采用讲授法,为学生讲解C语言的基本语法、数据结构、算法等知识;其次,运用讨论法,让学生在小组内交流学习心得,解决问题;然后,采用案例分析法,分析C语言在财务管理领域的实际应用;最后,运用实验法,让学生动手编写财务管理程序,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:教材《C语言程序设计》、参考书《C语言编程实践》、多媒体资料(包括PPT、视频教程等)、实验设备(计算机、编程环境等)。
这些教学资源将帮助学生更好地掌握C语言在财务管理领域的应用,提高他们的编程能力和解决问题的能力。
五、教学评估本节课的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估主要包括以下几个方面:1.平时表现:通过观察学生在课堂上的参与度、提问回答、小组讨论等表现,评估他们的学习态度和积极性。
2.作业:布置与课程内容相关的编程作业,评估学生对C语言语法、数据结构、算法等知识的掌握程度。
C语言程序设计个人财务管理系统
程序设计工程训练报告C语言程序设计个人财务管理系统课程名称C语言程序设计工程训练姓名院(系)信息科学与技术学院专业班级学号指导教师教务处制页脚内容1目录1.需求分析 (1)2系统总框图和功能模块说明 (2)2.1系统总框图 (2) (2)2.2功能模块说明 (2)3系统设计 (3)3.1主要结构体 (3)3.2主要功能函数 (3)4系统调试 (4)页脚内容24.1、程序开始执行时系统的所显示的页面: (4)4.2、选择退出系统: (4)4.3、选择登陆,并且输入的帐号和密码都正确: (5)4.4、用户输入的帐号不正确: (5)4.6、用户进行具体操作: (6)5总结 (7)6源程序清单 (7)页脚内容31.需求分析编写一个个人财政支出管理系统,主要解决的问题是作为一个系统而言,它所要面对不只是某一个人而言,而是要面对很多的用户。
那么想要解决这一问题,就必须要求这个系统能够存储许多用户的基本信息和记录。
同时也要求系统能够对不同的用户的身份进行查找和验证。
在验证通过之后,在对其进行用户所要求的操作。
作为一个财政支出系统,那么就要求对于用户关于金钱的每一项操作都要有相应的记录,同时并允许用户对于每一条整体的记录进行操作,例如可以根据时间来查找某一确定日期是否进行了收入或者支出的操作,也可以根据特定的需要来删除某一条整体的记录。
但不允许对每条记录的单项数据进行更改,因为不管是收入还是支出,所涉及的金额都是固定的,时间也是固定的,所以系统不允许用户对其进行操作。
除此之外,还必须有足够大的空间来存储新的记录。
所以此程序就是基于这个思想而编写出来的,基本满足了用户对于一个财政支出管理系统所要求的相关功能。
页脚内容12系统总框图和功能模块说明2.1系统总框图2.2功能模块说明(1)old_record( ):此函数由系统自行调用,作用是将所有用户信息存入系统。
(2)void save( ): 此函数的作用是将结构体数组中的信息写入文件存储,由系统调用。
班级收支管理系统(c语言编写)
#include<conio.h>#include<stdlib.h>#include<stdio.h>#include<string.h>#include<math.h>#define NULL 0struct BF {char date[12];//日期float In;//收入float Out;//支出char bz[20];//事由float yuE;//余额struct BF *next;};void time1();struct BF *creat(){struct BF *p,*head,*end;p=head=end=(struct BF *)malloc(sizeof(struct BF));printf("\n=============请输入具体事项=============\n"); printf("\n日期:");scanf("%s",p->date);printf("收入:scanf("%f",&p->In);printf("支出:");scanf("%f",&p->Out);printf("事由:");scanf("%s",p->bz);printf("余额:");scanf("%f",&p->yuE);end->next=p;end=p;p=(struct BF *)malloc(sizeof(struct BF)); printf("日期:");scanf("%s",p->date);while(strcmp(p->date,"0")!=0){printf("收入: ");scanf("%f",&p->In);printf("支出:scanf("%f",&p->Out);printf("事由:");scanf("%s",p->bz);p->yuE=end->yuE+p->In-p->Out;printf("余额:");printf("%0.2f",p->yuE);end->next=p;end=p;p=(struct BF *)malloc(sizeof(struct BF));printf("\n日期:");scanf("%s",p->date);}end->next=NULL;return head;}void save(struct BF *head){FILE *fp; struct BF *p;char filename[20];int ch;printf("请输入要保存的文件名:");scanf("%s",filename);if((fp=fopen(filename,"r"))!=NULL){printf("该文件已经存在,是否覆盖?\n");printf("1.覆盖2.不覆盖\n");scanf("%d",&ch);if(ch!=1){printf("请重新输入要保存的文件名:");scanf("%s",filename);}}if((fp=fopen(filename,"w"))==NULL){printf("创建文件失败!\n"); return;}p=head;while(p!=NULL){fprintf(fp,"%s\n",p->date);fprintf(fp,"%f\n",p->In);fprintf(fp,"%f\n",p->Out);fprintf(fp,"%s\n",p->bz);fprintf(fp,"%f\n",p->yuE);p=p->next;}fputs("over",fp);printf("文件保存成功!\n");getchar();fclose(fp);}void output(struct BF *head){struct BF *p;p=head;if(p==NULL){printf("未创建任何记录!\n");getchar();return;}if(p!=NULL){printf("==========================显示数据==========================");printf("\n 日期收入支出事由余额");}while(p!=NULL){printf("\n%-10s %6.2f%6.2f%-20s%6.2f",p->date,p->In,p->Out,p->bz,p->yuE);p=p->next;}getchar();}struct BF *openfile(){struct BF *head,*p,*f;FILE *fp;int ch;char filename[20];printf("请输入要打开的文件名:");scanf("%s",filename);if((fp=fopen(filename,"r"))==NULL){printf("打开文件失败!\n");printf("1.请重新输入文件名2.退出\n");scanf("%d",&ch);if(ch==1)scanf("%s",filename);else if(ch==2)return NULL;}head=f=p=(struct BF *)malloc(sizeof(struct BF));fscanf(fp,"%s%f%f%s%f",p->date,&p->In,&p->Out,p->bz,&p->yuE);while(!feof(fp)){p=(struct BF *)malloc(sizeof(struct BF));f->next=p;fscanf(fp,"%s%f%f%s%f",p->date,&p->In,&p->Out,p->bz,&p->yuE);if(strcmp(p->date,"over")==0){f->next=NULL;printf("文件打开成功,可显示信息!");getchar();return head;}f=p;}fclose(fp);f->next=NULL;return head;}void mima(){FILE *fp;char mina1[20],mina2[20];int i=0;if((fp=fopen("mima","r"))==NULL){printf("密码尚未创建!\n");getchar();do {printf("请输入密码:");scanf("%s",mina1);printf("请再次输入密码:");scanf("%s",mina2);if(strcmp(mina1,mina2)!=0){printf("两次输入的密码不一样,请重新输入\n"); i=1;}elsebreak;}while(i);fp=fopen("mina","w");fprintf(fp,"%s",mina1);printf("密码设置成功!\n");fclose(fp);getchar();return;}elseprintf("密码已创建!\n");getchar();}void search(struct BF *head){struct BF *p;p=head;char str[20];int j=1;if(head==NULL){printf("未打开任何文件夹!");getchar();return;}printf("请输入要查看的日期(例:2012-1-2)"); scanf("%s",str);while(p!=NULL){if(strcmp(p->date,str)==0){printf("\n日期: %s",p->date);printf("\n收入:%0.2f",p->In);printf("\n支出:%0.2f",p->Out);printf("\n事由:%s",p->bz);printf("\n余额:%0.2f",p->yuE);j=0;}p=p->next;}getchar();if(j)printf("查找完毕,未搜索到结果!\n");}struct BF *add(struct BF *head){struct BF *p,*q;p=head;if(p==NULL){printf("未打开任何文件夹!\n");getchar();return NULL;}while(p->next!=NULL)p=p->next;q=(struct BF *)malloc(sizeof(struct BF));printf("\n日期:");scanf("%s",q->date);while(strcmp(q->date,"0")!=0){printf("收入:");scanf("%f",&q->In);printf("支出:");scanf("%f",&q->Out);printf("事由:");scanf("%s",q->bz);q->yuE=p->yuE+q->In-q->Out;printf("余额:%0.2f",q->yuE);p->next=q;p=q;q=(struct BF *)malloc(sizeof(struct BF));printf("\n日期:");scanf("%s",q->date);}p->next=NULL;printf("添加成功!\n");return head;}struct BF *delete_mem(struct BF *head){struct BF *p,*e; char str[20];int i=1;if(head==NULL){printf("未能打开任何文件夹!\n");getchar();return NULL;}printf("请输入要删除的日期\n");scanf("%s",str);p=head;while(p!=NULL){if(strcmp(p->date,str)==0) {i=0;printf("\n日期:%s",p->date);printf("\n收入:%0.2f",p->In);printf("\n支出:%0.2f",p->Out);printf("\n事由:%s",p->bz);printf("\n余额:%0.2f",p->yuE);break;}e=p;p=p->next;}if(i==0){if(p==NULL)e->next=NULL;else {e->next=p->next;p=p->next;while(p!=NULL){p->yuE=e->yuE+p->In-p->Out;if(i)}e=e->next;p=p->next;}}printf("删除成功!");getchar();return head;printf("不存在此日期\n");return head;}struct BF *change(struct BF *head){struct BF *p,*e; char str[20];int i=1,ch;float m,n;if(head==NULL){printf("未能打开任何文件夹!\n");getchar();return NULL;}printf("请输入要修改项目的日期\n");scanf("%s",str);p=head;while(p!=NULL){if(strcmp(p->date,str)==0){i=0;printf("\n日期:%s",p->date);printf("\n收入:%0.2f",p->In);printf("\n支出:%0.2f",p->Out);printf("\n事由:%s",p->bz);printf("\n余额:%0.2f",p->yuE);m=p->In-p->Out;break;}e=p;p=p->next;}if(i==0){printf("\n确认修改此项(1.y/2.n): ");scanf("%d",&ch);getchar();if(ch==1){printf("\n日期:");scanf("%s",p->date);printf("收入:");scanf("%f",&p->In);printf("支出:");scanf("%f",&p->Out);printf("事由:");scanf("%s",p->bz);n=p->In-p->Out;if(fabs(m-n)>10e-5){while(p!=NULL) {p->yuE=e->yuE+p->In-p->Out;e=p;p=p->next;}}elsep->yuE=e->yuE+p->In-p->Out; printf("\n修改成功!");getchar();return head;}else return NULL;}if(i) printf("不存在此日期\n"); getchar();return head;}void view(){printf("\n0.用户说明");printf("\n1.创建新表格");printf("\n2.保存表格");printf("\n3.打开文件");printf("\n4.打印表格");printf("\n5.设置密码");printf("\n6.查找数据");printf("\n7.增加数据");printf("\n8.删除数据");printf("\n9.修改数据\n");}void hint(){printf("提示:");printf("\n1.在第一次加入数据时,第一行数据应该自己输入余额,\n以便接下来的运行;");printf("\n2.输入数据以日期为'0'终止(不在提醒);");getchar();}/*void logo(){printf("马到成功!!!");printf("\n _(\_/)");printf("\n ,((((^`\");printf("\n (((((6 \");printf("\n ,((((( ,\");printf("\n ,,,_,(((((/"._,`,");printf("\n ((((\\ ,...,((((/`-.-'");printf("\n )));'`"'"'""(((((");printf("\n (((/(((\");printf("\n )) ||");printf("\n ((|.'|");printf("\n ))\_ '`t,.')"); printf("\n (|y;- -,-""'"-.\\/"); printf("\n )/ ./) /`\\"); printf("\n |./( (/ /'");printf("\n ||\\//'|");printf("\n ||\\_//'||"); printf("\n ||))|_/||"); printf("\n \_\|_/||"); printf("\n `'"\_\");printf("\n `'"");}*/void main(){time1();struct BF *head=NULL; char ch;//logo();do {view();printf("请做出选择: ");scanf("%c",&ch);switch(ch){case'0':hint();break;case'1':head=creat();break;case'2':save(head);break;case'3':head=openfile();break;case'4':output(head);break;case'5':mima();break;case'6':search(head);break;case'7':head=add(head);break;case'8':head=delete_mem(head);break; case'9':head=change(head);break; default:exit(0);}printf("\n按回车键返回\n"); getchar();system("cls");}while(1);}void time1(){time_t rawtime; struct tm*timeinfo;time(&rawtime);timeinfo=localtime(&rawtime); printf("现在是xx时间:%s",asctime(timeinfo));}。
C语言程序设计个人财务管理系统
C语言程序设计个人财务管理系统个人财务管理系统是一款帮助个人进行财务管理和分析的软件,能够帮助用户记录、分类、统计和分析个人的收入和支出。
本文将介绍一个使用C语言编写的简单个人财务管理系统。
首先,我们需要定义几个结构体来表示财务记录和分类信息:```c//定义财务记录结构体struct financial_recordint id; // 编号int year; // 年份int month; // 月份int day; // 日期char type[20]; // 类型double amount; // 金额};//定义分类信息结构体struct categorychar name[20]; // 分类名称double total; // 总金额int count; // 记录数量};//定义财务管理系统结构体struct financial_management_systemstruct financial_record records[100]; // 财务记录数组struct category categories[10]; // 分类信息数组int record_count; // 记录数量};```接下来,我们可以实现几个基本的功能,如添加记录、删除记录、查询记录和分类汇总等:```c//添加财务记录void add_record(struct financial_management_system *system) printf("请输入年份:");scanf("%d", &(system->records[system->record_count].year));//省略其他输入信息的代码printf("请输入金额:");scanf("%lf", &(system->records[system->record_count].amount));system->record_count++;//删除财务记录void delete_record(struct financial_management_system*system, int id)for (int i = 0; i < system->record_count; i++)if (system->records[i].id == id)for (int j = i; j < system->record_count - 1; j++)system->records[j] = system->records[j + 1];}system->record_count--;break;}}//查询财务记录void query_record(struct financial_management_system system, int year, int month, int day)for (int i = 0; i < system.record_count; i++)if (system.records[i].year == year &&system.records[i].month == month &&system.records[i].day == day)printf("编号:%d\n", system.records[i].id);//输出其他信息的代码}}//分类汇总void summarize_category(struct financial_management_system system)for (int i = 0; i < system.record_count; i++)//查找分类信息是否存在int category_index = -1;for (int j = 0; j < 10; j++)if (strcmp(system.records[i].type, system.categories[j].name) == 0)category_index = j;break;}}//如果分类信息不存在,则添加分类信息if (category_index == -1)strcpy(system.categories[system.category_count].name, system.records[i].type);system.categories[system.category_count].count = 1;system.categories[system.category_count].total = system.records[i].amount;system.category_count++;} elsesystem.categories[category_index].count++;system.categories[category_index].total +=system.records[i].amount;}}for (int i = 0; i < system.category_count; i++)printf("分类:%s\t总金额:%lf\t记录数量:%d\n",system.categories[i].name,system.categories[i].total,system.categories[i].count);}```最后,我们可以编写主函数来完成用户和系统的交互:```cint maistruct financial_management_system system; system.record_count = 0;system.category_count = 0;while (1)printf("\n请选择操作:\n");printf("1. 添加记录\n");printf("2. 删除记录\n");printf("3. 查询记录\n");printf("4. 分类汇总\n");printf("0. 退出\n");int choice;scanf("%d", &choice);switch (choice)case 1:add_record(&system);break;case 2:printf("请输入要删除的记录编号:");int id;scanf("%d", &id);delete_record(&system, id);break;case 3:printf("请输入查询的日期(年月日):"); int year, month, day;scanf("%d %d %d", &year, &month, &day); query_record(system, year, month, day); break;case 4:summarize_category(system);break;case 0:return 0;default:printf("无效的操作!\n");break;}}```通过以上代码,我们实现了一个简单的个人财务管理系统。
c课程设计个人财务系统设计
c 课程设计个人财务系统设计一、教学目标本课程旨在帮助学生了解和掌握个人财务系统设计的基本概念和方法,使他们在理论知识、实践技能和情感态度方面达到以下目标:1.知识目标:–掌握个人财务系统的定义、功能和分类。
–了解个人财务规划的基本原则和方法。
–学习个人资产负债表、收入支出表的编制方法。
–掌握储蓄、投资、消费决策的制定原则。
2.技能目标:–能够运用个人财务规划方法,为他人提供财务咨询。
–能够独立完成个人资产负债表、收入支出表的编制。
–学会分析个人财务状况,提出改进措施。
–能够根据自身情况,制定合理的储蓄、投资、消费决策。
3.情感态度价值观目标:–培养学生正确的理财观念,认识到个人财务规划的重要性。
–培养学生关注社会经济发展,关注个人财务问题。
–培养学生独立思考、解决问题的能力。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.个人财务系统概述:介绍个人财务系统的定义、功能和分类,使学生了解个人财务系统的基本概念。
2.个人财务规划:讲解个人财务规划的基本原则和方法,让学生学会如何为他人提供财务咨询。
3.个人财务报表:详细介绍资产负债表、收入支出表的编制方法,帮助学生掌握财务报表的基本知识。
4.储蓄、投资与消费决策:分析储蓄、投资、消费决策的制定原则,让学生能够根据自身情况,制定合理的财务决策。
三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:通过讲解基本概念、原理和方法,使学生掌握个人财务系统设计的相关知识。
2.案例分析法:分析实际案例,让学生学会如何运用所学知识解决实际问题。
3.讨论法:学生进行分组讨论,培养学生的独立思考和团队协作能力。
4.实验法:安排实验课程,让学生动手操作,提高实践能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《个人财务系统设计》教材,为学生提供理论知识的学习材料。
2.参考书:提供相关领域的参考书籍,拓展学生的知识视野。
C语言课程设计班级财务管理
C语言课程设计论文班级财务管理系统【设计目的】设计一个班级财务管理系统,该程序具有以下功能:(1)用户登录:输入用户名和密码,并判断是管理员还是普通成员,管理员和普通成员具有不同的功能选择界面。
1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】{int number;double output;int month;int day;int year;int use;char name[50];struct output_info * next;}OutputLink,* Pointer2;int Select(void); //收入和支出管理选择函数void Insert1(Pointer1 * Head1);void Insert2(Pointer2 * Head2);void Search1(Pointer1 Head1);void Search2(Pointer2 Head2);void Update1(Pointer1 Head1);void Update2(Pointer2 Head2);void Delete1(Pointer1 *Head1);void Delete2(Pointer2 *Head2);void Show1(Pointer1 Head1);void Show2(Pointer2 Head2);void Count1(Pointer1 Head1);gets(M);if(strcmp(m,M)==0){printf("登陆成功!!\n");printf("正为你转接,请稍候。
\n");Sleep(1000);if(sum==1310321109||sum==1310321108||sum==1310321107||sum==1310321127||sum==1310321132) {printf("★**************************************************************************★\n");printf("★*********************欢迎使用班级财务管理系统(管理员版)*******************★\n");printf(" ★**************************************************************************★\n\n\n");Sleep(1000);system("cls");do{printf_message1();scanf("%d",&j);switch(j){case 1: k=Select();elseprintf("错误选择!\n\n\n\n");break;case 4: k=Select();if(k==1)Delete1(&Head1);elseif(k==2)Delete2(&Head2);elseprintf("错误选择!\n\n\n\n");break;case 5: k=Select();if(k==1)Show1(Head1);elseif(k==2)Show2(Head2);elseprintf("错误选择!\n\n\n\n");break;★户★system("cls");do{menu();scanf("%d",&j);switch(j){case 1: k=Select();if(k==1)Insert1(&Head1);elseif(k==2)Insert2(&Head2);elseprintf("错误选择!\n\n\n\n");break;case 2: k=Select();if(k==1)Search1(Head1);elseif(k==2)default:printf("错误选择!\n\n\n\n");break;}}while(j!=0);}return 0;}else printf("密码错误!请查证后再来!!\n");}else printf("用户名不存在!请验证后再输!!\a\n");return 0;}void printf_message1(){ printf(" ★**************************************************************★\n"); printf(" *******************★欢迎使用财务管理系统★*******************\n");printf(" **************************************************************\n");printf(" \n");printf(" ☆1 . 添加财务信息 \n");printf(" ☆2 . 查询财务信息 \n");printf(" ☆3 . 修改财务信息 \n");printf(" ★**************************************************************★\n"); printf("◆请选择(0-6):\n");}int Select(void) //第二次选择的函数{int w;printf(" ★**************************************************************★\n");printf(" *******************★欢迎使用财务管理系统★******************* \n");printf(" ************************************************************** \n");printf(" \n");printf(" ☆1 . 收入 \n");printf(" ☆2 . 支出 \n");printf(" \n");printf(" ★**************************************************************★\n"); printf("◆◆◆请选择(1-2):\n");scanf("%d",&w);return(w);}void Insert1(Pointer1 *Head1) //添加收入if(q==NULL)*Head1=r;elseq->next=r;r->number=in_number;printf("请输入收入金额(单位:元):");scanf("%lf",&r->income);printf("请输入收入时间:\n");printf("年:");scanf("%d",&r->year);printf("月:");scanf("%d",&r->month);printf("日:");scanf("%d",&r->day);printf("请输入您的姓名:");scanf("%s",r->name);printf("\n\n\n\n");Sleep(300);}void Insert2(Pointer2 *Head2) //添加支出if(q==NULL)*Head2=r;elseq->next=r;r->number=in_number;printf("请输入支出金额(单位:元):");scanf("%lf",&r->output);printf("请输入支出时间:\n");printf("年:");scanf("%d",&r->year);printf("月:");scanf("%d",&r->month);printf("日:");scanf("%d",&r->day);printf("请输入用途:");printf("<1:吃喝(eat) 2:娱乐(amusement) 3:学习(studying) 4:其它(other)>\n"); printf("◆请选择(1-4):\n");scanf("%d",&r->use);printf("请输入使用人名称:");scanf("%s",r->name);Sleep(300);else p=p->next;}if(flag){printf("没有查到\n");printf("\n\n\n\n");getchar();}}void Search2(Pointer2 Head2) //查询支出{void Search_name(Pointer2 Head2);void Search_number(Pointer2 Head2);int i;printf("请选择查询的方式:\n");printf("1.姓名 2.编号\n");scanf("%d",&i);switch(i){case 1:Search_name(Head2);printf("支出金额:%lf元\n",p->output);printf("支出时间:\n");printf("年:%d,月:%d,日:%d\n",p->year,p->month,p->day);if(p->use==1)printf("用途:吃喝\n");elseif(p->use==2)printf("用途:娱乐\n");elseif(p->use==3)printf("用途:学习\n");elseprintf("用途:其它\n");printf("使用人姓名:%s",p->name);printf("\n按任意键继续!\n");getchar();flag=0;}else p=p->next;}if(flag)else if(p->use==3)printf("用途:学习\n");elseprintf("用途:其它\n");printf("使用人姓名:%s",p->name);printf("\n\n\n\n");getchar();flag=0;}else p=p->next;}if(flag)printf("没有查到\n");}void Update1(Pointer1 Head1) //修改收入{int flag=1;int number;Pointer1 p;if(flag)printf("没有找到要修改的记录!!\n");Sleep(300);}void Update2(Pointer2 Head2) //修改支出{int flag=1,b;int number;Pointer2 p;printf("请输入要修改的编号:");scanf("%d",&number);p=Head2;while(p!=NULL&&flag){if(p->number==number){printf("请输入新的支出:");scanf("%d",&p->output);printf("请输入新的支出时间:\n");void Delete1(Pointer1 *Head1) //删除收入{int flag=1;int number;Pointer1 p,q;printf("请输入要删除数据的编号:");scanf("%d",&number);p=q=*Head1;while(p!=NULL&&flag){ if(p->number==number){if(p==*Head1){*Head1=p->next;free(p);}else{q->next=p->next;free(p);}flag=0;printf("记录已删除!!");printf("\n按任意键继续!\n");getchar();}{*Head2=p->next;free(p);}else{q->next=p->next;free(p);}flag=0;printf("记录已删除!!");printf("\n记录已删除,按任意键继续!\n"); getchar();}else{q=p;p=p->next;}}if(flag)printf("没有找到可以删除的数据!\n");}void Show1(Pointer1 Head1) //显示收入{Pointer1 p;p=Head1;printf("支出时间: %d年%d月%d日\n",p->year,p->month,p->day);if(p->use==1)printf("用途:吃喝\n");else if(p->use==2)printf("用途:娱乐\n");else if(p->use==3)printf("用途:学习\n");elseprintf("用途:其它\n");printf("使用人姓名:%s",p->name);printf("\n");p=p->next;}Sleep(1000);printf("\n按任意键继续!\n");getchar();}void Count1(Pointer1 Head1) //统计收入{int j;int b;printf("请输入您要统计的月份:"); scanf("%d",&j);switch(j){case 1:printf("该月份总计为:%lf\n",sum1);break;case 2:printf("该月份总计为:%lf\n",sum2);break;case 3:printf("该月份总计为:%lf\n",sum3);break;case 4:printf("该月份总计为:%lf\n",sum4);break;case 5:printf("该月份总计为:%lf\n",sum5);break;case 6:printf("该月份总计为:%lf\n",sum6);break;case 7:printf("该月份总计为:%lf\n",sum7);break;case 8:printf("该月份总计为:%lf\n",sum8);break;case 9:printf("该月份总计为:%lf\n",sum9);break;case 10:printf("该月份总计为:%lf\n",sum10);break;case 11:printf("该月份总计为:%lf\n",sum11);break;case 12:printf("该月份总计为:%lf\n",sum12);break;default:printf("错误选择!\n");break;}printf("请输入您要统计的学期:\n");printf("<1:上学期 2:下学期 3:退出>\n");printf("◆请选择(1-3):\n");scanf("%d",&b);default:printf("错误选择!\n");break;}Sleep(1000);printf("\n按任意键继续!\n");getchar();}void Counter_use(Pointer2 Head2) //按用途统计支出{int b;Pointer2 p;double sum1,sum2,sum3,sum4;sum1=sum2=sum3=sum4=0.0;p=Head2;while(p!=NULL){if(p->use==1)sum1=sum1+p->output;else if(p->use==2)sum2=sum2+p->output;else if(p->use==3)sum3=sum3+p->output;elsep=Head2;while(p!=NULL){switch(p->month){case 1:sum1=sum1+p->output;break; case 2:sum2=sum2+p->output;break; case 3:sum3=sum3+p->output;break; case 4:sum4=sum4+p->output;break; case 5:sum5=sum5+p->output;break; case 6:sum6=sum6+p->output;break; case 7:sum7=sum7+p->output;break;case 8:sum8=sum8+p->output;break;case 9:sum9=sum9+p->output;break;case 10:sum10=sum10+p->output;break; case 11:sum11=sum11+p->output;break; case 12:sum12=sum12+p->output;break; default:printf("错误选择!\n");break; }p=p->next;}printf("请输入您要统计的月份:");scanf("%d",&j);default: printf("错误选择!\n");break; }}【设计体会】通过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。
C语言程序设计个人财务管理系统
程序设计工程训练报告C语言程序设计个人财务管理系统课程名称C语言程序设计工程训练姓名院(系)信息科学与技术学院专业班级学号指导教师教务处制目录1.需求分析 (1)2系统总框图和功能模块说明 (1)2.1系统总框图 (1)2.2功能模块说明 (1)3系统设计 (3)3.1主要结构体 (3)3.2主要功能函数 (3)4系统调试 (3)4.1、程序开始执行时系统的所显示的页面: (3)4.2、选择退出系统: (3)4.3、选择登陆,并且输入的帐号和密码都正确: (4)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语言进行简单管理类程序的开发能力。
具体目标如下:1.知识目标:•理解管理类的概念和原理。
•掌握管理类的常见操作和应用。
•熟悉C语言中管理类的相关语法和用法。
2.技能目标:•能够使用C语言编写简单的管理类程序。
•能够运用管理类的原理解决实际问题。
•具备基本的调试和优化代码的能力。
3.情感态度价值观目标:•培养学生的编程兴趣,提高学生对C语言的热爱。
•培养学生解决问题的能力,增强学生的自信心。
•培养学生团队合作的精神,提高学生的沟通协作能力。
二、教学内容本课程的教学内容主要包括C语言中管理类的概念、原理和应用。
具体内容包括以下几个方面:1.管理类的概念和原理:介绍管理类的定义、特点和应用场景,解释管理类的基本原理和操作。
2.管理类的常见操作:讲解管理类的创建、删除、添加和查找等基本操作,以及相关的函数和方法。
3.C语言中管理类的语法和用法:介绍C语言中管理类的相关语法和用法,包括类的定义、成员变量和成员函数的声明和实现。
4.管理类的应用实例:通过实际案例分析,让学生了解管理类在实际编程中的应用和效果,培养学生解决问题的能力。
三、教学方法为了实现本课程的教学目标,我们将采用多种教学方法相结合的方式进行教学。
具体方法包括:1.讲授法:通过讲解管理类的概念、原理和语法,让学生掌握基本知识。
2.案例分析法:通过分析实际案例,让学生了解管理类的应用和效果,培养学生的解决问题的能力。
3.实验法:通过编写和调试管理类的程序,让学生亲自动手实践,提高学生的编程能力和调试能力。
4.讨论法:通过小组讨论和合作,让学生互相交流和学习,培养学生的团队合作能力和沟通能力。
四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选择合适的C语言教材,提供学生系统学习的基础知识。
2.参考书:提供相关的参考书籍,供学生进一步深入学习和参考。
C语言程序设计个人财务管理系统
程序设计工程训练陈述之阿布丰王创作C语言程序设计个人财务管理系统课程名称 C语言程序设计工程训练姓名院(系)信息科学与技术学院专业班级学号指导教师教务处制目录1.需求分析12系统总框图和功能模块说明12.1系统总框图12.2功能模块说明13系统设计23.1主要结构体23.2主要功能函数24系统调试34.1、程序开始执行时系统的所显示的页面:34.2、选择退出系统:34.3、选择登陆,而且输入的帐号和密码都正确:34.4、用户输入的帐号不正确:44.5、用户输入的帐号正确,密码不正确:4 4.6、用户进行具体操纵:55总结66源程序清单61.需求分析编写一个个人财务支出管理系统,主要解决的问题是作为一个系统而言,它所要面对不只是某一个人而言,而是要面对很多的用户。
那么想要解决这一问题,就必须要求这个系统能够存储许多用户的基本信息和记录。
同时也要求系统能够对分歧的用户的身份进行查找和验证。
在验证通过之后,在对其进行用户所要求的操纵。
作为一个财务支出系统,那么就要求对于用户关于金钱的每一项操纵都要有相应的记录,同时并允许用户对于每一条整体的记录进行操纵,例如可以根据时间来查找某一确定日期是否进行了收入或者支出的操纵,也可以根据特定的需要来删除某一条整体的记录。
但不允许对每条记录的单项数据进行更改,因为不管是收入还是支出,所涉及的金额都是固定的,时间也是固定的,所以系统不允许用户对其进行操纵。
除此之外,还必须有足够大的空间来存储新的记录。
所以此程序就是基于这个思想而编写出来的,基本满足了用户对于一个财务支出管理系统所要求的相关功能。
2系统总框图和功能模块说明2.1系统总框图2.2功能模块说明(1)old_record( ):此函数由系统自行调用,作用是将所有用户信息存入系统。
(2)void save( ): 此函数的作用是将结构体数组中的信息写入文件存储,由系统调用。
(3)load( ):此函数的作用是将结构体数组中写入文件的信息读出,由系统调用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言课程设计-班级财务管理(总20页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除学生姓名:金灿学生学号:所在班级:软件一班任课教师:熊英班级财务管理系统【设计目的】设计一个班级财务管理系统,该程序具有以下功能:(1)用户登录:输入用户名和密码,并判断是管理员还是普通成员,管理员和普通成员具有不同的功能选择界面。
(2)录入信息:各项财务信息(包括用途、收入、支出、收入(或支出)时间、总计、使用人等。
)。
(3)修改班级成员信息。
(4)删除班级成员信息。
(5)查询班级财务状况。
(6)统计班级财务情况:班级每月共收入、支出各多少,整个学期共收入、支出多少。
(7)分类统计:根据用途对支出进行统计排序输出【设计思路】根据要求,班级财务数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。
【总体设计】图1 系统功能模块图【详细设计】1.主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】图2. 主函数流程图附录:源代码#include<stdio.h>#include<string.h>#include<stdlib.h>#include<windows.h>typedef struct income_info{int number;double income;int month;int day;int year;char name[50];struct income_info * next;}IncomeLink,* Pointer1;typedef struct output_info{int number;double output;int month;int day;int year;int use;char name[50];struct output_info * next;}OutputLink,* Pointer2;int Select(void); //收入和支出管理选择函数void Insert1(Pointer1 * Head1);void Insert2(Pointer2 * Head2);void Search1(Pointer1 Head1);void Search2(Pointer2 Head2);void Update1(Pointer1 Head1);void Update2(Pointer2 Head2);void Delete1(Pointer1 *Head1);void Delete2(Pointer2 *Head2);void Show1(Pointer1 Head1);void Show2(Pointer2 Head2);void Count1(Pointer1 Head1);void Count2(Pointer2 Head2);int n,k;int main(){ void printf_message1();void menu();char m[7];char M[7];char num[15];int i,j;long sum;Pointer1 Head1=NULL;Pointer2 Head2=NULL;printf("★*********************欢迎使用班级财务管理系统*******************★\n");printf(" 请输入你的帐号(即你的学号):");gets(num);for(i=4;i<10;i++)m[i-4]=num[i];m[6]='\0';for(i=0;i<10;i++)num[i]=num[i]-48;{printf("请输入密码(密码为学号的后六位}:");gets(M);if(strcmp(m,M)==0){printf("登陆成功!!\n");printf("正为你转接,请稍候。
\n");Sleep(1000);{printf("★**************************************************************************★\n");printf("★*********************欢迎使用班级财务管理系统(管理员版)*******************★\n");printf(" ★**************************************************************************★\n\n\n"); Sleep(1000);system("cls");do{printf_message1();scanf("%d",&j);switch(j){case 1: k=Select();if(k==1)Insert1(&Head1);elseif(k==2)Insert2(&Head2);elseprintf("错误选择!\n\n\n\n");break;case 2: k=Select();if(k==1)Search1(Head1);elseif(k==2)Search2(Head2);elseprintf("错误选择!\n\n\n\n");break;case 3: k=Select();if(k==1)Update1(Head1);elseif(k==2)Update2(Head2);elseprintf("错误选择!\n\n\n\n");break;case 4: k=Select();if(k==1)Delete1(&Head1);elseif(k==2)Delete2(&Head2);elseprintf("错误选择!\n\n\n\n");break;case 5: k=Select();if(k==1)Show1(Head1);if(k==2)Show2(Head2);elseprintf("错误选择!\n\n\n\n");break;case 6: k=Select();if(k==1)Count1(Head1);elseif(k==2)Count2(Head2);elseprintf("错误选择!\n\n\n\n");break;case 0: break;default:printf("错误选择!\n");break;}}while(j!=0);}else{printf("★**************************************************************************★\n");printf("★*********************欢迎使用班级财务管理系统(普通用户版)*****************★\n");printf("★**************************************************************************★\n\n\n"); Sleep(1000);system("cls");do{menu();scanf("%d",&j);switch(j){case 1: k=Select();if(k==1)Insert1(&Head1);elseif(k==2)Insert2(&Head2);elseprintf("错误选择!\n\n\n\n");case 2: k=Select();if(k==1)Search1(Head1);elseif(k==2)Search2(Head2);elseprintf("错误选择!\n\n\n\n");break;case 3: k=Select();if(k==1)Show1(Head1);elseif(k==2)Show2(Head2);elseprintf("错误选择!\n\n\n\n");break;case 4: k=Select();if(k==1)Count1(Head1);elseif(k==2)Count2(Head2);elseprintf("错误选择!\n\n\n\n");break;case 0: break;default:printf("错误选择!\n\n\n\n");break;}}while(j!=0);}return 0;}else printf("密码错误!请查证后再来!!\n");}else printf("用户名不存在!请验证后再输!!\a\n");return 0;}void printf_message1(){ printf(" ★**************************************************************★\n"); printf(" *******************★欢迎使用财务管理系统★*******************\n");printf(" **************************************************************\n");printf(" \n");printf(" ☆1 . 添加财务信息 \n");printf(" ☆2 . 查询财务信息 \n");printf(" ☆3 . 修改财务信息 \n");printf(" ☆4 . 删除财务信息 \n");printf(" ☆5 . 显示财务信息 \n");printf(" ☆6 . 统计财务信息 \n");printf(" ☆7 . 读取数据库 \n");printf(" ☆0 . 退出系统 \n");printf(" \n");printf(" ★**************************************************************★\n"); printf("◆请选择(0-7):\n");}void menu(){ printf(" ★**************************************************************★\n"); printf(" *******************★欢迎使用财务管理系统★*******************\n"); printf(" **************************************************************\n"); printf(" \n");printf(" ☆1 . 添加财务信息 \n");printf(" ☆2 . 查询财务信息 \n");printf(" ☆3 . 显示财务信息 \n");printf(" ☆4 . 统计财务信息 \n");printf(" ☆5 . 保存一个新数据库 \n");printf(" ☆6 . 读取数据库 \n");printf(" ☆0 . 退出系统 \n");printf(" \n");printf(" ★**************************************************************★\n"); printf("◆请选择(0-6):\n");}int Select(void) //第二次选择的函数{int w;printf(" ★**************************************************************★\n");printf(" *******************★欢迎使用财务管理系统★******************* \n");printf(" ************************************************************** \n");printf(" \n");printf(" ☆1 . 收入 \n");printf(" ☆2 . 支出 \n");printf(" \n");printf(" ★**************************************************************★\n");printf("◆◆◆请选择(1-2):\n");scanf("%d",&w);return(w);}void Insert1(Pointer1 *Head1) //添加收入{int in_number;Pointer1 p,q,r;printf("请输入编号: ");scanf("%d",&in_number);p=q=*Head1;while(p!=NULL){if(p->number==in_number){printf("已经有相同的编号:");printf("\n按任意键继续!\n");getchar();return;}else{q=p;p=p->next;}}r=(Pointer1)malloc(sizeof(IncomeLink));r->next=NULL;if(r==NULL){printf("分配空间失败\n");return;}if(q==NULL)*Head1=r;elseq->next=r;r->number=in_number;printf("请输入收入金额(单位:元):");scanf("%lf",&r->income);printf("请输入收入时间:\n");printf("年:");scanf("%d",&r->year);printf("月:");scanf("%d",&r->month);printf("日:");scanf("%d",&r->day);printf("请输入您的姓名:");scanf("%s",r->name);printf("\n\n\n\n");Sleep(300);}void Insert2(Pointer2 *Head2) //添加支出{int in_number;Pointer2 p,q,r;printf("请输入编号: ");scanf("%d",&in_number);p=q=*Head2;while(p!=NULL){if(p->number==in_number){printf("已经有相同的编号:");printf("\n按任意键继续!\n");getchar();return;}else{q=p;p=p->next;}}r=(Pointer2)malloc(sizeof(IncomeLink));r->next=NULL;if(r==NULL){printf("分配空间失败\n");return;}if(q==NULL)*Head2=r;elseq->next=r;r->number=in_number;printf("请输入支出金额(单位:元):");scanf("%lf",&r->output);printf("请输入支出时间:\n");printf("年:");scanf("%d",&r->year);printf("月:");scanf("%d",&r->month);printf("日:");scanf("%d",&r->day);printf("请输入用途:");printf("<1:吃喝(eat) 2:娱乐(amusement) 3:学习(studying) 4:其它(other)>\n"); printf("◆请选择(1-4):\n");scanf("%d",&r->use);printf("请输入使用人名称:");scanf("%s",r->name);Sleep(300);void Search1(Pointer1 Head1) //查询收入{int flag=1;int number1;Pointer1 p;printf("请输入查询的编号:");scanf("%d",&number1);p=Head1;while(p!=NULL&&flag){if(p->number==number1){printf("收入金额:%lf元\n",p->income);printf("收入时间:\n");printf("年:%d,月:%d,日:%d\n",p->year,p->month,p->day);printf("姓名:%s",p->name);printf("\n\n\n\n");getchar();flag=0;}else p=p->next;}if(flag){printf("没有查到\n");printf("\n\n\n\n");getchar();}}void Search2(Pointer2 Head2) //查询支出{void Search_name(Pointer2 Head2);void Search_number(Pointer2 Head2);int i;printf("请选择查询的方式:\n");printf("1.姓名 2.编号\n");scanf("%d",&i);switch(i){case 1:Search_name(Head2);break;case 2:Search_number(Head2);break;Sleep(1000);printf("\n\n\n\n");getchar();}void Search_name(Pointer2 Head2) //支出查询函数(姓名){int flag=1;char name[50];Pointer2 p;printf("请输入查询的姓名:");scanf("%s",name);p=Head2;while(p!=NULL&&flag){if(strcmp(p->name,name)==0){printf("支出金额:%lf元\n",p->output);printf("支出时间:\n");printf("年:%d,月:%d,日:%d\n",p->year,p->month,p->day);if(p->use==1)printf("用途:吃喝\n");elseif(p->use==2)printf("用途:娱乐\n");elseif(p->use==3)printf("用途:学习\n");elseprintf("用途:其它\n");printf("使用人姓名:%s",p->name);printf("\n按任意键继续!\n");getchar();flag=0;}else p=p->next;}if(flag)printf("没有查到\n");}void Search_number(Pointer2 Head2) //支出查询函数(编号){int flag=1;long number;Pointer2 p;printf("请输入查询的编号:");scanf("%ld",&number);p=Head2;while(p!=NULL&&flag){if(p->number==number){printf("支出金额:%lf元\n",p->output);printf("支出时间:\n");printf("年:%d,月:%d,日:%d\n",p->year,p->month,p->day); if(p->use==1)printf("用途:吃喝\n");else if(p->use==2)printf("用途:娱乐\n");else if(p->use==3)printf("用途:学习\n");elseprintf("用途:其它\n");printf("使用人姓名:%s",p->name);printf("\n\n\n\n");getchar();flag=0;}else p=p->next;}if(flag)printf("没有查到\n");}void Update1(Pointer1 Head1) //修改收入{int flag=1;int number;Pointer1 p;printf("请输入要修改的编号:");scanf("%d",&number);p=Head1;while(p!=NULL&&flag){if(p->number==number){printf("请输入新的收入:");scanf("%d",&p->income);printf("请输入新的收入时间:\n");printf("年:");scanf("%d",&p->year);printf("月:");scanf("%d",&p->month);printf("日:");scanf("%d",&p->day);printf("请输入新的姓名:");scanf("%s",p->name);flag=0;printf("记录已修改\n");}elsep=p->next;}if(flag)printf("没有找到要修改的记录!!\n");Sleep(300);}void Update2(Pointer2 Head2) //修改支出{int flag=1,b;int number;Pointer2 p;printf("请输入要修改的编号:");scanf("%d",&number);p=Head2;while(p!=NULL&&flag){if(p->number==number){printf("请输入新的支出:");scanf("%d",&p->output);printf("请输入新的支出时间:\n");printf("年:");scanf("%d",&p->year);printf("月:");scanf("%d",&p->month);printf("日:");scanf("%d",&p->day);printf("请选择新的用途:");printf("<1:吃喝(eat) 2:娱乐(amusement) 3:学习(studing) 4:其它(other)>\n"); printf("◆请选择(1-4):\n");scanf("%d",&b);p->use=b;printf("请输入新的使用人名称:");scanf("%s",p->name);flag=0;printf("记录已修改\n");}elsep=p->next;}if(flag)printf("没有找到要修改的记录!!\n");Sleep(300);}void Delete1(Pointer1 *Head1) //删除收入{int flag=1;int number;Pointer1 p,q;printf("请输入要删除数据的编号:");scanf("%d",&number);p=q=*Head1;while(p!=NULL&&flag){ if(p->number==number){if(p==*Head1){*Head1=p->next;free(p);}else{q->next=p->next;free(p);}flag=0;printf("记录已删除!!");printf("\n按任意键继续!\n");getchar();}else{q=p;p=p->next;}}if(flag){printf("没有找到可以删除的数据");printf("\n按任意键继续!\n");getchar();}}void Delete2(Pointer2 *Head2) //删除支出{int flag=1;int number;Pointer2 p,q;printf("请输入要删除数据的编号:");scanf("%d",&number);p=q=*Head2;while(p!=NULL&&flag){ if(p->number==number){if(p==*Head2){*Head2=p->next;free(p);}else{q->next=p->next;free(p);}flag=0;printf("记录已删除!!");printf("\n记录已删除,按任意键继续!\n");getchar();}else{q=p;p=p->next;}}if(flag)printf("没有找到可以删除的数据!\n");}void Show1(Pointer1 Head1) //显示收入{Pointer1 p;p=Head1;while(p!=NULL){printf("编号:%d\n",p->number);printf("收入金额:%lf元\n",p->income);printf("收入时间: %d年%d月%d日\n",p->year,p->month,p->day);printf("姓名:%s",p->name);printf("\n");p=p->next;}Sleep(1000);printf("\n按任意键继续!\n");getchar();}void Show2(Pointer2 Head2) //显示支出{Pointer2 p;p=Head2;while(p!=NULL){printf("编号:%d\n",p->number);printf("支出金额:%lf\n",p->output);printf("支出时间: %d年%d月%d日\n",p->year,p->month,p->day);if(p->use==1)printf("用途:吃喝\n");else if(p->use==2)printf("用途:娱乐\n");else if(p->use==3)printf("用途:学习\n");elseprintf("用途:其它\n");printf("使用人姓名:%s",p->name);printf("\n");p=p->next;}Sleep(1000);printf("\n按任意键继续!\n");getchar();}void Count1(Pointer1 Head1) //统计收入{int j;int b;double sum1;double sum2,sum3,sum4,sum5,sum6,sum7,sum8,sum9,sum10,sum11,sum12;Pointer1 p;p=Head1;sum1=sum2=sum3=sum4=sum5=sum6=sum7=sum8=sum9=sum10=sum11=sum12=0.0;while(p!=NULL){switch(p->month){case 1:sum1=sum1+p->income;break;case 2:sum2=sum2+p->income;break;case 3:sum3=sum3+p->income;break;case 4:sum4=sum4+p->income;break;case 5:sum5=sum5+p->income;break;case 6:sum6=sum6+p->income;break;case 7:sum7=sum7+p->income;break;case 8:sum8=sum8+p->income;break;case 9:sum9=sum9+p->income;break;case 10:sum10=sum10+p->income;break;case 11:sum11=sum11+p->income;break;case 12:sum12=sum12+p->income;break;default:printf("错误选择!\n");break;}p=p->next;}printf("请输入您要统计的月份:");scanf("%d",&j);switch(j){case 1:printf("该月份总计为:%lf\n",sum1);break;case 2:printf("该月份总计为:%lf\n",sum2);break;case 3:printf("该月份总计为:%lf\n",sum3);break;case 4:printf("该月份总计为:%lf\n",sum4);break;case 5:printf("该月份总计为:%lf\n",sum5);break;case 6:printf("该月份总计为:%lf\n",sum6);break;case 7:printf("该月份总计为:%lf\n",sum7);break;case 8:printf("该月份总计为:%lf\n",sum8);break;case 9:printf("该月份总计为:%lf\n",sum9);break;case 10:printf("该月份总计为:%lf\n",sum10);break;case 11:printf("该月份总计为:%lf\n",sum11);break;case 12:printf("该月份总计为:%lf\n",sum12);break;default:printf("错误选择!\n");break;}printf("请输入您要统计的学期:\n");printf("<1:上学期 2:下学期 3:退出>\n");printf("◆请选择(1-3):\n");scanf("%d",&b);switch(b){case 1: printf("上学期的总计为:%lf\n",sum2+sum3+sum4+sum5+sum6+sum7);break;case 2: printf("上学期的总计为:%lf\n",sum1+sum8+sum9+sum10+sum11+sum12);break; case 3: break;default: printf("错误选择!\n");break;}}void Count2(Pointer2 Head2) //统计支出{void Counter_use(Pointer2 Head2);void Counter_time(Pointer2 Head2);int i;printf("请选择统计的方式:\n");printf("1.按用途 2.按时间\n");scanf("%d",&i);switch(i){case 1:Counter_use(Head2);break;case 2:Counter_time(Head2);break;default:printf("错误选择!\n");break;}Sleep(1000);printf("\n按任意键继续!\n");getchar();}void Counter_use(Pointer2 Head2) //按用途统计支出{int b;Pointer2 p;double sum1,sum2,sum3,sum4;sum1=sum2=sum3=sum4=0.0;p=Head2;while(p!=NULL){if(p->use==1)sum1=sum1+p->output;else if(p->use==2)sum2=sum2+p->output;else if(p->use==3)sum3=sum3+p->output;elsesum4=sum4+p->output;p=p->next;}printf("请选择您要统计的用途:");printf("<1:吃喝 2:娱乐 3:学习 4:其它>\n");printf("◆请选择(1-4):\n");scanf("%d",&b);switch(b){case 1: printf("在该用途上的支出为:%lf\n",sum1);break;case 2: printf("在该用途上的支出为:%lf\n",sum2);break;case 3: printf("在该用途上的支出为:%lf\n",sum3);break;case 4: printf("在该用途上的支出为:%lf\n",sum4);break;default: printf("错误选择!\n");break;}}void Counter_time(Pointer2 Head2) //按时间统计支出{int j;int b;Pointer2 p;double sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8,sum9,sum10,sum11,sum12;sum1=sum2=sum3=sum4=sum5=sum6=sum7=sum8=sum9=sum10=sum11=sum12=0.0;p=Head2;while(p!=NULL){switch(p->month){case 1:sum1=sum1+p->output;break;case 2:sum2=sum2+p->output;break;case 3:sum3=sum3+p->output;break;case 4:sum4=sum4+p->output;break;case 5:sum5=sum5+p->output;break;case 6:sum6=sum6+p->output;break;case 7:sum7=sum7+p->output;break;case 8:sum8=sum8+p->output;break;case 9:sum9=sum9+p->output;break;case 10:sum10=sum10+p->output;break;case 11:sum11=sum11+p->output;break;case 12:sum12=sum12+p->output;break;default:printf("错误选择!\n");break;}p=p->next;}printf("请输入您要统计的月份:");scanf("%d",&j);switch(j){case 1:printf("该月份总计为:%lf\n",sum1);break;case 2:printf("该月份总计为:%lf\n",sum2);break;case 3:printf("该月份总计为:%lf\n",sum3);break;case 4:printf("该月份总计为:%lf\n",sum4);break;case 5:printf("该月份总计为:%lf\n",sum5);break;case 6:printf("该月份总计为:%lf\n",sum6);break;case 7:printf("该月份总计为:%lf\n",sum7);break;case 8:printf("该月份总计为:%lf\n",sum8);break;case 9:printf("该月份总计为:%lf\n",sum9);break;case 10:printf("该月份总计为:%lf\n",sum10);break;case 11:printf("该月份总计为:%lf\n",sum11);break;case 12:printf("该月份总计为:%lf\n",sum12);break;default:printf("错误选择!\n");break;}printf("请输入您要统计的学期:\n");printf("<1:上学期 2:下学期 3:退出>\n");printf("◆请选择(1-3):\n");scanf("%d",&b);switch(b){case 1: printf("上学期的总计为:%lf\n",sum2+sum3+sum4+sum5+sum6+sum7);break;case 2: printf("上学期的总计为:%lf\n",sum1+sum8+sum9+sum10+sum11+sum12);break; case 3: break;default: printf("错误选择!\n");break;}}【设计体会】通过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。