8:30——11:30项目编程
14:00——18:00项目编程+JAVA学习
19:30——21:00VJ二招题
login部分
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getActionCommand().equals("安全登录")) {
User user = new User();
user.setName(jt1.getText().trim());
user.setPassage(jt2.getText().trim());
QQUser isUser = new QQUser();
boolean flag = isUser.isQQUser(user);
if(true == flag) { //登录成功
//向服务器发送获取好友列表的请求
try {
ObjectOutputStream oos=new ObjectOutputStream(ServerHashMap.getClientThread(user.getName()).s.getOutputStream());
Message ms = new Message();
ms.setMessageType(MessageType.message_get_onlinefriends);
ms.setUsername(user.getName());
oos.writeObject(ms);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.dispose();
}else {
JOptionPane.showMessageDialog(this, "用户名或密码错误");
}
}
}
其中向服务器获取好友信息我不太会。。。是在网上找博客看的,,还在调试并且弄懂中。。。
user部分
package QQCommon;
import java.io.Serializable;
public class User implements Serializable{
private String name;
private String passage;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassage() {
return passage;
}
public void setPassage(String passage) {
this.passage = passage;
}
}
初始的用户信息设置部分
server与client都相同
之后会看看server的和client其他部分应该怎么写,,,IO流也不太会,,还要多看
边学边写,,现在主要是很多包都不太会,,要看别人的解释以及怎么用导致进度很慢
尝试加快进度ing
VJ
H
和之前的并查集一样,只不过多了一步计算两坐标长度的计算和工程造价而已
以下为核心代码
struct site
{
int x,y;
int no;
}s[105];
struct path
{
site from,to;
double len;
}a[10005];
int find(int x)
{
int root=x;
while(root!=pre[root])
{
root=pre[root];
}
int i=x;
int farther;
while(pre[i]!=i)
{
farther=pre[i];
pre[i]=root;
i=farther;
}
return root;
}
bool jion(int a,int b)
{
int ra=find(a);
int rb=find(b);
if(ra!=rb)
{
pre[rb]=ra;
return true;
}
return false;
}
bool cmp (path t1,path t2)
{
return t1.len<t2.len;
}
double dis(site t1,site t2)
{
return sqrt((t1.x-t2.x)*(t1.x-t2.x)+(t1.y-t2.y)*(t1.y-t2.y));
}
void Kruskal()
{
ans=0;
cnt=0;
sort(a,a+tot,cmp);
for(int i=0;i<=tot;++i)
pre[i]=i;
for(int i=0;i<tot;++i)
if(jion(a[i].from.no,a[i].to.no))
{
ans+=a[i].len;
cnt++;//判断是否都连上了
}
}