1、 计算机科学与技术系 课程设计报告 20092010 学年第二学期 课程课程 程序设计语言课程设计 课 程 设 计 名 称课 程 设 计 名 称 收银台结算程序 学生姓名学生姓名 学号学号 专业班级专业班级 网络工程(2)班 指导教师指导教师 2010 年 7 月 (一)(一) 需求分析需求分析 现在某大型超市由于购物人员太多需要一个收银台结算程序,以方便消费 者能够快速付账。该程序中能够各种商品的全部信息,包括商品的编号、名称、 数量、进价、售价等。程序主要是用来方便消费者付账,当消费者选定商品时收 银台的工作人员只要把消费者买的商品的数量输进去就可以了, 该程序会自动的 计算其总额并告知消
2、费者要交多少金额。 因此该程序的主要功能就是帮助收银台 的工作人员实现收款的目的。所以在制作该软件时首先要有一系列的子函数:当 输入商品的编号时就可以知道它的数量、进价、售价等。当工作人员收银时只要 输入商品的编号,并输入其数量就可以知道消费者要付金多少,然后系统就会根 据消费者给的金额会打印出相应的购物小票。 小票上会显示消费者所购商品的编 号、数量、以及消费者所给的金额和应该找零多少。 当消费者不能提供所购商品的编号时,系统则无法进行其各项的操作。在 收银的过程中如果遇到了消费者所给的金额不够则系统会自动出现提示: 所交金 额不足。每当消费者买走一件商品时系统在显示时变回显示其数量减少一个
3、,在 开始设计时为了能够满足要求因此要定义空间足够大的 id,name,count.分别 各为 100.在计算时输入商品的数量然后系统就会用该商品的单价乘以数量就得 到了消费者应付的金额。 (二)设计(二)设计 根据上诉需求应该定义一个 DATA 类,该类中定义了产品的编号 id,产品 名称name, 商品的已售数量salecount, 还有商品的进价buy, 和商品的售价sale。 在 public 中有成员函数 getid,用于得到商品的编号;getname,用于得到商品 的名称;getsale,用于得到商品的售价;getbuy,用于得到商品的进价。在此 基础上又派生出另一个类 WAY。
4、在 WAY 类中有成员函数 newfile,用于新建各种商品的信息,在 newfile 中会分别要求输入商品的编号、名称、数量、进价、售价。在一次输入各种商品 的各种信息后可以调用另一个成员函数 save,将输入的商品的各种信息储存起 来。要进行收银工作时选择 sale 子函数进行收银工作,在输入商品的各种信息 后可以调用函数 showdata 把商品的编号、名称、数量以及进价和售价都显示出 来以方便查看。在 WAY 类中 open 函数主要是用来打开已经保存好的各种商品的 各种基本信息。在程序运行时将开始准备好的数据输入这样就变的更加方便了。 在有很多商品的情况下要临时找到一个商品的基本信息
5、一般比较困难, 因此还要 用到 binsearch 来查找商品。 当要想找到摸个商品时只要将其编号输入系统就可 以根据编号进行查找,从而找到所要的商品。在商品已经销售了一部分时可以计 算一下这些商品的总的进价因而 sumsale 函数就是来计算已经销售出去的商品 的总的进价,同样,当想知道已经售出的这些商品所得到的利润时就可以用函数 sumgain,这些函数都是主函数 countmenu 中的子函数,在 countmenu 函数中包 括已售总额、已售总进价、已得纯利润、预销售总额。在商场进行交易时便会用 到函数 sale 来进行收银工作,开始时输入商品的编号如果没有改编号则说明仓 库中没有该商
6、品, 此时便会输出 “此产品已缺” , 有该商品的则会提示你输入 “输 入数量” ,在有提示: “输入收到金额” ,此时如果输入的是负数或者超出该产品 的库存量则系统会提示: “数量输入不真确” ,等到一切都正确后系统便会输出一 个购物小票:上面有商品的名称、数量、单价、应收、找零。 在该系统实现其收银功能后,我们可以对这一段时间所销售的商品做一个统 计,包括对他的数量、售出量、进价、售价、盈利多少等,当选择计算的子函数 时便可以对这些已经售出的商品做一个系统的统计,在统计之后会输入一个清 单。 上面写着这段时间所有售出的商品的各种信息, 已列表的形式把商品的编号、 名称、已售出量、售价、进价等。 在类的设计中主要是数据成员以及成员函数, 在 WAY 类中我们首先要把商品 的基本信息能用数据成员表示,于是便要定义编号、名称、数量、进价、售价。 在主函数menu中有1.输入产品信息 2.显示 3.保存 4.打开 5.菜单 6.收银 7. 计算 0.返回“这几项功能。 在设计该程序时要考虑到开始时可以对商品的信息进 行输入,于是在子函数 newfile 中便是将商品的信息输入