package cnwillsoftwaretest;
import javautilArrayList;
public class Student {
private static int num;//学号
private static String name;//姓名
private static int classNum;//班号
private static int course;//课程号
private static int score;//成绩
private static int result;//成绩总分
public static void main(String[] args){
ArrayList list1=new ArrayList();//假设list1是学生A
list1add(getScore());//增加java课程,可以循环几次,多增加一些
list1add(getScore());//增加java课程,可以循环几次,多增加一些
for(int i=0;i<list1size();i++)//获取list1的长度
{
result=result+IntegervalueOf(list1get(i)toString());//将成绩累加
}
Systemoutprintln("平均分:"+ result/list1size());//这个学生的平均分
//所有学生的平均成绩也是同理
}
public static int getNum() {//得到学号
return num;
}
public static String getName() {//得到姓名
return name;
}
public static int getClassNum(){//得到班号
return classNum;
}
public static int getCourse() {//得到课程号
return course;
}
public static int getScore() {//得到成绩
return score;
}
public static String toStrings(int num,String name,int classNum,int course,int score){//得到字符串
String str="学号:"+num+"姓名:"+name+"班号:"+classNum+"课程号:"+course+"成绩:"+score;
return str;
}
}
不合法的是B,
main带参数主要是为了用命令行方式运行,第一个参数的意义是参数的个数,是个整形值,第二个参数的意义是参数的具体内容,是字符串数组(一般用写成二级指针)。
这种方式和我们在命令提示符下输命令运行是一样的。
#include
<cstdlib>
#include
<iostream>
using
namespace
std;
//使用std即标准命名空间
int
main(int
argc,
char
argv[])
//argc是命令参数的个数,argv是参数的内容
{
system("PAUSE");
return
EXIT_SUCCESS;
//返回给 *** 作系统,告知程序已正常结束
}
此外main还有其他名字
比如:
wmain
_tmain
我的能力也有限,学数据结构过的时间有点久了,而且这个程序我读的很吃力,没用过这样子的语言来写呢,刚刚写了个主类可是运行还是有错误,我又不会改,不好意思。。。我想要的主类大体是这样写的,你可以参考一下:
void main()
{
BiTree Tr;//这里定义的东西在这个程序里也不行,本来是想让那个BinTree是个指针的,可是这个程序俺也不大会弄
printf("按前序次序输入,以#表示为空:\n");
CreateBinTree(Tr,T,i);//这个括号里面的内容我也不知该怎么写,程序大体读了读 貌似不大会
printf("\n前序遍历结果为:\n");
PreOrder(Tr);//反正括号里的内容就是你前面写的那个函数括号里相应的
printf("\n中序遍历结果为:\n");
InOrder(Tr);
printf("\n后序遍历结果为:\n");
PostOder(Tr);
printf("\n层序遍历结果为:\n");
LevelOrder(Tr);
printf("\n该二叉树的深度为:\n%d",countHighOfBiTree(Tr));
printf("\n该二叉树的叶子节点个数为:\n");
countNumOfLeaf(Tr);
printf("\n该二叉树的所有结点数为:\n");
Count(Tr);
printf("\n");
}
这里是实验课上老师布置给我们的,然后自己写的,语言和你的不大一样 但思路差不多,你可以看看这个的,毕竟我还是学的时候思路比较清晰啦,嘿嘿,貌似~是按前序序列来创建的二叉树,你输入的前序序列一定要是正确的哦~我的这个程序还很低级,错误的它不会提示,不好意思哈,学习不大好,只能帮到这里了
#include "stdioh"
#include "conioh"
#include "stdlibh"
#include<malloch>
#include<stdlibh>
//#include<stdioh>
#include<stringh>
#define NULL 0
typedef char Elemtype;
typedef struct BinNode
{
Elemtype data;
struct BinNode lchild,rchild;//左右孩子指针
}BinTNode,BinTree;
//按前序构造二叉树链表表示的二叉树序列
BinTree CreateBinTree(BinTree &T)
{
char ch;
scanf("%c,\n",&ch);
if(ch=='#') T=NULL;
else
{
T=(BinNode )malloc(sizeof(BinNode));
T->data=ch;//生成根结点
CreateBinTree(T->lchild);//生成左子树
CreateBinTree(T->rchild);//生成右子树
}//if
return T;
}//CreateBinTree
void Visit(char dataa)
{
printf("%c",dataa);
}
//前序遍历二叉树
void PreOrderTraverse(BinTree T)
{
//前序遍历二叉树T的递归算法,Visit是访问数据元素的函数
if(T)//二叉树非空
{
Visit(T->data);//访问根结点
PreOrderTraverse(T->lchild);//前序遍历左子树
PreOrderTraverse(T->rchild);//前序遍历右子树
}//if
}//PreOrderTraverse
//中序遍历二叉树
void InOrderTraverse(BinTree T)
{
//中序遍历二叉树T的递归算法,Visit是访问数据元素的函数
if(T)//二叉树非空
{
InOrderTraverse(T->lchild);//中序遍历左子树
Visit(T->data);//访问根结点
InOrderTraverse(T->rchild);//中序遍历右子树
}//if
}//InOrderTraverse
void PostOrderTraverse(BinTree T)
{
//后序遍历二叉树T的递归算法,visit是访问数据元素的函数
if(T)//二叉树非空
{
PostOrderTraverse(T->lchild);//后序遍历左子树
PostOrderTraverse(T->rchild);//后序遍历右子树
Visit(T->data);//访问根结点
}//if
}//PostOrderTraverse
//求二叉树的深度
int Depth(BinTree T)
{
int DepthLeft,DepthRight,depthval;
if(!T)
return 0;
else
{
DepthLeft=Depth(T->lchild);
DepthRight=Depth(T->rchild);
depthval=1+(DepthLeft>DepthRightDepthLeft:DepthRight);
return depthval;
}//if
}//Depth
void CountLeaf(BinTree T,int &count0,int &count2)
{
//统计二叉树中的叶子节点个数
if(T)
{
if((!T->lchild)&&(!T->rchild))
count0++;
CountLeaf(T->lchild,count0,count2);
CountLeaf(T->rchild,count0,count2);
}
count2=count0-1;
}
void Countduone(BinTree T,int &count1)
{
//统计二叉树中度为1的结点个数
if(T)
{
if(((!T->lchild)&&(T->rchild))||((T->lchild)&&(!T->rchild)))
count1++;
Countduone(T->lchild,count1);
Countduone(T->rchild,count1);
}
}
int ZongNode(int &a,int &b,int c)
{
return (a+b+c);
}
void main()
{
BinTree Tr;
int count0,count1,count2;
int jie;
count0=0;
count1=0;
count2=0;
printf("按前序次序输入,以#表示为空:\n");
CreateBinTree(Tr);
printf("\n前序遍历结果为:\n");
PreOrderTraverse(Tr);
printf("\n中序遍历结果为:\n");
InOrderTraverse(Tr);
printf("\n后序遍历结果为:\n");
PostOrderTraverse(Tr);
printf("\n该二叉树的深度为:\n%d",Depth(Tr));
printf("\n该二叉树的叶子节点个数为:\n");
CountLeaf(Tr,count0,count2);
printf("%d",count0);
printf("\n该二叉树的所有结点数为:\n");
//CountLeaf(Tr,count0,count2);
Countduone(Tr,count1);
jie=ZongNode(count1,count2,count0);
printf("%d",jie);
printf("\n");
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)