学生成绩排名系统文档Word文档格式.docx
- 文档编号:20376914
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:15
- 大小:20.68KB
学生成绩排名系统文档Word文档格式.docx
《学生成绩排名系统文档Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生成绩排名系统文档Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
10.1功能设计要求
设计要求实现的功能较多,所以将它们分为几个部分叙述。
1.前置条件:
登陆系统并有权限对前台管理进行操作。
2.后置条件:
如果操作成功,将在数据库中的数据记录进行修改或添加,同时完成前台收银工作。
3.基流:
如选择开台管理,则执行分支流S1,若选择买单管理,则进入分支流S2,若选择日结帐分析管理,则进入分支流S3。
4.分支流:
S1:
开台管理
查找空闲房台,为客户开台,然后为客户进行点菜。
(A1)
若用户要求并台、转台或加菜,前2者查找空闲房台,为客户进行相应的操作(A1);
最后一种情况则为顾客进行加菜服务。
S2:
买单管理
1.输入买单房台,为客户进行结帐处理
S3:
日结帐分析管理
1.对该日结帐信息进行分析管理。
5.替代流:
A1:
若无空闲房台,只能请顾客等待或放弃并台或转台。
10.2结构和类
在程序中共定义了1个结构和2个类,下面对它们加以说明。
10.2.1结构price
structprice//菜单价格
{
intchicken;
intduck;
intfish;
intvegetable;
}p={20,30,20,10};
结构体price主要是写出个菜单菜式的单价,有利于计算总价。
10.2.2类room
classroom
public:
voidopen();
//开台函数
voidpay();
//付款
voidpay2();
intaprice();
//菜单单价
voidmenu();
//菜单
staticvoidmany(){number++;
}
staticvoidGets(){cout<
<
number<
endl;
}
voidSetmoney(inta){money=a;
staticintGetmoney(){returnmoney;
voidadds();
//增加台数
voidchance();
//换台
voidchoice();
private:
staticintnumber;
staticintmoney;
intbprice;
intadd;
};
成员函数open(),pay(),pay2(),menu(),adds(),chonce()继承类room,进行计算。
open()函数(开台函数)是让顾客选择一个空闲房台;
pay()则是计算客户消费总额;
menu()则是菜单,adds()是增加台数,chonce()则是让顾客进行点菜。
10.2.3类M
classM//M类,以便以下对价格的输出
intm1,m2,m3,m4;
}mo;
类M的定义主要是用于以便以下对价格的输出,m1、m2、m3、m4分别代表的是chicken,duck,fish,vegetable的价格。
10.3参考程序
#include<
iostream>
usingnamespacestd;
intA[2025];
classroom//room类
//intadd;
//表示其增加的台号
//换台
introom:
:
money=0;
number=0;
structprice//菜单菜式的单价
voidroom:
choice()//点菜
{
intbprice=0;
intk;
inti;
do
{
cout<
"
请输入选择:
1.鸡丁"
endl<
2.鸭块"
3.鱼鲜"
4.蔬菜"
0.退出"
cin>
>
k;
switch(k)
case1:
cin>
i;
cout<
顾客所要鸡丁数量:
i<
mo.m1=mo.m1+i*p.chicken;
break;
case2:
顾客所要鸭块数量:
mo.m2=mo.m2+i*p.duck;
case3:
顾客所要鱼鲜数量:
mo.m3=mo.m3+i*p.fish;
break;
case4:
顾客所要蔬菜数量:
mo.m4=mo.m4+i*p.vegetable;
}
}while(k!
=0);
adds()
intK;
cout<
o.退出"
K;
switch(K)
{
case1:
{
mo.m1=mo.m1+i*p.chicken;
}
break;
break;
}
}while(K!
room*ptr=newroom[2025];
open()
尊敬的客户,请输入您的选择"
"
1.点菜"
2.加菜"
3.换台"
{
switch(i)
choice();
break;
adds();
chance();
尊敬的客户,请收入你的选择"
3.加台"
输入0结束"
}while(i!
pay()
intm;
m=mo.m1+mo.m2+mo.m3+mo.m4;
m<
chance()
换台"
请从1001~~1025或2001~~2025,输入买单房号"
intH;
H;
if(1001<
H&
&
H<
2025&
A[H]==0)
ptr[H].open();
room:
many();
A[H]=1;
add=H;
else
输入房号不对,请等待或者换台!
谢谢"
voidmain()
{roomr1;
intk=0;
intNO[50];
intcount=0;
for(inti=1;
=2025;
i++)
A[i]=0;
1.开台管理"
2.买单管理"
3.单日结账分析"
4.日结算管理"
输入0结束程序"
intI;
I;
switch(I)
cout<
容许开台的房间有:
for(inti=1001;
=1025;
if(A[i]==0)
cout<
;
for(intj=2001;
j<
j++)
if(A[j]==0)
intY;
Y;
Y&
Y<
A[I]==0)
ptr[Y].open();
room:
A[Y]=1;
cout<
}break;
intI;
cin>
if(1001<
I&
I<
A[I]==1)
客户消费总额:
ptr[I].pay();
A[I]=0;
NO[++k]=I;
count=k;
else
输入房号不对"
{
总开房数:
Gets();
结算总额:
r1.pay();
开房的房间号为:
for(intj=1;
=count;
{
NO[j]<
日结算管理"
日结算总额"
Getmoney();
default:
输入不对,请重新输入"
}while(I!
10.4测试示例
需要制定详细的测试计划,然后根据测试计划设计测试用例,对程序进行彻底测试。
由于跟踪测试的结果过多,这里只举几个例子,简介针对程序功能进行测试的方法。
/*
1.开台管理
2.买单管理
3.单日结账分析
4.日结算管理
输入0结束程序
1
1001100210031004100510061007100810091010101110121013101410151016
1017101810191020102110221023102410252001200220032004200520062007
2008200920102011201220132014201520162017201820192020202120222023
20242025请从1001~~1025或2001~~2025,输入买单房号
1001
尊敬的客户,请输入您的选择1.点菜2.加菜3.换台
1.鸡丁
2.鸭块
3.鱼鲜
4.蔬菜
0.退出
12
2
尊敬的客户,请收入你的选择1.点菜2.加菜3.加台输入0结束
请从1001~~1025或2001~~2025,输入买单房号
1001客户消费总额:
40
3
4
日结算管理
日结算总额
Pressanykeytocontinue
*/
添加密码功能:
intsum=0;
inta=000;
intb;
请输入密码"
b;
if(b!
=a)
密码错误,请输入正确密码:
returnmain();
else
密码正确"
利用if函数输出密码的值,对前台管理进行权限。
10.5心得:
在书写比较长的代码时,得先了解你所写的代码的顺序,有个小型的思路。
按照步骤,一步一步实现。
多与人讨论,一千个读者有一千个哈姆雷特。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩排名 系统 文档
![提示](https://static.bdocx.com/images/bang_tan.gif)