我想要一个5000行以上的代码程序或者模块(我想用C++或者C语言写)。
# include & ltstring.h & gt//头文件包含字符串函数处理
# include & ltconio.h & gt
# include & ltstdlib.h & gt//包含动态存储和释放函数的头文件
struct feijing Piao//定义一个结构数组。
{
char air no[4];//定义航班号
char StartPos[6];//定义原点
char EndPos[6];//定义目的地
char start time[14];//yymmddwwhhmmss
char Mount[4];//定义机票数量。
收费价格[5];//定义票价
无符号字符a;//定义无符号变量a
};
struct FeiJiDingPiao s,ss[50];
长文件大小(文件*流)
{
长卷曲,长度;
curpos = ftell(流);
fseek(stream,0L,SEEK _ END);
length = ftell(流);
fseek(stream,curpos,SEEK _ SET);
返回长度;
}
Void disp()//浏览信息
{ char I;
printf(" \ n-");for(I = 0;我& lt4;i++) printf("%c ",s . air no[I]);
printf("-");for(I = 0;我& lt6;i++) printf("%c ",s . start pos[I]);
printf("-");for(I = 0;我& lt6;i++) printf("%c ",s . end pos[I]);
printf("-");for(I = 0;我& lt14;i++) printf("%c ",s . start time[I]);
printf("-");for(I = 0;我& lt4;i++) printf("%c ",s . Mount[I]);
printf("-");for(I = 0;我& lt5;i++) printf("%c ",s . Price[I]);
//printf(" \ n ");
}
void Pstrcpy( char i)//
{ char j;
for(j = 0;j & lt4;j++) s.AirNo[j]=ss[i]。AirNo[j];
for(j = 0;j & lt6;j++) s.StartPos[j]=ss[i]。start pos[j];
for(j = 0;j & lt6;j++) s.EndPos[j]=ss[i]。start pos[j];
for(j = 0;j & lt14;j++) s.StartTime[j]=ss[i]。start pos[j];
for(j = 0;j & lt4;j++) s.Mount[j]=ss[i]。start pos[j];
for(j = 0;j & lt5;j++) s.Price[j]=ss[i]。start pos[j];
s . a = 0;
}
Int write_ssToFile (char count)//添加一条记录
{
文件*流;
char I;
if ((stream = fopen("record.txt "," w+")= = NULL)/*打开文件测试。$$$ */
{
fprintf(stderr,"无法打开输出文件。\ n ");
返回1;
}
for(I = 0;我& lt数数;i++)
fwrite(& amp;ss[i],40,1,stream);/*将结构写入文件*/
fclose(流);/*关闭文件*/
printf("\n写入记录成功!");
getch();
返回0;
}
char Func31(字符n)
{ char I;
printf(" \ n挂起记录!\ n ");
printf(" \ Nair no[4]");for(I = 0;我& lt4;i++) ss[n]。AirNo[I]= getche();
printf(" \ nstart pos[6]");for(I = 0;我& lt6;i++) ss[n]。StartPos[I]= getche();
printf(" \ nend pos[6]");for(I = 0;我& lt6;i++) ss[n]。end pos[I]= getche();
printf(" \ n start time[14]");for(I = 0;我& lt14;i++)ss[n]。start time[I]= getche();
printf(" \ n mount[4]");for(I = 0;我& lt4;i++) ss[n]。mount[I]= getche();
printf(" \ n price[5]");for(I = 0;我& lt5;i++) ss[n]。price[I]= getche();
ss[n]。a = 0;
do { printf(" \ N确认Y/N?");
I = getche();
}while((我!= ' Y ')& amp;(我!= ' y ')& amp;(我!= ' N ')& amp;(我!= ' n '));
if((i=='Y')|(i=='y '))返回1;
否则返回0;
}
intinsert _ I(charno _ to _ delete)//插入信息。
{
文件*流;
//struct my struct s;
char i,j,k = 0;
长卷曲,长度;
if ((stream = fopen("Record.txt "," r "))
== NULL)
{
fprintf(stderr,"无法打开输出文件。\ n ");
返回1;
}
Length=filesize(流);
长度/= 41;
printf(" \n有%d条记录\ n ",长度);
if(长度& gt=否_删除)
{ for(j=0,I = 0;j & lt长度;j++) {
curpos = 41 * j;//*0 *1 *2
if(j==no_to_delete){
if(func 31(I)= = 1){ k = 1;pstrcpy(I);disp();i++;}
}
fseek(stream,curpos,SEEK _ SET);
弗雷德(& ampss[i],40,1,stream);
//i++;
pstrcpy(I);disp();i++;
}
if(k = = 1)write _ ssto file(Length+1);
}
fclose(流);
返回0;
}
int Delete _ I(charno _ to _ Delete)//删除记录。
{
文件*流;
//struct my struct s;
char i,j;
长卷曲,长度;
if ((stream = fopen("Record.txt "," r "))
== NULL)
{
fprintf(stderr,"无法打开输出文件。\ n ");
返回1;
}
Length=filesize(流);
长度/= 41;
printf(" \n有%d条记录\ n ",长度);
if(长度& gt=否_删除)
{ for(j=0,I = 0;j & lt长度;j++) {
curpos = 41 * j;//*0 *1 *2
如果(j!=否_删除)
{fseek(stream,curpos,SEEK _ SET);
弗雷德(& ampss[i],40,1,stream);
//i++;
pstrcpy(I);disp();i++;
}
}
write_ssToFile(长度-1);
}
fclose(流);
返回0;
}
Int disp_all(void)//浏览所有信息。
{
文件*流;
//struct my struct s;
char j;
长卷曲,长度;
if ((stream = fopen("Record.txt "," r "))
== NULL)
{
fprintf(stderr,"无法打开输出文件。\ n ");
返回1;
}
Length=filesize(流);
长度/= 41;
printf(" \n有%d条记录\ n ",长度);
for(j = 0;j & lt长度;j++) {
curpos = 41 * j;//*0 *1 *2
fseek(stream,curpos,SEEK _ SET);
弗雷德(& amps,40,1,stream);
disp();
}
fclose(流);
返回0;
}
Int Read_all(void)//读取所有信息。
{
文件*流;
//struct my struct s;
char j;
长卷曲,长度;
if ((stream = fopen("Record.txt "," r "))
== NULL)
{
fprintf(stderr,"无法打开输出文件。\ n ");
返回1;
}
Length=filesize(流);
长度/= 41;
printf(" \n有%d条记录\ n ",长度);
for(j = 0;j & lt长度;j++) {
curpos = 41 * j;//*0 *1 *2
fseek(stream,curpos,SEEK _ SET);
弗雷德(& ampss[j],41,1,stream);
//disp();
}
fclose(流);
返回长度;
}
Int write_all (unsigned char n)//写入信息。
{
文件*流;
char I;
if ((stream = fopen("record2.txt "," w")) == NULL)
{
fprintf(stderr,"无法打开输出文件。\ n ");
返回1;
}
for(I = 0;我& ltn;i++)
{//fseek(stream,curposT,SEEK _ SET);
ss[i]。a = 0;
fwrite(& amp;ss[i],40,1,stream);/*将结构写入文件*/
}
fclose(流);/*关闭文件*/
printf("\n写入所有记录成功!");
getch();
返回0;
}
长显示_i(长编号)
{ //No=0/1/2/3...
文件*流;
//struct my struct s;
//char I;
长卷曲,长度;
If ((stream = fopen ("record。txt "," r ")//测试打开的文件。
== NULL)
{
fprintf(stderr,"无法打开输出文件。\ n ");
返回1;
}
Length=filesize(流);
长度/= 41;
if(长度& gt=否){
printf(" \ n没有。%d在记录中”,否);
curpos = 41 *否;//*0 *1 *2
fseek(stream,curpos,SEEK _ SET);//查找文件
弗雷德(& amps,40,1,stream);//读入文件
disp();}
else printf(" \ n没有。%d不在记录中”,否);
fclose(流);//关闭文件
返回curpos
}
int write _ Rewrite(long Curpost)//重写信息。
{
文件*流;
//char I;
If ((stream = fopen ("record。txt "," r+")= = null)/*测试打开的文件*/
{
fprintf(stderr,"无法打开输出文件。\ n ");
返回1;
}
fseek(stream,curposT,SEEK _ SET);
fwrite(& amp;s,40,1,stream);/*将* *对象写入文件*/
fclose(流);/*关闭文件*/
printf("\n追加记录成功!");
getch();
返回0;
}
int write_app(void)
{
文件*流;
//char I;
If ((stream = fopen ("record。txt "," a+")= = null)/*测试打开的文件*/
{
fprintf(stderr,"无法打开输出文件。\ n ");
返回1;
}
fseek(stream,0L,SEEK _ END);
fwrite(& amp;s,40,1,stream);/*将* *对象写入文件*/
fclose(流);/*关闭文件*/
printf("\n追加记录成功!");
getch();
返回0;
}
char Func11(void)
{ char I;
printf(" \ n挂起记录!\ n ");
printf(" \ Nair no[4]");for(I = 0;我& lt4;i++)s . air no[I]= getche();
printf(" \ nstart pos[6]");for(I = 0;我& lt6;i++)s . start pos[I]= getche();
printf(" \ nend pos[6]");for(I = 0;我& lt6;i++)s . end pos[I]= getche();
printf(" \ n start time[14]");for(I = 0;我& lt14;i++)s . start time[I]= getche();
printf(" \ n mount[4]");for(I = 0;我& lt4;i++)s . Mount[I]= getche();
printf(" \ n price[5]");for(I = 0;我& lt5;i++)s . Price[I]= getche();
s . a = 0;
do { printf(" \ N确认Y/N?");
I = getche();
}while((我!= ' Y ')& amp;(我!= ' y ')& amp;(我!= ' N ')& amp;(我!= ' n '));
if((i=='Y')|(i=='y '))返回1;
否则返回0;
}
void Func1(void)
{ char I;
I = func 11();
if(I = = 1)write _ app();
}
无效功能2(无效)
{ char m,I;
长卷曲柱;
printf(" \ n修改记录!\ n ");
printf("\n显示输入号\ n ");
m = getche();
如果((m & gt= ' 0 ')|(m & lt;= 9))curposT = disp _ I(m-' 0 ');
getch();
printf("\nFunc1已启动!\ n ");
printf(" \ Nair no[4]");for(I = 0;我& lt4;i++)s . air no[I]= getche();
printf(" \ nstart pos[6]");for(I = 0;我& lt6;i++)s . start pos[I]= getche();
printf(" \ nend pos[6]");for(I = 0;我& lt6;i++)s . end pos[I]= getche();
printf(" \ n start time[14]");for(I = 0;我& lt14;i++)s . start time[I]= getche();
printf(" \ n mount[4]");for(I = 0;我& lt4;i++)s . Mount[I]= getche();
printf(" \ n price[5]");for(I = 0;我& lt5;i++)s . Price[I]= getche();
s . a = 0;
do { printf(" \ N确认Y/N?");
I = getche();
}while((我!= ' Y ')& amp;(我!= ' y ')& amp;(我!= ' N ')& amp;(我!= ' n '));
if((i=='Y')|(i=='y '))
write _ rewrite(curposT);
}
无效功能3(无效)
{ char m;
printf(" \ n插入记录!\ n ");
m = getche();
如果((m & gt= ' 0 ')& amp;(m & lt='9'))
insert _ I(m-' 0 ');
//getche();
}
无效功能4(无效)
{ char m;
printf(" \ n删除记录!\ n ");
m = getche();
如果((m & gt= ' 0 ')& amp;(m & lt= ' 9 '))delet _ I(m-' 0 ');
getche();
}
void disp_title(无效)
{
printf(" \ n航班号\ t始发站\ t终点站\ t出发时间成员的固定票价");
}
void disp_OneRecord(字符编号)
{ char I;
printf(" \ n ");for(I = 0;我& lt4;i++) printf("%c ",ss[num].air no[I]);
printf("/");for(I = 0;我& lt6;i++) printf("%c ",ss[num].StartPos[I]);
printf("/");for(I = 0;我& lt6;i++) printf("%c ",ss[num].EndPos[I]);
printf("/");for(I = 0;我& lt14;i++) printf("%c ",ss[num].start time[I]);
printf("/");for(I = 0;我& lt4;i++) printf("%c ",ss[num].mount[I]);
printf("/");for(I = 0;我& lt5;i++)printf("%c ",ss[num].price[I]);
//printf(" \ n ");
}
Void search_by_endpos() //完成函数2/5
{
char Tplace[24],I,n;
int计数;
count = Read _ all();//将所有记录读取到结构ss[0...49]
printf(" \ n请输入航班到达地点:");
for(I = 0;我& lt6;i++)
t place[I]= getche();//scanf("%s ",Tdate);
disp _ title();//打印信息标题
/* for(I = 0;我& lt数数;i++)
if(strcmp(ss[i].StartTime,Tdate)= = 0)disp _ one record(I);*/
for(I = 0;我& lt数数;i++)
if((ss[i].EndPos[0]= = t place[0])& amp;& amp
(ss[i]。EndPos[1]= = t place[1])& amp;& amp
(ss[i]。EndPos[2]= = t place[2])& amp;& amp
(ss[i]。EndPos[3]= = t place[3])& amp;& amp
(ss[i]。EndPos[4]= = t place[4])& amp;& amp
(ss[i]。EndPos[5]== Tplace[5])
disp _ one record(I);
printf(" \ N退出(Y/N)?");do { n = getch();}while((n!= ' Y ')& amp;& amp(n!= ' y '));
}
void search _ by _ date _ and _ end pos()//完成函数3/5
{
char Tdate[14],Tplace[6],I,n;
int计数;
count = Read _ all();//将所有记录读取到结构ss[0...49]
printf(" \ n请输入查询日期:");
scanf("%s ",Tdate);
printf(" \ n请输入到达地点:");
for(I = 0;我& lt6;i++)t place[I]= getche();
disp _ title();//打印信息标题
for(I = 0;我& lt数数;i++)
if((ss[i].start time[0]= = Tdate[0])& amp;& amp(ss[i]。EndPos[0]= = t place[0])& amp;& amp
(ss[i]。start time[1]= = Tdate[1])& amp;& amp(ss[i]。EndPos[1]= = t place[1])& amp;& amp
(ss[i]。start time[2]= = Tdate[2])& amp;& amp(ss[i]。EndPos[2]= = t place[2])& amp;& amp
(ss[i]。start time[3]= = Tdate[3])& amp;& amp(ss[i]。EndPos[3]= = t place[3])& amp;& amp
(ss[i]。start time[4]= = Tdate[4])& amp;& amp(ss[i]。EndPos[4]= = t place[4])& amp;& amp
(ss[i]。start time[5]= = Tdate[5])& amp;& amp(ss[i]。EndPos[5]== Tplace[5])
disp _ one record(I);
printf(" \ N退出(Y/N)?");do { n = getch();}while((n!= ' Y ')& amp;& amp(n!= ' y '));
}
Void search_by_Mount() //完成函数4/5
{
char Max[6],I,n;
int计数;
count = Read _ all();//将所有记录读取到结构ss[0...49]
printf(" \ n请输入航班号");
for(I = 0;我& lt6;i++)Max[I]= getche();//scanf("%s ",Tdate);
disp _ title();//打印信息标题
for(I = 0;我& lt数数;i++)
if((ss[i].AirNo[0]= = Max[0])& amp;& amp
(ss[i]。AirNo[1]= = Max[1])& amp;& amp
(ss[i]。air no[2]= = Max[2])& amp;& amp
(ss[i]。air no[3]= = Max[3])& amp;& amp
(ss[i]。air no[4]= = Max[4])& amp;& amp
(ss[i]。AirNo[5]== Max[5])
disp _ one record(I);//打印信息
printf(" \ N退出(Y/N)?");do { n = getch();}while((n!= ' Y ')& amp;& amp(n!= ' y '));
}
长chg(字符I)
{龙n;
n=(ss[i]。start time[0]-' 0 ')* 100000+
(ss[i]。start time[1]-' 0 ')* 10000+
(ss[i]。StartTime[2]-'0')*1000+
(ss[i]。StartTime[3]-'0')*100+
(ss[i]。StartTime[4]-'0')*10+
(ss[i]。start time[5]-' 0 ');
返回n;
}
Void order_by_date() //完成函数5/5
{
长a[100],b[100];
int计数;
int i,j;
长期温度;
系统(“cls”);//清除屏幕
count = Read _ all();//将所有记录读取到结构ss[0...49]
for(I = 0;我& lt数数;i++)
a[I]= chg(I);//冒泡排序方法
for(I = 0;我& lt数数;i++)b[I]= a[I];
printf(" \ n排序前的数组是\ n ");
for(I = 0;我& lt数数;i++) printf("%ld ",a[I]);
for(I = 0;我& lt数数;i++)
{
for(j = I;j & lt数数;j++)
{
if(a[I]& gt;a[j])
{
temp = a[I];
a[I]= a[j];
a[j]= temp;
}
}
}
printf(" \ n ");
for(I = 0;我& lt数数;i++)
printf("%ld-",a[I]);
printf(" \ n排序后的数组是\ n ");
for(j = 0;j & lt数数;j++)
for(I = 0;我& lt数数;i++)
if(a[j]= = b[I])disp _ one record(I);
}
void search _ by _ date()//template 1/5
{ char Tdate[14],I,n;
int计数;
count = Read _ all();//将所有记录读取到结构ss[0...49]
printf(" \ n请输入查询日期:");
scanf("%s ",Tdate);
disp _ title();//打印信息标题
/* for(I = 0;我& lt数数;i++)
if(strcmp(ss[i].StartTime,Tdate)= = 0)disp _ one record(I);*/
for(I = 0;我& lt数数;i++)
if((ss[i].start time[0]= = Tdate[0])& amp;& amp
(ss[i]。start time[1]= = Tdate[1])& amp;& amp
(ss[i]。start time[2]= = Tdate[2])& amp;& amp
(ss[i]。start time[3]= = Tdate[3])& amp;& amp
(ss[i]。start time[4]= = Tdate[4])& amp;& amp
(ss[i]。StartTime[5]== Tdate[5])
disp _ one record(I);
printf(" \ N退出(Y/N)?");do { n = getch();}while((n!= ' Y ')& amp;& amp(n!= ' y '));
}
无效功能5(无效)
{ char n;
printf(" \ n请选择");
Printf("\n 1)按时间统计航班号,即某一天有哪些航班。");
Printf("\n 2)统计某个目的地的航班号,即哪些航班可以到达某地。");
Printf("\n 3)统计某一天到某地的航班号。");
Printf("\n 4)计算该航空公司每个航班的最大乘客人数。);
Printf("\n 5)按航班时间排序。);
n = getche();
开关(n){
事例“1”:search _ by _ date();打破;
事例“2”:search _ by _ end pos();打破;
案例“3”:search _ by _ date _ and _ end pos();打破;
案例“4”:search _ by _ Mount();打破;
事例“5”:order _ by _ date();打破;
默认:break
}
printf("\n按任意键退出");getche();
}
无效功能6(无效)
{
printf(" \ n计算!\ n ");
getche();
}
void main()
{ char n,m;
int计数;
for(;;){
//clrscr();
系统(“CLS”);
printf(" \ n \ t \ t \ t飞机预订系统设计");
printf(" \ n \ t \ t \ t-主菜单-");
Printf("\n\t\t\t 1。回车输入”);
Printf ("\ n \ t \ t 2。修改”);
Printf("\n\t\t\t 3。插入”);
Printf("\n\t\t\t 4。删除删除”);
Printf("\n\t\t\t 5。查询Inquire”);
Printf("\n\t\t\t 6。统计计算”);
printf("\n\t\t\t 7。display _ I Record”);
printf("\n\t\t\t 8。显示_所有记录");
printf("\n\t\t\t 9。保留”);
printf("\n\t\t\t 0。退出”);
n = getch();
开关(n)
{
case“1”:func 1();打破;//输入
事例“2”:func 2();打破;//修改
事例“3”:func 3();打破;//插入
事例“4”:func 4();打破;//删除成功
事例“5”:func 5();打破;//*查询
案例“6”:func 6();打破;//*计算
case '7': printf("\n用于显示的输入号\ n ");
m = getche();
如果((m & gt= ' 0 ')& amp;(m & lt= ' 9 '))disp _ I(m-' 0 ');
getch();打破;
事例“8”:disp _ all();getch();打破;
案例“9”:getch();打破;
大小写“0”:break;//退出到DOS
案例“a”:
case“A”:count = Read _ all();//将所有记录读取到结构ss[0...49]
disp _ title();//打印信息标题
for(m = 0;m & lt数数;m++)
disp _ one record(m);//打印所有记录之一;
write_all(计数);//将n条记录保存到一个文件中;
打破;
案例“b”:
案例“B”:
默认:break
}
if(n = = ' 0 ')break;
}
}
够了吗?