1.1 编写目的
在本机票预定系统项目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对航空公司、各旅行社及机场的实地调研中获得,并在需求规格说明书中得到详尽得叙述及阐明。
本阶段已在系统的需求分析的基础上,对机票预定系统做概要设计。主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。
在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对机票预定系统所做的模块结构设计的基础上,对系统进行详细设计。在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。 1.2 项目背景 本项目(机票预定系统)时由浙江航空公司委托,由<>负责开发。
机票预定系统将由两部分组成:置于个旅行社定票点的前台客户程序,以及置于航空公司的数据库服务器。本系统与其他系统的关系如下: 1.3 定义 1.3.1 专门术语
SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。
SQL: 一种用于访问查询数据库的语言
事务流:数据进入模块后可能有多种路径进行处理。
主键:数据库表中的关键域。值互不相同。
外部主键:数据库表中与其他表主键关联的域。
ROLLBACK: 数据库的错误恢复机制。
1
1.3.2 缩写
系统:若未特别指出,统指本机票预定系统。
SQL: Structured Query Language(结构化查询语言)。
ATM: Asynchronous Transfer Mode (异步传输模式)。
1.4 参考资料 以下列出在概要设计过程中所使用到的有关资料:
1. 机票预定系统项目计划任务书 浙江航空公司 1999/3 2.机票预定系统项目开发计划 《》软件开发小组 1999/3
3.需求规格说明书 《》软件开发小组 1999/3
4.用户 *** 作手册(初稿) 《》软件开发小组 1999/4
5.软件工程及其应用 周苏、王文等 天津科学技术出版社 1992/1
6.软件工程 张海藩 清华大学出版社 1990/11
7.Computer Network A.S.Tanenbaun Prentice Hall 1996/01
文档所采用的标准是参照《软件工程导论》沈美明著 的“计算机软件开发文档编写指南”。
2.任务概述
没分啊,那我就拷一个还看得过去的给你吧:#include<stdio.h>
#include<string.h>
struct inf
{
char name[20]
long ID
}
struct inf T[3232]
void main()
{
int c,d2,g,h,h2,i,j,k,n2,n3,x,y,z
int n4,n9,n55,add1,add5,add6,add7,add9
long ID2,d1
int n[3][7]
int k2[4][8]
char s[15]
char s2[15],s3[15]
char a,d,f,add2,add3,add4,add8,add10
int l[3232]={0},a3[100],a4[100],p3[100],a7[100],s22[100]
int n5[100],n6[100],t2[100],p2[100],a2[100],s33[100],t3[100]
int n7[10][10][10]
for(i=0i<=2i++)
for(j=0j<=6j++)
n[i][j]=100
/************************************开头****************************************************/
loop2:
printf("\n***************************************\n")
printf(" 欢迎使用航空售票系统 \n")
printf("***************************************\n")
printf("\n1.订票\n2.退票\n3.查票\n4.查询\n5.退出\n")
do{ scanf("%c",&a)}
while(a!='1'&&a!='2'&&a!='3'&&a!='4'&&a!='5')
/********************************************订票*******************************************/
if(a=='1')
{loop1:
{
printf("共有三个航班,请您输入您的选择(1-3):\n")
do{scanf("%d",&i)}
while(i>3||i<1)
printf("请输入你旅行的周日代码(1-7):\n")
do{scanf("%ld",&j)}
while(j>7||j<1)
printf("本航班当天余票为%d张!\n",n[i-1][j-1])
printf("\n请输入您想订的座位号(1-100):\n")
do{scanf("%d",&k)}
while(k>100||k<1)
h=i+4*j+32*k
while(l[h]==1)
{
do{printf("该票已经被订,请重新输入:\n")
scanf("%d",&k)h=i+4*j+32*k}
while(k>100||k<1)}
printf("请输入您的姓名:\n")
scanf("%s",&T[h].name)
printf("\n请输入您的身份z号码:\n")
scanf("%ld",&T[h].ID)
do
{
printf("\n请输入您的目的地(1-5):\n")
printf("1.天堂\n2.地狱\n3.蓬莱仙岛\n4.台湾\n5.美国\n")
scanf("%d",&c)
}
while(c>5||c<1)
switch(c)
{
case 1:strcpy (s,"天堂")break
case 2:strcpy (s,"地狱")break
case 3:strcpy (s,"蓬莱仙岛")break
case 4:strcpy (s,"台湾")break
case 5:strcpy (s,"美国")break
}
printf("\n您的订票信息如下:\n")
printf("姓名 身份z号 航班号 飞行时间 目的地\n")
printf("\n%s%10ld 偏见%d号 周%d%13s\n",T[h].name,T[h].ID,i,j,s)
printf("\n")
printf("\n 请再次检查您的信息。\n\n如果正确无误,请输入y.\n\n重新填写,请输入r.\n\n放弃订票,回主选单输入q。\n")
do
{
scanf("%c",&d)
}
while(d!='r'&&d!='q'&&d!='y')
}
if(d=='y')
{
n[i-1][j-1]--
l[h]=1
printf("\n订票成功!!\n")
goto loop2
}
else if(d=='r')
goto loop1
else goto loop2
}
/********************************************退票*******************************************/
if(a=='2')
{
printf("\n请填写退票详细信息.\n")
printf("\n请输入航班号(1-3):\n")
do{scanf("%d",&x)}
while(x>3||x<1)
printf("\n请输入旅行周日(1-7):\n")
do{scanf("%d",&y)}
while(y>7||y<1)
printf("\n请输入座位号:\n")
do{scanf("%d",&z)}
while(z>100||z<1)
printf("\n请输入您的姓名:\n")
scanf("%s",&s2)
printf("\n请输入您的身份z号:\n")
scanf("%ld",&ID2)
h2=x+4*y+32*z
if(T[h2].ID==0)
{
printf("\n该票没有被定出!\n")
goto loop2
}
else
{
if(T[h2].ID!=ID2||strcmp(s2,T[h2].name))
{
printf("信息出现矛盾!无法退票!\n")goto loop2}
else
{
printf("\n请输入y确认退票!回主选单请输入q!\n")
scanf("%c",&f)
while(f!='y'&&f!='q')
{scanf("%c",&f)}
if(f=='y')
{
printf("退票成功!\n")
l[h2]=0
n[x-1][y-1]++}
else goto loop2
}
}
goto loop2
}
/*************************************查票系统************************************************/
if(a=='3')
{loop4:
printf("\n请输入查询方式:\n")
printf("\n1.输入身份z号查询。\n2.输入座位号码查询。\n3.输入姓名查询。\n4.返回。\n")
do
{scanf("%d",&g)}
while(g>4||g<1)
/******************身份z号查询**********************/
if(g==1)
{loop6:
printf("\n请您输入您要查询的身份z号:\n")
do{scanf("%ld",&d1)}
while(d1==0)
n3=0
i=36
while(i<=3231)
{
if(T[i].ID==d1&&l[i]==1)
{
n3++a3[n3]=i
}
i++
}
if(n3==0){printf("\n没有找到您输入的身份z号!\n")
goto loop4
}
else
{
for(i=1i<=n3i++)
{
s33[i]=a3[i]/32
t3[i]=(a3[i]-s33[i]*32)/4
p3[i]=a3[i]-s33[i]*32-t3[i]*4
}
printf("\n您所查找的的信息为:\n")
printf("\n姓名 身份z号 航班号 座位号 飞行日\n")
for(i=1i<=n3i++)
printf("%s%10ld 偏见%d号%7d 周%d\n",T[a3[i]].name,T[a3[i]].ID,p3[i],s33[i],t3[i])
}
printf("\n继续查找请输入y,返回输入q.\n")
do{scanf("%c",&add3)}
while(add3!='y'&&add3!='q')
if(add3=='y')
goto loop6
else goto loop4
}
/***********************名字查询***************************/
if(g==3)
{loop5:
printf("\n请您输入您要查询的名字:\n")
scanf("%s",&s3)
n2=0
i=37
while(i<=3231)
{
while(T[i].name==NULL) i++
if(strcmp(T[i].name,s3)==0&&l[i]!=0)
{
a2[n2+1]=i
n2++
}
i++
}
if(n2==0)
{
printf("\n没有找到您输入的姓名!\n")
goto loop4
}
else
{
for(i=1i<=n2i++)
{
s22[i]=a2[i]/32
t2[i]=(a2[i]-s22[i]*32)/4
p2[i]=a2[i]-s22[i]*32-t2[i]*4
}
printf("\n您所查找的的信息为:\n")
printf("姓名 身份z号 航班号 座位号 飞行日\n")
for(i=1i<=n2i++)
printf("%s%10ld 偏见%d号%7d 周%d\n",s3,T[a2[i]].ID,p2[i],s22[i],t2[i])
}
printf("\n继续查找请输入y,返回输入q.\n")
do{scanf("%c",&add2)}
while(add2!='y'&&add2!='q')
if(add2=='y')
goto loop5
else
goto loop4
}
/************************座位号码查询*****************************/
if(g==2)
{loop7:
printf("\n请您输入您要查询的座位号:\n")
do{ scanf("%d",&d2)}
while(d2<1||d2>100)
for(i=1i<=3i++)
for(j=1j<=7j++)
k2[i][j]=d2*32+4*j+i
i=1
n4=0
while(i<=3)
{
j=1
while(j<=7)
{
if(T[k2[i][j]].ID!=0&&l[k2[i][j]]!=0)
{
n4++
n5[n4]=i
n6[n4]=j
n7[n4][n5[n4]][n6[n4]]=k2[i][j]
}
j++
}
i++
}
if(n4==0){printf("\n该座位号码没有被定出!\n")
goto loop4
}
else
{
printf("\n您所输入的座位号信息是:\n")
printf("姓名 身份z号 航班号 座位号 飞行日\n")
for(i=1i<=n4i++)
printf("%s%10ld 偏见%d号%7d 周%d\n",T[n7[i][n5[i]][n6[i]]].name,T[n7[i][n5[i]][n6[i]]].ID,n5[i],d2,n6[i])
}
printf("\n继续查找请输入y,返回输入q.\n")
do{scanf("%c",&add4)}
while(add4!='y'&&add4!='q')
if(add4=='q')
goto loop4
if(add4=='y')
goto loop7
}
else
goto loop2
}
/*****************************************查询系统****************************************************/
if(a=='4')
{loop8:
printf("\n1.查询特定航班的余票情况。\n2.查询特定航班的乘客情况。\n3.返回主选单。\n")
printf("\n请输入您的选择(1-3):\n")
do
{scanf("%d",&add1)}
while(add1>3||add1<1)
if(add1==3)goto loop2
/*******************************查余票*****************************/
if(add1==1)
{loop9:
printf("\n请输入您要查询的航班号(1-3):\n")
do{scanf("%d",&add5)}
while(add5>3||add5<1)
printf("\n请输入您要查询的飞行期(1-7):\n")
do{scanf("%d",&add6)}
while(add6>7||add6<1)
i=37
n55=0
while(i<=3231)
{
if((T[i].ID==0||l[i]==0)&&(i-add5-add6*4)%32==0)
{
n55++
a4[n55]=i
}
i++
}
printf("\n第%d航班飞机周%d的余票情况是:\n",add5,add6)
i=0
for(j=i+1j<=n55j++)
{
{
for(i=ji<=j+9i++)
printf("%5d",a4[i]/32)
}
printf("\n")j=i-1
}
printf("\n继续查找请输入y,返回输入q.\n")
do{scanf("%c",&add8)}
while(add8!='y'&&add8!='q')
if(add8=='y')
goto loop9
else
goto loop8
}
/*******************查询已订票信息**********************/
if(add1==2)
{loop10:
printf("\n请输入您要查询的航班号(1-3):\n")
do{scanf("%d",&add7)}
while(add7>3||add7<1)
printf("\n请输入您要查询的飞行期(1-7):\n")
do{scanf("%d",&add9)}
while(add9>7||add9<1)
n9=0
i=37
while(i<=3231)
{
if(T[i].ID!=0&&(i-add7-add9*4)%32==0&&l[i]!=0)
{
n9++
a7[n9]=i
}
i++
}
if(n9==0)
printf("\n该航班满票,没有被定出!\n")
if(n9!=0)
{
printf("\n第%d航班飞机周%d的订票情况是:\n",add7,add9)
printf("\n姓名 身份z号 航班号 座位号 飞行日\n")
for(i=1i<=n9i++)
printf("%S%10ld 偏见%d号%7d 周%d\n",T[a7[i]].name,T[a7[i]].ID,add7,(a7[i]-add7-4*add9)/32,add9)
}
printf("\n继续查找请输入y,返回输入q.\n")
do{scanf("%c",&add10)}
while(add10!='y'&&add10!='q')
if(add10=='y')
goto loop10
else
goto loop8
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)