各位的剑侠情缘手游聊天表情聊天秒睡吗

5081人阅读
J2SE(113)
Java没有提供这样的机制。从操作系统的观点来看,一个启动的Java&Application仅仅是一
个JVM的运行实例。运行相同Application的两个实例,仅仅是运行两个无关的JVM。
只有让多个运行实例之间有一个既定的通讯机制就可以保证只有一个实例运行。
方案1:使用Java的加锁文件机制,idea相当简单,让运行实例通过java.nio.channels.FileLock获得一个&well-known&文件的互斥锁。
import&java.io.*;
import&java.nio.channels.*;
public&class&OneInstance_1&{
&&public&static&void&main(String[]&args)&throws&Exception&{
&&&&FileLock&lck&=&new&FileOutputStream(&C:\\flagFile&).getChannel().tryLock();&&&&&&&&&
&&&&if(lck&==&null)&{
&&&&&&System.out.println(&A&previous&instance&is&already&running....&);
&&&&&&System.exit(1);
&&&&System.out.println(&This&is&the&first&instance&of&this&program...&);
&&&&//&Do&some&work&here.....
问题:平台相关
方案2:使用java.net.ServerSocket
import&java.io.*;
import&java.net.*;
public&class&OneInstance_2&{
&&private&static&ServerSocket&listenerS
&&public&static&void&main(String[]&args)&{
&&&&&&listenerSocket&=&new&ServerSocket(2004);
&&&&&&//At&this&point,&no&other&socket&may&listen&on&port&2004.
&&&&}&catch(java.net.BindException&e)&{
&&&&&&System.err.println(&A&previous&instance&is&already&running....&);
&&&&&&System.exit(1);
&&&&}&catch(final&IOException&e)&{&//&an&unexpected&exception&occurred
&&&&&&System.exit(1);
&&//&Do&some&work&here.....
问题:打开服务端口可能会受到防火墙的影响;可能和别的端口冲突。
方案3:使用File.createNewFile()&and&File.deleteOnExit()
import&java.io.*;
public&class&OneInstance_3&{
&&public&static&void&main(String[]&args)&throws&Exception&{
&&&&File&flagFile&=&new&File(&C:\\flagFile&);
&&&&if(false&==&flagFile.createNewFile())&{
&&&&&&System.out.println(&A&previous&instance&is&already&running....&);
&&&&&&System.exit(1);
&&&&flagFile.deleteOnExit();
&&&&System.out.println(&This&is&the&first&instance&of&this&program...&);
&&&&//&Do&some&work&here.....
来源:·BBS&水木清华站&smth.org·[FROM:&202.108.130.*]
问题:文件可能因为某些原因不能被删除,即使利用Runtime.addShutdownHook()也有可能产生这种情况。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3222862次
积分:32782
积分:32782
排名:第129名
原创:655篇
转载:89篇
评论:1215条
阅读:62664
(1)(1)(9)(2)(12)(18)(19)(13)(28)(29)(28)(31)(29)(2)(1)(2)(1)(2)(9)(5)(31)(30)(31)(31)(33)(26)(22)(1)(1)(3)(2)(1)(2)(1)(6)(30)(11)(3)(3)(11)(7)(11)(14)(1)(16)(43)(15)(71)(54)本帖子已过去太久远了,不再提供回复功能。问一个很白痴的问题,有了java代码,要怎么运行?_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:605,911贴子:
问一个很白痴的问题,有了java代码,要怎么运行?收藏
本人大一的,什么都不懂,选修选了java,之前没学过C语言之类的,第一节课听到老师一直讲:这些都很容易,你们选java的应该都学过C语言了,所以这些都懂的,我就不多讲了。然后我听得一头雾水,索性就不听了。但是现在要交作业了,老师布置了题目,我找到了代码,但没有运行截图,想知道要这么运行?大家能否帮帮忙。究竟要怎么运行这些代码?谢谢!
上海java培训一般需要4-8周,就可完全掌握,名企就业.0元试学.java培训的费用一般根据培训的课时决定,可申请0元试学.点击咨询..
我不想挂科呀
希望路过的能提点一下我,感激不尽!
不敢奢求各位帮忙做,因为大家都很忙,只希望能指点一下我,谢谢!
下载JDK 配置 记事本运行 或下个eclipse 新建个JAVA类 把代码复制进去 很简单的 你试了就知道了
是不是要在电脑装什么软件之类的?
回复:5楼谢谢!真的很感谢了。我去试一下!
虽然对新手来说用记事本好些但像你这种选修的来说 还是直接eclipse吧
回复:8楼能否说明一下有什么区别,哪个容易上手,坦白说,我虽是选修,但我只是听了一节课而已,听不懂,基本上都是我学我自己的。本来以为挂了就挂了,但是考核是以交作业的形式,让我看到了希望,所以我不想放弃。
这个一下两下很难是说清楚的,一般初学者是用JDK&&
通过网上下载一个版本的JDK
然后电脑设置下环境变量,用记事本输入代码,文件保存时后缀是.java
然后进命令提示符 用命令编译运行···
找java培训学校?想去学java?选甲骨文,学习原厂Java技术,做IT行业大牛!java,全球广泛使用的编程语言,名师实战授课,120天精通,速成Java工程师,高薪就业.
回复:10楼谢谢你!电脑设置下环境变量要怎么设置呢?还有用命令编译运行我也不懂,能否说明一下,谢谢!
所以你还是用eclipse的好 具体用法嘛 首先 菜单栏里选File 然后new 再然后Java project出来个框 输入你们项目名 点Finish你就可以在左边的框里看到你的项目了右击你的项目 new 然后建个包 package然后对着你的包建个class你就可以把代码打到class里了打好后点箭头运行
Java的开发流程:(1)下载并安装JDK&&&&
注意版本和系统&&&
for Windows&&&
JDK6.0(2)设置环境变量&&&
JAVA_HOME=C:\Program Files\Java\jdk1.6.0&&&&&&&&&&&&&&&&&&&&&&&&&&&&
表示JDK的安装路径,给第三方软件使用&&&
PATH=.....;%JAVA_HOME%\bin&&&&&&&&&&&&&&&&&&&&&&&&
表示的指定JDK相关命令的存放路径&&&&&&&&&&&&&
Windows用分号;隔开不同的配置,用%%引用之前的变量值&&&&&&&&&&&&&
Unix/Linux用的是冒号:&&&
用$引用之前的变量值&&&&&&&&
PATH=%JAVA_HOME%\.......&&
建议配置写前面,优先找到&&&
CLASSPATH=.&&&&&&&&&&&&&&&
代表当前路径
&&&&&&&&&&&&&&
类(字节码 .class文件)的搜索路径祝你好运
回复:12楼谢谢!辛苦你了!能这么详细地为一个陌生人热心地解答问题,好人一生平安!
回复:13楼谢谢!感谢你的详细解答!衷心祝福你,好人有好报!
13 楼 好人啊
回复:13楼不懂因材施教
为什么我的问题一个人都没人鸟我,,,,,,,,,,,
这些都很容易,你们选java的应该都学过C语言了你为什么不对老师说你没学过?为什么要**说自己和大家一样学过?
回复:19楼200多人的选修课,老师也不可能关照到每个人,不过没学C语言的保守估计也应该超过10个,其实当初有说没学过,不过那老师说了句没学过也是少数而已,选了JAVA的没学过也应该自学了吧?不然也不会选JAVA,然后我没说什么啦!要怪也怪自己当初傻傻的选了它,又没去自学C语言,选修课的课程很少,老师也不可能讲详细,毕竟课本很厚的
回复:16楼其实13楼很热心啦,不过我的确看了还是不懂,没办法,水平超级差,不,不过看了他的回复之后,我在百度一下就设置好环境变量啦,就是不会编译
LZ要教上去的是什么 一个项目? 或只不过是一段代码?
回复:22楼我也不清楚,应该只是代码吧,我们的要求很低的,估计你们这些会的看到题目就会觉得是很弱智的问题!
回复:22楼一. 题目(以下三个模块,任选一个模块完成Java编程)模块一:1、类与对象的基础题:1)编程实现:设计一个学生类Student,包含的属性有姓名name和年龄age. 由学生类派生出本科生类Undergraduate和研究生类Postgraduate, 本科生类包含的属性有专业specialty等, 研究生类包含的属性有研究方向studydirection等。每个类都有相关数据的set方法和get方法.2)声明测试类:声明Student类的数组(含5个元素),生成五个对象存入数组:其中二个Student类的对象、二个Postgraduate类的对象、一个Undergraduate类的对象,打印输出每个对象的某个成员变量。将一个父类的引用指向一个子类对象,用这个塑型后的对象来调用某个方法实现多态性。模块二:1、 用输入输出流写一个Java程序:通过键盘输入5条姓名和电话号码的字符串(格式如:Tom_),将这5条信息逐行写到D盘根目录下的PhoneDirectory.txt文件中,然后将PhoneDirectory.txt文件中的内容读取出来,并显示在屏幕上。 2、 用多线程的同步控制模拟(用synchronized、wait()和notifyAll()完成以下情景):某一公司的会计Zhang线程负责往公司的银行帐户BankCount中存入50000,00元,而公司的出纳Sun线程要在同一帐户中取出20000,00元。Zhang线程和Sun线程共享同一个银行帐户BankCount类对象。模块三:1、基于套接字Socket通信的编程:建立TCPSocket进行通信,服务器端向客户端传送日期数据,客户端收到信息后在屏幕上输出收到提示信息和此日期信息。
原来这是初学者的题目嘛...
看不懂啊只有第一题知道点 用class写个Student类 设置姓名name和年龄age然后貌似是用继承吧最后嘛写本科生Undergraduate和研究生Postgraduate的属性 什么get啦set啦的我也初学
回复:25楼我还算不上初学呢
还是建议上网上看教程,前几节就能说明白,不懂的可以M喔
回复:27楼我后天就得交作业了,看教程来不及了,悲剧呀!
回复:27楼能否帮我看一下这段代码有没有哪里出错了?运行结果感觉有点不对劲。是24楼第一题的代码。谢谢!//Student 类class Student{ S Student(String name,int age){
this.name= } Student(){}&& public void setName(String name){
this.name= } public String getName(){ } public void setAge(int age){
this.age= } public int getAge(){ }}//Unergraduate类class Undergraduate extends Student{ S Undergraduate(String n,int a,String s){
specially = } Undergraduate(){}&& public void setSpecially(String specially){
this.specially = } public String getSpecially(){ }}//Postgraduate类class Postgraduate extends Student{ S Postgraduate(String n,int a,String s){
studydirection = } Postgraduate(){} public void setStudydirection(String studydirection){
this.studydirection = } public String getStudydirection(){
r }}public class TestStudent{
//程序入口 /**
* @param args
*/ public static void main(String[] args) {
// TODO Auto-generated method stub
Student stu1 = new Student("Tom",19);
Student stu2 = new Student("Anna",20);
Postgraduate stu3 = new Postgraduate("John",25,"Computer Science");
Postgraduate stu4 = new Postgraduate("Lucy",24,"Chinese");
Undergraduate stu5 = new Undergraduate("Ansen",21,"Math");
Student[] data = {stu1,stu2,stu3,stu4,stu5};
//Student类的数组
System.out.println("Name\tAge");
System.out.println("--------------");
System.out.println(stu1.getName()+"\t"+stu1.getAge());
System.out.println(stu2.getName()+"\t"+stu2.getAge());
System.out.println(stu3.getName()+"\t"+stu3.getAge()+"\t"+stu3.getStudydirection());
System.out.println(stu4.getName()+"\t"+stu4.getAge()+"\t"+stu4.getStudydirection());
System.out.println(stu5.getName()+"\t"+stu5.getAge()+"\t"+stu5.getSpecially());
System.out.println("--------------");
data[0].setName("汤姆");
stu2.setName("约翰");
for(int i=0;i&data.i++)
System.out.println(data[i].getName());&&& }}
回复:29楼能不能重新排一下格式,这么看很累啊
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或十多年前你跟我说打游戏能上亚运会,估计要被爸妈揍懵。
  那么多的传闻爆料轰炸以后,国内外不少果粉最怕的,莫过于 iPhone 8 背后真的有个...
《规范网络游戏运营》通知5月1日开始实施,这可能是有史以来最严格的网游(网络手游)...
这项技术有点类似于 Apple Watch 的感应充电技术,但是增加了充电的距离。
昨天下午,锋友 cafu9km 分享了一个关于 Mac 间歇性 WiFi 断点的解决方法。
即便不是在健身时间,用户也可以作为手腕饰物进行使用。
有差距才会有进步。
智能手机市场离“熄火”还很远,iPhone 在 2017 年第一季出货量达到 5160 万部。
现在随着交通越发的发达便利,全球化的步伐加快,出国旅游成为了大家享受生活,认识世...
在本周,一款以地堡为背景的恐怖游戏《地堡(The Bunker)》在苹果商店当中正式上架了...
【眼见你陷泥沼 眼见你欲重生 爱恨两难:《仙剑奇侠传幻璃镜》】在 1~2 个小时的试玩...
在上周的照例更新当中,国内手游大厂龙图在成功取得了 LINE 的正版授权之后,成功地将...
在游戏中,玩家需要带领各个西甲俱乐部的球员一同前进不断晋级,将诸多实力强劲的对手...
记得在2000年,游戏公司 Dusenberry Martin Racing 就曾经推出过相关赛事的游戏《热力...
在上周的 App Store 更新当中,心动互娱上架了一款名为《元气偶像季》的新作,本作以...
用户只需要将 iPhone 从 M4 的侧边插进去,就能让 iPhone 看起来像一台迷你 Mac。
日前,外媒 Wareable 为我们推荐了数款最值得考虑的支持苹果 HomeKit 平台的智能家居...
Apple Pencil的收纳问题,这款保护壳能够提供不错的解决方案。
想要带 iPhone 去潜水,还是加个防水保护壳比较靠谱~
虽然 AirPods 便携,但是充电盒可一点也不便携,好在 PodClip 能够解决这个问题。
AirPods 无线耳机是一款非常棒的产品,但是有一个问题是,如果这款产品掉到一些你捡不...
安装适配应用之后,就能直接插入iPhone手机,拷照片、音乐、文章、高清视频了。
Woodsaka Uniq 保护壳是专门针对 iPhone 设计的,它采用木质制成,并且全手工打造。
iphone 上可以运行java程序吗?
注册时间 最后登录
在线时间157 小时 UID
主题帖子人气
小苹果, 积分 18, 距离下一级还需 32 积分
如题,比如说 java版本的QQ
注册时间 最后登录
在线时间8 小时 UID
主题帖子人气
如果它不能,我觉得它难成主流,毕竟j2me已经够成熟了,基于平台无关性处理手机这种手持设备是最佳选择..
现在他们只知道能在上面编译程序,sun的就JVM一事还没有和老乔谈妥
注册时间 最后登录
在线时间157 小时 UID
主题帖子人气
能还是不能啊,3.0的系统怎么操做
注册时间 最后登录
在线时间3265 小时 UID
主题帖子人气
单独的程序不能..........
专门的java程序可以,就是它是用cocoa写的,但是内码是java..........
你去app store搜java就知道了
要我再看一次你发的贴?加分是个好方法哦~
注册时间 最后登录
在线时间804 小时 UID
主题帖子人气
cydia 搜索 JAVA,然后安装,重启,会有两个图标,hello java,helloscript,这两个文件不要点击,如果一不小心点击就要卸载重装,然后将下载JAR格式解包后拷贝到/usr目录,需要在电脑上操作完成 ,然后点击hello java,里面就有了JAVA程序的图标,点击即可运行
美中不足的是,JAVA没有480X320的软件,320X240,只占了屏幕了一半,很不爽,不过JAVA的QQ比IPA的QQ好用,IPA的QQ比JAVA的QQ漂亮
注册时间 最后登录
在线时间9377 小时 UID
主题帖子人气
勿以善小而不为
回 1楼(chaner2002) 的帖子
你是指如果iphone不支持java,iphone就难成主流?
注册时间 最后登录
在线时间160 小时 UID
主题帖子人气
JAVA?我想吐了
注册时间 最后登录
在线时间1388 小时 UID
主题帖子人气
回 4楼(new_feeling) 的帖子
能给个源码?我搜索不到..
http://kcli./
注册时间 最后登录
在线时间76 小时 UID
主题帖子人气
sdddddddddddddddddd
注册时间 最后登录
在线时间2885 小时 UID
主题帖子人气
来来我是一个果果果果
j2me,算了吧,开发工具死难用,还得针对不同分辨率、不同操作方式分别写,无论编程还是执行,效率都不高,现在有几家手机软件商还在用j2me的,有那精力还不如分别针对几种主流手机操作系统写不同的软件,反而更便捷
编程语言其实是相通的
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!谁能把这段C语言的程序,用JAVA写出来 ? - ITeye问答
小弟佩服。。。。哈哈哈,交流一下水平
这个程序是运输问题的,用表上作业解决的代码
//===============BEGIN===================
/* 表上作业法的源代码 */
#include "stdafx.h"
#include "stdio.h"
//#include "alloc.h"
#include &malloc.h&
#include &conio.h&
#include &ctype.h&
#include &stdlib.h&
#include "math.h"
/* #define debug */
#define a(j) (*(C+(M-1)*N+j)) /*销量数组*/
#define b(i) (*(C+i*N+N-1)) /*产量数组*/
#define c(i,j) (*(C+i*N+j)) /*运价数组*/
#define x(i,j) (*(X+i*(N-1)+j)) /*运量数组 */
/*(&1.0E15:基本解,&=1.0E15:运量为0) */
#define s(i,j) (*(S+i*(N-1)+j)) /*检验数数组Sij */
#define u(i) (*(U+i)) /*位势数组Ui*/
#define v(i) (*(V+i)) /*位势数组Vi*/
#define cpi(k) ((CP+k)-&i) /*闭回路点i标*/
#define cpj(k) ((CP+k)-&j) /*闭回路点i标*/
#define cpf(k) ((CP+k)-&f) /*闭回路点i标*/
/* f=0:j++; f=2:j--;
f=1;i--; f=3:i++; */
/*void TP(int M,int N,double *C,double *X); */
void main()
{
int M,N,i,j;
double *C; /*存储运价,产量及销量 */
double *X; /*存储运量分配方案 */
FILE *
char fn[80];
void TP(int M,int N,double *C,double *X);
printf("please input the data file name: ");
scanf("%s",fn);
if((fp=fopen(fn,"r"))==NULL)
{
printf("Cannot open the data file!");
getch();
exit(0);
}
fscanf(fp,"%d%d",&M,&N);
M++; N++;
X=(double *)malloc(sizeof(double)*(M-1)*(N-1));
C=(double *)malloc(sizeof(double)*M*N);
/* 把运价,供应量和需求量的数据读入到数组c(i,j); */
for(i=0;i&M;i++)
{
for(j=0;j&N;j++)
{
fscanf(fp,"%f",&z);
c(i,j)=z;
}
printf("\n");
}
fclose(fp);
/* output c(i,j); */
printf("\n=============Data File================\n");
for(i=0;i&M;i++){
for(j=0;j&N;j++)
{
printf("%10.3f",c(i,j));
}
printf("\n");
}
getch();
TP(M,N,C,X);
/* 输出产销分配方案; */
printf("\n=============Best Solution===================\n");
sum=0;
for(i=0;i&M-1;i++)
{
for(j=0;j&N-1;j++)
{
if(x(i,j)&=1.0e15)
printf("%10s","******");
else
{printf("%10.3f",x(i,j));
sum+=(x(i,j)*c(i,j));
}
}
printf("\n");
}
printf("\n\n\tThe min Cost is: %-10.4f\n",sum);
getch();
free(X);
free(C);
}
struct PATH{
int i,j,f;
}; /*记录闭回路点结构*/
void TP(int M,int N, double *C,double *X)
{
double *U,*V,*S;
int MN1,m,n;
struct PATH *CP;
int k,i,j,l,k1,l1,
double Cmin,
int I0,J0,Imin,J
int fi,fj,fc,f;
MN1=(M-1)+(N-1)-1;
m=M-1;n=N-1;
S=(double *)malloc(sizeof(double)*(M-1)*(N-1));
U=(double *)malloc(sizeof(double)*M);
V=(double *)malloc(sizeof(double)*N);
CP=(struct PATH *)malloc(sizeof(struct PATH)*(MN1+1));
#ifdef debug
printf("\nM=%d,N=%d,m=%d,n=%d\n",M,N,m,n);
printf("\nb(i)is following:\n");
for(i=0;i&m;i++)
printf("%8.4f\t",b(i));
printf("\na(j)is folowing:\n");
for(j=0;j&n;j++)
printf("%8.4f\t",a(j));
printf("\n");
getch();
#endif
/*解初始化Xij=1.0e15; */
for(i=0;i&m;i++)
for(j=0;j&n;j++)
x(i,j)=1.0e15;
/*最小元素法求初始可行解 */
for(k=0;k&MN1;k++)
{
Cmin=1.0e15;
for(i=0;i&m;i++)
{
fi=0;
for(l=0;l&k;l++)
{
/* 去除已经用过的行; */
if(i==cpi(l)){fi=1;}
}
if(fi==1)
for(j=0;j&n;j++)
{
fj=0;
for(l=0;l&k;l++)
{
/* 去除已经用过的列; */
if(j==cpj(l)){fj=1;}
}
if(fj==1)
if(Cmin&c(i,j))
{
Cmin=c(i,j);I0=i;J0=j;
#ifdef debug
printf("\n now c(i,j)=%8.4f\n",c(i,j));
#endif
}
} /*end for j */
}/* end for i */
/*得到了未划去的最小运价所在格的坐标(I0,J0)和最小运价Cmin */
if(k&0)
{if(Cmin==1.0e15&&cpi(k-1)==0)
{for(l1=0;l1&m;l1++)
if(x(l1,cpj(k-1))==1.0e15)
{x(l1,cpj(k-1))=0;
}
}
else if(Cmin==1.0e15&&cpi(k-1)!=0)
{for(l1=0;l1&n;l1++)
if(x(cpi(k-1),l1)==1.0e15)
{x(cpi(k-1),l1)=0;
}
}
}
if(b(I0)&a(J0))
{
cpi(k)=I0;cpj(k)=-1;
x(I0,J0)=b(I0);
#ifdef debug
printf("I0=%d,J0=%d,x(I0,J0)=%8.4f,k=%d,cpi(k)=%d,cpj(k)=%d\n",I0,J0,x(I0,J0),k,cpi(k),cpj(k));
#endif
a(J0)-=b(I0);
b(I0)=0;
}
else
{
cpi(k)=-1;cpj(k)=J0;
x(I0,J0)=a(J0);
#ifdef debug
printf("I0=%d,J0=%d,x(I0,J0)=%8.4f,k=%d,cpi(k)=%d,cpj(k)=%d\n",I0,J0,x(I0,J0),k,cpi(k),cpj(k));
#endif
b(I0)-=a(J0);
a(J0)=0;
}
} /*END FOR K 用最小元素法求得了初使可行解*/
/*输出初始可行解*/
printf("\n=============init Solution===================\n");
sum=0;
for(i=0;i&M-1;i++)
{
for(j=0;j&N-1;j++)
{
if(x(i,j)&=1.0e15)
printf("%10s","******");
else
{printf("%10.3f",x(i,j));
sum+=(x(i,j)*c(i,j));
}
}
printf("\n");
}
printf("\n\n\tThe Cost is: %-10.4f\n",sum);
getch();
/***************循环换入换出,直到检验数为非负数*****************************/
/*循环决定换入变量 */
while(1)
{
/*位势置初值Ui,Vi=1.0e15 */
for(i=0;i&m;i++)
u(i)=1.0e15;
for(j=0;j&n;j++)
v(j)=1.0e15;
/*求位势*/
l=0;u(0)=0;
for(i=0;i&m;i++)
{
for(j=0;j&n;j++)
{
if(u(i)&=1.0e15&&v(j)&=1.0e15&&x(i,j)&1.0e15)
{
cpi(l)=i;cpj(l)=j;l++; /*记录未求过位势的位置*/
}
else if(x(i,j)&1.0e15&&u(i)&1.0e15)
{v(j)=c(i,j)-u(i);}
else if(x(i,j)&1.0e15&&v(j)&1.0e15)
{u(i)=c(i,j)-v(j);}
}/*end for j */
}/*end for i */
/*按记录位置求其余位势*/
if(l&0)
{
while(1)
{
ip=0;
for(k=0;k&l;k++)
{
i=cpi(k);j=cpj(k);
if((u(i)&=1.0e15)&&(v(j)&=1.0e15)&&(x(i,j)&1.0e15))
{
cpi(ip)=i;cpj(ip)=j;ip++; /*记录未求过位势的位置*/
}
else if(x(i,j)&1.0e15&&u(i)&1.0e15)
{v(j)=c(i,j)-u(i);}
else if(x(i,j)&1.0e15&&v(j)&1.0e15)
{u(i)=c(i,j)-v(j);}
}/*end for k */
if(ip==0)
l=
}/*end for while */
} /*end if l */
#ifdef debug
printf("\nU(i):");
for(i=0;i&m;i++)
{printf("%10.2f",u(i));
}
printf("\nV(j):");
for(j=0;j&n;j++)
{printf("%10.2f",v(j));
}
printf("\n");
#endif
/*求检验数*/
for(i=0;i&m;i++)
{
for(j=0;j&n;j++)
{ s(i,j)=1.0e15;
if(x(i,j)&=1.0e15) s(i,j)=c(i,j)-u(i)-v(j);
}
}
/*求最小检验数*/
Cmin=1.0e15;
for(i=0;i&m;i++)
{
for(j=0;j&n;j++)
{
if(Cmin&s(i,j))
{Cmin=s(i,j);I0=i;J0=j;}
}
}
#ifdef debug
printf("\ncheck number:\n");
for(i=0;i&m;i++)
{
for(j=0;j&n;j++)
{
printf("s(%d,%d)=%-10.2f\n",i,j,s(i,j));
}
printf("\n");
}
printf("Smin=%-10.2f",Cmin);
getch();
#endif
if(Cmin&=0) /*已经得到最优解,返回主程序*/
/*此时找到了入基变量X(I0,J0) */
/*求闭回路*/
for(k=0;k&MN1;k++)
{
cpf(k)=-1;
}/*end for k */
cpi(0)=I0;cpj(0)=J0;
k=0;
while(1)
{
f=cpf(k);
/*设置闭回路搜索方向*/
while(1)
{
i=cpi(k);j=cpj(k);
fc=0;
f++;
cpf(k)=f;
if(f&=4)
/*避免反向搜索*/
if(k&0)
{
if(f==0&&cpf(k-1)==2)
else if(f==1&&cpf(k-1)==3)
else if(f==2&&cpf(k-1)==0)
else if(f==3&&cpf(k-1)==1)
}
if(f==0)
{/*沿J+方向搜索*/
while(1)
{
j++;
if(j&=n){fc=2;}
if((i==I0)&&(j==J0))
{fc=1;}
if(s(i,j)&=1.0e15)
{fc=3;}
}
}/*end j+ */
else if(f==1)
{ /*沿i-方向搜索*/
while(1)
{ i--;
if(i&0){fc=2;}
if((i==I0)&&(j==J0)){fc=1;}
if(s(i,j)&=1.0e15){fc=3;}
}
}/*end if=1 */
else if(f==2)
{/*沿J-方向搜索*/
while(1)
{
j--;
if(j&0){fc=2;}
if((i==I0)&&(j==J0)){fc=1;}
if(s(i,j)&=1.0e15){fc=3;}
}
} /*end f==2 */
else if(f==3)
{/*沿I+方向搜索*/
while(1)
{
i++;
if(i&=m){fc=2;}
if((i==I0)&&(j==J0)){fc=1;}
if(s(i,j)&=1.0e15){fc=3;}
}
}/*end f==3 */
if((fc==1)||(fc==3))
}/*end while flag 2 */
if(fc==0)
{/*沿些方向搜索失败,退回回到前一点*/
k--;
}
else if(fc==1) /*搜索完成*/
else if(fc==3)
{/*沿此方向搜索成功,前进一点*/
k++;
cpi(k)=i;cpj(k)=j;
#ifdef debug
printf("\n");
printf("k=%d,cpi(k)=%d,cpj(k)=%d,cpf(k)=%d,x(i,j)=%8.4f\n",k,cpi(k),cpj(k),cpf(k),x(cpi(k),cpj(k)));
getch();
#endif
cpf(k)=-1;
}
}/*end while */
/*去除闭回路中的非转折点*/
l=0;
while(l&k-1)
{ i=l+1;
while(i&=k)
{if(cpf(l)==cpf(i)) i++;
}
if(i&(l+1))
{j=l+1;
k1=k-(i-j);
/*如果某些点前进方向相同,则去除中间各点*/
while(i&=k)
{cpi(j)=cpi(i);
cpj(j)=cpj(i);
cpf(j)=cpf(i);
i++;j++;
}
l+=2;
k=k1;
}
else l++;
}/*end while l&k-1 */
/*查找闭回路上基本解的最小值*/
Cmin=x(cpi(1),cpj(1));
Imin=cpi(1);Jmin=cpj(1);
for(i=3;i&=k;i+=2)
{if(Cmin&x(cpi(i),cpj(i)))
{Cmin=x(cpi(i),cpj(i));
Imin=cpi(i);Jmin=cpj(i);
}
}
/*换入基变量*/
x(I0,J0)=C
for(i=1;i&=k;i+=2)
{x(cpi(i),cpj(i))-=C
if((i+1)&=k) x(cpi(i+1),cpj(i+1))+=C
}
x(Imin,Jmin)=1.0e15;
}
free(CP);
free(V);
free(U);
free(S);
QUIT:
}
//================END====================
这么多才给30分啊……
而且,直接翻译无趣,重新做费神啊。
算法有了 用语言把它实现了 应该是很不难 语言只是解决问题的工具而不是解决问题的方法。
不难,很乱,头看大了。
有时间再写吧。
貌似是个进销存系统的程序,楼主为什么想用java写出来呢?一个是面向过程一个是面向对象,就算写出来也没意义了啊。
还不如直接问谁能写个简单点的进销存java程序呢
已解决问题
未解决问题

我要回帖

更多关于 沂蒙情缘聊天室 的文章

 

随机推荐