Empathy117 / STUAT_BillDistributor

A fairer distributor for a multi-person cross-paying event that share the bill evenly afterwards

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

STUAT_BillDistributor

A fairer distributor for a multi-person cross-paying event that share the bill evenly afterwards

简介

STUAT,您可以理解为StudentActivitiesTools或StudentAffairTools,意味学生活动辅助工具。

STUAT是北化学生网络中心开发的一套用于方便学生组织开展活动筹划和精细化管理的工作套件,无需编程基础便可开箱即用。要查看更多的STUAT组件,您可以点击这里查看STUAT项目

本组件适用于一场多人交叉付费的活动或者不同人标准不同的付费活动的事后均摊中。为了相对的公平,可以使用本程序。

应用场景

1.交叉垫付

某日ABCD四个小伙伴一起相约参加活动,一起从学校打车出发后各自行动
然后在第二天由A统一收款。
为了防止来回折腾钱,互相付的部分就互相免除掉只支付差价就可以了。

1.去的车费(4人,113元)
113/4=28.25
D->A 28.25
C->A 28.25
B->A 28.25
2.回来的车费+吃饭回学校的车费(3人,104.3元)
104.3/3=34.76
A->B 34.76
C->B 34.76
3.晚饭(3人,155元)
155/3=51.66
C->A 51.66
B>A 51.66

________________
end.总计需要各自互相支付的费用:
D->A 28.25
C->A 79.91
B->A 45.15
C->B 34.76

2.多重标准

ABCDEFG七个小伙伴相约去吃饭
ACEG四个小伙伴坐了一桌(A),BDF三个小伙伴坐了一桌(B)

他们各自的消费如下

A桌:
麻辣蓝兔子头x4 15*4
松鼠鱼x2 29*2
北极鼻涕熊掌*1 99*1
消毒餐具*4 2.5*4
共计 (15*4+29*2+99*1+2.5*4)/4=227/4=56.75

B桌:
耗子尾汁*3 23*3
碳烤土拨鼠*1 89*1
考拉棕榈*2 77*2
白鸟蛋*3 16*3
消毒餐具*3 2.5*3
共计 (23*3+89*1+77*2+16*3+2.5*3)/3=367.5/3=122.5

事后,有同学提出总计花费了(227+367.5)元,因此应该每人支付(227+367.5)/7=594.5/7=82.92元,被拖下去祭服务器
理想状态下,鼠宝宝实收四个同学56.75元,收三个同学122.5元

以上案例均由SNC系统维护部动物园赞助播出

3.统计报销和发票抵扣(暂定,需要联系会计和财务管理的同学和办公室报销的同学)

在水泥厂众,M个不同部门,每个部门提供了N个不同的报销项目。但这些账目中有的是有电子发票的,有的是有纸质发票的,有的是有不规范发票的,有的没有发票。同时还有不少同学向办公室捐赠了各类发票。

现在办公室需要进行每个月的盘点,统计需要交给老师的发票数目和需要报销的总金额,需要尽量优先匹配原发票,之后不足的需要用同学捐赠的抵扣。

若捐赠的发票不足或超量需要向老师说明,请你使用该功能为办公室同学统计出最终的报表,并按照csv输出。

怎么越看越像OJ题的描述

不是和金蝶或者用友之类的财务软件做竞争,是尽可能考虑什么情况更适合学生组织的模式

技术选型

建议C语言CLI,能保持基本功能即可。必要时可以考虑跨平台框架,浏览器化,GUI等多种功能。

功能特色

文件保存

可以按照一定的格式制定输入文件,之后直接以命令行传参的形式展示输入输出结果,下次遇到类似场景的时候不必重复输入,直接做微小的改动就可以。

此外,可以把学生的学号和姓名快速建立模板,可以把消费项目快速建立模板,在新增项目的时候可以不用直接输入完整的学生姓名。

自然表示缓存文件(待定 )

如使用XML/JSON等来做本地缓存文件格式

数学精准(待定)

使用GNU数学库,中间过程计算全部对数值进行金融级保护,避免反复做除法和四舍五入造成的误差

对office输出

支持按照csv格式输出成Excel能够正常使用和打开的数据。支持UTF-8的输出。

支持与维护

本项目隶属北化学生网络中心开源社区贡献计划

提案:系统维护部

维护:系统维护部

About

A fairer distributor for a multi-person cross-paying event that share the bill evenly afterwards

License:GNU General Public License v3.0