可以分析一下吗?我想自己敲一个类似的,可是我读不懂这个代码

#include <stdio.h>
#include <stdlib.h>
#include<stdio.h>
struct Student {
long int num;
char name[20];
char sex[20];
char addr[20];
char xuehao[20];
}
a = {
2108,"xx","女","123456","123456abc"}
;
int data1;
int data2;
int data3;
void tips()
{
printf("\n");
printf("\n");
printf("\n");
printf("\n");
}
void huoqu(){
printf("请输入第一个数字:\n");
scanf("%d",&data1);
printf("请输入第二个数字:\n");
scanf("%d",&data2);
}
int main(){
printf("num:%d\n name:%s\nsex:%s\naddress:%s\nxuehao:%s", a.num, a.name, a.sex, a.addr, a.xuehao);
int data1;
int data2;
int data3;
char suanfa;
int mark = 0;
while(1)
{
tips();
if(mark != 0)
getchar();
scanf("%c",&suanfa);
getchar();
mark = 1;
switch(suanfa) {
case '+' : printf("你输入了加法\n");
printf("请输入第一个数字\n");
scanf("%d",&data1);
printf("请输入第二个数字\n");
scanf("%d",&data2);
printf("请输入第三个数字\n");
scanf("%d",&data3);
printf("%d+%d+%d=%d",data1,data2,data3,data1+data2+data3);
break;
case '-' : printf("你输入了减法\n");
printf("请输入第一个数字\n");
scanf("%d",&data1);
printf("请输入第二个数字\n");
scanf("%d",&data2);
printf("请输入第三个数字\n");
scanf("%d",&data3);
printf("%d-%d-%d=%d",data1,data2,data3,data1-data2-data3);
break;
case '' : printf("你输入了乘法\n");
printf("请输入第一个数字\n");
scanf("%d",&data1);
printf("请输入第二个数字\n");
scanf("%d",&data2);
printf("请输入第三个数字\n");
scanf("%d",&data3);
printf("%d%d*%d=%d",data1,data2,data3,data1data2data3);
break;
case '/' : printf("你输入了除法\n");
printf("请输入第一个数字\n");
scanf("%d",&data1);
printf("请输入第二个数字\n");
scanf("%d",&data2);
printf("请输入第三个数字\n");
scanf("%d",&data3);
printf("%d/%d/%d=%d",data1,data2,data3,data1/data2/data3);
break;
default : printf("你的算法选择错误,请重新选择\n");
break;
}
}
system("pause");
system("pause");
return 0;
}

主程序运行开始,显示出当前学生的编号、姓名、性别、地址、学号等,然后,如果键盘打出相应的运算符号加减乘除,则进行相应的运算,并得出计算后的值。