问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言课题设计

发布网友 发布时间:2022-05-06 10:54

我来回答

1个回答

热心网友 时间:2022-06-29 19:55

#include <stdio.h>
struct student /*结构体数组*/
{int num;
char name[8];
int class;
int math;
int eng ;
int c;
int he;
}st[10],temp;
int a=1;

main() /*主函数*/
{ int flag=1;
char c;
clrscr();
printf("\n\n\n");
printf(" *****************************************************");
printf("\n");
printf(" * *");
printf("\n");
printf(" * *");
printf("\n");
printf(" * 成绩统计系统 *");
printf("\n");
printf(" * *");
printf("\n");
printf(" * *\n");
printf(" *****************************************************\n");
while(flag==1)
{menu(); /*调用菜单函数*/
if(a==0)
{printf("确定要退出?(y/n):");
scanf("%s",&c);
}
if (c=='y')
break;
}
}

menu() /*菜单*/
{int num;
printf(" 1.输入3名学生成绩\n");
printf(" 2.成绩浏览\n");
printf(" 3.成绩排名\n");
printf(" 4.成绩查询\n");
printf(" 5.退出\n");
printf(" 请选择(1、2、3、4或5):");
scanf("%d",&num);
switch (num) /*用switch循环调用函数*/
{case 1:input();break;
case 2:output();break;
case 3:paixu();break;
case 4:lookfor();break;
case 5:a=0;break;
default:;printf("\n \n 错误\n\n\n");
}
/*退出菜单回到主函数*/
}
input()
{int i,j;
input_1(); /*调用输入函数*/
for(i=0;i<3;i++) /*检查学号是否重复*/
for(j=i+1;j<3;j++)
while(st[i].num==st[j].num)
{ printf("\n\n学号输入重复,请重新输入\n\n") ;
input_1();
}

}
input_1() /*输入*/
{int i;
for(i=0;i<3;i++)
{
printf("\n\输入第%d名学生\n",i+1);
printf("学号(整型):");
scanf("%d",&st[i].num);
printf("\n姓名(字母无空格):");
scanf("%s",&st[i].name);
printf("\n班级(整型):");
scanf("%d",&st[i].class);
printf("\n数学(整型):");
scanf("%d",&st[i].math);
printf("\n英语(整型):");
scanf("%d",&st[i].eng);
printf("\nC语言(整型):");
scanf("%d",&st[i].c);
}
for(i=0;i<3;i++) /*求总成绩*/
st[i].he=st[i].math+st[i].eng+st[i].c;
save(); /*调用文件函数*/
}
save() /*文件*/
{FILE*fp;
int i;
if ((fp=fopen("stu_list","wb"))==NULL) /*检查文件能否打开*/
{printf("cannot open file\n");
return;
}
for(i=0;i<3;i++)
if(fwrite(&st[i],sizeof(struct student),1,fp)!=1) /*检查文件能否写入*/
printf("file write error\n");
fclose(fp); /*关闭文件*/
}

output() /*输出*/
{int i;
FILE*fp;
fp=fopen("stu_list","rb");
printf("学号 姓名 班级 数学 英语 c语言 总分\n");
for(i=0;i<3;i++)
{fread(&st[i],sizeof(struct student),1,fp);
printf("%4d %-7s %4d %4d %4d %4d %4d\n",st[i].num,st[i].name,st[i].class,
st[i].math,st[i].eng,st[i].c,st[i].he);
}
}
paixu() /*排序*/
{int i,j;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
if(st[i].he<st[j].he)
{temp=st[i];
st[i]=st[j];
st[j]=temp;
}
printf("\n\n 名次榜\n\n");
printf("学号 姓名 班级 数学 英语 c语言 总分\n");
for(i=0;i<3;i++)
{printf("%4d %-7s %4d %4d %4d %4d %4d\n",st[i].num,st[i].name,st[i].class,
st[i].math,st[i].eng,st[i].c,st[i].he);
}

}

lookfor() /*查找*/
{int num,i,j=0;
printf("请输入要查询的学号(整型):");
scanf("%d",&num);
for(i=0;i<3;i++)
{if(st[i].num==num)
{printf("\n学号 姓名 班级 数学 英语 c语言 总分\n%4d %5s %4d %4d %4d %4d %4d\n\n",
st[i].num,st[i].name,st[i].class,st[i].math,st[i].eng,st[i].c,st[i].he);
j++ ;
}
}
if(j==0)
printf("\n\n无此学号学生,返回菜单。\n\n");
}

PS:跟你的要求类似,你看看吧,也许对你用用
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
通达信主力指标公式汇总(2023版附源码) 有什么类似地下城与勇士的手机游戏 有没有类似于DNF的游戏 苹果手机类似地下城的游戏 有什么类似地下城与勇士的手机游戏 我的系统是WIN732,为什么玩不了光晕2,一点开就弹一个对话框出来说:无法... 玩诛仙电脑配置诛仙3要求电脑配置 ...永磁为什么要跌啊?东方财富金力永磁股吧?金力永磁股票最初..._百度... 怎么找回注销的微信号 如果把手机号码和微信号同时销户后期还能找回微信号吗? 仓储与库存有什么区别? 仓位和库位的区别 征信什么是对外贷款担保 C语言程序设计的题,要求给出程序 C语言 求次程序 的设计要求和思想(已经有程序) 要求用c语言程序设计. BB霜应该用什么洗吖? ...贷款明细上写着 组合(不含保证)担保 ,是什么意思? c语言设计程序要求如下 ...来控制输入框 只能输入 7位正整数和2位小数,点号只允许输入一次... 编程实现:从键盘输入三个任意整数,计算并输出其和、平均值(保留2位小数,用函数解答) 2016《训练》试卷1操作题参考答案 从键盘输入三个整数,输出这三个整数的和、平均值(保留2位小数)、积、最小值以及最大值. c语言程序设计 要求如下 价格不能为O,最多三位整数和两位小数是多少? 输入3个整数,计算它们的和及平均值,平均值的结果保留2位小数 求只能输入 正数和两位小数 的正则表达式,要能用的。。。 行驶里程最多3位整数,2位小数的正确写法怎么写,例如我想写10000公里 西门子触摸屏io域怎样显示3位整数和2位小数 行驶里程最多3位整数,2位小数的正确写法怎么写,例如我想写10000公里?_百度问一问 SQL语言的数据类型中,整数部分3位,小数部分2位的定点小数的定义是什么... 最多为3位整数2位小数的正则表达式如何写 学习学前教育有前途吗? 拼多多可以提现了为什么了打钱 拼多多下单提现2元过了四天没有发货退款会扣除2元吗? 拼多多提现2次之后是不是就弄不了了 拼多多提现100元还差2元就是没办法? 梦见小男孩光身还一身泥土 梦见自己的儿子光身一泥啥意思? 拼多多天天领现金9.6元快提现了怎么少了2元? 梦见女儿满身满脸鼻控都是泥 要关于爱情悲伤的句子,但句子不要很明显。 对学生的新年寄语怎么写? 新年鼓励祝福语 如何提高solidworks simulation内存使用 梦见儿子和己故的姐姐来家里 刷乳胶漆的滚刷隔一夜有些地方干了,用啥方法快速泡开啊 如何折相框1 相框怎么折最简单步骤 请问如何折相框2 如何折纸相框,要立体的,带包边的?长7.5宽2.5厘米 《暴风眼》里的ren皮面具是真实存在的吗?