c语言订餐管理系统报告,用c语言编程小型的订餐管理系统,谁会啊?
用c語言編程小型的訂餐管理系統,誰會啊?
答案:3??信息版本:手機版
解決時間 2019-10-06 08:01
已解決
2019-10-05 23:26
用c語言編程小型的訂餐管理系統,誰會啊?
最佳答案
2019-10-06 00:37
都是增刪改查~~
全部回答
1樓
2019-10-06 02:11
這個我會做,看你的私信。
2樓
2019-10-06 01:44
#include
#include
#include
#include
typedef struct student
{
int num;
char name[8];
int data[3];
struct student* next;
} student,* linklist;
linklist createlist(void);
int listfind(linklist head);
int listadd(linklist head);
int deletelist(linklist head);
int modifylist(linklist head);
int savedata(linklist head);
linklist loaddata();
int listdisplay(linklist head);
int checknum(linklist head,int num);
linklist createlist(void)
{
linklist l;
linklist s,r;
char c;
int flag=1;
l=(student *)malloc(sizeof(student));
l->next=null;
r=l;
printf("請輸入你要添加的學生的信息:\n");
while(flag)
{
fflush(stdin);
c=getchar();
if(c!='0')
{
s=(student *)malloc(sizeof(student));
printf("學號:");
scanf("%d",&s->num);
printf("姓名:");
scanf("%s",s->name);
printf("數學分數:");
scanf("%d",&s->data[0]);
printf("語文分數:");
scanf("%d",&s->data[1]);
printf("英語分數:");
scanf("%d",&s->data[2]);
printf("退出請按'0',繼續按“回車”\n");
r->next=s;
r=s;
}
else
{
flag=0;
r->next=null;
}
}
return l;
}
int listfind(linklist head)
{
int num;
int flag;
char name[8];
linklist p;
p=head;
if(p==null)
{
printf("鏈表中沒有數據!\n");
return 0;
}
printf("\n1:按學號查詢。\n2:按姓名查詢。");
scanf("%d",&flag);
switch(flag)
{
case 1:
{
printf("請輸入要查找學生的學號:");
scanf("%d",&num);
while(p!=null)
{
if(p->num==num)
{
printf("學號:");
printf("%d\n",p->num);
printf("姓名:");
printf("%s\n",p->name);
printf("數學分數:");
printf("%d\n",p->data[0]);
printf("語文分數:");
printf("%d\n",p->data[1]);
printf("英語分數:");
printf("%d\n",p->data[2]);
return 0;
}
p=p->next;
}
if(p==null)
printf("\n找不到!!!\n");
}
break;
case 2:
{
printf("請輸入要查找學生的姓名:");
scanf("%s",&name);
while(p!=null)
{
if(!strcmp(p->name,name))
{
printf("學號:");
printf("%d\n",p->num);
printf("姓名:");
printf("%s\n",p->name);
printf("數學分數:");
printf("%d\n",p->data[0]);
printf("語文分數:");
printf("%d\n",p->data[1]);
printf("英語分數:");
printf("%d\n",p->data[2]);
return 0;
}
p=p->next;
}
if(p==null)
printf("\n找不到!!!\n");
}
}
return 0;
}
int listadd(linklist head)
{
int a=0;
linklist p,s,q=head;
if(head==null)
{
printf("\n表不存在,請先建立再添加!\n");
return 0;
}
p=head;
while(p->next!=null)
{
p=p->next;
}
s=(student*)malloc(sizeof(student));
printf("添加新數據\n");
printf("學號:");
scanf("%d",&s->num);
printf("姓名:");
scanf("%s",s->name);
printf("數學分數:");
scanf("%d",&s->data[0]);
printf("語文分數:");
scanf("%d",&s->data[1]);
printf("英語分數:");
scanf("%d",&s->data[2]);
s->next=null;
return 0;
}
int deletelist(linklist head)
{
int num;
linklist p,q;
p=head;
q=head;
if(p==null)
{
printf("空表,無數據\n");
return 0;
}
printf("請輸入要刪除學生的學號:");
scanf("%d",&num);
while(p!=null)
{
if(p->num==num)
{
if(p==head)
{
head=head->next;
free(p);
}
else
{
q->next=p->next;
free(p);
}
printf("\n刪除成功!!!\n");
getch();
return 0;
}
q=p;
p=p->next;
}
printf("未找到!\n");
return 0;
}
int modifylist(linklist head)
{
int num;
//int score;
linklist p;
p=head;
if(p==null)
{
printf("空表,無數據\n");
return 0;
}
printf("\n請輸入要修改學生的學號:");
scanf("%d",&num);
printf(" 學號 姓名 數學成績 語文成績 英語成績 \n");
while(p!=null)
{
if(p->num==num)
{
printf("%12d%12s%8d%9d%9d\n",p->num,p->name,p->data[0],p->data[1],p->data[2]);
printf("請輸入新成績");
printf("數學分數:");
scanf("%d",&p->data[0]);
printf("語文分數:");
scanf("%d",&p->data[1]);
printf("英語分數:");
scanf("%d",&p->data[2]);
printf("修改成功!!!\n");
return 0;
}
p=p->next;
}
if(p==null)
printf("找不到\n");
return 0;
}
int savedata(linklist head)
{
char filename[5];
file * fp;
linklist p;
p=head;
printf("請輸入你要保存的文件名:以*.txt格式!");
scanf("%s",filename);
if((fp=fopen(filename,"at"))==null)
{
printf("打開失敗!");
return 0;
}
while(p!=null)
{
fwrite(p,sizeof(student),1,fp);
p=p->next;
}
fclose(fp);
printf("保存成功!\n");
return 0;
}
linklist loaddata()
{
char filename[5];
printf("請輸入你要打開的文件名:以*.txt格式!");
scanf("%s",filename);
file *fp;
linklist p,q,h=null;
q=p=(student *)malloc(sizeof(student));
if(p==null){
printf("空間申請失敗!");
return h;
}
h=p;
if((fp=fopen(filename,"a+"))==null)
{
printf("打開失敗!\n");
return h;
}
while(!feof(fp))
{
if(1!=fread(p,sizeof(student),1,fp))
break;
p->next=(student *)malloc(sizeof(student));
if(!p->next)
{
printf("空間申請失敗!\n");
return h;
}
q=p;
p=p->next;
}
q->next=null;
fclose(fp);
printf("讀取成功!");
return h;
}
int listdisplay(linklist head)
{
int count=0;
int sum=0;
int sum1=0;
int sum2=0;
int mathhscore=0;
int chinesehscore=0;
int englishhscore=0;
linklist p;
if(head==null)
{
printf("表不存在!");
return 0;
}
p=head->next;
if(null==head->next)
{
printf("\n鏈表為空!\n");
return 0;
}
printf(" 學 號 姓 名 數學成績 語文成績 英語成績 \n");
while(p!=null)
{
printf("%12d%12s%8d%9d%9d\n",p->num,p->name,p->data[0],p->data[1],p->data[2]);
sum=p->data[0]+p->data[1]+p->data[2];
sum2+=sum;
if(p->data[0]>mathhscore)
mathhscore=p->data[0];
if(p->data[1]>chinesehscore)
chinesehscore=p->data[1];
if(p->data[2]>englishhscore)
englishhscore=p->data[2];
if(sum>sum1)
sum1=sum;
count++;
p=p->next;
}
printf("\n人數:%d\n",count);
printf("平均分:%.2f\n",(float)sum2/count);
printf("數學最高分:%d\n",mathhscore);
printf("語文最高分:%d\n",chinesehscore);
printf("英語最高分:%d\n",englishhscore);
printf("總分最高是:%d\n",sum1);
return 0;
}
int checknum(linklist head)
{
int num=0;
printf("請輸入學號:");
scanf("%d",&num);
linklist p;
p=head;
while(p!=null)
{
if(p->num==num)
return 0;
p=p->next;
}
if(p==null)
{
return 1;
}
return 1;
}
void quit()
{
system("cls");
printf("\n\n\t\t\tbyebye!\n\n");
getch();
exit(0);
}
void main()
{
int c;
int i=5,j=5,m=0,n=0;
linklist head=null;
for(;;)
{
system("cls");
printf(" 學生成績管理系統\n");
printf("\n\n--------------------------------------------------------------------------\n\n");
printf(" 1.建立 \n");
printf(" 2.查找 \n");
printf(" 3.添加 \n");
printf(" 4.刪除 \n");
printf(" 5.修改 \n");
printf(" 6.輸出 \n");
printf(" 7.保存 \n");
printf(" 8.讀取 \n");
printf(" 0.退出 \n");
printf("------------------------------------------------------------------------------\n\n");
printf("請輸入你的選擇:");
scanf("%d",&c);
switch(c)
{
case 1:
{
m=checknum(head);
while(!m)
{
printf("學號有重復!");
m=checknum(head);
if(!i--)
{
break;
}
}
head=createlist();
break;
}
case 2:
listfind(head);
break;
case 3:
{
n=checknum(head);
while(!n)
{
printf("學號有重復!");
n=checknum(head);
if(!j--)
{
break;
}
}
listadd(head);
break;
}
case 4:
deletelist(head);
break;
case 5:
modifylist(head);
break;
case 6:
listdisplay(head);
break;
case 7:
savedata(head);
break;
case 8:
head=loaddata();
break;
case 0:
quit();
break;
}
getch();
}
}
我要舉報
如果感覺以上信息為低俗/不良/侵權的信息,可以點下面鏈接進行舉報,我們會做出相應處理,感謝你的支持!
大家都在看
推薦資訊
總結
以上是生活随笔為你收集整理的c语言订餐管理系统报告,用c语言编程小型的订餐管理系统,谁会啊?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言中 字符串常量的界定符,C字符串操
- 下一篇: c 语言 string库,C语言编程必备