班费管理系统课程设计报告
计算机科学与技术系
课程设计报告
20 ~20 学年第学期
课程C语言课程设计
课程设计名称班级班费管理系统
学生姓名
学号
专业班级
指导教师
20 年月
班级班费管理系统
目录
班级班费管理系统 (2)
目录 (2)
一、需求分析 (3)
二、算法设计 (4)
(一)设计思想 (4)
1.程序结构(流程图) (4)
2. 重要的数据结构 (5)
3. 主要算法思想 (5)
(二)设计表示 (5)
(三)实现注释 (7)
(四)算法设计中一些新的想法 (7)
三、用户手册 (7)
四、调试及测试 (8)
五、小结 (8)
六、参考文献 (9)
附录 (9)
测试数据 (9)
一、需求分析
本程序是班级班费管理系统,主要作用是帮助管理班级班费事务,以月份的形式管理班级班费账目,包括班费支出的时间、经手人、金额和原因。要求具有备忘录班级班费管理和班费信息查看的功能。其中班级班费管理包括班费支出增加和删除功能。班费信息查看包括按月份查看和整体查看。要求具有备忘录班级班费管理和班费信息查看的功能。其中班级班费管理包括班费支出增加和删除功能。班费信息查看包括按月份查看和整体查看。程序设计需要运用面向过程的程序设计方法,要求选择动态数组,任务中要运用对文件进行读写操作。根据要求,本程序提供的基本管理功能有:
(一)添加:即增加一条班费支出到班费项目中;
(二)显示:即在屏幕上显示所有班费支出中的信息。
(三)存储:即将班费支出信息保存在一个文件中。
(四)装入:即将文件中的信息读入程序。
(五)查询:可根据月份查找班费支出信息,若找到,显示在屏幕上。
(六)删除:可删除某月份的班费支出信息。
二、算法设计(一)设计思想
1.程序结构(流程图)
2. 重要的数据结构
typedef struct ClassFee
{
int month; // 月份
float money; //每月班费金额
char people[20]; //班费支出经手人
char reason[100]; //班费支出原因
}CF;
3. 主要算法思想
本程序主要运用面向过程的程序设计方法。在界面制作中,运用开关语句switch,通过输入数字,选择主菜单下的子菜单项目,并运用库函数system(“cls”)和system(“pause”)进行清屏和暂停操作,使界面更加清晰美观。在各个子菜单中,分别通过调用子函数的方式来进行班费支出的增加、删除和查询操作。在增加、删除和查询函数中,运用结构体数组和文件操作,实现增加、删除和查询功能。
(二)设计表示
模块一 void Menu():主菜单函数,是进入系统的第一界面,用来让用户选择进入管理员模式或普通用户模式或退出系统,用户通过输入选择的数字来调用各个子函数进入各个模式。若输入错误,则会被要求重新输入。本函数运用开关语句switch以及调用子函数来实现功能。
模块二 void Land():管理员登陆函数,用来让管理员登陆系统,需要用户名和密码。若用户名输入错误,则无法登陆,会返回主菜单。若用户名输入正确,会继续被要求输入密码,这是调用到子函数int Key()。若密码输入错误,则会被要求再次输入密码。如果输入三次密码都是错误的,则无法再次输入密码,程序会提示“对不起!您已经错误输入三次,无法再次输入,按回车键返回主菜单。”,界面返回主菜单。
若密码输入正确,会调转到子函数void Administrators()界面。本函数运用开关语句switch以及调用子函数int Key()和void Administrators()来实现功能。
模块三 void Administrators():管理员模式函数,用来让管理员选择增加支出\或删除支出\或查询日志\或返回主菜单,用户通过输入选择的数字来调用各个子函数进入各个功能。若输入错误,则会被要求重新输入。本函数运用开关语句switch以及调用子函数来实现功能。
模块四 void Users():普通用户模式函数,用来让普通用户选择查询日志或或返回
主菜单,用户通过输入选择的数字来调用各个子函数进入各个功能。若输入错误,则会被要求重新输入。本函数运用开关语句switch以及调用子函数来实现功能。
模块五 int Read():读取文件信息函数,用来读取文件"日志.txt"中共有多少条信息并返回信息总数目i。本函数运用文件打开、读取和关闭操作以及结构体数组和指针来实现功能。
模块六 void Output():输出文件内容函数,用来输出文件"日志.txt"的内容。本函数运用文件打开、读取、输出和关闭操作以及结构体数组和指针来实现功能。
模块七 void Choose():查询文件内容菜单函数,用来让普通用户选择按月查询或查询所有或返回主菜单,用户通过输入选择的数字来调用各个子函数进入各个功能。若输入错误,则会被要求重新输入。本函数运用开关语句switch以及调用子函数来实现功能。
模块八 void Delete():删除文件内容函数,用来让管理员删除文件内容。屏幕首先显示全部文件内容,然后显示“请输入你想要删除的月份:”,管理员输入数字,屏幕输出删除后的文件的全部内容,并将删除后的文件的全部内容打印到"更新后的日志.txt"。之后,屏幕输出“请选择:1------返回上一级菜单 2------返回主菜单”,管理员输入数字,通过调用子函数void Administrators()和void Menu()来调转界面。若输入错误,则会被要求重新输入。本函数运用开关语句switch、文件打开、读取、打印和关闭操作、结构体数组、指针以及调用子函数void Administrators()、int Read()和void Menu()来实现功能。
模块九 void Add():增加文件内容函数,用来让管理员增加文件内容。屏幕首先显示“请输入你要增加的支出信息(请依次输入时间(月份)、经办人姓名、金额和原因)”,管理员输入相应内容,屏幕首先输出管理员增加的内容,然后输出增加后的文件的全部内容,并将增加后的文件的全部内容打印到"更新后的日志.txt"。之后,屏幕输出“请选择:1------返回上一级菜单 2------返回主菜单”,管理员输入数字,通过调用子函数void Administrators()和void Menu()来调转界面。若输入错误,则会被要求重新输入。本函数运用开关语句switch、文件打开、读取、打印和关闭操作、结构体数组、指针以及调用子函数void Administrators()、int Read()和void Menu()来实现功能。
模块十 void consult():按月查询文件内容函数,用来让管理员和普通用户按月查询文件内容。屏幕首先显示“请输入你想要查询的月份:”,管理员和普通用户输入数字,屏幕输出该月的全部班费支出内容。之后,屏幕输出“请选择:1------返回上一级菜单2------返回主菜单”,管理员和普通用户输入数字,通过调用子函数void Choose()和void Menu()来调转界面。若输入错误,则会被要求重新输入。本函数运用开关语句switch、文件打开、读取、打印和关闭操作、结构体数组、指针以及调用子函数void Choose()、int Read()和void Menu()来实现功能。
模块十一 int Key():密码函数,用来让管理员输入密码,使用数组实现密码以“*”号形式输出。若输入的字符正确,则返回a=0;若输入的字符不正确,则返回a=1。本函
数运用字符串数组来实现功能。
模块十二 void main():本程序主函数。
(三)实现注释
任务中各项要求基本实现。在完成基本要求的基础上,本程序设计了管理员模式与普通用户模式。在管理员模式中,设计了用户名和密码模块。管理员必须输入正确的用户名,才能进一步输入密码,否则则无法进入管理员界面。在密码模块,设计了以“*”号形式输出密码的方式,而若输入密码错误超过三次,就无法进入管理员界面。而在各界面的调转方面,通过运用库函数system(“cls”)和system(“pause”)来实现清屏和暂停功能。
(四)算法设计中一些新的想法
本程序可以使用链表。链表可以将结构体、数组、指针等C语言的基本元素融合在一起,它最大的好处是可以非常方便地在链表中实现插入、删除节点操作。本程序具有的增加、删除功能,正可以创建一个链表来实现这些功能。而本程序采用结构体数组的方法,对于增加、删除功能编写的代码较为繁琐,不如链表的操作简洁方便。但是,我对于链表操作不太熟练,把握不大,因此采用了结构体数组的方法。在之后的学习中,我会加强对链表知识的学习,实现使用链表来编写本程序。
三、用户手册
用户进入系统后,首先在主菜单界面选择要进入的模式:管理员模式或普通用户模式或退出,输入数字1或2或3,如果输入其他字符,则屏幕会输出“输入错误!请重新输入:”,并且调转回主菜单界面。
例如:输入1后,系统进入管理员登陆界面,用户需要输入用户名,如果用户名错误,则屏幕会输出“请输入您的用户名,按回车键结束:”,并且调转回主菜单界面。如果用户名正确,则系统会继续要求用户输入密码。如果密码错误,则屏幕会输出“密码错误!请重新输入:”,若输入密码错误三次,则屏幕会输出“对不起!您已经错误输入三次,无法再次输入,按回车键返回主菜单。”,并且调转回主菜单界面。如果密码正确,则会调转到管理员界面。用户可以选择进入的功能:增加支出或删除支出或查询日志或返回主菜单,输入数字1或2或3或4,如果输入其他字符,则屏幕会输出“输入错误!请重新输入:”,并且调转回管理员界面。例如:输入1后,屏幕显示“请输入你要增加的支出信息(请依次输入时间(月份)、经办人姓名、金额和原因)”,用户输入相应的信息后,屏幕首先输出用户增加的内容,然后输出增加后的文件的全部内容,并将增加后的文件的全部内容打印到"更新后的日志.txt"。之后,屏幕输出“请选择:1------返回上一级菜单
2------返回主菜单”,输入数字1或2,如果输入其他字符,则屏幕会输出“输入错误!请重新输入:”。输入1后,会返回管理员界面。输入2后,会返回主菜单界面。
用户在进行操作时,根据屏幕输出的提示进行输入操作,输入数字或文字,在输入完成后,按回车键结束操作。
四、调试及测试
在程序的调试及测试过程中,程序出现的问题有:
(1)由于粗心,一些符号为中文格式,这些错误但是“Ox”开头的。
(2)密码函数编写错误。一开始定义密码函数为void型,无法返回值,后来改为int 型后,函数正确了。
(3)增加支出函数编写错误。运用结构体数组来编写增加支出函数,循环体较为复杂,在经过多次的修改过后,终于确定了最终正确的循环体。
(4)删除支出函数编写错误。运用结构体数组来编写增加支出函数,循环体较为复杂,在经过多次的修改过后,终于确定了最终正确的循环体。
(5)编程开始没有运用库函数system(“cls”)和system(“pause”)来实现清屏和暂停功能,因此输出界面较为冗长,后来经过查资料,学习了这两个库函数,使得系统实现了清屏和暂停功能。
(6)在文件操作中,读取文件内容时,一开始忘记了要读取题目,导致测试时多次死循环,之后发现了这个错误,定义变量读出题目后,文件操作正确了。
五、小结
经过一个星期的课程设计,我将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,我进一步巩固、加深了所学专业课程《C 程序设计语言》的基本理论知识,理论联系实际,进一步培养了综合分析问题,解决问题的能力。课程设计全面考核了我所掌握的基本理论知识及实际业务能力,从而达到提高我素质的最终目的。利用所学知识,我开发小型应用系统,掌握运用C 语言编写调试应用系统程序,训练了独立开发应用系统,进行数据处理的综合能力。在课程设计后,我掌握了结构化程序设计方法,熟悉了面向过程程序设计方法,熟练了掌握C 语言的基本语法,灵活运用了各种数据类型,进一步掌握在集成环境下如何调试程序和修改程序。课程设计的过程虽然很辛苦,但付出终有回报,计算机编程水平的提高就是对我最大的回报!
六、参考文献
[1]黄明等编著《C语言课程设计》北京:电子工业出版社
[2]郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社
[3] 宁正元《数据结构(c语言)》南京:东南大学出版社。2000年6月第1版
[4] 严蔚敏等《数据结构(c语言版)》北京:清华大学出版社,1997年4月第1版
[5] 谭浩强编著《C程序设计题解与上机指导(第3版) 》北京:清华大学出版社
[6] 谭浩强编著《C程序设计(第3版) 》北京:清华大学出版社
[7] 洪国胜等编著《C++ Builder程序设计轻松上手》北京:清华大学出版社
[8] 宁正元《数据结构(c语言)》南京:东南大学出版社。2000年6月第1版
[9] 严蔚敏等《数据结构(c语言版)》北京:清华大学出版社,1997年4月第1版。
[10] 明日科技编著《Visual C++程序开发范例宝典》北京:人民邮电出版社。
[11] 胡学钢等《数据结构算法设计指导》北京:清华大学出版社,1999年第1版。
[12] 刘大有《数据结构》(面向21世纪课程教材)北京:高等教育出版社。2001年6月第1版。
附录
测试数据
1.进入主界面:
2.输入错误:
3.管理员登陆界面:
4.用户名错误:
5.用户名正确,输入密码:
6.密码错误:
7.三次密码错误:
8.登陆成功:
9.进入管理员界面:
10.增加支出:
11.增加支出后:
12. 原文件:
13.增加支出后的文件:
14.删除支出:
15.删除支出后:
16. 删除支出后的文件:
17.进入普通用户界面:
18.查询日志:
19.按月查询:
20查询结果:
财务管理系统设计与实现
第七章财务管理系统设计与实现 §7.1 财务管理系统业务简介 一、财务管理业务概述 企业财务管理是基于企业再生产过程中客观存在的财务活动和财务关系而产生的,根据企业再生产过程中的资金运动,工业企业财务管理的内容包括:固定资金管理、流动资金管理、专用资金管理、产品成本管理、销售收入管理、企业纯收入和财务支出管理等。其中固定资金管理是指垫支在劳动资料上的资金(包括:厂房、机器设备等固定资产);流动资金是指垫支在劳动对象上的资金(包括:原材料、燃料、在产品、产成品、银行存款及各种结算项目);专用资金是指具有专门用途的资金(包括:生产发展基金、更新改造基金、新产品试制基金、大修理基金等);成本管理将在下一章中详细介绍。 二、财务管理工作的具体内容 1.凭证 凭证的制作和管理是财务工作的一项重要内容,所有的财务活动都要通过制作凭证才能记入相应的帐目。当经济活动发生后,财务人员要收集业务的原始凭证(发票、入出库单等),并根据业务活动涉及的财务科目填写相应的凭证分录,制成记帐凭证。在一段时间后要将凭证归类装订成册以备检查。财务涉及的凭证一般包括:收款凭证、付款凭证和转帐凭证。 2.记帐 在凭证制作完成后,由会计人员对凭证进行审核,检查凭证制作是否正确,然后再根据凭证涉及的科目登记相应的明细分类帐和总帐。 3.银行帐 企业银行帐因为牵涉到流动资金的管理,所以管理起来较为严格,需要计算每天的收入、支出并结出余额。另外银行帐管理还包括银行对帐业务。企业的开户银行为企业设立一本收入、支出明细帐,而企业本身也有银行存款收入、支出的日记帐,这两本张之间就存在着一个对帐问题。银行定期给企业发出银行对帐单,企业根据对帐单上银行帐的收入、支出记录和自己记的银行日记帐记录进行核对,将对上的记录销掉,查找出哪些记录是银行未作登帐的(银行未达帐),哪些记录是企业未登帐的(企业未达帐),并制作出未达帐调节表。 4.往来帐 往来帐是指企业与往来户(客户、供应商)之间发生的应收款、预收款、应付款、预付款业务。往来业务量对企业来说一般是比较多的。要管理好每一个往来户的每一笔往来款,首先要对往来户单独设立帐户,将每一笔应收、应付款详细记录清楚;当收款或付款时,将收到或付出的款项逐笔分配到应收或应付款记录中进行勾对,销掉应收或应付款记录。这是一项比较复杂而繁琐的工作。 5.报表及财务分析 企业每个核算期末都要制作报表,上报上级单位和财政税务部门。各类财务报表从不同角度反映企业的经营和财务状况,报表主要有:资产负债表、利润表和财务状况变动表。 财务工作还能及时为企业领导提供相关的财务数据信息,如:资金使用情况,企业赢利
学生信息管理系统概要设计
第5章学生管理系统概要设计 5.1引言 5.1.1编写目的 由于现在的学校规模在逐渐的扩大,设置的专业类别、分支机构及老师、学生人数越来越多,对于过去的学生信息管理系统,不能满足当前学生信息管理的服务性能要求。本报告对于开发新的<<学生信息管理系统>>面临的问题及解决方案进行初步的设计与合理的安排,对用户需求进行了全面细致的分析,更清晰的理解学生信息管理系统业务需求,深入描述软件的功能和性能与界面,确定该软件设计的限制和定义软件的其他有效性需求,对开发计划进行了总体的规划确定开发的需求与面临困难的可行性分析。 5.1.2背景 开发软件的名称:《学生信息管理系统》 项目提出者: 项目开发者: 用户:管理员、老师、学生 5.1.3定义 数据流图:简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。 数据字典:是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。 https://www.360docs.net/doc/4c9740085.html,:是一项微软公司的技术,是一种使嵌入网页中的脚本可由特网服务器执行的服务器端脚本技术。指 Active Server Pages(动态服务器页面),运行于 IIS 之中的程序。
C#:(C Sharp)是微软(Microsoft)为。NET Framework量身订做的程序语言,微软公司在2000年6月发布的一种新的编程语言。C#拥有C/C++的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C++与Java一样亦为对象导向(object-oriented)程序语言。 SQL:(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。 SQL Server 2005:SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应SQL Server安装界面用。 B/S :(Client/Server,客户机/服务器)模式又称C/S结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种。C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行。功能的分布在于减少计算机系统的各种瓶颈问题。C/S模式简单地讲就是基于企业内部网络的应用系统。与B/S(Browser/Server,浏览器/服务器)模式相比,C/S模式的应用系统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。 5.1.4参考资料 [1] 张海藩主编,《软件工程导论》,清华大学出版社 [2] 陆丽娜主编,《软件工程》,经济科学出版社 [3] 瞿中主编,《软件工程》,机械工业出版社 [4]《数据库系统概论》——萨师煊高等教育出版社 [5]《https://www.360docs.net/doc/4c9740085.html,实用案例教程》--石志国 [6]《C#入门经典》--齐立波,清华大学出版社 [7]《计算机软件文档编制规范》GB-T8567-2006 [8]需求分析与可行性研究报告
javaEE课程设计个人财务管理系统
软件学院 课程设计报告书 课程名称JavaEE 课程设计______________________ 设计题目个人财务系统____________________ 专业班级软件工程 _______________________ 学号xxxxxxxxx07 __________________________ 姓名XXXXX_______________________________ 指导教师姜彦吉 ________________________
2011年12 月
4.1.4系统构造关系 图一2 (jsp页面构造)
4.2 Jsp 页面设计 421登录界面 图一4 (登录界面) 代码如下: vform action= "servlet/LoginServlet" method= "post" >
图一5 (登录成功查询界面) 代码如下: <% String username=(String)session.getAttribute (”name"); if (username!= null ){%>