资源描述
课 程 设 计 报 告
课程名称 C语言程序设计
课题名称 班级档案管理系统
专 业 机械设计及其自动化
班 级 机设1083
学 号 201013090305
姓 名 袁涛
指导教师 王颖
2011年 9 月 15 日
湖南工程学院课程设计(论文)任务书
学院(直属系): 应用技术学院 时间: 2011年9月8日
学 生 姓 名
袁涛
指 导 教 师
王颖
设计(论文)题目
C语言设计班级档案管理
主要研
究内容
对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。
研究方法
利用所C语言的有关知识,查阅大量的资料,对班级档案管理的内容进行构思和设计,在Microsoft Visual C++ 6.0平台上完成设计,并进行调试。
主要技术指标(或研究目标)
a)了解和掌握c语言面向对象程序设计的基本过程。
b)进一步熟悉C语言的特点。
c)学会总体规划一个程序,从各个部分把一个程序完成好。
d)能够使自己的程序实现一定的功能,对C++产生一种浓厚的兴趣。
教研室
意见
教研室主任(专业负责人)签字: 年 月 日
:C语言设计班级档案管理
目 录
摘 要 II
第1章 绪论 - 1 -
第2章 系统总体框架与功能分析 - 2 -
2.1总体框架 - 4 -
2.2功能分析 - 4 -
第3章 模块设计与分析 - 4 -
第4章 类的设计与分析 - 4 -
4.1 STUDENT类图 - 4 -
4.1 STUDENT类说明表 - 4 -
第5章 功能测试 - 4 -
第6章 总结 - 4 -
参考文献 - 14 -
附 录 - 15 -
C语言设计班级档案管理
摘 要
本文介绍了利用C语言[1]对班级档案管理[5]进行设计的过程,从系统总体框架,功能分析,模块设计与分析,类的设计与分析[2],功能测试等环节通过Microsoft Visual C++ 6.0[3]对班级档案管理进行详细的设计,并介绍了班级档案管理如何运用,本次设计是基于C语言的程序设计,利用了C语言的强大功能,设计出的程序运行良好,可以在班级档案管理,学生成绩管理等方面进行良好的运用。
关键词:C语言,班级档案管理系统,Microsoft Visual C++ 6.0
- 33 -
第1章 绪论
班级档案管理系统有六十一种功能,把这11个功能做成11个子函数。在主函当数中设计一个菜单对这11个子数进行管理。来实现对整个系统的操作。根据课题的要求,每个数据的结构应当包括:学号(char)、姓名(char)、性别(char)、年龄(int)、备注(char)。对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。最后为了以后按照处理后的顺序保存到文件中。
第2章 系统总体框架与功能分析
2.1总体框架
主
菜
单
输入学生资料模块
输出学生资料模块
按学生姓名进行排列模块
添加学生资料模块
按姓名查找,删除该学生资料模块
查找并显示学生资料模块
按姓名查找,修改学生资料模块
从文件中读入数据模块
储存学生资料并退出系统模块
图2.1系统的总体框架示意图
2.2功能分析
“学生成绩管理系统”包括九个模块:输入学生资料,输出学生资料,学生姓名按顺序排列,添加学生资料,按姓名查找,删除该学生资料,查找并显示学生资料,按姓名查找,修改该学生资料,从文件中读入数据,储存学生资料并退出系统。每个模块既相互联系又相互独立。
本系统根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方便对成绩的各项管理操作。本系统能对成绩进行输入和输出;能按姓名对学生进行排序,并显示学生资料、成绩等,不过得以系统输入学生资料、成绩为前提;能添加学生成绩资料;能根据学生的姓名来查询该学生的成绩资料,并修改或是删除该学生信息;能够从文件中读取学生信息,并且添加到系统中;能把对系统所进行的操作进行保存,以及时更新系统中的数据。
第3章 模块设计与分析
3.1输入学生资料模块:
主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。在准确输入学生资料后,就可以对该学生的各科成绩进行录入。该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。
3.2输出学生资料模块:
主要功能用来对学生的成绩进行输出。在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的班级,学号,姓名和各科成绩。在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。
3.3 按学生姓名进行排列模块
主要功能是用来对学生的资料按姓名进行排序。在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏相同或是相近的同学的资料。
3.4添加学生资料模块
主要功能是用来添加学生资料,成绩。如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。
3.5按姓名查找,删除该学生资料模块
主要功能是用来删除学生资料。在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化
3.6查找并显示学生资料模块
主要功能是用来查找学生资料。在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息
3.7按姓名查找,修改学生资料模块
主要功能是用来修改学生资料。在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息。
3.8从文件中读入数据模块
主要功能是用来从文件中读入学生数据。由于一些资料可以用Word文档或Excel表格输入,故在此模块中增加了导入数据的功能。这样就方便很多,不用把学生资料一个一个添加,节省了很多时间精力。
3.9储存学生资料并退出系统模块
主要功能是用来储存学生资料。在对系统进行一系列操作,比如添加、删除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。
第4章 类的设计与分析
4.1Student类图
student
num
cla
name
byyl
jsjzc
sjk
jsjyy
图4.1 Student类图
typedef class
{
public:
char num[10];
char cla[10];
char name[20];
char byyl[10];
char jsjzc[20];
char sjk[10];
char jsjyy[20];
char jsdl[20];
}Student;
4.2 Student类说明表
名称
属性
说明
num
数据成员
说明学生学号
cla
数据成员
说明学生班级
name
数据成员
说明学生名字
byyl
数据成员
说明学生数据结构成绩
jsjzc
数据成员
说明学生离散数学成绩
sjk
数据成员
说明学生大学物理成绩
jsjyy
数据成员
说明学生大学英语成绩
Jssl
数据成员
说明学生模拟电路成绩
图4.2 Student类说明表
第5章 功能测试
5.1学生成绩管理系统主菜单页面
图5.1学生成绩管理系统主菜单页面图
5.2输入学生资料模块
图5.2输入学生资料模块图
5.3输出学生资料模块
图5.3输出学生资料模块图
5.4按学生姓名进行排列模块
图5.4按学生姓名进行排列模块图
5.5添加学生资料模块
图5.5添加学生资料模块图
5.6按姓名查找,删除该学生资料模块
图5.6按姓名查找,删除该学生资料模块图
5.7查找并显示学生资料
图5.7查找并显示学生资料图
5.8按姓名查找,修改学生资料模块
图5.8按姓名查找,修改学生资料模块图
5.9从文件中读入数据模块
图5.9从文件中读入数据模块图
5.10储存学生资料并退出系统模块
图5.10储存学生资料并退出系统模块图
第6章 总结
编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强破自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多错误和漏洞,不过还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。
通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。
在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!参考文献
[1] 苏贾宗璞,许合利,《C语言程序设计》,人民邮电出版社
[2] 苏小红等,《 C 语言大学实用教程学习指导》,电子工业出版社, 2007 年 4 月
[3] 《数据结构(c语言版)例题详解与课程设计指导》第二版
袁志祥、秦锋主编,中国科学技术大学出版社出版
附 录
源程序清单
#include<iostream>
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include<iomanip>
using namespace std;
typedef class
{
public:
char num[10];
char cla[10];
char name[20];
char byyl[10];
char jsjzc[20];
char sjk[10];
char jsjyy[20];
char jsdl[20];
}Student;
Student stu[80];
int menu()
{
char c;
for(;c<'0'||c>'8';)
{
system("cls");
cout<<" 欢迎使用学生成绩管理系统!!"<<endl;
cout<<endl;
cout<<"****************************** 学生成绩管理系统 ****************************** "<<endl;
cout<<setw(32)<<" "<<"1.输入学生资料"<<endl;
cout<<setw(32)<<" "<<"2.输出学生资料"<<endl;
cout<<setw(32)<<" "<<"3.按学生姓名进行排列"<<endl;
cout<<setw(32)<<" "<<"4.添加学生资料"<<endl;
cout<<setw(32)<<" "<<"5.按姓名查找,删除该学生资料"<<endl;
cout<<setw(32)<<" "<<"6.查找并显示学生资料"<<endl;
cout<<setw(32)<<" "<<"7.按姓名查找,修改该学生资料"<<endl;
cout<<setw(32)<<" "<<"8.从文件中读入数据"<<endl;
cout<<setw(32)<<" "<<"0.储存并退出系统"<<endl;
cout<<setfill('=')<<setw(48)<<"="<<endl;
cout<<setw(15)<<" ";
cout<<"请选择(0-8):";
c=getchar();
}
return(c-'0');
}
int Input(Student stud[],int n) //输入数据。
{
int i=0;
char sign,x[10];
for(;sign != 'n' && sign != 'N';)
{
cout<<setw(15)<<" "<<"班级:";
cin>>stud[n+i].cla;
cout<<setw(15)<<" "<<"学号:";
cin>>stud[n+i].num;
cout<<setw(15)<<" "<<"姓名:";
cin>>stud[n+i].name;
cout<<setw(15)<<" "<<"数据结构:";
cin>>stud[n+i].byyl;
cout<<setw(15)<<" "<<"离散数学:";
cin>>stud[n+i].jsjzc;
cout<<setw(15)<<" "<<"大学物理:";
cin>>stud[n+i].sjk;
cout<<setw(15)<<" "<<"大学英语:";
cin>>stud[n+i].jsjyy;
cout<<setw(15)<<" "<<"模拟电路:";
cin>>stud[n+i].jsdl;
gets(x);
cout<<setw(10)<<" ";
cout<<"还有要输入的信息吗?(y/n)";
cin>>&sign;
i++;
}
return(n+i);
}
void Display(Student stud[], int n) //输出数据。
{
int i;
cout<<setw(15)<<" "<<setfill('-')<<setw(65)<<"-"<<endl;
cout<<setw(15)<<" "<<"班级 学号 姓名 数据结构 离散数学 大学物理 大学英语 模拟电路"<<endl;
cout<<setw(15)<<" ";
cout<<setfill('-')<<setw(65)<<"-"<<endl;
for(i=1;i<n+1;i++)
{
printf("\t\t%-9s%-9s%-9s%-9s%-9s%-9s%-9s\n",stud[i-1].cla,stud[i-1].num,stud[i-1].name,stud[i-1].byyl,stud[i-1].jsjzc,stud[i-1].sjk,stud[i-1].jsjyy);
if(i>1 && i%10==0)
{
cout<<setw(15)<<" "<<setfill('-')<<setw(35)<<"-"<<endl;
cout<<setw(15)<<" ";
system("pause");
cout<<setw(15)<<" "<<setfill('-')<<setw(35)<<"-"<<endl;
}
}
cout<<setw(15)<<" ";
system("pause");
}
void Sort(Student stud[],int n) //按名字排序。
{
int i,j;
char t[20];
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(strcmp(stud[j].num,stud[j+1].num)>0)
{
strcpy(t,stud[j+1].cla);
strcpy(stud[j+1].cla,stud[j].cla);
strcpy(stud[j].cla,t);
strcpy(t,stud[j+1].num);
strcpy(stud[j+1].num,stud[j].num);
strcpy(stud[j].num,t);
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
strcpy(t,stud[j+1].byyl);
strcpy(stud[j+1].name,stud[j].byyl);
strcpy(stud[j].byyl,t);
strcpy(t,stud[j+1].jsjzc);
strcpy(stud[j+1].name,stud[j].jsjzc);
strcpy(stud[j].jsjzc,t);
strcpy(t,stud[j+1].sjk);
strcpy(stud[j+1].name,stud[j].sjk);
strcpy(stud[j].sjk,t);
strcpy(t,stud[j+1].jsjyy);
strcpy(stud[j+1].name,stud[j].jsjyy);
strcpy(stud[j].jsjyy,t);
strcpy(t,stud[j+1].jsdl);
strcpy(stud[j+1].name,stud[j].jsdl);
strcpy(stud[j].jsdl,t);
}
cout<<setw(15)<<" "<<"排序成功!"<<endl;
}
int Insert(Student stud[],int n) //插入一条学生信息。
{
char x[10];
cout<<setw(15)<<" "<<"班级:";
cin>>stud[n].cla;
cout<<setw(15)<<" "<<"学号:";
cin>>stud[n].num;
cout<<setw(15)<<" "<<"姓名:";
cin>>stud[n].name;
cout<<setw(15)<<" "<<"数据结构:";
cin>>stud[n].byyl;
cout<<setw(15)<<" "<<"离散数学:";
cin>>stud[n].jsjzc;
cout<<setw(15)<<" "<<"大学物理:";
cin>>stud[n].sjk;
cout<<setw(15)<<" "<<"大学英语:";
cin>>stud[n].jsjyy;
cout<<setw(15)<<" "<<"模拟电路:";
cin>>stud[n].jsdl;
gets(x);
n++;
cout<<setw(15)<<" "<<"插入成功!"<<endl;
return(n);
}
int Delete(Student stud[],int n) //按名字查找信息,删除信息。
{
char s[20];
int i=0,j;
cin>>s;
while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
printf("\t\t\t没有发现该学生资料!\n"); /*返回失败信息*/
return(n);
}
for(j=i;j<n-1;j++) /*删除操作*/
{
strcpy(stud[j].num,stud[j+1].num);
strcpy(stud[j].name,stud[j+1].name);
strcpy(stud[j].cla,stud[j+1].cla);
strcpy(stud[j].byyl,stud[j+1].byyl);
strcpy(stud[j].jsjzc,stud[j+1].jsjzc);
strcpy(stud[j].sjk,stud[j+1].sjk);
strcpy(stud[j].jsjyy,stud[j+1].jsjyy);
strcpy(stud[j].jsdl,stud[j+1].jsdl);
}
cout<<setw(15)<<" "<<"当前信息已删除成功!"<<endl; /*返回成功信息*/
return(n-1);
}
void Query(Student stud[],int n) //按名字查找信息
{
char s[20];
int i=0;
cout<<setw(15)<<" "<<"输入他(她)的姓名:";
cin>>s;
while(strcmp(stud[i].name,s)!=0&&i<n)
i++; /*查找判断*/
if(i==n)
{
printf("\t\t\t没有发现该学生资料!\n"); /*输入失败信息*/
return;
}
cout<<setw(15)<<" "<<"学号:"<<stud[i].num<<endl;
cout<<setw(15)<<" "<<"数据结构:"<<stud[i].byyl<<endl;
cout<<setw(15)<<" "<<"离散数学:"<<stud[i].jsjzc<<endl;
cout<<setw(15)<<" "<<"大学物理:"<<stud[i].sjk<<endl;
cout<<setw(15)<<" "<<"大学英语:"<<stud[i].jsjyy<<endl;
cout<<setw(15)<<" "<<"模拟电路:"<<stud[i].jsdl<<endl;
}
int Xiugai(Student stud[],int n) //修改信息。
{
n=Delete(stud,n);
cout<<setw(15)<<" "<<"输入你要修改的学生资料"<<endl;
n=Insert(stud,n);
cout<<setw(15)<<" "<<"修改完成"<<endl;
return(n);
}
int AddfromText(Student stud[], int n) //从文件中读入数据。
{
int i=0,num;
FILE *fp;
char filename[20];
cout<<setw(15)<<" "<<"输入文件名:";
cin>>filename;
if((fp=fopen(filename,"rb"))==NULL)
{
cout<<setw(15)<<" "<<"无法打开文件"<<endl;
cout<<setw(15)<<" ";
system("pause");
return(n);
}
fscanf(fp,"%d",&num);
for(;i<num;)
{
fscanf(fp,"%s%s%s%s%s%s%s",stud[n+i].cla,stud[n+i].num,stud[n+i].name,stud[n+i].byyl,stud[n+i].jsjzc,stud[n+i].sjk,stud[n+i].jsjyy,stud[n+i].jsdl);
i++;
}
n+=num;
fclose(fp);
cout<<setw(15)<<" "<<"读入成功!"<<endl;
cout<<setw(15)<<" ";
system("pause");
return(n);
}
void WritetoText(Student stud[],int n) //将所有记录写入文件。
{
int i=0;
FILE *fp;
char filename[20];
cout<<setw(15)<<" "<<"将资料输入文件"<<endl;
cout<<setw(15)<<" "<<"输入文件名:";
cin>>filename;
if((fp=fopen(filename,"w"))==NULL)
{
cout<<setw(15)<<" "<<"无法打开文件"<<endl;
system("pause");
return;
}
fprintf(fp,"%d\n",n);
for(;i<n;)
{
fprintf(fp,"%-6s%-5s%-5s%-5s%-5s%-5s%-5s\n",stud[i].cla,stud[i].num,stud[i].name,stud[i].byyl,stud[i].jsjzc,stud[i].sjk,stud[i].jsjyy);
i++;
}
fclose(fp);
cout<<setw(15)<<" "<<"输入成功!"<<endl;
int b;
cout<<setw(15)<<" "<<"请确定是否退出系统:"<<endl;
cout<<setw(15)<<" "<<"0.退出系统"<<endl;
cout<<setw(15)<<" "<<"1.返回"<<endl;
cin>>b;
if(b==0)
{
cout<<setw(15)<<" "<<"谢谢使用!"<<endl;
cout<<setw(15)<<" ";
system("pause");
exit(0);
}
}
void main() //主函数调用。
{
int n=0;
for(;;)
{
switch(menu())
{
case 1:
cout<<setw(15)<<" "<<"输入学生资料"<<endl;
n=Input(stu,n);
break;
case 2:
cout<<setw(15)<<" "<<"输出所有学生资料"<<endl;
Display(stu,n);
break;
case 3:
cout<<setw(15)<<" "<<"按姓名排序"<<endl;
Sort(stu,n);
cout<<setw(15)<<" ";
system("pause");
break;
case 4:
cout<<setw(15)<<" "<<"插入学生资料"<<endl;
n=Insert(stu,n);
cout<<setw(15)<<" ";
system("pause");
break;
case 5:
cout<<setw(15)<<" "<<"删除学生资料"<<endl;
cout<<setw(15)<<" "<<"输入他(她)的姓名:";
n=Delete(stu,n);
cout<<setw(15)<<" ";
system("pause");
break;
case 6:
cout<<setw(15)<<" "<<"查找学生"<<endl;
Query(stu,n);
cout<<setw(15)<<" ";
system("pause");
break;
case 7:
cout<<setw(15)<<" "<<"修改学生资料"<<endl;
cout<<setw(15)<<" "<<"输入你要修改的学生的姓名:";
n=Xiugai(stu,n);
system("pause");
break;
case 8:
cout<<setw(15)<<" "<<"从文件中读入数据"<<endl;
n=AddfromText(stu,n);
break;
case 0:
cout<<setw(15)<<" "<<"将所有资料写入文件"<<endl;
WritetoText(stu,n);
cout<<setw(15)<<" ";
system("pause");
break;
}
}
}
附录资料:不需要的可以自行删除
Abstract: Based on the comprehensive analysis on the plastic part’s structure service requirement, mounding quality and mould menu factoring cost. A corresponding injection mould of internal side core pulling was designed. By adopting the multi-direction and multi-combination core-pulling. A corresponding injection mould of internal side core pulling was designed, the working process of the mould was introduced
C语言详解 - 枚举类型
注:以下全部代码的执行环境为VC++ 6.0
在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
在此,我们定义一种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚举型。
1. 定义一种新的数据类型 - 枚举型
以下代码定义了这种新的数据类型 - 枚举型
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。
(2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。
(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。
(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。
(5) 枚举型是预处理指令#define的替代。
(6) 类型定义以分号;结束。
2. 使用枚举类型对变量进行声明
新的数据类型定义完成后,它就可以使用了。我们已经见过最基本的数据类型,如:整型int, 单精度浮点型float, 双精度浮点型double, 字符型char, 短整型short等等。用这些基本数据类型声明变量通常是这样:
char a; //变量a的类型均为字符型char
char letter;
int x,
y,
z; //变量x,y和z的类型均为整型int
int number;
double m, n;
double result; //变量result的类型为双精度浮点型double
既然枚举也是一种数据类型,那么它和基本数据类型一样也可以对变量进行声明。
方法一:枚举类型的定义和变量的声明分开
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY yesterday;
enum DAY today;
enum DAY tomorrow; //变量tomorrow的类型为枚举型enum DAY
enum DAY good_day, bad_day; //变量good_day和bad_day的类型均为枚举型enum DAY
方法二:类型定义与变量声明同时进行:
enum //跟第一个定义不同的是
展开阅读全文