用這方法,先看看你的當(dāng)前路徑等

成都創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、鳳陽網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價格優(yōu)惠性價比高,為鳳陽等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
URL url=getClass().getResource(".");
1、利用System.getProperty()函數(shù)獲取當(dāng)前路徑:
System.out.println(System.getProperty("user.dir"));//user.dir指定了當(dāng)前的路徑
2、使用File提供的函數(shù)獲取當(dāng)前路徑:
File directory = new File("");//設(shè)定為當(dāng)前文件夾
try{
System.out.println(directory.getCanonicalPath());//獲取標(biāo)準(zhǔn)的路徑
System.out.println(directory.getAbsolutePath());//獲取絕對路徑
}catch(Exceptin e){}
File.getCanonicalPath()和File.getAbsolutePath()大約只是對于new File(".")和new File("..")兩種路徑有所區(qū)別。
# 對于getCanonicalPath()函數(shù),“."就表示當(dāng)前的文件夾,而”..“則表示當(dāng)前文件夾的上一級文件夾
# 對于getAbsolutePath()函數(shù),則不管”.”、“..”,返回當(dāng)前的路徑加上你在new File()時設(shè)定的路徑
# 至于getPath()函數(shù),得到的只是你在new File()時設(shè)定的路徑
比如當(dāng)前的路徑為 C:\test :
File directory = new File("abc");
directory.getCanonicalPath(); //得到的是C:\test\abc
directory.getAbsolutePath(); //得到的是C:\test\abc
direcotry.getPath(); //得到的是abc
File directory = new File(".");
directory.getCanonicalPath(); //得到的是C:\test
directory.getAbsolutePath(); //得到的是C:\test\.
direcotry.getPath(); //得到的是.
File directory = new File("..");
directory.getCanonicalPath(); //得到的是C:\
directory.getAbsolutePath(); //得到的是C:\test\..
direcotry.getPath(); //得到的是..
既然是商品庫存系統(tǒng),那么最少有各種商品的單件信息,1:需要有商品的進(jìn)貨價格,賣出價格,剩余數(shù)量,每月的銷售數(shù)量,進(jìn)貨時間等,在對應(yīng)的數(shù)據(jù)庫表創(chuàng)建相應(yīng)的字段。2:商品管理就是對多種商品的管理,所以還要有各種商品的分類,比如煙酒類,飲料類,小吃類,將其分類好管理,同樣數(shù)據(jù)庫里面建立相對的數(shù)據(jù)表。具體需要根據(jù)自己需求來編寫。3:界面的設(shè)計(jì),這里可分為登陸界面,其中一個是用戶登陸后查看的界面,和管理員登陸后查看的界面,用戶登錄只能查看對應(yīng)的商店的物品管理,并且能進(jìn)行修改自家商品。管理員登陸可查看所有的用戶的商店物品,及修改物品信息。而物品分類欄就可以用jQuery來實(shí)現(xiàn)局部的刷新界面。左邊為物品分類欄,右邊為選中物品類的信息。點(diǎn)擊右邊分類物品的某件物品,可跳轉(zhuǎn)到該類物品的單個信息,如第1點(diǎn)提到的。
摘要:ASP源碼,管理系統(tǒng),銷售系統(tǒng),管理系統(tǒng)
ASP版塑料卡板包裝制品銷售統(tǒng)計(jì)管理系統(tǒng)功能包括:銷售數(shù)據(jù)錄入與管理、支持條型碼的銷售清單(送貨單)打印功能、銷售業(yè)績提成統(tǒng)計(jì)功能、收款與未收款分開統(tǒng)計(jì)功能。系統(tǒng)沒有做太多美工,歡迎對此系統(tǒng)感興趣的朋友美工設(shè)計(jì)!使用前請修改admin/conn.asp和conn.asp中的數(shù)據(jù)庫名及目錄。為了安全請將修改數(shù)據(jù)庫名字,后臺管理目錄admin也可以更改為任何名稱。
后臺地址:admin/login.asp
管理員:admin
密碼:admin
希望采納。。。。
產(chǎn)銷不平衡用NBPSProcedure,平衡用BPSProcedure
public class ProductSaleBTProb {
public static void main(String[] args) {
float[][] costMatrix=new float[][]{{1.5f,2f,0.3f,3f},{7f,0.8f,1.4f,2f},{1.2f,0.3f,2f,2.5f}};
/*
* 測試行、列位勢方法
float[][] ASMatrix=new float[6][7];
ASMatrix[0]=new float[]{20f,0f,80f,0f,0f,0f,0f};
ASMatrix[1]=new float[]{0f,70f,0f,10f,0f,0f,0f};
ASMatrix[2]=new float[]{30f,0f,0f,20f,0f,0f,0f};
doLCPosiPower(costMatrix, ASMatrix, 3, 4);
for(int i=0;i6;i++){
System.out.println(Arrays.toString(ASMatrix[i]));
}
*/
/*
* 測試pw為產(chǎn)地產(chǎn)量,sw為銷售地效率,費(fèi)用矩陣costMatrix
*/
int[] pw=new int[]{100,80,50};
int[] sw=new int[]{50,70,80,30};
int[] rv=BPSProcedure(costMatrix, 3, 4, pw, sw);
for(int i=0;irv.length;i+=3){
System.out.print("編號"+rv[i]+"的產(chǎn)地,向編號"+rv[i+1]+"的銷地運(yùn)輸:"+rv[i+2]+"\n");
}
/*
*產(chǎn)銷不平衡測試
costMatrix=new float[][]{{4f,2f,5f},{3f,5f,3f},{1f,3f,2f}};
int[] pw=new int[]{8,7,4};
int[] sw=new int[]{4,8,5};
int[] rv=NBPSProcedure(costMatrix, 3, 3, pw, sw);
for(int i=0;irv.length;i+=3){
System.out.print("編號"+rv[i]+"的產(chǎn)地,向編號"+rv[i+1]+"的銷地運(yùn)輸:"+rv[i+2]+"\n");
}
*/
}
//產(chǎn)銷平衡運(yùn)輸費(fèi)用最低問題,保證pw和sw相等
//costMatrix為費(fèi)用矩陣,pnum為產(chǎn)地個數(shù),即costMatrix的行數(shù),snum為銷地個數(shù),即costMatrix的列數(shù)
//pw表示不同產(chǎn)地產(chǎn)量,sw表示不同銷地銷量,由于是float浮點(diǎn)運(yùn)算,保留2位小數(shù)
//返回值沒三位表示一個信息,比如{...,0,1,40,1,2,60..}表示編號0的產(chǎn)地向編號1的銷售地運(yùn)輸40,編號1的產(chǎn)地向編號2的銷售地運(yùn)輸60,
public static int[] BPSProcedure(float[][] costMatrix,int pnum,int snum,int[] pw,int[] sw){
int i,j;
//構(gòu)造一個分配矩陣,增加3行3列,增加的第1行列表示分配的和,第2行列表示行列差,第3行列表示行、列位勢
float[][] ASMatrix=new float[pnum+3][snum+3];
int tmpsum=0; //記錄初始解是否分配完畢,
while(tmpsumpnum){
//運(yùn)用行、列差值法分別求行、列差,對即沒有給運(yùn)量又沒有打叉的進(jìn)行統(tǒng)計(jì)
float min1=0,min2=0;
for(i=0;ipnum;i++){
//該行打叉則跳過
if(ASMatrix[i][snum+1]==-1)continue;
min1=0;min2=0;
for(j=0;jsnum;j++){
//如果ij有運(yùn)量或者已經(jīng)該行或該列打叉則不統(tǒng)計(jì)
if(ASMatrix[i][j]0||ASMatrix[pnum+1][j]==-1)
continue;
else if(min1==0)min1=costMatrix[i][j];
else if(min2==0){
if(min1costMatrix[i][j]){
min2=min1;
min1=costMatrix[i][j];
}else
min2=costMatrix[i][j];
}else{
if(!(min2costMatrix[i][j])) continue;
else if(!(min1costMatrix[i][j]))
min2=costMatrix[i][j];
else{
min2=min1;
min1=costMatrix[i][j];
}
}
}
if(min2!=0) //如果min2有值,則計(jì)算差額
ASMatrix[i][snum+1]=Math.round((min2-min1)*100)/100f;
else
ASMatrix[i][snum+1]=min1;
}
for(j=0;jsnum;j++){
//該列打叉則跳過
if(ASMatrix[pnum+1][j]==-1)continue;
min1=0;min2=0;
for(i=0;ipnum;i++){
//如果有運(yùn)量或者該行打叉則跳過
if(ASMatrix[i][j]0||ASMatrix[i][snum+1]==-1)
continue;
else if(min1==0) min1=costMatrix[i][j];
else if(min2==0){
if(min1costMatrix[i][j]){
min2=min1;
min1=costMatrix[i][j];
}else
min2=costMatrix[i][j];
}else{
if(!(min2costMatrix[i][j])) continue;
else if(!(min1costMatrix[i][j]))
min2=costMatrix[i][j];
else{
min2=min1;
min1=costMatrix[i][j];
}
}
}
if(min2!=0)
ASMatrix[pnum+1][j]=Math.round((min2-min1)*100)/100f;
else
ASMatrix[pnum+1][j]=min1;
}
//找出沒有被標(biāo)記為-1的行、列差額最大的并按照滿足一方最大分配,當(dāng)分配數(shù)和等于最大值時對應(yīng)行列差標(biāo)記為-1,循環(huán)進(jìn)行,直到分完
float lcpospowmax=-1;
int lindex=-1,cindex=-1;
for(i=0;ipnum;i++){
if(ASMatrix[i][snum+1]==-1)continue;
if(ASMatrix[i][snum+1]!=-1lcpospowmaxASMatrix[i][snum+1]){
lcpospowmax=ASMatrix[i][snum+1];
lindex=i;
}
}
for(j=0;jsnum;j++){
if(ASMatrix[pnum+1][j]==-1)continue;
if(ASMatrix[pnum+1][j]!=-1lcpospowmaxASMatrix[pnum+1][j]){
lcpospowmax=ASMatrix[pnum+1][j]; cindex=j;
}
}
float mincost=0;
//在列上找到最大值
if(cindex!=-1){
lindex=-1;
for(i=0;ipnum;i++){
//如果該位置有運(yùn)量或者被叉掉則不在統(tǒng)計(jì)之內(nèi)
if(ASMatrix[i][cindex]0||ASMatrix[i][snum+1]==-1)
continue;
else if(mincost==0){
mincost=costMatrix[i][cindex];
lindex=i;
}else{
if(mincostcostMatrix[i][cindex]){
mincost=costMatrix[i][cindex];
lindex=i;
}
}
}
//最終找到lindex、cindex對應(yīng)格子分配,盡量滿足一方
//ASMatrix[pnum][cindex]表示第cindex已經(jīng)分配數(shù)、ASMatrix[lindex][snum]表示已經(jīng)供應(yīng)的數(shù)量
//需求量和分配量之間的關(guān)系,分配后標(biāo)記每行、列和的格子也相應(yīng)加上
if((sw[cindex]-ASMatrix[pnum][cindex])(pw[lindex]-ASMatrix[lindex][snum])){
ASMatrix[lindex][cindex]=Math.round((sw[cindex]-ASMatrix[pnum][cindex])*100)/100f;
ASMatrix[pnum+1][cindex]=-1; //該列已經(jīng)分配完畢
}else if((sw[cindex]-ASMatrix[pnum][cindex])(pw[lindex]-ASMatrix[lindex][snum])){
ASMatrix[lindex][cindex]=Math.round((pw[lindex]-ASMatrix[lindex][snum])*100)/100f;
ASMatrix[lindex][snum+1]=-1;
tmpsum++; //該行生產(chǎn)量分配完畢
}else{
ASMatrix[lindex][cindex]=pw[lindex]-ASMatrix[lindex][snum];
ASMatrix[lindex][snum+1]=-1;
ASMatrix[pnum+1][cindex]=-1;
tmpsum++;
}
ASMatrix[lindex][snum]=Math.round((ASMatrix[lindex][snum]+ASMatrix[lindex][cindex])*100)/100f;
ASMatrix[pnum][cindex]=Math.round((ASMatrix[pnum][cindex]+ASMatrix[lindex][cindex])*100)/100f;
}else if(lindex!=-1){
mincost=0;
cindex=-1;
for(j=0;jsnum;j++){
if(ASMatrix[lindex][j]0||ASMatrix[pnum+1][j]==-1)
continue;
else if(mincost==0){
mincost=costMatrix[lindex][j];
cindex=j;
}else{
if(mincostcostMatrix[lindex][j]){
mincost=costMatrix[lindex][j];
cindex=j;
}
}
}
//最終找到lindex、cindex對應(yīng)格子分配
if((sw[cindex]-ASMatrix[pnum][cindex])(pw[lindex]-ASMatrix[lindex][snum])){
ASMatrix[lindex][cindex]=Math.round((sw[cindex]-ASMatrix[pnum][cindex])*100)/100f;
ASMatrix[pnum+1][cindex]=-1; //該列已經(jīng)分配完畢
}else if((sw[cindex]-ASMatrix[pnum][cindex])(pw[lindex]-ASMatrix[lindex][snum])){
ASMatrix[lindex][cindex]=Math.round((pw[lindex]-ASMatrix[lindex][snum])*100)/100f;
ASMatrix[lindex][snum+1]=-1;
tmpsum++; //該行生產(chǎn)量分配完畢
}else{
ASMatrix[lindex][cindex]=pw[lindex]-ASMatrix[lindex][snum];
ASMatrix[lindex][snum+1]=-1;
ASMatrix[pnum+1][cindex]=-1;
tmpsum++;
}
ASMatrix[lindex][snum]=Math.round((ASMatrix[lindex][snum]+ASMatrix[lindex][cindex])*100)/100f;
ASMatrix[pnum][cindex]=Math.round((ASMatrix[pnum][cindex]+ASMatrix[lindex][cindex])*100)/100f;
}
}
//至此,用行列差法找到了初始分配方案ASMatrix[i][j]==0表示叉去的格子,ipnum,jsnum
boolean findSolu=false;
int tmp1=0;
for(i=0;ipnum;i++)
for(j=0;jsnum;j++){
if(ASMatrix[i][j]0)
tmp1+=1;
}
if(tmp1(pnum+snum-1))
findSolu=true;
while(!findSolu){
// 位勢法求Rij,如果能找到0的說明要調(diào)整,否則找到最優(yōu)解
doLCPosiPower(costMatrix,ASMatrix,pnum,snum);
//Rij=cij-(ui+vj);對于分派矩陣中空格計(jì)算Rij
float rijmin=0; //存放最小的空格校驗(yàn)值
int rijminl=-1,rijminc=-1;
for(i=0;ipnum;i++){
for(j=0;jsnum;j++){
if(!(ASMatrix[i][j]0)((costMatrix[i][j]-ASMatrix[i][snum+2]-ASMatrix[pnum+2][j])rijmin)){
rijmin=Math.round((costMatrix[i][j]-ASMatrix[i][snum+2]-ASMatrix[pnum+2][j])*100)/100f;
rijminl=i;rijminc=j;
}
}
}
//如果校驗(yàn)值小于0,則用閉回路進(jìn)行調(diào)整
if(rijmin0){
//找閉回路,
int rijminOVl=-1,rijminOVc=-1; //rijmin對應(yīng)點(diǎn)的閉回路的頂點(diǎn)的i、j
boolean find=false;
// 向右邊上下找
for(j=rijminc+1;jsnum!find;j++){
if(ASMatrix[rijminl][j]0){
for(i=rijminl+1;ipnum;i++){
if(ASMatrix[i][rijminc]0(ASMatrix[i][j]0)){
rijminOVl=i;rijminOVc=j;
find=true;
break;
}
}
for(i=rijminl-1;i=0;i--){
if(ASMatrix[i][rijminc]0(ASMatrix[i][j]0)){
rijminOVl=i;rijminOVc=j;
find=true;
break;
}
}
}
}
// 向左邊上下找
for(j=rijminc-1;j=0!find;j--){
if(ASMatrix[rijminl][j]0){
for(i=rijminl+1;ipnum;i++){
if(ASMatrix[i][rijminc]0(ASMatrix[i][j]0)){
rijminOVl=i;rijminOVc=j;
find=true;
break;
}
}
for(i=rijminl-1;i=0;i--){
if(ASMatrix[i][rijminc]0(ASMatrix[i][j]0)){
rijminOVl=i;rijminOVc=j;
find=true;
break;
}
}
}
}
//記錄rijmin閉回路相鄰點(diǎn)中最小的,并調(diào)整分派矩陣
float minW=ASMatrix[rijminl][rijminOVc]ASMatrix[rijminOVl][rijminc]?
ASMatrix[rijminl][rijminOVc]:ASMatrix[rijminOVl][rijminc];
ASMatrix[rijminl][rijminOVc]=Math.round((ASMatrix[rijminl][rijminOVc]-minW)*100)/100f;
ASMatrix[rijminOVl][rijminc]=Math.round((ASMatrix[rijminOVl][rijminc]-minW)*100)/100f;
ASMatrix[rijminOVl][rijminOVc]=Math.round((ASMatrix[rijminOVl][rijminOVc]+minW)*100)/100f;
ASMatrix[rijminl][rijminc]=minW;
}else
findSolu=true;
}
ListInteger rv=new ArrayListInteger();
for(i=0;ipnum;i++)
for(j=0;jsnum;j++){
if(ASMatrix[i][j]0){
rv.add(i);
rv.add(j);
rv.add((int)ASMatrix[i][j]);
}
}
int[] tmprv=new int[rv.size()];
for(i=0;irv.size();i++){
tmprv[i]=rv.get(i);
}
return tmprv;
}
//根據(jù)分配矩陣和費(fèi)用矩陣求出分配矩陣中的行、列位勢,pnum+2、sunm+2表示行、列位勢在ASMatrix中的位置
//由于方程組都是cij=ui+vj的形式,根據(jù)矩陣可以逐行逐列求解。
public static void doLCPosiPower(float[][] costMatrix,float[][] ASMatrix,int pnum,int snum){
int ansnum=0,lp=snum+2,cp=pnum+2; //lp列位置,cp行位置
boolean[] bs=new boolean[pnum+snum]; //0..pnum-1為行位勢
ASMatrix[0][lp]=0; //令u0=0
bs[0]=true;
ansnum+=1;
int i,j;
while(ansnumpnum+snum){
for(i=0;ipnum;i++){ //逐行求解,根據(jù)costMatrix[i][j]=ASMatrix[i][lp]+ASMatrix[cp][j]
for(j=0;jsnum!bs[i];j++){ //根據(jù)列位勢求行位勢
if(ASMatrix[i][j]0bs[pnum+j]){
ASMatrix[i][lp]=Math.round((costMatrix[i][j]-ASMatrix[cp][j])*100)/100f;
ansnum+=1;
bs[i]=true;
}
}
if(!bs[i])continue;
for(j=0;jsnum;j++){ //根據(jù)行位勢求列位勢
if(ASMatrix[i][j]0!bs[pnum+j]){
ASMatrix[cp][j]=Math.round((costMatrix[i][j]-ASMatrix[i][lp])*100)/100f;
ansnum+=1;
bs[pnum+j]=true;
}
}
}
}
}
/*
* 產(chǎn)銷不平衡,把它增加產(chǎn)地或者銷地轉(zhuǎn)化為平衡問題
* costMatrix費(fèi)用矩陣,pnum產(chǎn)地個數(shù),snum銷地個數(shù)
*/
public static int[] NBPSProcedure(float[][] costMatrix,int pnum,int snum,int[] pw,int[] sw){
int pwsum=0,swnum=0;
int i,j;
for(i=0;ipw.length;i++)
pwsum+=pw[i];
for(i=0;isw.length;i++)
swnum+=sw[i];
//產(chǎn)大于銷 增加一個銷地,單位費(fèi)用為0
int[] rv;
if(pwsumswnum){
float[][] nCostMatrix=new float[pnum][snum+1];
for(i=0;ipnum;i++)
for(j=0;jsnum;j++)
nCostMatrix[i][j]=costMatrix[i][j];
for(i=0;ipnum;i++)
nCostMatrix[i][snum]=0f;
int[] nsw=new int[snum+1];
for(i=0;isnum;i++)
nsw[i]=sw[i];
nsw[snum]=pwsum-swnum;
rv=BPSProcedure(nCostMatrix, pnum, snum+1, pw, nsw);
}
//銷大于產(chǎn) 增加一個產(chǎn)地
else if(pwsumswnum){
float[][] nCostMatrix=new float[pnum+1][snum];
for(i=0;ipnum;i++)
for(j=0;jsnum;j++)
nCostMatrix[i][j]=costMatrix[i][j];
for(j=0;jsnum;i++)
nCostMatrix[pnum][j]=0f;
int[] npw=new int[pnum+1];
for(i=0;ipnum;i++)
npw[i]=pw[i];
npw[pnum]=swnum-pwsum;
rv=BPSProcedure(nCostMatrix, pnum+1, snum, npw, sw);
}else
rv=BPSProcedure(costMatrix, pnum, snum, pw, sw);
return rv;
}
}
分享題目:java零件銷售系統(tǒng)代碼,汽車銷售系統(tǒng)java代碼
本文鏈接:http://chinadenli.net/article1/dsedhid.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、App設(shè)計(jì)、營銷型網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)