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();

}

}

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值