C语言编写学管理系统输入
答案:3 悬赏:40 手机版
解决时间 2021-12-04 13:43
- 提问者网友:献世佛
- 2021-12-03 22:39
C语言编写学管理系统输入
最佳答案
- 五星知识达人网友:渡鹤影
- 2021-12-03 23:22
#include
#include
struct student
{
char name[9];
char number[10];
float math;
float english;
}arr[100];
int count;
void input(void);
void sort(struct student *arr);
void find(struct student *arr);
const char *cmd[] = {
"输入学生信息",
"查找学生信息",
"排序学生信息并输出",
"退出"
};
void menu()
{
int i;
printf("please input a choice:
");
for(i = 0; i < sizeof cmd / sizeof cmd[0]; i ++)
printf("%d: %s
", i+1,cmd[i]);
}
int main()
{
int cmd;
while(1)
{
menu();
scanf("%d",&cmd);
if(cmd == 1)input();
else if(cmd == 2) find(arr);
else if(cmd == 3) sort(arr);
else if(cmd == 4) break;
else printf("输入不正确
");
}
return 0;
}
void input(void)
{
int ch;
do
{
printf("
输入第%d个学生的信息:
输入学生的姓名:",count+1);
scanf("%s",arr[count].name);
printf("
输入学生学号:");
scanf("%s",arr[count].number);
printf("
输入数学成绩:");
scanf("%f",&arr[count].math);
printf("
输入英语成绩:");
scanf("%f",&arr[count].english);
count++;
printf("
是否继续输入(y/n)
");
fflush(stdin);
ch=getchar();
}while(ch=='y'||ch=='Y');
}
void sort(struct student *arr)
{
int i,k,j;
struct student t;
if(count==0)
printf("无学生成绩,请先录入学生信息
");
else
{
for(i=0;i {
k=i;
for(j=i+1;j if((arr[k].math+arr[k].english)<(arr[j].math+arr[j].english))
k=j;
if(k!=i)
{
t=arr[k];
arr[k]=arr[i];
arr[i]=t;
}
}
printf("
姓名 学号 数学 英语 总分
");
for(j=0;j printf(" %-6s %-4s %-6.1f %-6.1f %-6.1f
",
arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].math+arr[j].english);
}
}
void find(struct student *arr)
{
char name[9], number[10];
int j;
scanf("%s",name);
scanf("%s",number);
for(j=0;j {
if((strcmp(name,arr[j].name)==0)&&(strcmp(number,arr[j].number)==0))
{
printf("
姓名 学号 数学 英语 总分
");
printf(" %-6s %-4s %-6.1f %-6.1f %-6.1f
",
arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].math+arr[j].english);
break;
}
}
}改了部分代码,加了一个菜单。你看看。
追问这个也可以做出来,太高手了
#include
struct student
{
char name[9];
char number[10];
float math;
float english;
}arr[100];
int count;
void input(void);
void sort(struct student *arr);
void find(struct student *arr);
const char *cmd[] = {
"输入学生信息",
"查找学生信息",
"排序学生信息并输出",
"退出"
};
void menu()
{
int i;
printf("please input a choice:
");
for(i = 0; i < sizeof cmd / sizeof cmd[0]; i ++)
printf("%d: %s
", i+1,cmd[i]);
}
int main()
{
int cmd;
while(1)
{
menu();
scanf("%d",&cmd);
if(cmd == 1)input();
else if(cmd == 2) find(arr);
else if(cmd == 3) sort(arr);
else if(cmd == 4) break;
else printf("输入不正确
");
}
return 0;
}
void input(void)
{
int ch;
do
{
printf("
输入第%d个学生的信息:
输入学生的姓名:",count+1);
scanf("%s",arr[count].name);
printf("
输入学生学号:");
scanf("%s",arr[count].number);
printf("
输入数学成绩:");
scanf("%f",&arr[count].math);
printf("
输入英语成绩:");
scanf("%f",&arr[count].english);
count++;
printf("
是否继续输入(y/n)
");
fflush(stdin);
ch=getchar();
}while(ch=='y'||ch=='Y');
}
void sort(struct student *arr)
{
int i,k,j;
struct student t;
if(count==0)
printf("无学生成绩,请先录入学生信息
");
else
{
for(i=0;i
k=i;
for(j=i+1;j
k=j;
if(k!=i)
{
t=arr[k];
arr[k]=arr[i];
arr[i]=t;
}
}
printf("
姓名 学号 数学 英语 总分
");
for(j=0;j
",
arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].math+arr[j].english);
}
}
void find(struct student *arr)
{
char name[9], number[10];
int j;
scanf("%s",name);
scanf("%s",number);
for(j=0;j
if((strcmp(name,arr[j].name)==0)&&(strcmp(number,arr[j].number)==0))
{
printf("
姓名 学号 数学 英语 总分
");
printf(" %-6s %-4s %-6.1f %-6.1f %-6.1f
",
arr[j].name,arr[j].number,arr[j].math,arr[j].english,arr[j].math+arr[j].english);
break;
}
}
}改了部分代码,加了一个菜单。你看看。
追问这个也可以做出来,太高手了
全部回答
- 1楼网友:不如潦草
- 2021-12-04 00:03
这个可以帮你做。学生成绩管理
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯