《毕业设计(论文)个人所得税管理征收系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)个人所得税管理征收系统设计.doc(39页珍藏版)》请在三一办公上搜索。
1、题 目 个人所得税管理征收系统 目 录第一部分 软件可行性研究与项目开发计划11、问题定义4 2、可行性研究53、项目开发计划5第二部分 软件需求分析71、用户功能 82、数据流图(DFD)83、数据字典 8 第三部分 软件概要设计91、定设计方案92、模块的划分93、软件结构图10第四部分 软件详细设计111、本月各项收入统计112、工资、薪金所得123、个体工商户的生产、经营所得124、对企事业单位的承包经营、承租经营所得135、劳务报酬所得、稿酬所得、特许权使用费所得、136、财产转让所得137、利息、股息、红利所得,偶然所得和其他所得138、进入、退出、打印14第五部分 软件编码18第
2、六部分 软件测试与调试221、测试环境与测试方法232、测试实例 ( 测试集 ) 的研究与选择 233、测试过程与调试244、结果24第七部分 结束语25第八部分 附 录26附录1、源代码(关键的、主要的部分)26附录2、参考文献 34第一部分 软件可行性研究与项目开发计划一、可行性研究任务: 1、问题定义 2、可行性研究(一) 、问题定义 (1)项目:个人所的税管理征收系统 (2)背景:容易出错,人工计算效率低 (3)项目目标:建立一个新的高效率的计算软件,帮助繁忙和不了解具体算法的人,进行计算。也可在家中自己进行计算或在交完个人所得税后,对其进行核对。(4)项目范围:硬件利用现有微机(5)
3、初步设想:根据国家对个人所得税的征收要求,对每位员工的各项收入进行统计,并按照规定的个人所得税税率,计算每位员工应该交纳的个人所得税,同时生成打印信息。该系统除完成上述的功能外,还应该为用户提供方便、美观的操作界面(二)、可行性研究(1)可行性研究的任务 用最小的代价,在尽可能短的时间内确定问题是否能够解决。必须注意的是,可行性研究的目的并不是解决问题,而是确定问题是否值得去解决,也就是判断系统原定的目标和规模是否实现,通过实际使用完成后的系统所能带来的效益是否达到值得投资开发这个系统的程度因此,可行性研究实质上是要进行一次大大压缩和简化了的系统分析和设计的过程,也就是在叫高层次上以比较抽象的
4、方式进行的系统分析和设计的过程。在澄清了问题定义之后,系统分析员首先应该导出系统的逻辑模型,然后从系统逻辑模型出发,探索出若干种可供选择的主要解法(即系统实现方案),最后仔细研究每种解法的可行性。一般来说,研究可行性应该从以下述几方面进行。(1)技术可行性(2)经济可行性(3)运行可行性(4)法律可行性(5)开发方案可行性(2)可行性研究的步骤 (1)复查系统规模和目标 (2)研究目前正在使用的系统 (3)推出新系统的高层逻辑模型 (4)重新定义问题 (5)提出和评价供选择的方案 (6)推出一个方案并说明理由 (7)推出开发工程决定 (8)书写计划任务书 (9)提交审查二、项目开发计划 (1)
5、利用一周的时间,进行可行性研究,需求分析,并制定可开发方案。 (2)利用一周的时间,进行模块设计,结构设计,概要设计和详细设计 (3)利用一周的时间,进行代码编写 (4)利用一到两天的时间,对软件进行测试,改进,修改。 (5)运行与维护开发工具:Microsoft 公司推出的Visual Basic 6.0第二部分 软件需求分析1、 用户功能(1) 能对每位员工的各项收入进行统计,并按照规定的个人所得税税率,计算每位员工应该交纳的个人所得税,同时生成打印信息。2、 (1)数据流图(DFD) 用户进入 选择服务类型 用户输入数据 进行运算 数据输出 打印 图 1.1(2) 数据字典 1数据字典应
6、该由有下列6类元素的定义组成 (1)数据流(如上图1.1) 数据流名称及其符号 数据输出的源点和数据输出的汇点 加工,输入数据在此进行变换产生输出数据数据存储文件,须加以命名 数据流,被加工的数据与流向 (2)数据项 数据项也称数据元素,是“不可再分”的数据单位,是数据的最小组成单位。 (3)数据结构 数据结构描述了某些数据之间的关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据组成,也可以由若干个数据项和数据结构组成 (4)数据存储 数据存储是数据结构停留或保存的场所 (5)处理逻辑 (6)外部实体 外部实体是系统的“人-机”界面,也就是系统的数据流由外部实体流入,或者系统的数据向
7、外部流出。第三部分 软件概要设计1、 确定设计方案 由界面进入主体部分,在主体实行各项目的计算,并打印结果、2、 模块的划分(1) 登陆界面(2) 选择运算类型(3) 打印数据(4) 退出3、 软件结构图 数据加工 输 入 出 输 数据 进入 选择类型 打印 进入 选择类型 打印 退出 第四部分 软件详细设计一、建立7个Frame,实现页面之间的彼此切换、并编码设置其属性 1、Frame1:本月各项收入统计 2、Frame2:工资、薪金所得 3、Frame3:个体工商户的生产、经营所得 4、Frame4:对企事业单位的承包经营、承租经营所得 5、Frame5: 劳务报酬所得、稿酬所得、特许权使
8、用费所得、财产租赁所得6、Frame6:财产转让所得7、Frame7:利息、股息、红利所得,偶然所得和其他所得Private Sub Combo1_Click()If Combo1.ListIndex = 0 Then Frame1.Visible = True: Frame2.Visible = False: Frame3.Visible = False: Frame4.Visible = False: Frame5.Visible = False: Frame6.Visible = False: Frame7.Visible = FalseIf Combo1.ListIndex = 1 T
9、hen Frame1.Visible = False: Frame2.Visible = True: Frame3.Visible = False: Frame4.Visible = False: Frame5.Visible = False: Frame6.Visible = False: Frame7.Visible = FalseIf Combo1.ListIndex = 2 Then Frame1.Visible = False: Frame2.Visible = False: Frame3.Visible = True: Frame4.Visible = False: Frame5.
10、Visible = False: Frame6.Visible = False: Frame7.Visible = FalseIf Combo1.ListIndex = 3 Then Frame1.Visible = False: Frame2.Visible = False: Frame3.Visible = False: Frame4.Visible = True: Frame5.Visible = False: Frame6.Visible = False: Frame7.Visible = FalseIf Combo1.ListIndex = 4 Then Frame1.Visible
11、 = False: Frame2.Visible = False: Frame3.Visible = False: Frame4.Visible = False: Frame5.Visible = True: Frame6.Visible = False: Frame7.Visible = FalseIf Combo1.ListIndex = 5 Then Frame1.Visible = False: Frame2.Visible = False: Frame3.Visible = False: Frame4.Visible = False: Frame5.Visible = False:
12、Frame6.Visible = True: Frame7.Visible = FalseIf Combo1.ListIndex = 6 Then Frame1.Visible = False: Frame2.Visible = False: Frame3.Visible = False: Frame4.Visible = False: Frame5.Visible = False: Frame6.Visible = False: Frame7.Visible = TrueEnd Sub修改Caption属性、改变ForeColor颜色、设置Visible的值1 、本月各项收入统计(1)功能:
13、统计该月各项收入(2)接口:Command11:书写代码并对其属性进行设置 Private Sub Command11_Click()a = Val(Text25.Text)b = Val(Text26.Text)c = Val(Text27.Text)d = Val(Text28.Text)e = Val(Text29.Text)f = Val(Text30.Text)g = Val(Text31.Text)Text32.Text = a + b + c + d + e + f + gEnd Sub 修改Caption属性、改变ForeColor颜色、设置Visible的值 (3)流程图 2
14、 、工资、薪金所得(1)功能:工资、薪金所得应纳税金额(2)接口:Command10:书写代码并对其属性进行设置 Private Sub Command10_Click()Dim c As Doublea = Val(Text22.Text)b = Val(Text23.Text)c = a - 1600 - bIf c = 500 And c = 2000 And c = 5000 And c = 20000 And c = 40000 And c = 60000 And c = 80000 And c = 100000 Then Text24.Text = c * 0.45 - 15375
15、End IfEnd Sub修改Caption属性、改变ForeColor颜色、设置Visible的值 (3)流程图 是 否3、个体工商户的生产、经营所得(1)功能:计算个体工商户的生产、经营所得应纳税(2)接口:Command9:书写代码并对其属性进行设置Private Sub Command9_Click()Dim e As Doublea = Val(Text17.Text)b = Val(Text18.Text)c = Val(Text19.Text)d = Val(Text20.Text)e = a - b - c - dIf e = 5000 And e = 10000 And e
16、= 30000 And e = 50000 Then Text21.Text = e * 0.35 - 6750End IfEnd Sub修改Caption属性、改变ForeColor颜色、设置Visible的值(3)流程图4、对企事业单位的承包经营、承租经营所得(1) 功能:计算对企事业单位的承包经营、承租经营所得应纳税(2) 接口:Command8:书写代码并对其属性进行设置Private Sub Command8_Click()Dim d As Doublea = Val(Text13.Text)b = Val(Text14.Text)c = Val(Text15.Text)d = a
17、- (b * c)If d = 5000 And d = 10000 And d = 30000 And a = 50000 Then Text16.Text = d * 0.35 - 6750End IfEnd Sub修改Caption属性、改变ForeColor颜色、设置Visible的值(3) 流程图 5、劳务报酬所得、稿酬所得、特许权使用费所得、财产租赁所得(1)功能:计算劳务报酬所得、稿酬所得、特许权使用费所得、财产租赁所得应纳税金额接口:Command5 Command6 Command7:书写代码并对其属性进行设置Private Sub Command5_Click()a = V
18、al(Text7.Text)If a = 4000 Then Text8.Text = a * 0.8 * 0.2End If End SubPrivate Sub Command6_Click()c = Val(Text9.Text)If c = 4000 Then Text10.Text = c * 0.8 * 0.2End IfEnd SubPrivate Sub Command7_Click()Dim b As Doublea = Val(Text11.Text)If a = 4000 Then b = a * 0.8 * 0.2: Text12.Text = b - (b * 0.3
19、)End IfEnd Sub修改Caption属性、改变ForeColor颜色、设置Visible的值(2) 流程图 6、 财产转让所得(1) 功能:计算财产转让所得应纳税金额接口:Command4:书写代码并对其属性进行设置Private Sub Command4_Click()a = Val(Text3.Text)b = Val(Text4.Text)c = Val(Text5.Text)Text6.Text = (a - b - c) * 0.2End Sub修改Caption属性、改变ForeColor颜色、设置Visible的值(2) 流程图 7 利息、股息、红利所得,偶然所得和其他
20、所得(1) 功能:计算利息、股息、红利所得,偶然所得和其他所得应纳税金额接口:Command3:书写代码并对其属性进行设置Private Sub Command3_Click()a = Val(Text1.Text)Text2.Text = a * 0.2End Sub修改Caption属性、改变ForeColor颜色、设置Visible的值(2) 流程图 8进入、退出、打印(1) 进入、退出、打印(2) 接口:Command1:书写代码并对其属性进行设置Combo1.Visible = TrueCommand1.Visible = FalseCommand12:书写代码并对其属性进行设置 e
21、ndCommand2: 书写代码并对其属性进行设置CommonDialog1.Action = 5修改Caption属性、改变ForeColor颜色、设置Visible的值(3)流程图: 第五部分 软件编码1 、所选语言 Microsoft 公司推出的Visual Basic 6.02 、主要代码、源代码(见附录1)第六部分 软件测试与调试1、 测试环境与测试方法(1) 系统:Microsoft Windows XP Professional 版本 Service Pack2(2) 硬件:IntelCeleronCPU 2.66GHz 2.67GHz,512 MB内存物理地址扩展(3) 测试方
22、法:1、 代码复审 2、 动态测试 2、 测试实例 ( 测试集 ) 的研究与选择 (1) 测试工资、薪金所得(2)测试个体工商户的生产、经营所得 (3)本月各项收入统计3、 测试过程与调试(1)首先进入软件,随即点选其中一运算项目 如图并用Windows自带计算器计算,与软件所输出的数据相同(2)进行多次运算4、 结果软件运算正常。 第七部分 结束语 匆忙地忙碌了两个月,我的毕业设计课题也终将告一段落。点击运行,也基本达到预期的效果,但由于能力和时间的关系,总是觉得有很多不尽人意的地方。可是,我有时会安慰自己:做一件事情,不必过于在乎最终的结果,可贵的在过程中所收获到的东西。 毕业设计,也许是
23、我大学生涯交上的最后一个作业了。想籍次机会感谢三年以来给我帮助的所有老师、同学,你们的友谊是我人生的财富,是我生命中不可或缺的一部分。我的毕业设计指导老师李毅,虽然我们面对面的交流并不是很多,但为了我的毕业设计,他给我打了很多电话、发了很多电子邮件进行耐心细致的指导,使我能顺利完成我的毕业设计,在此,特向他道声谢谢。大学生活即将匆匆忙忙地过去,但我却能无悔地说:“我曾经来过。”专科三年,但它给我的影响却不能用时间来衡量,这三年以来,经历过的所有事,所有人,都将是我以后生活回味的一部分,是我为人处事的指南针。就要离开学校,走上工作的岗位了,这是我人生历程的又一个起点,在这里祝福大学里跟我风雨同舟
24、的朋友们,一路走好,未来总会是绚烂缤纷。第八部分 附 录附录1、源代码(关键的、主要的部分)Private Sub Combo1_Click()If Combo1.ListIndex = 0 Then Frame1.Visible = True: Frame2.Visible = False: Frame3.Visible = False: Frame4.Visible = False: Frame5.Visible = False: Frame6.Visible = False: Frame7.Visible = FalseIf Combo1.ListIndex = 1 Then Frame
25、1.Visible = False: Frame2.Visible = True: Frame3.Visible = False: Frame4.Visible = False: Frame5.Visible = False: Frame6.Visible = False: Frame7.Visible = FalseIf Combo1.ListIndex = 2 Then Frame1.Visible = False: Frame2.Visible = False: Frame3.Visible = True: Frame4.Visible = False: Frame5.Visible =
26、 False: Frame6.Visible = False: Frame7.Visible = FalseIf Combo1.ListIndex = 3 Then Frame1.Visible = False: Frame2.Visible = False: Frame3.Visible = False: Frame4.Visible = True: Frame5.Visible = False: Frame6.Visible = False: Frame7.Visible = FalseIf Combo1.ListIndex = 4 Then Frame1.Visible = False:
27、 Frame2.Visible = False: Frame3.Visible = False: Frame4.Visible = False: Frame5.Visible = True: Frame6.Visible = False: Frame7.Visible = FalseIf Combo1.ListIndex = 5 Then Frame1.Visible = False: Frame2.Visible = False: Frame3.Visible = False: Frame4.Visible = False: Frame5.Visible = False: Frame6.Vi
28、sible = True: Frame7.Visible = FalseIf Combo1.ListIndex = 6 Then Frame1.Visible = False: Frame2.Visible = False: Frame3.Visible = False: Frame4.Visible = False: Frame5.Visible = False: Frame6.Visible = False: Frame7.Visible = TrueEnd SubPrivate Sub Command1_Click()Combo1.Visible = TrueCommand1.Visib
29、le = FalseCommand2.Visible = TrueCommand12.Visible = FalseCommand13.Visible = TrueEnd SubPrivate Sub Command10_Click()Dim c As Doublea = Val(Text22.Text)b = Val(Text23.Text)c = a - 1600 - bIf c = 500 And c = 2000 And c = 5000 And c = 20000 And c = 40000 And c = 60000 And c = 80000 And c = 100000 The
30、n Text24.Text = c * 0.45 - 15375End IfEnd SubPrivate Sub Command11_Click()a = Val(Text25.Text)b = Val(Text26.Text)c = Val(Text27.Text)d = Val(Text28.Text)e = Val(Text29.Text)f = Val(Text30.Text)g = Val(Text31.Text)Text32.Text = a + b + c + d + e + f + gEnd SubPrivate Sub Command12_Click()EndEnd SubP
31、rivate Sub Command13_Click()EndEnd SubPrivate Sub Command2_Click()CommonDialog1.Action = 5Form1.printformEnd SubPrivate Sub Command3_Click()a = Val(Text1.Text)Text2.Text = a * 0.2End SubPrivate Sub Command4_Click()a = Val(Text3.Text)b = Val(Text4.Text)c = Val(Text5.Text)Text6.Text = (a - b - c) * 0.
32、2End SubPrivate Sub Command5_Click()a = Val(Text7.Text)If a = 4000 Then Text8.Text = a * 0.8 * 0.2End If End SubPrivate Sub Command6_Click()c = Val(Text9.Text)If c = 4000 Then Text10.Text = c * 0.8 * 0.2End IfEnd SubPrivate Sub Command7_Click()Dim b As Doublea = Val(Text11.Text)If a = 4000 Then b =
33、a * 0.8 * 0.2: Text12.Text = b - (b * 0.3)End IfEnd SubPrivate Sub Command8_Click()Dim d As Doublea = Val(Text13.Text)b = Val(Text14.Text)c = Val(Text15.Text)d = a - (b * c)If d = 5000 And d = 10000 And d = 30000 And a = 50000 Then Text16.Text = d * 0.35 - 6750End IfEnd SubPrivate Sub Command9_Click()Dim e As Doublea = Val(Text17.Text)b = Val(Text18.Text)c = Val(Text19.Text)d = Val(Text20.Text)e = a - b - c - dIf e = 5000 And e = 10000 And e 30000 Then Text21.Text = e * 0.2 - 1250E