JAVA 最基础的编程 main函数的编写

JAVA 最基础的编程 main函数的编写,第1张

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");

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12156154.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存