想要一个5000行以上的代码程序或模块(希望用C++或者C语言编写)
小弟是个大学生编程爱好者,但实力不行目前所编写的程序代码都只有百行而已,而我们的老师要我们编写毕业前编写10000行以上的代码程序,所以特想看看一下比较大的程序,如果哪位...
小弟是个大学生编程爱好者,但实力不行目前所编写的程序代码都只有百行而已,而我们的老师要我们编写毕业前编写10000行以上的代码程序,所以特想看看一下比较大的程序,如果哪位大哥大姐大叔阿姨有的话,请发到我的信箱,不甚感激!
E-mail:hemiao0812@163.com
不一定要10000行,我只是要参考一下,5000行也行 展开
E-mail:hemiao0812@163.com
不一定要10000行,我只是要参考一下,5000行也行 展开
8个回答
展开全部
#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=0x0a;
}
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=0x0a;
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=0x0a;
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=0x0a;
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=0x0a;
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;
}
}
够吗?
#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=0x0a;
}
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=0x0a;
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=0x0a;
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=0x0a;
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=0x0a;
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;
}
}
够吗?
展开全部
对于大部分本科生独立完成一个10000行以上代码的程序还是比较困难的。
要知道我今年毕业,计算机系,我的专业方面在我们系比较不错的,我的毕业设计也就4500行代码左右,使用C++实现的。
很惊奇你们老师怎么这样要求学生。应当说总共10000行吧,也就是所有的小程序小实验汇总起来10000行,这个比较符合现在国内的标准。
学习不能急于求成,要知道一个10000行代码难度比20个500行代码的程序高N倍。
如果真的需要比较大的程序,建议看看大部分开源程序。
希望以上对您有所帮助。
要知道我今年毕业,计算机系,我的专业方面在我们系比较不错的,我的毕业设计也就4500行代码左右,使用C++实现的。
很惊奇你们老师怎么这样要求学生。应当说总共10000行吧,也就是所有的小程序小实验汇总起来10000行,这个比较符合现在国内的标准。
学习不能急于求成,要知道一个10000行代码难度比20个500行代码的程序高N倍。
如果真的需要比较大的程序,建议看看大部分开源程序。
希望以上对您有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
研究过MPlayer源代码么?给你个建议,去研究那个代码,纯C写的视频播放器。代码何止上万。有Linux和Windows的,下个Linux版本的吧。我只研究过其中的几千行代码。如果有需要,可以发你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我发个给你看看,除了CPP全自己写之外,其他的都是用现成的一些模板做的。
这篇论文是《天津市公交车查询系统》,论文全手写。
这篇论文是《天津市公交车查询系统》,论文全手写。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果用IDE来做,那么5000行好完成一些.
把需要IDE做的设置,全部手写.
把需要IDE做的设置,全部手写.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询