课 程 设 计
课程名称C 语言高级程序设计
学院xxx
小组成员 1XXX
小组成员 2XXX
小组成员 3XXX
任课教师XXX
2016——2017学年第 1学期
所选题目与要求
自动售货机
问题情景:
分析学校教学楼自动售货机的功能,设计一个自动售货系统。
功能要求:
1. 系统能提供所售商品的清单(编号,名称,单价,数量)
2. 客户输入商品编号及购买数量,系统显示应付的金额,输入客户实付的钱数,系统计算应找的钱数系统如果没有足够的库存或零钱时,现实应返还客户已付的金额。(不考虑用支付宝付款的情况)
3. 可增加商品种类,增加商品库存,查询商品库存,查询商品销售量及销售额。
成果要求:
通过网络教学平台中的“研究型教学”建立分组,每组2-3人,通过小组讨论,确定每人的分工,并确定系统设计方案。各小组成员在网络教学平台上进行讨论、并完成最终的报告,整个过程作为小组及个人工作评价的重要依据。各小组成员根据系统设计方案分模块进行编程,在系统各模块编码完成后集成调试,并最终完成整个系统的测试。根据下面的报告模板完成综合实验总结报告,并打印成纸质报告,作为大作业课程结束时上交。附:综合实验总结报告应包含的内容: 1. 系统功能说明 2. 程序结构? 程序结构说明? 重要数据说明? 函数清单 /*? 每个函数的书写格式? */ 函数名:所在文件名 函数功能 参数说明??? 算法描述或程序代码 3. 系统运行结果 4. 系统设计难点及其解决方法 5. 不足之处 6. 人员分工说明
问题分析及算法设计
主函数
void main() //主函数模块
{
do{
system("pause");
show(); //显示屏幕函数,商品清单
loop1:printf("现在你有%.1f元\n你可以选择商品序号开始选购或按 0 退出\n",M);
input(); //输入函数
if(M-goods[n-1].price>v) {t=0;printf("对不起,售货机没有足够的零钱了\n谢谢光临!退还%.1f元\n",M);break;} //判断售货机是否有足够的零钱,0表无
if(n==0){ //确认用户是选择离开还是买东西 开始购买
t=1;
change(M);} //找零函数
else {
loop2:sell(n,M,1,1); //购买函数
if(A==0)//货没有了怎么办
input(); //输入函数
………………………………………………………………………..
if(n==0) //没货离开
change(M); //找钱函数
else //继续购买其它商品
{
……………………………………………
goto loop2; 返回至购买函数
} //else
} //if
else if(B==0)//没钱了怎么办
{
…………………………………..
if(m1==0) //离开
change(M); 返回至找零函数
else //加钱
{
…………………………………………..
goto loop1;返回至再次购买
} //else
} //else if
else//有钱又有货,继续选
goto loop1; 返回至购买程序
} //else
}while(1);
} //main
结构体定义
struct goods //定义物品清单
{
int number;
char name[10];
float price;
int quantity;
}goods[9]={{1,"可口可乐",3,5},{2,"拿铁咖啡",4,5},{3,"橙汁",3,5},{4,"奶茶",4,5},{5,"雪碧",2.5,5},
{6,"矿泉水",2,5},{7,"椰子汁",2.5,5},{8,"格瓦斯",3,5}};
struct money //定义钱的种类,数量用于记录找零的某值张数
{
float moneys;
int mount;
}money[2]={{1,0},{0.5,0}};
被调用的函数
float show() //显示模块--屏幕
{
……………………………
}
int input() //输入模块
{
…………………………..
}
}
int sell(int n,float m,int a,int b) //出售模块 n为序号,m钱,
{
……………………………