C語言實現(xiàn)航班管理系統(tǒng)
本文實例為大家分享了C語言實現(xiàn)航班管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
/*.航班管理系統(tǒng)
主界面以菜單的形式展現(xiàn),用戶可以按不同的鍵執(zhí)行不同的操作,即調(diào)用不同的函數(shù);
......
用不同的函數(shù)實現(xiàn),除以下模塊,還可設(shè)計其他功能模塊:
1)輸入記錄:輸入錄入航班信息,包括:航班號,起降時間,起飛抵達城市,航班票價,票價折扣,航班是否滿倉等;
2)輸出記錄:輸出信息;
3)查詢記錄:可根據(jù)航班號查找記錄;
4)刪除記錄:指定航班號刪除該條記錄;
5)插入記錄:在指定位置插入新的記錄。
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 50
int menu();
int input(struct );
void print(struct );
void search(struct flight_info info[],int n);
int find_id(struct flight_info info[],int n,char *p);
int del(struct,int n);
int add(struct ,int n);
//菜單
int menu(){
int i=1,choie;
// struct flight_info *info;
printf("******************航班管理系統(tǒng)*********************
");
printf(" %d.輸入航班信息
",i++);
printf(" %d.輸出航班信息
",i++);
printf(" %d.查詢記錄
",i++);
printf(" %d.刪除記錄
",i++);
printf(" %d.插入記錄
",i++);
printf(" %d.退出系統(tǒng)
",i++);
printf("****************************************************
");
do{
printf("請輸入你所選功能(1~6):");
scanf("%d",&choie);
}while(choie<0||choie>6);
return choie;
}
//輸入航班信息
//航班號,起降時間,起飛抵達城市,航班票價,票價折扣,航班是否滿倉
struct time{
int hour;
int minute;
};
struct flight_info{
char id[20]; //航班號
time takeoff; //起飛時間
time landing; //降落時間
char city[20]; //起降城市
float money; //航班票價
float discount;//票價折扣
char full[3];//航班是否滿倉
};
int input(struct flight_info info[]){
int count;
system("cls");
printf("
請輸入航班記錄條數(shù): ");
scanf("%d",&count);
for(int i=0;i<count;i++){
printf("
記錄號:%d
",i+1);
for(int j=0;j<20;j++){printf("-");}
printf("
航班號: ");scanf("%s",info[i].id);
printf("起飛時間(x時x分)");scanf("%d%d",&info[i].takeoff.hour,&info[i].takeoff.minute);
printf("降落時間(x時x分)");scanf("%d%d",&info[i].landing.hour,&info[i].landing.minute);
printf("起降城市");scanf("%s",info[i].city);
printf("航班票價");scanf("%f",&info[i].money);
printf("票價折扣");scanf("%f",&info[i].discount);
printf("是否滿倉");scanf("%s",info[i].full);
}
return count;
}
//輸出航班信息
void print(struct flight_info info[],int n){
int i;
system("cls");
printf("
******************航班信息*********************
");
printf("航班號 起降時間 起降城市 票價 折扣 是否滿倉
");
printf("------------------------------------------------------------------
");
for(i=0;i<n;i++){
printf("%s %d:%d-%d:%d %s %.2f %.2f %s
",info[i].id,info[i].takeoff.hour,info[i].takeoff.minute,info[i].landing.hour,info[i].landing.minute,info[i].city,info[i].money,info[i].discount,info[i].full);
printf("------------------------------------------------------------------
");
}
}
//查詢記錄
void search(struct flight_info info[],int n){
char s[20];
int i;
system("cls");
printf("請輸入查找航班號:
");
scanf("%s",s);
getchar();
i=find_id(info,n,s);
if(i>n-1)
printf("沒有航班號為%s的航班!
",s);
else {
system("cls");
printf("
******************航班信息*********************
");
printf("航班號 起降時間 起降城市 票價 折扣 是否滿倉
");
printf("------------------------------------------------------------------
");
printf("%s %d:%d-%d:%d %s %.2f %.2f %s
",info[i].id,info[i].takeoff.hour,info[i].takeoff.minute,info[i].landing.hour,info[i].landing.minute,info[i].city,info[i].money,info[i].discount,info[i].full);
printf("------------------------------------------------------------------
");
}
}
//刪除記錄
int del(struct flight_info info[],int n){
char s[20];
int ch=0;
int i;
printf("請輸入要刪除的航班號:
");
scanf("%s",s);
getchar();
i=find_id(info,n,s);
if(i>n-1)
printf("沒有航班號為%s的航班!
",s);
else {
printf("正在刪除中!
");
for(;i<n;i++){ //從刪除位置開始依次前移航班記錄
strcpy(info[i].id,info[i+1].id);
info[i].takeoff.hour=info[i+1].takeoff.hour;
info[i].takeoff.minute=info[i+1].takeoff.minute;
info[i].landing.hour=info[i+1].landing.hour;
info[i].landing.minute=info[i+1].landing.minute;
strcpy(info[i].city,info[i+1].city);
info[i].money=info[i+1].money;
info[i].discount=info[i+1].discount;
strcpy(info[i].full,info[i+1].full);
}
n--; //刪除后記錄數(shù)減1
printf("刪除成功!
");
}
return n;
}
//插入記錄
int add(struct flight_info info[],int n){
struct flight_info temp; //新插入記錄信息
int i,j;
char s[20];
printf("請輸入要插入的航班記錄:
");
printf("**************************************************");
printf("
航班號: ");scanf("%s",temp.id);
printf("起飛時間(x時x分)");scanf("%d%d",&temp.takeoff.hour,&temp.takeoff.minute);
printf("降落時間(x時x分)");scanf("%d%d",&temp.landing.hour,&temp.landing.minute);
printf("起降城市");scanf("%s",temp.city);
printf("航班票價");scanf("%f",&temp.money);
printf("票價折扣");scanf("%f",&temp.discount);
printf("是否滿倉");scanf("%s",temp.full);
//輸入插入信息
getchar();
printf("------------------------------------------
");
if(n>0){
printf("請輸入插入位置的航班號,將新紀錄插入在該航班號前:
");
scanf("%s",s); //輸入插入位置的姓名
getchar();
i=find_id(info,n,s); //確定插入位置
}
else
i=0;
for(j=n-1;j>=i;j--){
strcpy(info[j+1].id,info[j].id);
info[j+1].takeoff.hour=info[j].takeoff.hour;
info[j+1].takeoff.minute=info[j].takeoff.minute;
info[j+1].landing.hour=info[j].landing.hour;
info[j+1].landing.minute=info[j].landing.minute;
strcpy(info[j+1].city,info[j].city);
info[j+1].money=info[j].money;
info[j+1].discount=info[j].discount;
strcpy(info[j+1].full,info[j].full);
}
strcpy(info[i].id,temp.id);
info[i].takeoff.hour=temp.takeoff.hour;
info[i].takeoff.minute=temp.takeoff.minute;
info[i].landing.hour=temp.landing.hour;
info[i].landing.minute=temp.landing.minute;
strcpy(info[i].city,temp.city);
info[i].money=temp.money;
info[i].discount=temp.discount;
strcpy(info[i].full,temp.full);
n++; //記錄數(shù)加1
return n;//返回記錄數(shù)
}
//按航班號查找函數(shù)
int find_id(flight_info info[],int n,char *p){
int i;
for(i=0;i<n;i++){
if(strcmp(p,info[i].id)==0)
return i;
}
return i;
}
int main(){
int length;
flight_info info[N];
for(;;){
switch(menu()){
case 1:length=input(info);break;
case 2:print(info,length);break;
case 3:search(info,length);break;
case 4:length=del(info,length);break;
case 5:length=add(info,length);break;
case 6:system("cls");printf("系統(tǒng)已關(guān)閉!!!
感謝使用
");exit(0);break;
}
printf("按回車鍵返回主菜單...
");
getchar();
}
return 0;
}










更多學習資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持我們。
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對數(shù)怎么表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機閱讀
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10C#中split用法實例總結(jié)
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什


