【小软件】年度优秀员工

部门快要年会了,最近做了个小软件,“年度优秀员工”apk。

需求:部门的七个小组每组推荐两名候选人,部门所有员工投票选出七名优秀员工。每人必须选不是同一组的两人,不能多选或者少选,必须是本部门的员工才有资格选,选定两个后最终本软件以短信的形式向同一个手机号发送过去,最终通过短信数据库导出表格,统计即可。

实现界面如下:

代码如下:

activity_main.xml

  1 <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2     xmlns:tools="http://schemas.android.com/tools"
  3     android:id="@+id/layout"
  4     android:layout_width="match_parent"
  5     android:layout_height="match_parent"
  6     tools:context="${relativePackage}.${activityClass}" >
  7
  8 <TableRow>
  9     <TextView
 10         android:id="@+id/text_view"
 11         android:layout_width="wrap_content"
 12         android:layout_height="wrap_content"
 13         android:text="@string/name"
 14         android:textSize="10pt"
 15         android:background="#CCCCCC"
 16         android:paddingLeft="20dip"
 17         android:paddingRight="20dip"
 18         android:paddingTop="10dip"
 19         android:paddingBottom="10dip"
 20         android:layout_marginRight="5dip"
 21         android:layout_marginLeft="25dip"
 22         android:layout_marginTop="5dip"
 23         android:layout_marginBottom="5dip"/>
 24     <EditText
 25         android:id="@+id/edit_text"
 26         android:layout_width="wrap_content"
 27         android:layout_height="wrap_content"
 28         android:inputType="number"
 29         android:hint="@string/nameber"
 30         android:background="#CCCCCC"
 31         android:paddingLeft="20dip"
 32         android:paddingRight="20dip"
 33         android:paddingTop="10dip"
 34         android:paddingBottom="10dip"
 35         android:layout_marginRight="5dip"
 36         android:layout_marginLeft="5dip"
 37         android:layout_marginTop="5dip"
 38         android:layout_marginBottom="5dip"/>
 39 </TableRow>
 40 <TableRow>
 41     <RadioGroup
 42         android:id="@+id/radio_group1"
 43         android:layout_width="wrap_content"
 44         android:layout_height="wrap_content"
 45         android:background="#CAE1FF"
 46         android:paddingLeft="20dip"
 47         android:paddingRight="20dip"
 48         android:paddingTop="10dip"
 49         android:paddingBottom="10dip"
 50         android:layout_marginRight="5dip"
 51         android:layout_marginLeft="25dip"
 52         android:layout_marginTop="5dip"
 53         android:layout_marginBottom="5dip">
 54         <TextView
 55             android:layout_width="wrap_content"
 56             android:layout_height="wrap_content"
 57             android:text="@string/n1"/>
 58         <RadioButton
 59             android:id="@+id/radiob1"
 60             android:layout_width="wrap_content"
 61             android:layout_height="wrap_content"
 62             android:text="@string/name1"/>
 63         <RadioButton
 64             android:id="@+id/radiob2"
 65             android:layout_width="wrap_content"
 66             android:layout_height="wrap_content"
 67             android:text="@string/name2"/>
 68     </RadioGroup>
 69     <RadioGroup
 70         android:id="@+id/radio_group2"
 71         android:layout_width="wrap_content"
 72         android:layout_height="wrap_content"
 73         android:background="#CAE1FF"
 74         android:paddingLeft="20dip"
 75         android:paddingRight="20dip"
 76         android:paddingTop="10dip"
 77         android:paddingBottom="10dip"
 78         android:layout_marginRight="5dip"
 79         android:layout_marginLeft="5dip"
 80         android:layout_marginTop="5dip"
 81         android:layout_marginBottom="5dip">
 82         <TextView
 83             android:layout_width="wrap_content"
 84             android:layout_height="wrap_content"
 85             android:text="@string/n2"/>
 86         <RadioButton
 87             android:id="@+id/radiob3"
 88             android:layout_width="wrap_content"
 89             android:layout_height="wrap_content"
 90             android:text="@string/name3"/>
 91         <RadioButton
 92             android:id="@+id/radiob4"
 93             android:layout_width="wrap_content"
 94             android:layout_height="wrap_content"
 95             android:text="@string/name4"/>
 96     </RadioGroup>
 97     </TableRow>
 98     <TableRow>
 99     <RadioGroup
100         android:id="@+id/radio_group3"
101         android:layout_width="wrap_content"
102         android:layout_height="wrap_content"
103         android:background="#CAE1FF"
104         android:paddingLeft="20dip"
105         android:paddingRight="20dip"
106         android:paddingTop="10dip"
107         android:paddingBottom="10dip"
108         android:layout_marginRight="5dip"
109         android:layout_marginLeft="25dip"
110         android:layout_marginTop="5dip"
111         android:layout_marginBottom="5dip">
112         <TextView
113             android:layout_width="wrap_content"
114             android:layout_height="wrap_content"
115             android:text="@string/n3"/>
116         <RadioButton
117             android:id="@+id/radiob5"
118             android:layout_width="wrap_content"
119             android:layout_height="wrap_content"
120             android:text="@string/name5"/>
121         <RadioButton
122             android:id="@+id/radiob6"
123             android:layout_width="wrap_content"
124             android:layout_height="wrap_content"
125             android:text="@string/name6"/>
126     </RadioGroup>
127     <RadioGroup
128         android:id="@+id/radio_group4"
129         android:layout_width="wrap_content"
130         android:layout_height="wrap_content"
131         android:background="#CAE1FF"
132         android:paddingLeft="20dip"
133         android:paddingRight="20dip"
134         android:paddingTop="10dip"
135         android:paddingBottom="10dip"
136         android:layout_marginRight="5dip"
137         android:layout_marginLeft="5dip"
138         android:layout_marginTop="5dip"
139         android:layout_marginBottom="5dip">
140         <TextView
141             android:layout_width="wrap_content"
142             android:layout_height="wrap_content"
143             android:text="@string/n4"/>
144         <RadioButton
145             android:id="@+id/radiob7"
146             android:layout_width="wrap_content"
147             android:layout_height="wrap_content"
148             android:text="@string/name7"/>
149         <RadioButton
150             android:id="@+id/radiob8"
151             android:layout_width="wrap_content"
152             android:layout_height="wrap_content"
153             android:text="@string/name8"/>
154     </RadioGroup>
155     </TableRow>
156     <TableRow>
157     <RadioGroup
158         android:id="@+id/radio_group5"
159         android:layout_width="wrap_content"
160         android:layout_height="wrap_content"
161         android:background="#CAE1FF"
162         android:paddingLeft="20dip"
163         android:paddingRight="20dip"
164         android:paddingTop="10dip"
165         android:paddingBottom="10dip"
166         android:layout_marginRight="5dip"
167         android:layout_marginLeft="25dip"
168         android:layout_marginTop="5dip"
169         android:layout_marginBottom="5dip" >
170         <TextView
171             android:layout_width="wrap_content"
172             android:layout_height="wrap_content"
173             android:text="@string/n5"/>
174         <RadioButton
175             android:id="@+id/radiob9"
176             android:layout_width="wrap_content"
177             android:layout_height="wrap_content"
178             android:text="@string/name9"/>
179         <RadioButton
180             android:id="@+id/radiob10"
181             android:layout_width="wrap_content"
182             android:layout_height="wrap_content"
183             android:text="@string/name10"/>
184     </RadioGroup>
185     <RadioGroup
186         android:id="@+id/radio_group6"
187         android:layout_width="wrap_content"
188         android:layout_height="wrap_content"
189         android:background="#CAE1FF"
190         android:paddingLeft="20dip"
191         android:paddingRight="20dip"
192         android:paddingTop="10dip"
193         android:paddingBottom="10dip"
194         android:layout_marginRight="5dip"
195         android:layout_marginLeft="5dip"
196         android:layout_marginTop="5dip"
197         android:layout_marginBottom="5dip">
198         <TextView
199             android:layout_width="wrap_content"
200             android:layout_height="wrap_content"
201             android:text="@string/n6"/>
202         <RadioButton
203             android:id="@+id/radiob11"
204             android:layout_width="wrap_content"
205             android:layout_height="wrap_content"
206             android:text="@string/name11"/>
207         <RadioButton
208             android:id="@+id/radiob12"
209             android:layout_width="wrap_content"
210             android:layout_height="wrap_content"
211             android:text="@string/name12"/>
212     </RadioGroup>
213     </TableRow>
214     <TableRow>
215     <RadioGroup
216         android:id="@+id/radio_group7"
217         android:layout_width="wrap_content"
218         android:layout_height="wrap_content"
219         android:background="#CAE1FF"
220         android:layout_marginRight="5dip"
221         android:layout_marginLeft="25dip"
222         android:layout_marginTop="5dip"
223         android:layout_marginBottom="5dip"
224         android:paddingLeft="20dip"
225         android:paddingRight="20dip"
226         android:paddingTop="10dip"
227         android:paddingBottom="10dip">
228         <TextView
229             android:layout_width="wrap_content"
230             android:layout_height="wrap_content"
231             android:text="@string/n7"/>
232         <RadioButton
233             android:id="@+id/radiob13"
234             android:layout_width="wrap_content"
235             android:layout_height="wrap_content"
236             android:text="@string/name13"/>
237         <RadioButton
238             android:id="@+id/radiob14"
239             android:layout_width="wrap_content"
240             android:layout_height="wrap_content"
241             android:text="@string/name14"/>
242     </RadioGroup>
243     </TableRow>
244     <TableRow>
245     <Button
246         android:id="@+id/button1"
247         android:layout_width="wrap_content"
248         android:layout_height="wrap_content"
249         android:text="@string/confirm"
250         android:background="#CCCCCC"
251         android:layout_marginRight="5dip"
252         android:layout_marginLeft="25dip"
253         android:layout_marginTop="5dip"
254         android:layout_marginBottom="5dip"
255         android:paddingLeft="20dip"
256         android:paddingRight="20dip"
257         android:paddingTop="10dip"
258         android:paddingBottom="10dip"/>
259     <Button
260         android:id="@+id/button2"
261         android:layout_width="wrap_content"
262         android:layout_height="wrap_content"
263         android:background="#CCCCCC"
264         android:text="@string/cancel"
265         android:layout_marginRight="5dip"
266         android:layout_marginLeft="5dip"
267         android:layout_marginTop="5dip"
268         android:layout_marginBottom="5dip"
269         android:paddingLeft="20dip"
270         android:paddingRight="20dip"
271         android:paddingTop="10dip"
272         android:paddingBottom="10dip"/>
273     </TableRow>
274 </TableLayout>

strings.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <resources>
 3     <string name="app_name">优秀员工</string>
 4     <string name="name">账号:</string>
 5     <string name="nameber">请输入您的工号</string>
 6     <string name="confirm">确认投票</string>
 7     <string name="cancel">重新选择</string>
 8     <string name="name1">李</string>
 9     <string name="name2">侯</string>
10     <string name="name3">刘</string>
11     <string name="name4">化</string>
12     <string name="name5">骆</string>
13     <string name="name6">季</string>
14     <string name="name7">王</string>
15     <string name="name8">刁</string>
16     <string name="name9">李</string>
17     <string name="name10">辛</string>
18     <string name="name11">段</string>
19     <string name="name12">李</string>
20     <string name="name13">陈</string>
21     <string name="name14">水</string>
22     <string name="n1">协议组:</string>
23     <string name="n2">应用组:</string>
24     <string name="n3">系统组:</string>
25     <string name="n4">协议组:</string>
26     <string name="n5">软件配置管理:</string>
27     <string name="n6">驱动组:</string>
28     <string name="n7">项目管理:</string>
29 </resources>

MainActivity.java

  1 package com.junhao.newoutstanding;
  2 import com.junhao.newoutstanding.SendMessage;
  3
  4 import android.app.Activity;
  5 import android.content.BroadcastReceiver;
  6 import android.content.Context;
  7 import android.content.Intent;
  8 import android.content.IntentFilter;
  9 import android.os.Bundle;
 10 import android.telephony.TelephonyManager;
 11 import android.util.Log;
 12 import android.view.View;
 13 import android.view.inputmethod.InputMethodManager;
 14 import android.widget.Button;
 15 import android.widget.EditText;
 16 import android.widget.RadioButton;
 17 import android.widget.RadioGroup;
 18 import android.widget.RadioGroup.OnCheckedChangeListener;
 19 import android.widget.TableLayout;
 20 import android.widget.Toast;
 21
 22 public class MainActivity extends Activity
 23     implements Button.OnClickListener,OnCheckedChangeListener{
 24     private static final String TAG = "MainActivity";
 25     private Button confirm;
 26     private Button cancel;
 27     private EditText edit;
 28     private RadioGroup group1,group2,group3,group4,group5,group6,group7;
 29     private RadioGroup[] rg = {group1,group2,group3,group4,group5,group6,group7};
 30     private int[] group = {R.id.radio_group1,R.id.radio_group2,R.id.radio_group3,R.id.radio_group4,R.id.radio_group5,R.id.radio_group6,R.id.radio_group7};
 31     private SendMessage mSendMessage = new SendMessage();
 32     private TelephonyManager mTelephonyManager;
 33     private TableLayout mLayout;
 34     APRPhoneStateListener phone_state_listener = APRPhoneStateListener.getInstance();
 35     CharSequence str1,str2,str3,str4,str5,str6,str7 = null;
 36     String str = null;
 37     String names = null;
 38     int num = 0;
 39     CharSequence[] strings = new CharSequence[] {str1,str2,str3,str4,str5,str6,str7};
 40     private  boolean firstInServer = true;
 41     //private static final String VOTE_SUCCESS = "com.junhao.newoutstanding.VOTE_SUCCESS";
 42     //private  boolean VOTE_SUCCESS_FLAG = false;
 43     @Override
 44     protected void onCreate(Bundle savedInstanceState) {
 45         super.onCreate(savedInstanceState);
 46         setContentView(R.layout.activity_main);
 47         mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
 48         mTelephonyManager.listen(phone_state_listener,APRPhoneStateListener.LISTEN_SERVICE_STATE);
 49         Log.d(TAG, "phone_state_listener = " + phone_state_listener);
 50         IntentFilter filter = new IntentFilter("android.intent.action.SERVICE_STATE");
 51         registerReceiver(mServiceStateReceiver, filter);
 52         confirm = (Button)findViewById(R.id.button1);
 53         cancel = (Button)findViewById(R.id.button2);
 54         edit = (EditText)findViewById(R.id.edit_text);
 55         mLayout = (TableLayout)findViewById(R.id.layout);
 56         confirm.setOnClickListener(this);
 57         cancel.setOnClickListener(this);
 58         mLayout.setOnClickListener(this);
 59         for(int i = 0 ;i < rg.length ;i++){
 60             rg[i] = (RadioGroup)this.findViewById(group[i]);
 61             rg[i].setOnCheckedChangeListener(this);
 62         }
 63     }
 64
 65     @Override
 66     public void onCheckedChanged(RadioGroup b, int checked) {
 67         int radioButtonId = b.getCheckedRadioButtonId();
 68            RadioButton rb = (RadioButton)MainActivity.this.findViewById(radioButtonId);
 69            int id = 0;
 70            for(id = 0; id < rg.length ; id++){
 71                if(b.getId() == group[id]){
 72                    break;
 73                }
 74            }
 75
 76         if(rb != null){
 77                if(strings[id] == null) num++;
 78                Log.e(TAG,"strings[id] = "+strings[id]);
 79                  strings[id] = rb.getText();
 80                }
 81             if(num <= 2) {
 82                 return;
 83             }else{
 84                 num --;
 85                 strings[id] = null;
 86                 b.clearCheck();
 87                 Log.e(TAG,"b = "+b);
 88                 Toast.makeText(MainActivity.this, "你只能选择两名候选人", Toast.LENGTH_SHORT).show();
 89             }
 90            }
 91
 92
 93     public void onDestroy() {
 94         try{
 95             Log.d(TAG, "onDestroy");
 96             unregisterReceiver(mServiceStateReceiver);
 97             }
 98        catch(Exception ex){}
 99        super.onDestroy();
100
101     }
102     public void onClick(View button){
103         String array[] ={"380273","1050358","525683","370773","392023","432407","477321","523075","559526","568442",
104                         "1204486","1258406","1870738","1880417","593081","2013806","2056502","2056503","2064329","2062845",
105                         "370791","1883161","1610914","460312","1249497","389075","438017","650363","1027080","1206493",
106                         "1209166","1237131","1225065","1846012","1708895","2020723","2032732","2040465","2062771","2064391",
107                         "1092565","369931","1082733","1659716","2063824","2062846","522622","525678","1223066","466162",
108                         "370780","362547","392443","396128","468921","522794","594011","1202554","701616","571237",
109                         "1202992","2062769","2062801","2063740","471554","469703","1180670","1846852","2062785","2073025",
110                         "2106796","453545","456201","574701","579713","589142","1204551","1210024","1220737","1839418",
111                         "1765654","2064541","2062916","580009","1826044","603808","2064398","295808","1634674","531963",
112                         "394013","1208146","1221088","1224923","1658971","1189964","1845139","2013807","2064325","393471",
113                         "475840","531533","568530","507956","2062802","2062871","2091017","361288","389000","430284",
114                         "451904","479732","585093","549977","587770","1155067","1200391","1201729","1206546","1207177",
115                         "1679004","1835970","1835969","1982688","1999116","2005171","2044123","2063823","566351","438068",
116                         "580017","594021","1849431","1164792","1870736","1897299","2001869","2110239","1867392",};
117         switch (button.getId()) {
118
119          case R.id.button1:
120              str = edit.getText().toString();
121             if ("".equals(str)) {
122                 Toast.makeText(MainActivity.this, "请输入工号", Toast.LENGTH_SHORT).show();
123                 return;
124             }
125            Log.d(TAG,"get the str = " + str);
126             boolean checknum = false ;
127             for(int i = 0;i< array.length; i++){
128                 if (array[i].equals(str)){
129                     checknum = true ;
130                     break;
131                 }
132             }
133             if(!checknum){
134                 Toast.makeText(MainActivity.this, "输入的工号不正确", Toast.LENGTH_SHORT).show();
135             }else{
136                 names = "";
137                 for (int i = 0; i < strings.length; i++){
138                     if(strings[i]!=null){
139                         names += strings[i]+" ";
140                         Log.d(TAG, "names = "+names);
141                     }
142                 }
143                 if(num != 2){
144                     Toast.makeText(MainActivity.this, "您要选择两名候选人", Toast.LENGTH_SHORT).show();
145                     Log.d(TAG, "num = "+num);
146                     Log.d(TAG, "str000 = "+str1);
147                     //return;
148                 }else{
149                     Toast.makeText(MainActivity.this, "投票成功", Toast.LENGTH_SHORT).show();
150                     String content = str + "_" + names ;
151                     Log.d(TAG, "content = "+content);
152                     mSendMessage.sendSMSOnly(content);
153                     return;
154                 }
155             }
156
157         break;
158         case R.id.button2:
159             for(int i = 0; i< 7; i++){
160                 rg[i].clearCheck();
161                 strings[i] = null;
162             }
163             num = 0;
164             Toast.makeText(MainActivity.this, "重新选择", Toast.LENGTH_SHORT).show();
165         break;
166         case R.id.layout:
167             InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
168             imm.hideSoftInputFromWindow(button.getWindowToken(), 0);
169         break;
170         }
171     }
172
173     private final BroadcastReceiver mServiceStateReceiver = new BroadcastReceiver() {
174
175         @SuppressWarnings("static-access")
176         @Override
177         public void onReceive(Context context, Intent intent) {
178             Log.d(TAG, "isPhoneInService = " + phone_state_listener.isPhoneInService() + " firstInServer" + firstInServer);
179                 if (phone_state_listener.isPhoneInService() && firstInServer) {
180                         Log.d(TAG,"the phone in service");
181                 }
182             }
183 };
184 }

APRPhoneStateListener.java

 1 package com.junhao.newoutstanding;
 2
 3 import android.telephony.PhoneStateListener;
 4 import android.telephony.ServiceState;
 5 import android.util.Log;
 6
 7 public class APRPhoneStateListener extends PhoneStateListener{
 8     static final String TAG = "APRPhoneStateListener";
 9     private static APRPhoneStateListener mInstance;
10     private static boolean phone_in_service = false;
11     private static String mcc_mnc = null;
12
13     static {
14         mInstance = null;
15     }
16
17     public static APRPhoneStateListener getInstance() {
18         if (mInstance == null)
19             mInstance = new APRPhoneStateListener();
20
21         return mInstance;
22     }
23
24     public static boolean isPhoneInService() {
25         return phone_in_service;
26     }
27
28     public static String getOperatorNumberic() {
29         Log.d(TAG,"get the mcc_mnc = " + mcc_mnc);
30         return mcc_mnc;
31     }
32
33     public final void onServiceStateChanged(ServiceState paramServiceState) {
34         Log.d(TAG,"get servicestate = " + paramServiceState.getState());
35         super.onServiceStateChanged(paramServiceState);
36         mcc_mnc = paramServiceState.getOperatorNumeric();
37         if(mcc_mnc != null){
38             switch (paramServiceState.getState()) {
39                 case 1:
40                     phone_in_service = false;
41                     break;
42
43                 case 0:
44                     phone_in_service = true;
45                     break;
46
47                 default:
48                     phone_in_service = false;
49                     break;
50             }
51         }
52     }
53 }

SendMessage.java

 1 package com.junhao.newoutstanding;
 2
 3 import android.app.Activity;
 4 import android.telephony.SmsManager;
 5 import android.text.TextUtils;
 6 import android.util.Log;
 7 import java.util.List;
 8 public class SendMessage extends Activity {
 9     private static final String TAG = "SendMessage";
10     private static final String AUTO_SMS_BEIJING_NUM = "+8618611011111";
11     private static final int BEIJING_MCC = 460;
12     APRPhoneStateListener phone_state_listener = APRPhoneStateListener.getInstance();
13     private static String MCC_MNC = null;
14     private static int MCC = 0;
15     public void sendSMSOnly(String paramString) {
16         MCC = getMCCNumber();
17         Log.d(TAG,"get the MCC = " + MCC);
18         switch(MCC) {
19
20             case BEIJING_MCC:
21                 sendSMS(AUTO_SMS_BEIJING_NUM, paramString);
22                 break;
23
24             default :
25                 break;
26         }
27     }
28
29     @SuppressWarnings("static-access")
30     private int getMCCNumber() {
31          Log.d(TAG,"get the phone_state_listener = " + phone_state_listener);
32         MCC_MNC = phone_state_listener.getOperatorNumberic();
33         Log.d(TAG,"get the MCC_MNC = " + MCC_MNC);
34         int mcc = 0;
35
36         if (!TextUtils.isEmpty(MCC_MNC)) {
37             String mccstr = MCC_MNC.substring(0, 3);
38            Log.d(TAG, "[jiwei]  get MCC_MNC =  " + MCC_MNC + " and mcc = " + mccstr);
39             mcc = Integer.valueOf(mccstr).intValue();
40         }
41
42         return mcc;
43
44     }
45
46     public void sendSMS(String phoneNumber, String paramString) {
47         SmsManager sms = SmsManager.getDefault();
48         List<String> texts = sms.divideMessage(paramString);
49       Log.d(TAG," get the text = " + texts);
50         for (String text : texts) {
51             sms.sendTextMessage(phoneNumber, null, text, null, null);
52         }
53     }
54
55 }

时间: 2024-12-29 07:51:39

【小软件】年度优秀员工的相关文章

活字格企业Web应用生成器荣获&quot;2017年度优秀软件产品&quot;

日前,中国软件行业协会权威发布"2017年度优秀软件产品"名单,活字格企业 Web 应用生成器凭借产品的独特优势,和近年来在企业Web应用方面的杰出贡献,位列其中,受到用户和行业专家的广泛赞誉. 荣膺殊荣,印证活字格的技术实力 可视化设计,会Excel 就能开发Web 应用!活字格是一款企业Web应用生成器,使用类Excel设计界面,普通业务人员仅通过拖拽,即可快速定制出符合业务需求的Web信息系统,并发给其他同事协同使用. 这是一款真正面向业务人员的."无技术门槛"

(载文)优秀员工和优秀领导

优秀员工的定义:有责任心,技术水平高,再加上你说的热情有亲和力.优秀领导的定义:做好上传下达,合理分配任务,保证团队和谐,再加上技术水平高.你会看出,两者有交集,但侧重点大不相同.比如,太强责任心的人,当上领导后,可能会不太容忍下属的任何小失误,凡事容易非白即黑.技术水平高的人,会不太放心下属的工作能力,凡事喜欢亲力亲为.太热情的人,会不太容易拒绝外界强加的任务,让团队增加不必要的负担.所以,优点与缺点都只是相对而言. 但总体来说,当好员工强调的是技术能力,当好领导强调的是沟通能力.诚然,所有的

优秀员工的修炼&mdash;&mdash;通往专家、管理之路

(一)好员工的素质 好员工的类型有很多种,尝试着抽象出一个定义吧--好员工是那些主管分配其任务放心.同事喜欢与其共事.对自己工作负责.志在自我提升和价值实现的人.知识经济时代,好员工首先是做好自我管理的,终能独挡一面的个人(参见博文"怎样培养独挡一面的能力").作为半个程序员,姑且聊一聊好员工该具备的素质(部分针对程序员). 我认为,一个优秀员工的衡量要包含技能水平(技术宽度.广度.熟练程度).沟通能力.工作态度.学习能力.例如,做一个好的程序员,无论是有志于走向管理还是高级工程师,应

从产品角度考虑优秀员工的评定

一个软件产品做的好不好,从用户角度至少会有三个因素:产品的价格.性能.服务(用户体验).以前很多用户往往只关注前面两个因素,现在的用户对产品的服务以及用户体验的重视程度已经远远高于前两项.就像我们到超市去购买消费品,如果你是个会过日子的人,那么性价比是你最重视,而不是哪样便宜买哪样.现在政府采购软件也是需要对各家供应商提供的产品进行综合评分,当然涉及到的因素不止上述三项,但是都包含上述三项. 接近年底,公司要对优秀员工进行评比.既然是评比免不了要进行员工投票,既然有投票肯定有权重的区分.事实上全

优秀员工的做法-领先的专业、道路管理

(一个)员工的质量好 类型有非常多种,尝试着抽象出一个定义吧--好员工是那些主管分配其任务放心.同事喜欢与其共事.对自己工作负责.志在自我提升和价值实现的人.知识经济时代.好员工首先是做好自我管理的.终能独挡一面的个人(參见博文"如何培养独挡一面的能力").作为半个程序猿,姑且聊一聊好员工该具备的素养(部分针对程序猿). 我觉得,一个优秀员工的衡量要包括技能水平(技术宽度.广度.熟练程度).沟通能力.工作态度.学习能力.比如,做一个好的程序猿.不管是有志于走向管理还是高级project

葡萄城SpreadJS表格控件荣获&amp;ldquo;2018年度优秀软件产品&amp;rdquo;称号

日前,中国软件行业协会权威发布"2018年优秀软件产品"名单,葡萄城SpreadJS 纯前端表格控件产品荣耀上榜,凭借其对Excel的高度兼容性和处理海量数据时的绝佳性能表现,获得行业和用户的高度认可. "年度优秀软件产品"是由中国软件行业协会组织评选,旨在发掘并推介优秀软件产品,培育著名软件品牌,为政府采购.大型信息化工程招标项目提供参考.整个评选历时3个多月,由多位行业专家对参软软件进行多轮评估.评选,最终选出优秀产品,予以公布. 葡萄城的SpreadJS 是一

51CTO学院2018年年度优秀学员评选活动最亮的仔 之 闲谈学习方法分享篇

本人很少写博客,主要还是文采不行,此次的博客内容主要是回应"51CTO学院2018年年度优秀学员评选活动"的活动内容要求,分享下自己的学习方法和心得,也请各位阅读者口下留情哈,毕竟下面的一些观点和内容都是出于个人的想法,没有任何贬低之意.在开始之前,我想借此机会,感谢51cto提供的学习平台,python课程主讲师de8ug哥(真心钦佩,懂的内容广且深,从视频拍摄中看出他惊人的毅力呀,这么多内容,学习都学到眼花缭乱,更何况出视频的讲师),自动化运维主讲大米老师,不辞辛苦的为各位学员批改

一个小软件练习了一下python

朋友用python写了一个小软件,刚好没有怎么认真用python编过程序,于是就改进一下 主要练习了一些知识: 1.python Tkinter 页面布局,这次软件用了用了grid 2.Event 事件绑定 3. 字符串的处理. 4.tkFileDialog 的使用 5.一点点面向对象的编程. 6.python编码的结构以及练习Code好习惯 后期改进: 1. 加滚动条 2. 加算法变换文件 3. 可以修改保存路径 4.强化错误处理 5.添加函数,根据类型,用office直接双击打开转换成功的文

做一个具有图片读入,写出,灰度化,黑白化的有图形界面的小软件

我们这一次的树莓基础的作业是做一个做一个具有图片读入,写出,灰度化,黑白化的小软件,我采用的是java,因为java有大量性能非常好的接口可用,譬如在图片这块,ImageIO,BufferedImage都是非常好用的,而我这一次作业也是使用这两个包. 首先我们要解决的是界面,界面可以直接用JFrame来打, 非常简单,我的界面有一个菜单栏和一个图片显示区,菜单栏有三个选项:文件,转换,保存,文件菜单有一个子菜单:打开文件,转换菜单有两个子菜单:变成灰度和变成黑白,保存菜单有三个子菜单:jpg,