求c语言编程 通讯录或者飞机票查询系统

要求有“程序源文件以及所操作数据的文件,电子档课程设计报告”可以帮忙的朋友加QQ1010651087细说谢谢!搞定后加100分!!!首先先谢谢你们!然后就是二楼的你能不能... 要求有“程序源文件以及所操作数据的文件,电子档课程设计报告” 可以帮忙的朋友加QQ1010651087 细说 谢谢!搞定后加100分!!!
首先先谢谢你们!然后就是 二楼的你能不能帮我改下 改成符合我那个标准的 然后再弄一个设计报告……设计报告你就帮我搞定技术活就行 其他的我弄……实在不好意思 在下c语言学的很差 作业又很急 我现在快愁死了……做好我会给200分!甚至更多也是没问题的 财富事小 交作业事大啊………………
展开
 我来答
schrab
2010-12-25 · TA获得超过405个赞
知道答主
回答量:349
采纳率:0%
帮助的人:247万
展开全部
这个是我自己做的类式的,你可以按自己的要求改下·不难的和你的差不多,给分哦

#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<conio.h>
#define N 10
/*****定义结构体*****/
typedef struct students /*标记为students*/
{
char num[10]; /*学生学号*/
char name[10]; /*学生姓名*/
int age; /*年龄*/
char sex[10]; /*性别*/
float cyy; /*C语言成绩*/
float computer; /*计算机成绩*/
float english; /*英语成绩*/
float pj; /*平均成绩*/
}STU;
STU temp;
void sort(STU students[],int n); //排序
void save(STU students[] ,int n);//导出
int Locate(STU students[],int n);//查询
/*--------------显示菜单--------------------*/
char displaymenu()
{
char k;
system("cls");
printf(" 学生成绩管理 \n");
printf("-----------------------------------应用菜单-------------------------------------\n");
printf(" 1 输入学生成绩\n\n");
printf(" 2 输出学生成绩\n\n");
printf(" 3 查询学生成绩\n\n");
printf(" 4 修改学生成绩\n\n");
printf(" 5 查看成绩排序\n\n");
printf(" 6 查看成绩统计\n\n");
printf(" 7 保存数据\n\n");
printf(" 8 读取数据\n\n");
printf(" 9 退出系统\n\n");
printf(" 请选择你想进行的操作:");

k=getchar();

return k;

}
/*****定义输出函数*****/

void printheader() /*格式化输出表头*/
{
printf("\n\n************************学生成绩管理系统****************************\n\n\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | C语言成绩 |计算机成绩 | 英语成绩| 平均成绩 | \n");
}
void printdata(STU pp) /*格式化输出表中数据*/
{
STU* p;
p=&pp;
printf("| %-5s| %-5s | %-4d| %-4s| %-6.0f| %-6.0f| %-5.0f| %-6.0f|\n",p->num,p->name,p->age,p->sex,p->cyy,p->computer,p->english,p->pj);
}
/*****添加学生信息*****/
int add(STU students[] ,int *n)
{
int i=0;
system("cls");
printf(" \n");
printf(" 请输入学生信息 \n");
printf(" 退出请在学生号处输入:0 \n");
printf("请输入学生学号:\n ");
scanf("%s",students[i].num);
while(strcmp(students[i].num,"0") )//当输入的学号为0时结束输入
{
printf("请输入学生姓名:\n ");
scanf("%s",students[i].name);
printf("****************\n\n\n");
printf("请输入学生年龄:\n ");
scanf("%d",&students[i].age);
printf("****************\n\n\n");
printf("请输入学生性别:\n");
scanf("%s",students[i].sex);
printf("****************\n\n\n");
printf("请输入C语言成绩:\n ");
scanf("%f",&students[i].cyy);
printf("****************\n\n\n");
printf("请输入计算机成绩:\n ");
scanf("%f",&students[i].computer);
printf("****************\n\n\n");
printf("请输入英语成绩:\n ");
scanf("%f",&students[i].english);
printf("****************\n\n\n");
students[i].pj=(students[i].cyy+students[i].computer+students[i].english)/3;
printf("学生平均成绩: %-8.0f\n",students[i].pj);
i++;
printf("****************\n\n\n");
printf("请输入学生学号:\n ");
scanf("%s",students[i].num);
}
*n=i;
save(students ,i);
return i;
}
/*****查询学生信息函数*****/
int Locate(STU students[],int n)
{
int k,m=-1;
char num[10],name[20];
int i=0;
system("cls");
printf(" 退出请输入:0 \n");
printf("请选择以什么方式查询:1).按学生学号查询 2).按学生姓名查询 \n");
scanf("%d",&k);
if(k==1)
{
printf("请输入你要查询的学生学号:\n");
scanf("%s",num);
while(i<n)
{
if(strcmp(students[i].num,num)==0) /*若找到学号*/
{
printf(">>学生学号:%s\n*学生姓名:%s\n*学生年龄:%d\n*学生性别:%s\n>C语言成绩:%-8.0f\n>计算机成绩:%-8.0f\n>>英语成绩:%-8.0f\n>>平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i>=n)
printf("没有所找学生信息\n");
getchar();
}
else if(k==2)
{
printf("请输入你要查询的学生姓名:\n");
scanf("%s",name);
while(i<n)
{
if(strcmp(students[i].name,name)==0) /*若找到姓名*/
{ printf("学生学号:%s\n学生姓名:%s\n学生年龄:%d\n学生性别:%s\n学生C语言成绩:%-8.0f\n计算机成绩:%-8.0f\n英语成绩:%-8.0f\n平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i>=n)
printf("没有所找学生信息\n");
}
return m;/*返回一个根m便于修改学生信息*/
getchar();
}
/*****显示函数*****/
void input(STU students[],int n)
{
int i;
system("cls"); //清屏
if(n==0) /*表示没有学生信息记录*/
{
printf("\n没有学生记录!\n");
}
printf("\n\n");
printheader(); /*输出表格头部*/
i=0;
while(i<n) /*逐条输出数组中存储的学生信息*/
{
printdata(students[i]);
i++;
}
getchar();
}
/*****修改子程序*****/
void Modify(STU students[],int n)
{
int i;
if(n<=0)
{
system("cls");
printf(" \n退出请输入:0 \n");
printf("\n----------not found!----------\n");
getchar();
return ;
}
system("cls");
printf("修改学生信息");
input(students,n);
i=Locate(students,n); /*查询到该数组元素,并返回下标值*/
if(i!=-1) /*若i!=-1,表明已经找到该数组元素*/
{
printf("请输入新的学生信息: \n");
printf(" 学号: ");
scanf("%s",students[i].num);
printf(" 姓名: ");
scanf("%s",students[i].name);
printf(" 年龄: ");
scanf("%d",&students[i].age);
printf(" 性别: ");
scanf("%s",students[i].sex);
printf(" C语言: ");
scanf("%f",&students[i].cyy);
printf(" 英语: ");
scanf("%f",&students[i].english);
printf(" 计算机: ");
scanf("%f",&students[i].computer);
students[i].pj=(students[i].cyy+students[i].english+students[i].computer)/3;
printf("平均成绩: %-9.0f\n",students[i].pj);
save(students ,n);
printf("\n-------------修改成功!-------------\n");

}
else
printf("not found!\n");
getchar();
}
/*****学生成绩排序子程序*****/
void sort(STU students[],int n)
{
int i,j,a,b,c,d,e,f,k;
float p;
printf(" \n退出请输入:0 \n");
printf("成绩排序方式选择: 1.按C语言 2.按英语 3.按平均 \n ");
scanf("%d",&k);

if(k==1) /*用选择法对C语言排序*/
{
for(i=0; i<n; i++)
for(j=0;j<n-1;j++)
{

if(students[i].english<students[j+1].english)
{
temp=students[i];
students[i]=students[j+1];
students[j+1]=temp;
}

}

}
else if(k==2)/*英语用冒泡法*/
{
for(a=0; a<n-1; a++)
{
c=a;
for(b=a+1; b<n; b++)
if(students[b].cyy>students[c].cyy)
c=b;
if (c!=a)
{
temp=students[a];
students[a]=students[c];
students[c]=temp;
}
}
}
if(k==3) /*平均成绩用插入法*/
{
for(d=1;d<n;d++)
{
p=students[d].pj;
for(e=0;e<d;e++)
if(students[e].pj<p)
break;
if(e==d)
continue;
for(f=d;f>e;f--)
students[f]=students[f-1];
students[e]=temp;
}
}
input(students,n); /*显示排序后的所有记录*/
save(students ,n);
printf("\n 排序完成!\n");
}

/*****统计学生分数在各等级的人数子程序*****/
void Tongji(STU students[],int n)
{
int count6085=0,count85=0,count60=0;
int i=0;
system("cls");
printf(" \n退出请输入:0 \n");
input(students,n);
i=0;
while(i<n)
{
if(students[i].pj>85) /*平均成绩=>85*/
if(students[i].pj>=60&&students[i].pj<=85) /*60<平均成绩<85*/
if(students[i].pj<60) /*平均成绩<60*/
}
printf("\n************统计结果************\n\n");
printf("平均成绩高于85分的人数:%d \n",count85);
printf(" \n");
printf("平均成绩在65分和80分之间的人数:%d \n",count6085);
printf(" \n");
printf("平均成绩低于60分的人数:%d \n",count60);
printf(" \n");
printf("\n\n**********统计结束**********");
getchar();
}
/*****导出或保存数据*****/
void save(STU students[],int n)
{
FILE* fp;
int i=0;
fp=fopen("students","wb+");/*以读写方式打开创建一个二进制文件*/
if(fp==NULL) /*打开文件失败*/
{
printf("\n*******打开文件错误!*******\n");
return ;
}
for(i=0;i<n;i++)
{
if(fwrite(&students[i],sizeof(STU),1,fp)==1)/*每次写一条记录或一个结构数组元素至文件*/
{
continue;
}
else
{
break;
}
}
if(i>0)
{
getchar();
printf("\n\n*共导出%d个学生信息*\n",i);
getchar();
}
else
{
system("cls");
printf("**没有信息导出*\n");
getchar();
}
fclose(fp); /*关闭此文件*/
}
/*****导入数据*****/
void Read(STU students[],int * n)
{
FILE* fp;
int i=0;
fp=fopen("students","rb");/*以只读方式打开一个已有的二进制文件*/
if(fp==NULL) /*打开文件失败*/
{
printf("\n********打开文件错误!********\n");
exit(0);

}
for(i=0;i<N;i++)
{
if(fread(&students[i],sizeof(STU),1,fp)==1)/*每次读一条记录或一个结构数组元素至文件*/
continue;
else
break;
}
*n=i;
if(i>0)
{
printf("\n\n************共导入:%d 个学生信息 ************\n",i);
getchar();

}
else
{ system("cls");
printf("************没有信息导入!************\n");
getchar();

}
getchar();
fclose(fp); /*关闭此文件*/
}

/*****主函数*****/
void main()
{
STU students[N];
int n;
char s1[3],s2[3]=;
int i,k;
printf("\n\n");
printf("******************************************************\n");
printf("^ < 欢迎使用本软件> ^\n\n");
printf("^ <版本 : oooo> ^\n\n\n");
printf("^ <姓名>:卢景光 <班级>: 09623 <学号>:34 ^\n");
printf("^ ^\n");
printf("******************************************************\n");
printf("\n\n");
for(i=0;i<3;i++)
{
printf("\n请输入密码:");
gets(s1);

if(strcmp(s1,s2)==0)
break;
else
printf("\n>密码错误,请重新输入");
}
if(i>2)
{
printf("\n您已连续3次输错,系统将退出!\n");
exit(0);
}
else
{
while(1)
{
k=displaymenu();
switch(k)
{
case '1' : add(students,&n); break;
case '2' : Read(students,&n);input(students,n) ;break;
case '3' : Read(students,&n);Locate(students,n);break;
case '4' : Read(students,&n);Modify(students,n);;break;
case '5' : Read(students,&n);sort(students,n);break;
case '6' : Read(students,&n);Tongji(students,n); break;
case '7' : save(students,n) ;break;
case '8' : Read(students,&n);break;
case '9' : system("cls");
printf("\n **********谢谢您的使用**********\n");exit(0);break;
default : printf("\n\n输入错误,输入必须是0~9之间的一个数字!请重新输入\n");getchar();getchar();
}
}
}
}
IntoCode
2010-12-24 · TA获得超过186个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:61.3万
展开全部
/*主要思想:设计一个airport类,含有一个Flight成员(链表),每个节点都有一个指针指向一个Seat的链表,
代表每个航班有的座位,默认200个,座位节点含有旅客名字,是否被预定的属性,并未实现按照姓名排序的功能*/
#include<iostream>
using namespace std;
struct Seat //座位链表
{
int SeatNo;
char name[20];
int avai;
struct Seat * next;
};
struct Seat * CreatSeat() //创建座位
{
int i;
struct Seat * head,*p1,*p2;
head=new struct Seat[sizeof(struct Seat)];
p1=p2=head;
for(i=0;i<199;i++)
{
p1->SeatNo=i+1;
p1->next=new struct Seat[sizeof(struct Seat)];
p1->avai=0;
p2=p1->next;
p1=p2;
}
p1->SeatNo=200;
p1->avai=0;
p1->next=NULL;
return head;
}
bool DeleteSeat(struct Seat * seat) //删除座位
{
int i;
struct Seat *p1,*p2;
p1=p2=seat;
for(i=0;i<200;i++)
{
p2=p1->next;
delete []p1;
p1=p2;
}
return 1;
}
struct Flight //航班链表
{
int FlightNo;
struct Seat * seat;
struct Flight * next;
};
struct Flight * CreatFlight(const int n) //创建航班
{
int i;
struct Flight * head,*p1,*p2;
head=new struct Flight[sizeof(struct Flight)];
p1=p2=head;
for(i=0;i<n-1;i++)
{
p1->FlightNo=i+1;
p1->next=new struct Flight[sizeof(struct Flight)];
p1->seat=CreatSeat();
p2=p1->next;
p1=p2;
}
p1->FlightNo=n;
p1->seat=CreatSeat();
p1->next=NULL;
return head;
}
bool DeleteFlight(struct Flight * flight,const int n) //删除航班
{
int i;
struct Flight *p1,*p2;
p1=p2=flight;
for(i=0;i<n;i++)
{
p2=p1->next;
DeleteSeat(p1->seat);
delete []p1;
p1=p2;
}
return 0;
}

class Airport //airport类
{
private :
struct Flight * flight;
int curAmount;
struct Seat * curPoint;
public :
Airport(const int n);
~Airport();
void Wellcom();
bool Reserve();
bool Cancel();
bool Check();
bool search(int f,int s);
friend struct Seat * CreatSeat();
friend bool DeleteSeat(struct Seat * seat);
friend struct Flight * CreatFlight(const int n);
friend bool DeleteFlight(struct Flight * flight,const int n);
};
Airport::Airport(const int n) //构造函数
{
curAmount=n;
flight=CreatFlight(n);
curPoint=flight->seat;
}
Airport::~Airport() //析构函数
{
DeleteFlight(flight,curAmount);
}
bool Airport::search(int f,int s) //查找
{
int i;
struct Seat *sp1,*sp2;
struct Flight *fp1,*fp2;
if(f<1 || f>20 || s<1 || s>200)
return 0;
else
{
fp1=flight;
for(i=1;i<f;i++)
{
fp2=fp1->next;
fp1=fp2;
}
sp1=fp1->seat;
for(i=1;i<s;i++)
{
sp2=sp1->next;
sp1=sp2;
}
curPoint=sp1;
}
return 1;
}
bool Airport::Check() //查询
{
int f,s;
cout<<"Please enter the number of the flight(1~20) and the seat(1~200):"<<endl;
cin>>f>>s;
while(!search(f,s))
{
cout<<"The number doesn't exist.Please enter again:"<<endl;
cin>>f>>s;
}
if(curPoint->avai==0)
{
cout<<"The ticket hasn't been reserved."<<endl;
return 1;
}
else
{
cout<<"The ticket has been reserved."<<endl<<
"The passenger's name is "<<curPoint->name<<endl;
return 0;
}
}
bool Airport::Reserve() //预定
{
int f,s;
cout<<"Please enter the number of the flight(1~20) and the seat(1~200) that you want to reserve:"<<endl;
cin>>f>>s;
while(!search(f,s))
{
cout<<"The number doesn't exist.Please enter again:"<<endl;
cin>>f>>s;
}
if(curPoint->avai==0)
{
cout<<"Please enter your name"<<endl;
cin>>curPoint->name;
curPoint->avai=1;
return 1;
}
else
{
cout<<"The ticket has been reserved."<<endl;
return 0;
}
}
bool Airport::Cancel() //取消
{
int f,s;
cout<<"Please enter the number of the flight(1~20) and the seat(1~200) that you want to cancle:"<<endl;
cin>>f>>s;
while(!search(f,s))
{
cout<<"The number doesn't exist.Please enter again:"<<endl;
cin>>f>>s;
}
if(curPoint->avai==0)
{
cout<<"The ticket hasn't been reserved."<<endl;
return 0;
}
else
{
cout<<"The reservation has been canceled successfully."<<endl;
curPoint->avai=0;
return 1;
}
}
void Airport::Wellcom() //欢迎界面
{
int option;
cout<<"Wellcom to our airport.Please choose the service:"<<endl
<<"1 Make a reservation."<<endl<<"2 Cancel a reservation."<<endl
<<"3 Check available seat."<<endl<<"4 Exit."<<endl;
cin>>option;
while(option!=4)
{
switch (option)
{
case 1:Reserve();break;
case 2:Cancel();break;
case 3:Check();break;
case 4:break;
default :cout<<"Input error.Please enter again."<<endl;break;
}
cout<<"1 Make a reservation."<<endl<<"2 Cancel a reservation."<<endl
<<"3 Check available seat."<<endl<<"4 Exit."<<endl;
cin>>option;
}
}
int main() //主函数
{
Airport airport(20);
airport.Wellcom();
cout<<"Have a good flight!"<<endl;
return 0;
}

这是我以前做的一个飞机订票系统,功能不算多,你可以根据自己题目要求进行适当改动。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式