自動化生成代碼
『壹』 自動生成數字的代碼如何編寫
是不是自這個意思?
#include "stdio.h"//
#include "time.h"//
#include "stdlib.h"//?
void main(void){
int a[10],n,i,temp,c=0;
for(;;){
printf("請輸入一個不大於10的十進制正數...\nn=");
scanf("%d",&n);
if(n>0 && n<11)
break;
printf("錯誤!重新輸入...");
}
srand((unsigned)time(NULL));
for(i=0;i<n;i++)
a[i]=rand()%10;
do{
for(i=0;i<n;i++)
printf(" %d",a[i]);
printf("\n");
for(temp=a[0],i=0,n--;i<n;i++)
a[i]=a[i+1];
a[n++]=temp;
}while(c++<10);
printf("\n");}
『貳』 自動生成代碼的是什麼軟體
不知道你說的是程序代碼自動生成工具還是代碼生成工具。
都是有特定場景的,比如資料庫的增刪改查自動生產的,比如資料庫代碼生成工具Mybatis-Generator能生成mybatis使用的代碼,使用查詢編輯器能將可視化的資料庫關系及查詢轉換為查詢語句,還有拖動圖形界面會自動生成圖形界面對應的代碼的視圖編輯器等。
除此之外,還有記錄執行動作後生成腳本,如excel的宏功能,腳本精靈也有這樣的功能。
在這里,我定義程序代碼生成工具是生成可執行的程序代碼,代碼生成工具是為程序生成部分被操作代碼,便於被程序使用。當然,一般情況下,兩者是一個意思,我這里只是大致的區分下。比如生成手機app和生成點擊事件還是兩個不同的概念,我用兩個名詞稍微區分下。
以上,有誤請指正。
『叄』 計算機老師說未來不需要程序員,都是機器自動生成代碼,可能嗎
個人認為,計算機老師說未來不需要程序員,都是機器自動生成代碼的情況是不可能的。
我認為程序員永遠不會被取代。首先,人工智慧也是由程序員創造的。人工智慧本質上是一個程序,它不會自我進化。人工智慧的進化也是大牛不斷科研的結晶。如果人工智慧能夠實現自我進化和升級,有一天會失去控制,那麼只有程序員才能拯救人類。任何一頭大公牛都不是天生的大母牛。普通程序員總是日夜敲打代碼,學習如何成長為一頭大母牛。因此,程序員是不可替代的。在不久的將來,對初級程序員的惡意會越來越嚴重,就業環境也會越來越困難。如果他們不成為技術牛,就會被社會淘汰。
演算法基本上是由頂尖的科學家和程序員完成的。普通程序員就是應用程序。你的回答表明你絕對不是一個程序員。事實上,即使你做了一個流程圖,你仍然不能不寫代碼。事實上,現在的程序員通過將流塊或功能塊與某些邏輯相結合來編寫大量代碼。許多演算法只是被使用。要寫出更深層次的演算法,需要太多的知識,數學、計算機原理、相關專業等都需要精通。
所見即所得只適用於一些場景,其中大部分是GUI預先設計好的組件,拖放加上基本的業務關聯,主要目的是代碼重用,有點不願意代替手工。理論上,只有可窮盡的場景才能被機器處理,而且范圍顯然是有限的。
未來就是未來,現在就是現在。任何過度,都是因為未來智力的發展而在年輕時放棄學習,那就是放棄未來。人應該活在當下。就像石油總有一天會用完一樣。這種趨勢並不取決於人類。知道買哪輛車或買哪輛車的可能性是很好的。機器編程總是根據設定的場景來完成的!但商業需求總是在變化!有輔助編程的程序員會越來越少,但不會沒有這個專業!就像有個機器人!那就沒人工作了!這真是個毫無根據的話題!有東西可以提高生產力!它必須取代低端生產力!但總的來說!社會還在前進!
當過程足夠復雜時,您就在構建它時編寫代碼。你在程序員代碼中調用的每一個API,你都可以理解它是由計算機自動完成的,但仍然需要很多程序員來組裝它們。在20年裡,也許在很長一段時間里,人類還沒有完全理解人類思維的本質,機器無法代替勞動。
『肆』 如何做 android studio 自動生成代碼插件
1.介紹
在使用Android Studio開發的時候,大部分人都會使用一些插件來提高開發效率,比如:
ButterKnife 自動生成註解代碼
PermissionsDispatcher 更方便的進行Android 6.0許可權處理
像這樣的插件還有很多很多,但我們不能一直停留在用的程度,這樣太不符合程序猿的風格了,今天就讓我們自己動手來寫一個插件,當以後自己有好的想法的時候,也能寫一個出色的插件給大家使用。
想到以前寫系統原生dialog的時候還要寫一大串代碼,簡直太麻煩,今天就用這個做例子,寫一個插件來實現一鍵生成dialog代碼。
註:本文只是為了熟悉Android Studio插件開發,所以用一個比較簡單的例子來演示。
2.環境搭建
首先需要安裝IntelliJ IDEA
安裝完成後,運行起來是這個樣子的:
IntelliJ IDEA
點擊Create New Project新建一個Plugin項目,填寫項目名稱,選擇位置就可以點擊finish了。
New Project
項目結構如下圖所示:
項目結構
src目錄下建包,和平時使用Android Studio的方式是一樣的。
到這里,環境就搭建成功了(^-^)V
3.編寫插件
新建Action
在新建的包下建一個Action類
New Action
然後填寫一些信息
填寫信息
ActionID:Action唯一的ID,一般的格式為:pluginName.ID
ClassName:類名
Name:插件最終顯示在菜單上的名稱
Description:對這個Action的描述信息
然後往下,選擇插件在菜單中的位置,這里選擇的是Code菜單下第一的位置,然後定義一個快捷鍵。
點擊OK,就創建了一個Action類了,
public class CreateDialogAction extends BaseGenerateAction {
public CreateDialogAction() {
super(null);
}
public CreateDialogAction(CodeInsightActionHandler handler) {
super(handler);
}
@Override
public void actionPerformed(AnActionEvent e) {
}
}
注意把繼承的AnAction改成BaseGenerateAction,下文需要用到BaseGenerateAction類中的相關方法。
代碼實現
主要實現在類中自動生成代碼,首先獲取相關的操作類,已在代碼中加入注釋說明。
public class CreateDialogAction extends BaseGenerateAction {
public CreateDialogAction() {
super(null);
}
public CreateDialogAction(CodeInsightActionHandler handler) {
super(handler);
}
@Override
public void actionPerformed(AnActionEvent e) {
// 獲取編輯器中的文件
Project project = e.getData(PlatformDataKeys.PROJECT);
Editor editor = e.getData(PlatformDataKeys.EDITOR);
PsiFile file = PsiUtilBase.getPsiFileInEditor(editor, project);
// 獲取當前類
PsiClass targetClass = getTargetClass(editor, file);
// 獲取元素操作的工廠類
PsiElementFactory factory = javaPsiFacade.getElementFactory(project);
// 生成代碼
new LayoutCreator(project, targetClass, factory, file).execute();
}
}
生成代碼,需要繼承WriteCommandAction.Simple類,在run方法中寫生成代碼的邏輯,將生成dialog的代碼存入StringBuilder,然後調用targetClass類中的add方法生成代碼,最後再導入需要的類。
public class LayoutCreator extends WriteCommandAction.Simple {
private Project project;
private PsiFile file;
private PsiClass targetClass;
private PsiElementFactory factory;
public LayoutCreator(Project project, PsiClass targetClass, PsiElementFactory factory, PsiFile... files) {
super(project, files);
this.project = project;
this.file = files[0];
this.targetClass = targetClass;
this.factory = factory;
}
@Override
protected void run() throws Throwable {
// 將彈出dialog的方法寫在StringBuilder里
StringBuilder dialog = new StringBuilder();
dialog.append("public void showDialog(){");
dialog.append("android.support.v7.app.AlertDialog.Builder builder = new AlertDialog.Builder(this);");
dialog.append("builder.setTitle(\"Title\")\n");
dialog.append(".setMessage(\"Dialog content\")\n");
dialog.append(".setPositiveButton(\"OK\", new android.content.DialogInterface.OnClickListener() {\n" +
"@Override\n" +
"public void onClick(DialogInterface dialog, int which) {\n" +
"\t\n" +
"}" +
"})\n");
dialog.append(".setNegativeButton(\"Cancel\", new DialogInterface.OnClickListener() {\n" +
"@Override\n" +
"public void onClick(DialogInterface dialog, int which) {\n" +
"\t\n" +
"}" +
"})\n");
dialog.append(".show();");
dialog.append("}");
// 將代碼添加到當前類里
targetClass.add(factory.createMethodFromText(dialog.toString(), targetClass));
// 導入需要的類
JavaCodeStyleManager styleManager = JavaCodeStyleManager.getInstance(project);
styleManager.optimizeImports(file);
styleManager.shortenClassReferences(targetClass);
}
}
點擊編譯器右上角的綠色Run按鈕,會重新啟動一個新的IntelliJ IDEA的界面,在這里創建一個Android工程,點擊Code,會看到Android Dialog選項,看下效果:
Android Dialog
OK,到這里我們就成功的創建了一個插件,下面讓我們來看看如何來部署插件。
4.部署插件
填寫相關信息
打開項目中的plugin.xml文件,填寫相關的信息,這些信息會展示在插件庫中,如下圖所示。
plugin
點擊Bulid菜單下的Prepare Plugin按鈕會在項目的根目錄生成jar插件,如下圖所示:
生成插件
安裝插件
打開Andorid Studio,選擇File -> Settings -> Plugins -> Install plugin from disk,選擇我們生成的jar然後重啟即可,如下圖所示,紅框標記的部分就是我們剛才在plugin.xml文件中填寫的信息:
安裝插件
發布插件
還可以把插件發布到倉庫,讓其他人也能使用,進入 JetBrains 官網,注冊賬號,提交插件jar包,填寫相關信息,等待審核就可以了。
5.遇到的問題
安裝插件的時候出現下面的報錯,是因為IDEA中jdk的版本是1.8,而我的Android Studio中jdk的版本是1.7導致的,版本統一就好了。
Android Dialog threw an uncaught PluginException.
6.總結
總結一下之前的步驟:
下載Intellij IDEA,新建一個Intellij Platform Plugin的項目(注意jdk版本的問題,最新的IDEA需要jdk 1.8版本)
在項目中新建一個Action,把繼承的AnAction改成BaseGenerateActio
編寫API,這個可以參考其他插件的寫法
點擊Bulid菜單下的Prepare Plugin按鈕生成jar,這個jar就可以直接用來安裝了
『伍』 什麼軟體可以自動生成代碼
求個湖北1區 打百三圖的戰隊穩定在線的垃圾的就算了 有留下你QQ 謝謝了
『陸』 怎樣在html中實現時間的自動生成 求代碼
用js可以<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JavaScript 時間顯示</title>
</head>
<body>
<span id=localtime></span>
<script type="text/javascript">
function showLocale(objD)
{
var str,colorhead,colorfoot;
var yy = objD.getYear();
if(yy<1900) yy = yy+1900;
var MM = objD.getMonth()+1;
if(MM<10) MM = '0' + MM;
var dd = objD.getDate();
if(dd<10) dd = '0' + dd;
var hh = objD.getHours();
if(hh<10) hh = '0' + hh;
var mm = objD.getMinutes();
if(mm<10) mm = '0' + mm;
var ss = objD.getSeconds();
if(ss<10) ss = '0' + ss;
var ww = objD.getDay();
if ( ww==0 ) colorhead="<font color=\"#FF0000\">";
if ( ww > 0 && ww < 6 ) colorhead="<font color=\"#373737\">";
if ( ww==6 ) colorhead="<font color=\"#008000\">";
if (ww==0) ww="星期日";
if (ww==1) ww="星期一";
if (ww==2) ww="星期二";
if (ww==3) ww="星期三";
if (ww==4) ww="星期四";
if (ww==5) ww="星期五";
if (ww==6) ww="星期六";
colorfoot="</font>"
str = colorhead + yy + "-" + MM + "-" + dd + " " + hh + ":" + mm + ":" + ss + " " + ww + colorfoot;
return(str);
}
function tick()
{
var today;
today = new Date();
document.getElementById("localtime").innerHTML = showLocale(today);
window.setTimeout("tick()", 1000);
}
tick();
</script>
</body>
</html>
『柒』 關於C#自動生成的代碼
如果你會託管和事件的話,再看那些代碼,就會很簡單。例:using System;namespace MyCollections
{
using System.Collections;
public delegate void ChangedEventHandler(object sender, EventArgs e);
public class ListWithChangedEvent : ArrayList
{
/* 聲明一個事件,名稱為Changed,並指明用ChangedEventHandler作為委託
當觸發Changed事件時,可以通過ChangedEventHandler這個委託進行事件處理*/
public event ChangedEventHandler Changed; public event ChangedEventHandler Added; protected virtual void OnChanged(EventArgs e)
{
/* 事件調用: (調用事件的語法和調用方法類似,直接使用事件的名稱,並傳入事件的參數就可以了)
*
* 先判斷是否有對象將委託與該事件關聯,
* 如果沒有對象將委託與事件關聯,則委託的事件為null。
* 調用事件時先檢查是否為null,如果不為null,再調用該事件。
* ※其實也可以理解為事件Changed當使用+=之後,Changed被賦值了(即被關聯了委託ChangedEventHandler)
* ※同時由於委託指向了方法,因此當事件Changed發生時,被指向的方法也就可以被調用了。
*/
if (Changed != null)
Changed(this, e);
}
protected virtual void OnAdded(EventArgs e)
{
if (Added != null)
Added(this, EventArgs.Empty);
}
/* 當調用Add,Clear或者set數組的時候,就會調用OnChanged方法,而OnChanged方法中調用了Changed事件,
* 所以也可以說當調用如下的方法時調用了Change事件 */
public override int Add(object value)
{
int i= base.Add(value);
OnAdded(EventArgs.Empty);
return i;
} public override void Clear()
{
base.Clear();
OnChanged(EventArgs.Empty);
}
public override object this[int index]
{
set
{
base[index] = value;
OnChanged(EventArgs.Empty);
}
}
}
}namespace TestEvents
{
using MyCollections;
class Test
{
public static void Main()
{
ListWithChangedEvent list = new ListWithChangedEvent();
list.Added += new ChangedEventHandler(ListAdded);
/*
* 用+=將事件和委託關聯在一起,使用-=解除關聯。一旦建立起這種關聯,委託就可以調用事件發生時處理的方法。
* 事件Changed和委託ChangedEventHandler關聯在一起,並指明當事件發生時,調用參數中指明的方法ListChanged。
* 這樣,ChangedEventHandler就知道,當對象的狀態改變時,就調用Changed事件,調用Changed事件時就執行ListChanged這個方法。
*/
list.Changed += new ChangedEventHandler(ListChanged);
//以上的一步可以分解成如下二步:
//ChangedEventHandler a = new ChangedEventHandler(ListChanged);
//List.Changed += a;
list.Add("item 1");
list[0] = "item 2";
list.Clear();
list.Added -= new ChangedEventHandler(ListAdded);
list.Changed -= new ChangedEventHandler(ListChanged);
}
private static void ListChanged(object sender, EventArgs e)
{
/* 事件處理方法的參數類型和個數必須和delegate類型定義的一致,不過參數的名稱可以相同也可以不同 */
Console.WriteLine("Changed or Cleared");
}
private static void ListAdded(object sender, EventArgs e)
{
Console.WriteLine("Added");
}
}
}
『捌』 excel自動生成代碼,請教高手。
這個代碼應該是人為的行政區域編碼,一個村對應唯一一個代碼.
如果按樓主的意版思,可以建立一個"代碼權"表如下:
A列 B列
村名 代碼
清泉鎮新鋪村 1125011900
清泉鎮河東街村 1125012100
清泉鎮羅橋村 1125012400
清泉鎮龍井村 1125014700
清泉鎮馬畈村 1125015700
巴河鎮瓦窯村 1125020700
巴河鎮七里鋪村 1125022000
巴河鎮棗嶺村 1125023200
巴河鎮元橋村 1125024000
巴河鎮長征村 1125024500
竹瓦鎮古雲庵村 1125031800
竹瓦鎮走馬村 1125032200
關口鎮豹龍村 421125064500
……
在使用是,比如在另外一個工作表中A2輸入村名,B2單元格返回代碼
A列 B列
巴河鎮棗嶺村
則在B2中輸入公式
=VLOOKUP(A2,代碼!A:B,2,0)
回車確認後返回值1125023200
公式可以向下復制.
不妨試試!
『玖』 網站關鍵詞自動生成代碼
<title>關鍵詞1_關鍵詞2_關鍵詞3-網站名稱</title>
<meta name="keywords" content="關鍵詞1_關鍵詞2_關鍵詞3">也是由強到弱
<meta name="description" content="把關鍵詞自然版的融入到描述中,權大概120個字左右">什麼自動生成代碼?
『拾』 自動生成代碼器!
超不過20個字元的代碼。加上調試,超不過1分鍾就寫完。