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 ()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)