當前位置:編程學習大全網 - 編程語言 - 想要壹個5000行以上的代碼程序或模塊(希望用C++或者C語言編寫)

想要壹個5000行以上的代碼程序或模塊(希望用C++或者C語言編寫)

#include <stdio.h>//標準輸入、輸出頭文件

#include <string.h> //包含字符串函數處理頭文件

#include <conio.h>

#include <stdlib.h>//包含動態存儲與釋放函數頭文件

struct FeiJiDingPiao//定義結構體數組

{

char AirNo[4];//定義航班號

char StartPos[6];//定義始發地

char EndPos[6];//定義目的地

char StartTime[14]; //yymmddwwhhmmss

char Mount[4];//定義機票數量

char Price[5];//定義票價

unsigned char a;//定義無符號變量a

};

struct FeiJiDingPiao s,ss[50];

long filesize(FILE *stream)

{

long curpos, length;

curpos = ftell(stream);

fseek(stream, 0L, SEEK_END);

length = ftell(stream);

fseek(stream, curpos, SEEK_SET);

return length;

}

void disp()//瀏覽信息

{ char i;

printf("\n-");for(i=0;i<4;i++) printf("%c",s.AirNo[i]);

printf("-"); for(i=0;i<6;i++) printf("%c",s.StartPos[i]);

printf("-"); for(i=0;i<6;i++) printf("%c",s.EndPos[i]);

printf("-"); for(i=0;i<14;i++) printf("%c",s.StartTime[i]);

printf("-"); for(i=0;i<4;i++) printf("%c",s.Mount[i]);

printf("-"); for(i=0;i<5;i++) printf("%c",s.Price[i]);

// printf("\n");

}

void Pstrcpy( char i)//

{ char j;

for(j=0;j<4;j++) s.AirNo[j]=ss[i].AirNo[j];

for(j=0;j<6;j++) s.StartPos[j]=ss[i].StartPos[j];

for(j=0;j<6;j++) s.EndPos[j]=ss[i].StartPos[j];

for(j=0;j<14;j++) s.StartTime[j]=ss[i].StartPos[j];

for(j=0;j<4;j++) s.Mount[j]=ss[i].StartPos[j];

for(j=0;j<5;j++) s.Price[j]=ss[i].StartPos[j];

s.a=0;

}

int write_ssToFile (char count)//添加記錄

{

FILE *stream;

char i;

if ((stream = fopen("record.txt", "w+")) == NULL) /* open file TEST.$$$ */

{

fprintf(stderr, "Cannot open output file.\n");

return 1;

}

for(i=0;i<count;i++)

fwrite(&ss[i], 40, 1, stream); /* write struct s to file */

fclose(stream); /* close file */

printf("\n Write Record Successed!");

getch();

return 0;

}

char Func31(char n)

{ char i;

printf("\nAppend Record!\n");

printf("\nAirNo[4]"); for(i=0;i<4;i++) ss[n].AirNo[i]=getche();

printf("\nStartPos[6]"); for(i=0;i<6;i++) ss[n].StartPos[i]=getche();

printf("\nEndPos[6]"); for(i=0;i<6;i++) ss[n].EndPos[i]=getche();

printf("\nStartTime[14]");for(i=0;i<14;i++)ss[n].StartTime[i]=getche();

printf("\nMount[4]"); for(i=0;i<4;i++) ss[n].Mount[i]=getche();

printf("\nPrice[5]"); for(i=0;i<5;i++) ss[n].Price[i]=getche();

ss[n].a=0;

do{printf("\nConfirm Y/N ?");

i=getche();

}while((i!='Y')&(i!='y')&(i!='N')&(i!='n'));

if((i=='Y')|(i=='y')) return 1;

else return 0;

}

int Insert_i(char no_to_delete)//插入信息

{

FILE *stream;

// struct mystruct s;

char i,j,k=0;

long curpos,Length;

if ((stream = fopen("Record.txt", "r"))

== NULL)

{

fprintf(stderr, "Cannot open output file.\n");

return 1;

}

Length=filesize(stream);

Length/=41;

printf("\nthere are %d Records\n",Length);

if(Length>=no_to_delete)

{ for(j=0,i=0;j<Length;j++) {

curpos=41*j; //*0 *1 *2

if(j==no_to_delete){

if(Func31(i)==1) {k=1; Pstrcpy(i); disp(); i++;}

}

fseek(stream, curpos, SEEK_SET);

fread(&ss[i], 40, 1, stream);

//i++;

Pstrcpy(i); disp(); i++;

}

if(k==1) write_ssToFile(Length+1);

}

fclose(stream);

return 0;

}

int delet_i(char no_to_delete)//刪除記錄

{

FILE *stream;

// struct mystruct s;

char i,j;

long curpos,Length;

if ((stream = fopen("Record.txt", "r"))

== NULL)

{

fprintf(stderr, "Cannot open output file.\n");

return 1;

}

Length=filesize(stream);

Length/=41;

printf("\nthere are %d Records\n",Length);

if(Length>=no_to_delete)

{ for(j=0,i=0;j<Length;j++) {

curpos=41*j; //*0 *1 *2

if(j!=no_to_delete)

{fseek(stream, curpos, SEEK_SET);

fread(&ss[i], 40, 1, stream);

//i++;

Pstrcpy(i); disp(); i++;

}

}

write_ssToFile(Length-1);

}

fclose(stream);

return 0;

}

int disp_all(void)//瀏覽所有信息

{

FILE *stream;

// struct mystruct s;

char j;

long curpos,Length;

if ((stream = fopen("Record.txt", "r"))

== NULL)

{

fprintf(stderr, "Cannot open output file.\n");

return 1;

}

Length=filesize(stream);

Length/=41;

printf("\nthere are %d Records\n",Length);

for(j=0;j<Length;j++) {

curpos=41*j; //*0 *1 *2

fseek(stream, curpos, SEEK_SET);

fread(&s, 40, 1, stream);

disp();

}

fclose(stream);

return 0;

}

int Read_all(void)//讀入所有信息

{

FILE *stream;

// struct mystruct s;

char j;

long curpos,Length;

if ((stream = fopen("Record.txt", "r"))

== NULL)

{

fprintf(stderr, "Cannot open output file.\n");

return 1;

}

Length=filesize(stream);

Length/=41;

printf("\nthere are %d Records\n",Length);

for(j=0;j<Length;j++) {

curpos=41*j; //*0 *1 *2

fseek(stream, curpos, SEEK_SET);

fread(&ss[j], 41, 1, stream);

//disp();

}

fclose(stream);

return Length;

}

int write_all (unsigned char n)//寫入信息

{

FILE *stream;

char i;

if ((stream = fopen("record2.txt", "w")) == NULL)

{

fprintf(stderr, "Cannot open output file.\n");

return 1;

}

for(i=0;i<n;i++)

{//fseek(stream, curposT, SEEK_SET);

ss[i].a=0;

fwrite(&ss[i], 40, 1, stream); /* write struct s to file */

}

fclose(stream); /* close file */

printf("\n Write All Record Successed!");

getch();

return 0;

}

long disp_i(long No)

{ //No=0/1/2/3...

FILE *stream;

// struct mystruct s;

// char i;

long curpos,Length;

if ((stream = fopen("Record.txt", "r")) //對打開文件進行測試

== NULL)

{

fprintf(stderr, "Cannot open output file.\n");

return 1;

}

Length=filesize(stream);

Length/=41;

if(Length>=No){

printf("\nNo.%d is in Records",No);

curpos=41*No; //*0 *1 *2

fseek(stream, curpos, SEEK_SET);//尋找文件

fread(&s, 40, 1, stream);//讀入文件

disp();}

else printf("\nNo.%d is not in Records",No);

fclose(stream); //關閉文件

return curpos;

}

int write_rewrite (long curposT)//重新寫入信息

{

FILE *stream;

// char i;

if ((stream = fopen("record.txt", "r+")) == NULL) /* 對打開文件進行測試 */

{

fprintf(stderr, "Cannot open output file.\n");

return 1;

}

fseek(stream, curposT, SEEK_SET);

fwrite(&s, 40, 1, stream); /* 將***用體s寫入文件 */

fclose(stream); /* 關閉文件 */

printf("\n Append Record Successed!");

getch();

return 0;

}

int write_app(void)

{

FILE *stream;

// char i;

if ((stream = fopen("record.txt", "a+")) == NULL) /* 對打開文件進行測試 */

{

fprintf(stderr, "Cannot open output file.\n");

return 1;

}

fseek(stream, 0L, SEEK_END);

fwrite(&s, 40, 1, stream); /*將***用體s寫入文件 */

fclose(stream); /* 關閉文件 */

printf("\n Append Record Successed!");

getch();

return 0;

}

char Func11(void)

{ char i;

printf("\nAppend Record!\n");

printf("\nAirNo[4]"); for(i=0;i<4;i++) s.AirNo[i]=getche();

printf("\nStartPos[6]"); for(i=0;i<6;i++) s.StartPos[i]=getche();

printf("\nEndPos[6]"); for(i=0;i<6;i++) s.EndPos[i]=getche();

printf("\nStartTime[14]");for(i=0;i<14;i++)s.StartTime[i]=getche();

printf("\nMount[4]"); for(i=0;i<4;i++) s.Mount[i]=getche();

printf("\nPrice[5]"); for(i=0;i<5;i++) s.Price[i]=getche();

s.a=0;

do{printf("\nConfirm Y/N ?");

i=getche();

}while((i!='Y')&(i!='y')&(i!='N')&(i!='n'));

if((i=='Y')|(i=='y')) return 1;

else return 0;

}

void Func1(void)

{ char i;

i=Func11();

if(i==1) write_app();

}

void Func2(void)

{ char m,i;

long curposT;

printf("\nModify Record!\n");

printf("\n Input No. for display\n");

m=getche();

if((m>='0')|(m<=9)) curposT=disp_i(m-'0');

getch();

printf("\nFunc1 Started!\n");

printf("\nAirNo[4]"); for(i=0;i<4;i++) s.AirNo[i]=getche();

printf("\nStartPos[6]"); for(i=0;i<6;i++) s.StartPos[i]=getche();

printf("\nEndPos[6]"); for(i=0;i<6;i++) s.EndPos[i]=getche();

printf("\nStartTime[14]");for(i=0;i<14;i++)s.StartTime[i]=getche();

printf("\nMount[4]"); for(i=0;i<4;i++) s.Mount[i]=getche();

printf("\nPrice[5]"); for(i=0;i<5;i++) s.Price[i]=getche();

s.a=0;

do{printf("\nConfirm Y/N ?");

i=getche();

}while((i!='Y')&(i!='y')&(i!='N')&(i!='n'));

if((i=='Y')|(i=='y'))

write_rewrite (curposT);

}

void Func3(void)

{ char m;

printf("\nInsert Record!\n");

m=getche();

if((m>='0')&(m<='9'))

Insert_i(m-'0');

// getche();

}

void Func4(void)

{ char m;

printf("\nDelete Record!\n");

m=getche();

if((m>='0')&(m<='9')) delet_i(m-'0');

getche();

}

void disp_title(void)

{

printf("\n航班號\t起始站\t終點站\t起飛時間 成員定額 票價");

}

void disp_OneRecord(char num)

{ char i;

printf("\n ");for(i=0;i<4;i++) printf("%c",ss[num].AirNo[i]);

printf(" /");for(i=0;i<6;i++) printf("%c",ss[num].StartPos[i]);

printf(" /"); for(i=0;i<6;i++) printf("%c",ss[num].EndPos[i]);

printf(" /"); for(i=0;i<14;i++) printf("%c",ss[num].StartTime[i]);

printf(" /"); for(i=0;i<4;i++) printf("%c",ss[num].Mount[i]);

printf(" /"); for(i=0;i<5;i++)printf("%c",ss[num].Price[i]);

// printf("\n");

}

void search_by_endpos() //已完成的函數 2/5

{

char Tplace[24],i,n;

int count;

count=Read_all(); //讀全部記錄至結構ss[0...49]

printf("\n請輸入查詢航班到達地方:");

for(i=0;i<6;i++)

Tplace[i]=getche();//scanf("%s",Tdate);

disp_title(); //打印信息標題

/*for (i=0;i<count;i++)

if(strcmp(ss[i]. StartTime,Tdate)==0) disp_OneRecord(i); */

for (i=0;i<count;i++)

if((ss[i]. EndPos[0]== Tplace[0])&&

(ss[i]. EndPos[1]== Tplace[1])&&

(ss[i]. EndPos[2]== Tplace[2])&&

(ss[i]. EndPos[3]== Tplace[3])&&

(ss[i]. EndPos[4]== Tplace[4])&&

(ss[i]. EndPos[5]== Tplace[5]))

disp_OneRecord(i);

printf("\nExit (Y/N)?");do{n=getch();}while((n!='Y')&&(n!='y'));

}

void search_by_date_and_endpos() //已完成的函數 3/5

{

char Tdate[14],Tplace[6],i,n;

int count;

count=Read_all(); //讀全部記錄至結構ss[0...49]

printf("\n請輸入查詢日期:");

scanf("%s",Tdate);

printf("\n請輸入到達地點:");

for(i=0;i<6;i++) Tplace[i]=getche();

disp_title(); //打印信息標題

for (i=0;i<count;i++)

if((ss[i]. StartTime[0]== Tdate[0])&&(ss[i].EndPos[0]== Tplace[0])&&

(ss[i]. StartTime[1]== Tdate[1])&&(ss[i].EndPos[1]== Tplace[1])&&

(ss[i]. StartTime[2]== Tdate[2])&&(ss[i].EndPos[2]== Tplace[2])&&

(ss[i]. StartTime[3]== Tdate[3])&&(ss[i].EndPos[3]== Tplace[3])&&

(ss[i]. StartTime[4]== Tdate[4])&&(ss[i].EndPos[4]== Tplace[4])&&

(ss[i]. StartTime[5]== Tdate[5])&&(ss[i].EndPos[5]== Tplace[5]))

disp_OneRecord(i);

printf("\nExit (Y/N)?");do{n=getch();}while((n!='Y')&&(n!='y'));

}

void search_by_Mount() //已完成的函數 4/5

{

char Max[6],i,n;

int count;

count=Read_all(); //讀全部記錄至結構ss[0...49]

printf("\n請輸入查詢航班號");

for(i=0;i<6;i++) Max[i]=getche();//scanf("%s",Tdate);

disp_title(); //打印信息標題

for (i=0;i<count;i++)

if((ss[i]. AirNo[0]== Max[0])&&

(ss[i]. AirNo[1]== Max[1])&&

(ss[i]. AirNo[2]== Max[2])&&

(ss[i]. AirNo[3]== Max[3])&&

(ss[i]. AirNo[4]== Max[4])&&

(ss[i]. AirNo[5]== Max[5]))

disp_OneRecord(i); //打印信息

printf("\nExit (Y/N)?");do{n=getch();}while((n!='Y')&&(n!='y'));

}

long chg(char i)

{long n;

n=(ss[i].StartTime[0]-'0')*100000+

(ss[i].StartTime[1]-'0')*10000+

(ss[i].StartTime[2]-'0')*1000+

(ss[i].StartTime[3]-'0')*100+

(ss[i].StartTime[4]-'0')*10+

(ss[i].StartTime[5]-'0');

return n;

}

void order_by_date() //已完成的函數 5/5

{

long a[100],b[100];

int count;

int i,j;

long temp;

system("cls");//清屏

count=Read_all(); //讀全部記錄至結構ss[0...49]

for(i=0;i<count;i++)

a[i]=chg(i);//冒泡排序法

for(i=0;i<count;i++) b[i]=a[i];

printf("\n排序前數組為\n");

for(i=0;i<count;i++) printf("%ld ",a[i]);

for(i=0;i<count;i++)

{

for(j=i;j<count;j++)

{

if(a[i]>a[j])

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

}

printf("\n");

for(i=0;i<count;i++)

printf("%ld-",a[i]);

printf("\n排序後數組為\n");

for(j=0;j<count;j++)

for(i=0;i<count;i++)

if(a[j]==b[i]) disp_OneRecord(i);

}

void search_by_date() // 樣板 1/5

{ char Tdate[14],i,n;

int count;

count=Read_all(); //讀全部記錄至結構ss[0...49]

printf("\n請輸入查詢日期:");

scanf("%s",Tdate);

disp_title(); //打印信息標題

/*for (i=0;i<count;i++)

if(strcmp(ss[i]. StartTime,Tdate)==0) disp_OneRecord(i); */

for (i=0;i<count;i++)

if((ss[i]. StartTime[0]== Tdate[0]) &&

(ss[i]. StartTime[1]== Tdate[1])&&

(ss[i]. StartTime[2]== Tdate[2])&&

(ss[i]. StartTime[3]== Tdate[3])&&

(ss[i]. StartTime[4]== Tdate[4])&&

(ss[i]. StartTime[5]== Tdate[5]))

disp_OneRecord(i);

printf("\nExit (Y/N)?");do{n=getch();}while((n!='Y')&&(n!='y'));

}

void Func5(void)

{char n;

printf("\n請選擇");

printf("\n 1)按照時間來統計航班的航班號,即某天都有哪些航班。");

printf("\n 2)統計到某個終點的航班號,即到某個地方有哪些航班可以到達。");

printf("\n 3)統計某天到某個地方的航班號。");

printf("\n 4)統計該航空公司各個航班的最大載稱人數。");

printf("\n 5)按照航班的時間進行排序。");

n=getche();

switch(n){

case '1': search_by_date(); break;

case '2': search_by_endpos();break;

case '3': search_by_date_and_endpos();break;

case '4': search_by_Mount();break;

case '5': order_by_date(); break;

default: break;

}

printf("\n exit when Press Any key "); getche();

}

void Func6(void)

{

printf("\nCalculate!\n");

getche();

}

void main()

{ char n,m;

int count;

for(;;){

// clrscr();

system("CLS");

printf("\n\t\t\t 飛機訂票系統設計 ");

printf("\n\t\t\t ------主菜單------- ");

printf("\n\t\t\t 1.錄入 Input");

printf("\n\t\t\t 2.修改 Modify");

printf("\n\t\t\t 3.插入 Insert");

printf("\n\t\t\t 4.刪除 Delete");

printf("\n\t\t\t 5.查詢 Inquire");

printf("\n\t\t\t 6.統計計算 Calculate");

printf("\n\t\t\t 7.Display_i Record");

printf("\n\t\t\t 8.Display_all Record");

printf("\n\t\t\t 9.Reserved");

printf("\n\t\t\t 0.Exit ");

n=getch();

switch(n)

{

case '1': Func1(); break; // Input

case '2': Func2(); break; // Modify

case '3': Func3(); break; // Insert

case '4': Func4(); break; // Delete ok

case '5': Func5(); break; // *Inquire

case '6': Func6(); break; // *Calculate

case '7': printf("\n Input No. for display\n");

m=getche();

if((m>='0')&(m<='9')) disp_i(m-'0');

getch(); break;

case '8': disp_all(); getch(); break;

case '9': getch(); break;

case '0': break; //exit to DOS

case 'a':

case 'A': count=Read_all(); //讀全部記錄至結構ss[0...49]

disp_title(); //打印信息標題

for(m=0;m<count;m++)

disp_OneRecord(m); //打印全部記錄中的某壹個;

write_all(count); //將n個記錄保存至文件中;

break;

case 'b':

case 'B':

default: break;

}

if(n=='0') break;

}

}

夠嗎?

  • 上一篇:雞毛可以做什麽手工?
  • 下一篇:江蘇軟件園的園區概況
  • copyright 2024編程學習大全網