JAVA如何统计人数(接着下面的程序写)

JAVA如何统计人数(接着下面的程序写),第1张

在类中声明一个静态变量如下 :

static int num=0,每次类初始化将num 加一。

静态变量为所有类共享,num的大小即空册猛为斗桥创建的student对象的数目

程序稍微改动如姿态下:

class student {

String name

static int num =0

String id

float ywscore

float sxscore

float sumscore

float avgscore

student(String name,String id,float ywscore,float sxscore){

this.name=name

this.id=id

this.ywscore=ywscore

this.sxscore=sxscore

num ++

}

float sum(){

sumscore=sxscore+ywscore

return sumscore

}

float avg(){

avgscore=(sxscore+ywscore)/2

return avgscore

}

int getNum()

{

return num

}

void showinfo(){

System.out.println("name: "+name)

System.out.println("id: "+id)

System.out.println("mathscore: "+sxscore)

System.out.println("langue: "+ywscore)

System.out.println("avg: "+avg())

System.out.println("sum: "+sum())

}

}

<%@ Application Language="C#" %>

<%@ Import Namespace="System.IO" %>

<script runat="server">

void Application_Start(object sender, EventArgs e)

{

// 在应用程序启动时运行的代码

string filepath = Server.MapPath("~/App_Data/Count.txt")

if (!File.Exists(filepath))

{

StreamWriter sw = new StreamWriter(filepath)

sw.WriteLine(0)

sw.Flush()

sw.Close()

}

StreamReader sr = new StreamReader(filepath)

int intFwl = int.Parse(sr.ReadLine())

sr.Close()

Application["Fwl"] = intFwl

Application["Online"] = 0

}

void Application_End(object sender, EventArgs e)

{

// 在应用程序关闭时运行的代码

string filepath = Server.MapPath("~/App_Data/Count.txt")

StreamWriter sw = new StreamWriter(filepath)

sw.WriteLine(Application["Fwl"])

sw.Flush()

sw.Close()

}

void Application_Error(object sender, EventArgs e)

{

// 在出现谈旦键未处理的错误时运行的代码

}

void Session_Start(object sender, EventArgs e)

{

// 在新会话启动时运行的代码

Application["Fwl"] = int.Parse(Application["迟核Fwl"].ToString()) + 1

Application["Online"] = int.Parse(Application["Online"].ToString()) + 1

Session.Timeout = 5

string filepath = Server.MapPath("~/App_Data/Count.txt")

StreamWriter swFile = new StreamWriter(filepath)

swFile.WriteLine(Application["Fwl"])

swFile.Flush()

swFile.Close()

}

void Session_End(object sender, EventArgs e)

{

// 在会话结束时运行的代码。

// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为

// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer

// 或 SQLServer,则不会引发该事件。

Application["Online"] = int.Parse(Application["Online"].ToString()) - 1

}

</script>

在线含巧 和 来访人数 上面全体复制到 Global.asax

分割线----------------------------------------------------------------------------------------------

下面是显示出来的 添加到你需要的页的cs文件里面

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

string sFwl = Application["Fwl"] != null ? Application["Fwl"].ToString() : "N"

string sOnline = Application["Online"] != null ? Application["Online"].ToString() : "N"

for (int i = 0i <sFwl.Lengthi++)

{

Label1.Text += "<img src='images/count/" + sFwl[i] + ".png'/>"

}

for (int i = 0i <sOnline.Lengthi++)

{

Label2.Text += "<img src='images/count/" + sOnline[i] + ".png'/>"

}

}

}

在Global.asax全局应用程序类中,设置当应用程序启动时初始化计数器,代码如下。

void Application_Start(object sender, EventArgs e)

{

// 在应用程序启动时运行的代码

//初始化

Application["counter"] = 0

}

在新会话启动时,实现计数器加1,代码如下。

void Session_Start(object sender, EventArgs e)

{

// 在新会话启动时运行的代码

//对Application加锁以防并行性

Application.Lock()

//增加一个在线人数

Application["counter"] = (int)Application["counter"] + 1

//解锁

Application.UnLock()

}

在会话结束时,实现计数器减1,代码如下。

void Session_End(object sender, EventArgs e)

{

// 在会话结束时运雀兆行的代码桐蔽。

// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为

//顷轮租 InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer

// 或 SQLServer,则不会引发该事件。

//对Application加锁以防并行性

Application.Lock()

//减少一个在线人数

Application["counter"] = (int)Application["counter"] - 1

//解锁

Application.UnLock()

}

在主页Default.aspx第一次加载时,将Application[“counter”]赋给Label.text,实现在界面上显示在线人数,其代码如下。

Label2.Text=Application["counter"].ToString ()


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

原文地址: http://outofmemory.cn/yw/8224853.html

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

发表评论

登录后才能评论

评论列表(0条)

保存