飞机售票系统源代码5则范文

时间:2019-05-14 03:13:41下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《飞机售票系统源代码》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《飞机售票系统源代码》。

第一篇:飞机售票系统源代码

#include #include #include #include #define MAXSIZE 3 /*定义航线量的最大值*/

typedef struct wat_ros { char name[10];/*姓名*/ int req_amt;/*订票量*/ struct wat_ros *next;}qnode,*qptr;

typedef struct pqueue { qptr front;/*等候替补客户名单域的头指针*/ qptr rear;/*等候替补客户名单域的属指针*/ }linkqueue;

typedef struct ord_ros { char name[10];/*客户姓名*/ int ord_amt;/*订票量*/ int grade;/*舱位等级*/ struct ord_ros *next;}linklist;

struct airline { char ter_name[10];/*终点站名 */ char air_num[10];/*航班号*/ char plane_num[10];/*飞机号*/ char date[7];/*飞行日期(星期几)*/ int tkt_amt;/*乘员定额*/ int tkt_sur;/*余票量*/ linklist *order;/*乘员名单域,指向乘员名单链表的头指针*/ linkqueue wait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/ }lineinfo;struct airline *start;struct airline air[MAXSIZE]={{“beijing”,“1”,“B8571”,“SUN”,3,1}, {“shanghai”,“2”,“S1002”,“MON”,2,5}, {“london”,“3”,“L1003”,“FRI”,1,3}};;

void display(struct airline *info)/*打印每条航线的基本信息*/ {printf(“%8st%3st%st%4stt%3dt%10dn”,info->ter_name,info->air_num,info->plane_num,info->date,info->tkt_amt,info->tkt_sur);}

void list()/*打印全部航线信息*/ { struct airline *info;int i=0;info=start;printf(“终点站名t航班号t飞机号t飞行日期t乘员定额t余票量n”);while(i

void search()/*根据客户提出的终点站名输出航线信息*/ { struct airline *info,*find();char name[10];int i=0;info=start;printf(“请输入终点站名:”);scanf(“%s”,name);while(iter_name))break;info++;i++;} if(i>=MAXSIZE)printf(“对不起,该航线未找到!n”);else { printf(“终点站名t航班号t飞机号t飞行日期t乘员定额t余票量n”);display(info);} }

struct airline *find()/*根据系统提出的航班号查询并以指针形式返回*/ { struct airline *info;char number[10];int i=0;info=start;printf(“请输入航班号:”);scanf(“%s”,number);while(iair_num))return info;info++;i++;} printf(“对不起,该航线末找到!n”);return NULL;}

void prtlink()/*打印订票乘员名单域的客户名单信息*/ { linklist *p;struct airline *info;info=find();p=info->order;if(p!=NULL){ printf(“客户姓名 订票数额 舱位等级n”);while(p){ printf(“%stt%dt%dn”,p->name,p->ord_amt,p->grade);p=p->next;} } else printf(“该航线没有客户信息!n”);}

linklist *insertlink(linklist *head,int amount,char name[],int grade)/*增加订票乘员名单域的客户信息*/ { linklist *p1,*new1;p1=head;new1=(linklist *)malloc(sizeof(linklist));if(!new1){printf(“nOut of memory!n”);return NULL;} strcpy(new1->name,name);new1->ord_amt=amount;new1->grade=grade;new1->next=NULL;if(head==NULL)/*若原无订票客户信息*/ {head=new1;new1->next=NULL;} else head=new1;new1->next=p1;return head;}

linkqueue appendqueue(linkqueue q,char name[],int amount)/*增加排队等候的客户名单域*/ { qptr new1;new1=(qptr)malloc(sizeof(qnode));strcpy(new1->name,name);new1->req_amt=amount;new1->next=NULL;if(q.front==NULL)/*若原排队等候客户名单域为空*/ q.front=new1;else q.rear->next=new1;q.rear=new1;return q;}

void order()/*办理订票业务*/ { struct airline *info;int amount,grade;char name[10];info=start;if(!(info=find()))return;/*根据客户提供的航班号进行查询,如为空,退出该模块*/ printf(“请输入你订票所需要的数量:”);scanf(“%d”,&amount);if(amount>info->tkt_amt)/*若客户订票额超过乘员定票总额,退出*/ { printf(“n对不起,您输入的票的数量已经超过乘员定额!”);return;} if(amount<=info->tkt_sur)/*若客户订票额末超过余票量,订票成功并等记信息*/ { int i;printf(“请输入您的姓名(订票客户):”);scanf(“%s”,name);printf(“请输入%s票的舱位等级:”,name);scanf(“%d”,&grade);info->order=insertlink(info->order,amount,name,grade);/*在订票乘员名单域中添加客户信息*/ for(i=0;i

号是:%dn”,name,info->tkt_amt-info->tkt_sur+i+1);info->tkt_sur-=amount;/*该航线的余票量应减掉该客户的订票量*/ printf(“n祝您乘坐愉快!n”);} else /*若满员或余票额少于订票额,询问客户是否需要进行排队等候*/ { char r;printf(“n已经没有更多的票,您需要排队等候吗?(Y/N)”);r=getch();printf(“%c”,r);if(r=='Y'||r=='y'){ printf(“n请输入您的姓名(排队订票客户):”);scanf(“%s”,name);info->wait=appendqueue(info->wait,name,amount);/*在排队等候乘员名单域中添加客户信息*/ printf(“n注册成功!n”);} else printf(“n欢迎您下次再次订购!n”);} }

void return_tkt()/*退票模块*/ { struct airline *info;qnode *t,*back,*f,*r;int grade;linklist *p1,*p2,*head;char cusname[10];if(!(info=find()))return;/*调用查询函数,根据客户提供的航线进行搜索*/ head=info->order;p1=head;printf(“请输入你的姓名(退票客户):”);scanf(“%s”,cusname);while(p1!=NULL){/*根据客户提供的姓名到订票客户名单域进行查询*/ if(!strcmp(cusname,p1->name))break;p2=p1;p1=p1->next;} if(p1==NULL){ printf(“对不起,你没有订过票!n”);return;}/*若未找到,退出本模块*/ else {/*若信息查询成功,删除订票客户名单域中的信息*/ if(p1==head)head=p1->next;else p2->next=p1->next;info->tkt_sur+=p1->ord_amt;grade=p1->grade;printf(“%s成功退票!n”,p1->name);free(p1);}

info->order=head;/*重新将航线名单域指向订票单链表的头指针 */ f=(info->wait).front;/*f指向排队等候名单队列的头结点*/ r=(info->wait).rear;/*r指向排队等候名单队列的尾结点*/ t=f;/*t为当前满点条件的排队候补名单域*/ while(t){ if(info->tkt_sur=info->wait.front->req_amt){/*若满足条件者为头结点*/ int i;info->wait.front=t->next;printf(“%s订票成功!n”,t->name);for(i=0;ireq_amt;i++)/*输出座位号*/ printf(“%s的座位号是:%dn”,t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;

info->order=insertlink(info->order,t->req_amt,t->name,grade);/*插入到订票客户名单链表中*/ free(t);break;} back=t;t=t->next;if((info->tkt_sur)>=(t->req_amt)&&t!=NULL)/*若满足条件者不为头结点*/ { int i;back->next=t->next;printf(“%s订票成功!n”,t->name);for(i=0;ireq_amt;i++)/*输出座位号*/ printf(“<%s>'s is:%dn”,t->name,(info->tkt_sur)-i);info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);/*

seat

number 插入到订票客户名单链表中*/ free(t);break;} if(f==r)break;} }

void sort_tkt(){/*按剩余票数排序*/ int j;struct airline t,*info,*p,*q;

p=info=air;for(p=info;(p+1)->tkt_sur;p++){

} printf(“终点站名t航班号t飞机号t飞行日期t乘员定额t余票量if(p->tkt_surtkt_sur){

} t=*p;*p=*q;*q=t;for(q=p+1;q->tkt_sur;q++)n”);for(j=0;j

int menu_select()/*菜单界面*/ { int c;char s[20];printf(“ntt航空客运订票系统n”);printf(“******************************************n”);printf(“ 1.浏览航线信息n”);printf(“ 2.浏览已订票客户信息n”);printf(“ 3.查询航线n”);printf(“ 4.办理订票业务n”);printf(“ 5.办理退票业务n”);printf(“ 6.查看剩余票数并排序n”);printf(“ 0.退出系统n”);printf(“*******************************************n”);do{ printf(“请选择:”);scanf(“%s”,s);c=atoi(s);}while(c<0||c>7);return c;}

void main(){ start=air;for(;;){ switch(menu_select()){ case 1:list();break;case 2:prtlink();break;case 3:search();break;case 4:order();break;case 5:return_tkt();break;case 6:sort_tkt();break;case 0:printf(“n欢迎使用本系统,再见!n”);exit(0);} printf(“nPress any key to continue!n”);getch();} }

第二篇:航空售票系统+C++课程设计源代码

#include #include #define M 5//每种飞机票的总数目 #define N 3//飞机票的总数目 class Plane {private: char name[40];//终点站名

int number;//航班号

int Number;//飞机号

int week;//星期几飞行

int day;//日期

int left;//余票额

int n;//与数组flag一起确定客户订票状态 public:

int flag[20];//订票状态数组,-1为预订票,1为已定票,0为初始化状态

Plane()//构造函数

{

name[0]='';

number=0;

Number=0;

week=0;

day=0;

left=M;

n=0;//数组从0开始计数

for(int i=0;i<20;i++)

flag[i]=0;} void init()//初始化每种飞机票

{

cout<<“请输入终点站名:”;

cin>>name;

cout<<“请输入航班号:”;

cin>>number;

cout<<“请输入飞机号:”;

cin>>Number;

cout<<“请输入星期几飞行:”;

cin>>week;

cout<<“请输入航班的日期:”;

cin>>day;} ~Plane(){};//析构函数 char *getname(){return name;}//获得终点站名

int getnumber(){return number;}//获得航班号

int getNumber(){return Number;}//获得飞机号

int getweek(){return week;}//获得星期几飞行

int getday(){return day;}//获得日期

int getleft(){return left;}//获得余票额

int getn(){return n;}//获得旅客数目

void inleft(int n){left=left+n;}//余票额增加函数

void deleft(int n){left=left-n;}//余票额减少函数

void inn(){n++;}//旅客数目增加函数 };Plane pl[N];int showmenu();//菜单函数 void start();//初始化函数 void query();//查询函数 void make();//订票函数 void back();//退票函数 int main(){ cout<<“这是民航售票处的计算机系统程序”<

int choice;

choice=showmenu();

switch(choice)

{

case 1:query();break;

case 2:make();break;

case 3:back();break;

case 0:return 0;

default:cout<<“你敲错了!n”;

} } return 0;} int showmenu(){ int ch;cout<>ch;return ch;} void start(){ for(int i=0;i

pl[i].init();

cout<>name;for(i=0;i<=N;i++)

if(strcmp(name,pl[i].getname())==0)

{

num++;

cout<<“航班号:”<

cout<<“飞机号:”<

cout<<“星期:”<

cout<<“航班日期:”<

cout<<“余票额:”<

break;

}

if(num==0)

cout<<“没有此航班”<>number;cout<<“请输入订票数额:”;cin>>n;for(int i=0;i

if(number==pl[i].getnumber())

{

num++;

if(n<=pl[i].getleft())

{

cout<<“此航班有票”<

pl[i].deleft(n);

pl[i].inn();

pl[i].flag[pl[i].getn()]=1;

for(i=0;i

{

cout<<“座位号”;

cin>>sitnumber;

}

}

else

{

cout<<“余票额少于订票额,请重新输入订票数额,”<<“订票数额应该少于或等于”<

cin>>nu;

if(nu<=pl[i].getleft())

{

cout<<“此航班有票”<

pl[i].deleft(nu);

pl[i].inn();

pl[i].flag[pl[i].getn()]=1;

for(i=0;i

{

cout<<“座位号”;

cin>>sitnumber;

}

}

else

{

cout<<“是否需要预约”<

cout<<“是(1)

否(2)”<

cin>>ch;

switch(ch)

{

case 1:pl[i].inn();pl[i].flag[pl[i].getn()]=-1;break;

case 2:break;

default:cout<<“你敲错了!”<

}

}

}

}

if(num==0)

cout<<“没有此航班”<

cout<<“请输入日期:”;cin>>day;cout<<“请输入航班:”;cin>>number;for(int i=0;i

if((day==pl[i].getday())&&(number==pl[i].getnumber()))//日期与航班是否满足

{

num++;//日期与航班满足

cout<<“输入退票数目”;

cin>>n;

cout<<“退票成功”<

pl[i].inleft(n);//该种飞机票增加,即已退票

for(int j=0;j<=pl[i].getn();j++)//顺序查询客户订票状态

{

if(pl[i].flag[j]==-1)//客户是否为预定状态

{

cout<<“有预约订票,请输入订票数额:”;

cin>>nu;

if(nu<=pl[i].getleft())//余票额是否满足要求

{

cout<<“此航班有票”<

pl[i].flag[j]=1;

cout<<“订票成功”<

pl[i].deleft(nu);

for(int k=0;k

{

}

cout<<“座位号”<<“ ”;

cin>>sitnumber;

}

cout<<“余票额为”<

}

}

else

cout<<“没有预约订票!”<<“余票额为”<

第三篇:C语言课程设计——飞机订票系统源代码

#include //标准输入、输出头文件 #include //包含字符串函数处理头文件 #include

//包含access函数的头文件 #define N 9999

//定义最多的航班数

#define PRINT “%dtt%stt%stt星期%stt%dn ”,s[i].num,s[i].start,s[i].over,s[i].time,s[i].count

//宏定义输出格式

struct air

//定义结构体数组 { int num;

//定义航班号

char start[20];//航班起始站

char over[20];//终点站

char time[10];//飞行时间

int count;

//机票数量 }s[N];

int i,m=0;

//定义全局变量 char ii[10];

void add();//函数声明增加航班信息函数 void print();

//显示航班信息 void search();//查找航班信息 void dingpiao();//订票业务 void tuipiao();//退票 void read();//读取文件

void save();//保存文件 void output();//输出格式 void paixu();//航班排序 void chushihua();//系统初始化 void build();//建立数据文件 void paixu1();//按航班号从小到大排序 void paixu2();//从大到小

void main()//主函数 { int j;

chushihua();//系统初始化判断是否存在原始数据文件

printf(“

欢迎使用飞机订票系统n”);//打印出系统主界面

do {

printf(“================================== ”);

printf(“1.增加航班信息n”

“t2.浏览航班信息n”

“tt3.查找航班信息(按航班号)tt╮(╯_╰)╭n”

“ttt4.航班排序(按航班号)n”

“tttt5.订票业务n”

“to(︶︿︶)ottt6.退票业务n”

“tttttt0.退出n”);printf(“================================== ”);

printf(“请在0-6中选择以回车键结束: ”);scanf(“%d”,&j);switch(j){

case 1: add();//调用增加航班函数

break;

case 2:print();//调用显示模块

break;

case 3:search();//调用查找模块

break;

case 4:paixu();//调用排序函数

break;

case 5:dingpiao();//调用订票模块

break;

case 6:tuipiao();//调用退票模块

break;

case 0:

//退出系统

save();

printf(“谢谢使用,再见!”);

break;} }while(j!=0);//判断是否调用其他函数

}

void chushihua()//定义系统初始化函数 { if(access(“hangban.dat”,0)){

build();} else

read();} void build()//定义建立数据文件函数 { FILE *fp;//定义文件指针

if((fp=fopen(“hangban.dat”,“wb”))==NULL)//打开文件并判定是否出错

{

printf(“创建文件失败!”);//打印出错提示

getchar();

return;} printf(“请依次输入航班信息(以回车键结束):n”);

//打印提示信息

printf(“------------n”);for(i=0;i

printf(“请输入航班号: ”);

scanf(“%d”,&s[i].num);//输入航班号

printf(“请输入起始站: ”);

scanf(“%s”,s[i].start);//输入起始站

printf(“请输入终点站: ”);

scanf(“%s”,s[i].over);//输入终点站

printf(“请输入时间(星期几): ”);

scanf(“%s”,s[i].time);//输入时间

printf(“请输入机票数: ”);

scanf(“%d”,&s[i].count);//输入机票数

fwrite(&s[i],sizeof(struct air),1,fp);

m++;

printf(“添加完毕,是否继续添加?请键入y或n以回车键结束:”);

scanf(“%s”,ii);

if(strcmp(ii,“y”)!=0)

//判断是否继续添加航班信息

{

fclose(fp);

//关闭文件

return;

} } }

void read()

//定义读取文件函数 { FILE *fp;if((fp=fopen(“hangban.dat”,“r”))==NULL){

printf(“创建文件失败!”);

getchar();

return;} i=0;while(!feof(fp)){

fread(&s[i],sizeof(struct air),1,fp);//逐块读取数据

i++;

m++;//计算存在航班数

} m--;fclose(fp);}

void save()//定义保存函数 { FILE *fp;if((fp=fopen(“hangban.dat”,“wb”))==NULL)

{

printf(“创建文件失败!”);

getchar();

return;} for(i=0;i

//逐块保存数据

fwrite(&s[i],sizeof(struct air),1,fp);fclose(fp);}

void add()//定义增加航班信息函数 { do{

printf(“请依次输入您要增加的航班信息(以回车键结束): n”);

//打印提示信息

printf(“------------n”);

printf(“请输入航班号: ”);

scanf(“%d”,&s[m].num);//读取航班号

printf(“请输入起始站: ”);

scanf(“%s”,s[m].start);//读取起始站

printf(“请输入终点站: ”);

scanf(“%s”,s[m].over);//读取终点站

printf(“请输入时间: ”);

scanf(“%s”,s[m].time);//读取时间

printf(“请输入机票数: ”);

scanf(“%d”,&s[m].count);//读取机票数

m++;

printf(“添加完毕,是否继续添加?请键入y或n以回车键结束:”);

scanf(“%s”,ii);}while(!strcmp(ii,“y”));//判断是否继续添加 }

void output()//定义输出格式函数 { printf(“航班号tt起始站tt终点站tt时间tt机票数n”);//信息标题

for(i=0;i

printf(PRINT);//打印出信息

}

void print()//定义显示航班信息函数 { printf(“n目前我们有如下航班:n”);output();

//调用输出格式函数

printf(“n请按回车键返回上层菜单 ”);getchar();getchar();}

void search()//定义查询函数 { int n;

do {

printf(“n请输入航班号: ”);

scanf(“%d”,&n);//输入查询的航班号

for(i=0;i

{

if(s[i].num==n)//按航班号判定输出条件

{

printf(“n您所查找的航班信息为:n ”);

printf(“航班号tt起始站tt终点站tt时间tt机票数 nn”);

printf(PRINT);//显示信息

printf(“n查询完毕,按回车键继续”);

getchar();

getchar();

return;

} } printf(“n对不起,没有您需要的信息!n ”);printf(“是否重新查找?请键入y或n以回车键结束 ”);scanf(“%s”,ii);}while(!strcmp(ii,“y”));//判定是否重新查找 }

void dingpiao()//定义订票业务函数 { int n;char a[10]=“y”;do {

search();//调用查询模块

if(!strcmp(ii,“n”))

{

printf(“对不起!没有找到您所需要的航班,所以不能订票。n”);//未查找到所需航班

printf(“n请按回车键返回上层菜单 ”);

getchar();

getchar();

strcpy(ii,“n”);

break;

}

do

{

printf(“请输入您要订的机票数(以回车键结束): ”);

scanf(“%d”,&n);//输入所订机票数

if(n<=0)

//判定机票数是否出错

{

printf(“输入错误!至少需订1张机票。n”);

}

else if(s[i].count==0)//判定机票是否售完

{

printf(“对不起,你所选择的航班的机票已售完!n”);

break;

}

else if(s[i].count!=0&&s[i].count>=n)//判定机票数是否大于等于订票数

{

s[i].count=s[i].count-n;

printf(“订票成功!”);

break;

}

else if(s[i].count

{

printf(“对不起,你所选择的航班只剩 %d张机票n”, s[i].count);

printf(“是否需要重新输入机票数?请输入y或n以回车键结束: ”);//判定是否重新输入订票数

scanf(“%s”,a);

}

}while(!strcmp(a,“y”));

printf(“是否需要订其他航班的机票?请输入y或n以回车键结束: ”);

scanf(“%s”,a);}while(!strcmp(a,“y”));//判定是否继续订票 }

void tuipiao()//定义退票函数 { int n;char a[10];do {

search();//调用查询函数

if(!strcmp(ii,“n”))

{

printf(“对不起!没有找到您所需要的航班,所以不能退票。n”);

printf(“n请按回车键返回上层菜单 ”);

getchar();

getchar();

strcpy(ii,“n”);

break;

}

printf(“请输入您要退的机票数目: ”);

scanf(“%d”,&n);//输入所退票数

if(n<=0)

//判定票数是否有效

printf(“输入错误!至少需退1张机票。”);

else

{

s[i].count=s[i].count+n;

printf(“退票成功!”);

}

printf(“是否继续? 请键入y或n以回车键结束: ”);//判定是否继续退票

scanf(“%s”,a);}while(!strcmp(a,“y”));//判定并跳出循环

}

void paixu()//定义排序函数 { int n;

printf(“n******************************************************************************** ”);

printf(“1.按航班号从小到大排序n”

“t2.按航班号从大到小排序n”);printf(“******************************************************************************** ”);

printf(“请在1-2中选择以回车键结束: ”);scanf(“%d”,&n);//输入排序方式

switch(n){

case 1:paixu1();//调用从小到大排序函数

break;

case 2:paixu2();//调用从大到小排序函数

break;} printf(“排序后的航班信息为:n”);output();

//显示排序后航班信息

printf(“n请按回车键返回上层菜单 ”);

getchar();

getchar();}

void paixu1()//定义从小到大排序函数 { int k,j;struct air t;for(i=0;i

{

k=i;

for(j=i+1;j

if(s[k].num>s[j].num)

k=j;

if(i!=k)

{

t=s[k];

s[k]=s[i];

s[i]=t;

} } }

void paixu2()//定义从大到小排序函数 {

} int k,j;struct air t;for(i=0;i

if(s[k].num

k=j;if(i!=k){

t=s[k];

s[k]=s[i];

s[i]=t;} }

第四篇:人事管理系统源代码

#include #include #include #define N 100 struct member_info {

char xm[7];char xb[3];char sr[15];char whcd[13];char zc[17];char sfzh[19];char lxdh[12];int gl;int nl;};struct member_info member[N+1];int CurrentCount=0;void input(){ char sfjx=1;

while(sfjx!=0)

{

if(CurrentCount==N)

{

printf(“n人数已达上限,不能添加!!n”);

sfjx=0;

}

else

{

CurrentCount++;

printf(“n请输入员工信息(姓名 性别 生日 年龄 文化程度 联系电话 身份证号码 工龄 职称):n”);

scanf(“%s%s%s%d%s%s%s%d%s”,member[CurrentCount].xm,member[CurrentCount].xb,member[CurrentCount].sr,&member[CurrentCount].nl,member[CurrentCount].whcd,member[CurrentCount].lxdh,member[CurrentCount].sfzh,&member[CurrentCount].gl,member[CurrentCount].zc);

printf(“n是否继续(0--结束,其它--继续):”);

scanf(“%d”,&sfjx);

}

} printf(“人员已排序”);int i,j;

for(i=1;i

for(j=CurrentCount;j>i;j--)

if(strcmp(member[j].sfzh,member[j-1].sfzh)<0)

{

member[0]=member[j];

member[j]=member[j-1];

member[j-1]=member[0];

}

printf(“n

人事基本信息表n”);

printf(“ 序号 姓名 性别

生日 年龄 文化程度 联系电话 身份证号码

工龄

职称n”);

for(i=1;i<=CurrentCount;i++)

printf(“%4d %6s%3s%11s%3d%8s%12s%20s%3d%5sn”,i,member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxdh,member[i].sfzh,member[i].gl,member[i].zc);

system(“pause”);} void save(){

FILE *fp;

fp=fopen(“ygjbxx.txt”,“w”);

if(fp==NULL)

printf(“n文件打开不成功,信息无法保存!!n”);

else

{

fprintf(fp,“%d”,CurrentCount);

for(int i=1;i<=CurrentCount;i++)

fprintf(fp,“n%8s%4s%16s%4d%14s%13s%20s%4d%18s”,member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxdh,member[i].sfzh,member[i].gl,member[i].zc);

fclose(fp);

printf(“n信息已成功保存!!n”);

}

system(“pause”);} void read(){

FILE *fp;

fp=fopen(“ygjbxx.txt”,“r”);

if(fp==NULL)

printf(“n文件打开不成功,信息无法读取!!n”);

else

{

fscanf(fp,“%d”,&CurrentCount);

for(int i=1;i<=CurrentCount;i++)

{

fscanf(fp,“%s%s%s%d%s%s%s%d%s”,member[i].xm,member[i].xb,member[i].sr,&member[i].nl,member[i].whcd,member[i].lxdh,member[i].sfzh,&member[i].gl,member[i].zc);

printf(“姓名:%s 性别:%s 生日:%s 年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %sn”,member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxdh,member[i].sfzh,member[i].gl,member[i].zc);

}

fclose(fp);

printf(“n信息已成功读取!!n”);

}

system(“pause”);} void search(){

char dcsfzh[19];

int sfjx=1,i;

while(sfjx!=0)

{

printf(“n请输入一个待查员工的身份证号码:”);

scanf(“%s”,dcsfzh);

strcpy(member[0].sfzh,dcsfzh);

i=CurrentCount;

while(strcmp(member[i].sfzh,dcsfzh)!=0)

i--;

if(i==0)

printf(“查无此人!!n”);

else

{

printf(“n此人详细信息如下:n”);

printf(“姓名:%s 性别:%s 生日:%s 年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %sn”,member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxdh,member[i].sfzh,member[i].gl,member[i].zc);

}

printf(“n是否继续(0--结束,其它--继续):”);

scanf(“%d”,&sfjx);

}

system(“pause”);} void del(){

char dcsfzh[19];

int sfjx=1,i,j;

while(sfjx!=0)

{

printf(“n请输入一个待删员工的身份证号码:”);

scanf(“%s”,dcsfzh);

strcpy(member[0].sfzh,dcsfzh);

i=CurrentCount;

while(strcmp(member[i].sfzh,dcsfzh)!=0)

i--;

if(i==0)

printf(“查无此人!!n”);

else

{

printf(“n此人详细信息如下:n”);

printf(“姓名:%s 性别:%s 生日:%s 年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %sn”,member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxdh,member[i].sfzh,member[i].gl,member[i].zc);

printf(“n按任意键开始删除......n”);

system(“pause”);

for(j=i+1;j<=CurrentCount;j++)

member[j-1]=member[j];

CurrentCount--;

printf(“n已成功删除......n”);

system(“pause”);

}

printf(“n是否继续(0--结束,其它--继续):”);

scanf(“%d”,&sfjx);

}

system(“pause”);} void modify(){

char dcsfzh[19];

int sfjx=1,i;

while(sfjx!=0)

{

printf(“n请输入一个待修改员工的身份证号码:”);

scanf(“%s”,dcsfzh);

strcpy(member[0].sfzh,dcsfzh);

i=CurrentCount;

while(strcmp(member[i].sfzh,dcsfzh)!=0)

i--;

if(i==0)

printf(“查无此人!!n”);

else

{

printf(“n此人详细信息如下:n”);

printf(“姓名:%s 性别:%s 生日:%s 年龄:%d 文化程度: %s 联系电话: %s 身份证号码: %s 工龄: %d 职称: %sn”,member[i].xm,member[i].xb,member[i].sr,member[i].nl,member[i].whcd,member[i].lxdh,member[i].sfzh,member[i].gl,member[i].zc);

printf(“n请输入新内容......n”);

printf(“n请输入人员相关信息(姓名 性别 生日 年龄 文化程度 联系电话 身份证号码 工龄 职称):”);

scanf(“%s%s%s%d%s%s%s%d%s”,member[CurrentCount].xm,member[CurrentCount].xb,member[CurrentCount].sr,&member[CurrentCount].nl,member[CurrentCount].whcd,member[CurrentCount].lxdh,member[CurrentCount].sfzh,&member[CurrentCount].gl,member[CurrentCount].zc);

printf(“n已成功修改......n”);

system(“pause”);

}

printf(“n是否继续(0--结束,其它--继续):”);

scanf(“%d”,&sfjx);

}

system(“pause”);} int check(){

int count=0,name,pass;

while(count<=2)

{

printf(“n请输入用户名及密码:”);

scanf(“%d%d”,&name,&pass);

count++;

if((name==1)&&(pass==1))

count=10;

else

if(count>2)

count=5;

}

if(count==10)

return 0;

else

return 1;} struct mem_gz {

float jbgz;float cql;float jj;float kk;float grsd;float sf;};struct mem_gz mem[N+1];void inputgz(){ char sfjx=1;CurrentCount=0;

while(sfjx!=0)

{

if(CurrentCount==N)

{

printf(“n工资已添加完毕,无法添加!!n”);

sfjx=0;

}

else

{

CurrentCount++;

printf(“请输入身份证号码为:%s的员工工资资料n”,member[CurrentCount].sfzh);

printf(“n请输入员工工资信息(基本工资 考勤 奖金 扣款 个人所得税):n”);

scanf(“%f%f%f%f%f”,&mem[CurrentCount].jbgz,&mem[CurrentCount].cql,&mem[CurrentCount].jj,&mem[CurrentCount].kk,&mem[CurrentCount].grsd);

mem[CurrentCount].sf=mem[CurrentCount].jbgz*mem[CurrentCount].cql+mem[CurrentCount].jj-mem[CurrentCount].kk-mem[CurrentCount].grsd;

}

printf(“n是否继续(0--结束,其它--继续):n”);

scanf(“%d”,&sfjx);

}

system(“pause”);} void savegz(){

FILE *fq;

fq=fopen(“yggzxx.txt”,“w”);

if(fq==NULL)

printf(“n文件打开不成功,信息无法保存!!n”);

else

{

fprintf(fq,“%d”,CurrentCount);

for(int i=1;i<=CurrentCount;i++)

fprintf(fq,“n%f %f %f %f %f %f”,mem[i].jbgz,mem[i].cql,mem[i].jj,mem[i].kk,mem[i].grsd,mem[i].sf);

fclose(fq);

printf(“n信息已成功保存!!n”);

}

system(“pause”);} void readgz(){

FILE *fq;

fq=fopen(“yggzxx.txt”,“r”);

if(fq==NULL)

printf(“n文件打开不成功,信息无法读取!!n”);

else

{

fscanf(fq,“%d”,&CurrentCount);

for(int i=1;i<=CurrentCount;i++)

{

fscanf(fq,“%f%f%f%f%f%f”,&mem[i].jbgz,&mem[i].cql,&mem[i].jj,&mem[i].kk,&mem[i].grsd,&mem[i].sf);

printf(“基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%fn”,mem[i].jbgz,mem[i].cql,mem[i].jj,mem[i].kk,mem[i].grsd,mem[i].sf);

}

fclose(fq);

printf(“n信息已成功读取!!n”);

}

system(“pause”);} void searchgz(){

int dcbh;

int sfjx=1;

while(sfjx!=0)

{

printf(“n请输入一个待查员工编号(身份证号从小到大的顺序):”);

scanf(“%d”,&dcbh);

if(dcbh<1||dcbh>CurrentCount)

printf(“查无此人!!n”);

else

{

printf(“n此人工资信息如下:n”);

printf(“基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%fn”,mem[dcbh].jbgz,mem[dcbh].cql,mem[dcbh].jj,mem[dcbh].kk,mem[dcbh].grsd,mem[dcbh].sf);

}

printf(“n是否继续(0--结束,其它--继续):”);

scanf(“%d”,&sfjx);

}

system(“pause”);} void delgz(){

int dcbh;

int sfjx=1,j;

while(sfjx!=0)

{

printf(“n请输入一个待删工资的编号:”);

scanf(“%d”,&dcbh);

if(dcbh<1||dcbh>CurrentCount)

printf(“查无此人!!n”);

else

{

printf(“n此人工资信息如下:n”);

printf(“基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%fn”,mem[dcbh].jbgz,mem[dcbh].cql,mem[dcbh].jj,mem[dcbh].kk,mem[dcbh].grsd,mem[dcbh].sf);

printf(“n按任意键开始删除......n”);

system(“pause”);

for(j=dcbh+1;j<=CurrentCount;j++)

mem[j-1]=mem[j];

CurrentCount--;

printf(“n已成功删除......n”);

system(“pause”);

}

printf(“n是否继续(0--结束,其它--继续):”);

scanf(“%d”,&sfjx);

}

system(“pause”);} void modifygz(){

int dcbh;

int sfjx=1;

while(sfjx!=0)

{

printf(“n请输入一个待修改工资员工的编号:”);

scanf(“%d”,&dcbh);

if(dcbh<1||dcbh>CurrentCount)

printf(“查无此人!!n”);

else

{

printf(“n此人工资信息如下:n”);

printf(“基本工资: %f 考勤: %f 奖金: %f 扣款: %f 个人所得税: %f 实发工资:%fn”,mem[dcbh].jbgz,mem[dcbh].cql,mem[dcbh].jj,mem[dcbh].kk,mem[dcbh].grsd,mem[dcbh].sf);

printf(“n请输入新内容......n”);

printf(“n请输入人员工资信息(基本工资 考勤 奖金 扣款 个人所得税 实发工资):”);

scanf(“%f%f%f%f”,&mem[CurrentCount].jbgz,&mem[dcbh].cql,&mem[dcbh].jj,&mem[dcbh].kk,&mem[dcbh].grsd,&mem[dcbh].sf);

printf(“n已成功修改......n”);

system(“pause”);

}

printf(“n是否继续(0--结束,其它--继续):”);

scanf(“%d”,&sfjx);

}

system(“pause”);} void listgz(){ int i;

printf(“n

员工工资信息表n”);

printf(“ 序号 基本工资 考勤 奖金 扣款 个人所得税 实发工资n”);

for(i=1;i<=CurrentCount;i++)

printf(“%4d %8f%8f%8f%8f”,i,mem[i].jbgz,mem[i].cql,mem[i].jj,mem[i].kk,mem[i].grsd,mem[i].sf);

system(“pause”);}

void main(){

int xz=1;

printf(“

*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*n”);printf(“

*

欢迎使用人事工资管理系统

*n”);printf(“

***************************************nnn”);

if(check()!=0)

{

printf(“n你无权使用本系统......nn”);

system(“pause”);

}

else

{

while(xz!=0)

{

printf(“n请选择相应功能:n”);

printf(“1-录入n2-查询n3-修改n4-删除n5-保存n6-读取n7-输入员工工资n8-保存工资信息n9-读取工资信息n10-修改工资信息n11-删除工资信息n12-工资列表n0-结束n请输入选择:”);

scanf(“%d”,&xz);

switch(xz)

{

case 1:

input();break;

case 2:

search();break;

case 3:

modify();break;

case 4:

del();break;

case 5:

save();break;

case 6:

read();break;

case 7:

inputgz();break;

case 8:

savegz();break;

case 9:

readgz();break;

case 10:

modifygz();break;

case 11:

delgz();break;

case 12:

listgz();break;

case 0:

printf(“nn谢谢使用本系统!nn”);system(“pause”);break;

default:

printf(“n无此功能,请重新选择......n”);

system(“pause”);

}

}

} }

第五篇:铁路售票系统

铁路售票系统应用软件需求分析报告

前言:

(1)需求分析报告的编写目的

本需求分析报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本铁路售票系统的软件开发过程,便于程序员与客户之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用。(2)产品背景明细 软件名称:铁路售票系统 软件开发者:(3)缩写及缩略语

铁路售票应用系统软件:基本元素为构成铁路售票及相关行为所必须的各种部分。

需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。

需求分析:包括提炼,分析和仔细审查已收集到的需求,以确保所有的风险承担者都明其含义并找出其中的错误,遗憾或其它不足的地方。

模块的独立性:是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。本工程描述:

(1)软件开发的目标:

完善目前铁路售票系统,使之能跟上时代的发展。同时通过实践来提高自己的动手能力。(2)应用范围:

理论上能够实现于铁路部门的售票系统,其目的在于在原有的系统基础使得铁路售票实名化,以期实现完善日常生活中铁路售票的各种缺陷。(3)硬件配置要求:

硬件外部设备需奔腾133以上的pc机,内存需16兆以上。(4)子集说明:

软件分别有五个模块组成,每个模块各有不同的功能。但都能完成查询和存储功能,各模块的数据都存放在数据库中。数据的调用和连接都有程序来完成。(5)软件功能描述:

外部功能:实现可视化窗口,查找及存储 内部功能:同步,过滤,定位,识别 软件功能描述图: 赔偿信息 车次信息 列车明细 日志维护 个人信息 主界面 同步 过滤 数据库 定位

(6)软件操作人员的要求:

软件要求操作人员具有初步的相关知识(7)在其他方面的要求:

由于本系统为即时软件,对数据的同步要求较高,建议配置网络时使用可靠性较高的相关网络硬件设施。软件结构化描述(1)数据流图: 乘客 数据库更新 列车明细 个人信息 日志 售票员

(2)数据结构的描述:

车票=日期+价格+出发站+目的站+售票站+座号+车次+性质+编号 日期=年+月+日+时+分 价格=“1”..“9999” 出发站=1{汉字}6 目的站=1{汉字}6 售票站=1{汉字}6 座号=车厢号+座位号 车次=“1”..“9999”

编号=“000000001”..“999999999”

性质=“1”..“6” 注:“1”表示空调硬座特快,“2”表示空调软座普快等 设计要求:

(1)所调用的数据库的显示: 输入内容:指定的库文件名。加工内容:调用指定的数据库。输出内容:所指定的数据库的库结构。(2)关于编辑框的说明: 输入内容:编辑框名称。加工内容:生成编辑框。输出内容:显示所生成的编辑框(3)指定记录说明:

输入内容:指定的项名及库文件名。加工内容:将指定的数据库里指定的记录置为当前记录。(4)初始化说明: 输入内容:所要求的尺寸

要求处理内容:确定指定对象在窗体中的开始尺寸的大小 输出内容:确定开始尺寸的四个参数。(5)最大化说明: 输入内容:指定的参数值。

加工内容:确定指定对象在窗体中的最大尺寸。输出内容:确定指定对象最大尺寸的四个参数。(6)最小化说明 原理同上

(7)查词编辑框说明(编辑框控制)

功能:主要是定义的一个编辑框,供用户输入一个词名,为程序生成查找条件做准备。输入内容:在查词编辑框中输入要查找的词名。加工内容:用输入的词名以供程序生成查找条。输出内容:地址、长度。

(8)内容编辑框说明(编辑框控制)

功能:主要是定义的一个编辑框,将程序查找到的用户所输入词的相关内容显示出来,为用户提供帮助信息。

输入内容:数据库中查找到的记录的项的内容的地址、长度。加工内容:置控制标题或值。

输出内容:显示用户所输入词的相关内容(如该词的格式、用法……)。(9)定义过滤说明

作用:定义用户输入的词名与内容库中的词名字段中的词名进行串比较,即定义词名字段为过滤字段。输入内容:用户输入的词名。

加工内容:把代码写入过滤条件指针之中。输出内容:查找条件。(10)执行过滤说明

作用:将定义的过滤作为内容库的过滤条件。输入内容:查找条件。

加工内容:与查找编辑框中的内容比较。输出内容:库过滤显。(11)同步说明: I:令牌持有标记

P:与数据库同步更新数据 O:更新数据库 环境要求:

(1)数据录入精度需求

在进行向数据库文件提取数据时,要求数据记录定位准确,在往数据库文件数组中添加数时,要求输入数准确。

(2)软件自身时间特性需求

程序响应时间:在人的感觉和视觉事件范围内;

信息交换时间:要求在程序调用前调用后都与数据库保持同步更新,网络信息狡猾施加应该小于程序调用的时间

(3)数据管理能力需求

要求数据库具有很好的更新能力,由于本产品是实验性软件,故对磁盘和内存容量没有很高的要求,但是数据库应该能够对并发事件,脏数据具有较强的识别处理能力。接口要求:

(1)硬件接口:无特别要求

(2)网络硬件接口要求:现实中要求具有高速以太网组网一实现联网销售,但是在理论实验验证软件本身的目的来看,无需网络通讯接口。(3)软件接口要求:无 软件属性(1)可用性 本软件也可以通过单步跟踪的操作进行检查处理。

(2)安全性

由于软件运行数据放在数据库中,所以参数不容易被错改、破坏,万一参数受到破坏也不会影响源程序。(3)可维护性

本软件利用数据库进行编程,系统结构由程序基本确定,大量的参数及文本内容全部放于数据库中。修改、更新数据只要在数据库进行修改添加,而不需要对系统结构进行修改,这样系统维护性、升级都十分方便。(4)兼容性

由于尚未测试,故无法对兼容性进行评析。支持信息(1)软件支持:

本软件开发是使用Delphi编写。

(2)设备支持:

推荐配置:WindowsXP,256内存,VGA显示器

下载飞机售票系统源代码5则范文word格式文档
下载飞机售票系统源代码5则范文.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    职工信息管理系统源代码

    #include #include #include int N=2; struct worker/*定义一个职工信息的结构体*/ { intnum; /*定义一个职工信息的结构体*/ char name[20]; /*定义一个职工信息的结构......

    通讯管理系统源代码

    题目:用C/C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。 (一)功能要求 (1)查看功能:选择此功能时,列出下列三类选择。 A 办公类 B 个人类 C 商务类 ,当选中某类时......

    学生信息管理系统源代码

    学生信息管理系统源代码 import java.io.*; class StuInfo { public String name; public int number; public String sex; public String age; public String bir; public......

    人事管理系统数据库源代码

    using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using Sys......

    图书管理系统源代码

    环植学院深入开展创先争优活动实施方案为贯彻落实中共中央、海南省委、省委教育工委及学校党委“关于在党的基层组织和党员中深入开展创先争优活动”的决定,根据相关文件精神......

    售票系统应急预案

    安徽天柱山旅游发展有限公司 售票系统应急预案 为建立健全景区售票系统应急保障体系和运行机制,快速、有效地处理售票系统的安全事故和突发事件,根据风景区实际特制定本预案。......

    网上售票系统任务书

    题目: 任务与要求: 网上售票系统 (1)能够熟练应用Mysql数据库对数据进行管理。 (2)前台部分主要用于为客户服务、包括余票查询、车票详细信息展示、客户信息修改、车票退定、关于......

    航空售票管理系统

    #include #include #include #include #include #define N 100 using namespace std; typedef struct node//定义信息结构体 { char num[10];// 航班号int hour;//起飞时......