软件工程作业Word格式.docx
《软件工程作业Word格式.docx》由会员分享,可在线阅读,更多相关《软件工程作业Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
代码的检验和复查记录——————————————18
:
问题定义
某饭店进行电话订餐业务,每名顾客要登记订餐的人的姓名,人数,时间,订餐号,饭店人员根据顾客的时间和人数进行合理安排座位和房间。
对于饭店可以对顾客的数据应顾客临时有事情等情况进行数据的修改和删除,还有对顾客输入数据的显示。
技术可行性:
每天有几百名顾客进入该饭店进行订餐,若用原始的手工记录需要大量的纸笔记录数据,另外对于顾客提前几天订餐情况,纸质记录容易数据丢失而且数据查询起来比较不方便,另外对于顾客可能重名情况时就会更容易出错
若用计算机数据输入进行智能化,需在顾客电话是记录相应数据时花费时间,但根据计算机记录数据便于查询和更改,减少纸笔的使用,减少开销,不会将顾客数据弄错的概率大大减少
合理建立数据库、开发数据库管理应用来实现电话订餐管理在技术上的可行性。
如果开发时间比较短,应安排经验丰富的系统分析员和编程能力较强的程序员开发软件,以保证开发任务按时完成。
在第一次进行运行时,开发者要全程在场,以保证发现问题、解决问题。
电话订餐管理关系商主的利益不能出错。
经济可行性:
开发电话订餐管理系统,以后都可一使用该软件,用计算机进行电话订餐给顾客和饭店老板都带来时间上的节约,且不容易出错,很有必要。
需求分析
每天打入电话者顾客有几百名,分别记录顾客的姓名,人数和就餐时间,对打入电话者按照号码进行编号,要能够对的数据(姓名,就餐时间,人数)进行修改和管理,还有能对输入的数据进行显示,便于店主和顾客进行查询
数据流图和数据字典:
数据流图:
本系统数据字典如下:
数据定义
就餐号码:
号码至少存有百位数以上(1-999);
顾客姓名:
按照一般情况,姓名用八位字符数组存放
就餐人数:
按一般情况,百位人数以上(1-999);
就餐时间:
采用二十四计时方法,用字符数组存储
处理算法
对数据能够进行存储和进行相应的修改还有是删除等简单算法
IPO图
概要设计
考虑到数据安全性,进入本系统要求输入密码,非店主人员不能进入,因而需建立管理员数据表
在订餐时,要求程序能够输入合理的数字编号;
每名顾客信息要求建立单独数据表进行存储;
本程序建立应有两个数据表如下:
管理员:
密码;
2:
顾客信息:
姓名、人数、就餐时间、编号;
为进行结构设计,首先把复杂功能进行简单化的功能,此时数据流图也进一步细化,通常一个模块完成一个适当的功能。
分析员应把模块组织层次结构,顶层模块调用它的下一个模块,下一个模块再调用其下层模块,依次向下调用,最后调用完成某个功能。
软件结构可用层次图或结构图来描绘。
电话顶餐管理系统的HIPO图:
六:
详细设计:
1:
系统见面设计
初始界面:
进入系统初始化界面可以写系统名字,开发者等信息;
帐号管理,密码界面:
为保证系统安全和灵活性,需输入帐号和密码
系统菜单:
在系统菜单里设置,对数据进行查询,输入,和修改等功能;
还有按照好号码可进行相应搜索
2:
各个函数相应算法盒型图:
编译处理模块:
主函数模块:
函数Insert()模块
函数Search()模块:
函数Update()模块:
函数Delete():
函数Show()模块:
程序的设计
电话定餐系统数组发源代码
#include<
stdio.h>
string.h>
#defineMaxSize999
#defineYusercate123456
structguest_info//定义全局变量
{
charname[8];
//姓名
intsum;
//人数
chartime;
//用餐时间
intnumber;
//编号
}
GuestList[MaxSize];
//定义最大人数量
VoidSecreat(int)
voidInsert(int*);
//输入原始数据函数
voidSearch(int);
//查询函数
voidUpdate(int);
//修该函数
voidDelete(int*);
//删除函数
voidShow(int);
//显示函数
intmain()
{intsrrcate;
intj=0,i;
intcount=0;
intsercate,flag;
printf(“请输入密码:
”);
scanf(“%d”,&
sercate);
if(Yusercate!
=sercate)
while
(1)
{
i++;
printf(“对不起,密码错误!
\n请重新输入密码:
);
if(Yusercate==sercate)
{
Printf(“密码正确。
flag=1;
If(i==3)
Printf(“密码错误,退出系统!
break;
else
Printf(“密码正确。
}
do
printf("
\n"
);
1---插入(Insert)\n"
2---查询(Search)\n"
3---修改(Update)\n"
4---删除(Delete)\n"
5---显示(Show)\n"
6---退出(Exit)\n"
scanf("
%d"
&
i);
switch(i)//选择相应函数
case1:
Insert(&
count);
//指针变量函数
case2:
Search(count);
case3:
Update(count);
case4:
Delete(&
case5:
Show(count);
case6:
default:
printf("
错误选择!
请重选"
}
while(i!
=6);
voidInsert(int*count)//自定义原始数据输入函数
inti,in_number;
if(*count==MaxSize)
printf("
空间已满"
return;
}
请输入编号:
"
in_number);
for(i=0;
i<
*count;
i++)//查找符合条件的记录
if(GuestList[i].number==in_number)
已经有相同编号:
"
return;
GuestList[i].number=in_number;
//接收插入数据
printf("
请输入姓名:
%s"
GuestList[i].name);
请输入人数:
GuestList[i].sum);
请输入用餐时间:
GuestList[i].time);
(*count)++;
voidSearch(intcount)//自定义数据查询函数
inti,number,flag=1;
//设置一个标记变量
number);
if(GuestList[i].number==number)
{//检索后输出
人数:
用餐时间:
GuestList[i].time);
flag=0;
//标记变量数值反变
}
else
没查询到!
!
}voidUpdate(intcount)//自定义数据修正数据
intnumber,i,flag=1;
请输入要修改数据编号:
count&
&
flag;
i++)//检索并修改
scanf("
GuestList[i].number);
没查询到可以修改数据:
voidDelete(int*count)//自定义数据删除函数
inti,j,number,flag=1;
请输入要删除的数据:
*count&
i++)
for(j=i;
j<
*count-1;
j++)
GuestList[i]=GuestList[j+1];
flag=0;
(*count)--;
}
else
没有查询到可以要删除数据:
voidShow(intcount)//自定义数据显示函数
inti;
编号姓名人数用餐时间:
count;
%10d"
GuestList[i].number);
%12s"
GuestList[i].name);
%12s\n"
代码的检验和复查记录:
代码出现错误和检查:
变量名的定义混乱和错误导致程序不能正常运行
;
由于编码风格的不注意导致复查时查找比较苦难;
在编码是由于不注意导致编码的符号(分号,大小括号等)出现缺