盤點那些年我做過的其他作品

0x01 盤點那些年我做過的其他作品

盤點那些年我做過的一些作品。

  1. 快遞助手(Android端,PC端,開發主力,負責二維碼掃描和圖片識別模塊功能開發。)
  2. 學生信息管理系統(struts2+jsp 帶新聞公告和後臺管理)
  3. 黨課考試系統(Android 端,Java web 的全棧式開發)
  4. IOS 移動端遊戲開發——模仿微信版飛機大戰遊戲和湯姆貓遊戲
  5. C 語言——圖形用戶界面動態模擬走迷宮 和 Flash AS 腳本開發 飛機大戰遊戲
  6. Winform PC 桌面程序——快遞助手(二維碼生成,打印,短信羣發) 教學助手(攝像頭操控,Office 嵌入)
  7. C語言動態迷宮求解程序

技術宅男,愛編程,愛挑戰,愛專研,愛學習新的技術。

擁有高效的自學學習能力、豐富的代碼 bug 調試經驗,能獨立高效完成分配的任務。

其他技術棧:

  1. 熟悉安卓開發四大組件,會使用碎片、自定義控件、XML 和 JSON 解析,傳感器等技術。
  2. 有微信SDK開發經驗, 瞭解TCP/IP和http協議以及Socket,熟悉Android下網絡通信機制
  3. 研讀並使用過 OCR 圖片識別和 ZXING 二維碼掃描開源庫並實戰開發安卓 app 經驗。
  4. 會熟練使用 Android Studio、git 和 APK Multi-Tool 反編譯工具。
  5. 自學過 HTML5 開發基礎,熟悉 Struts2 框架的 jsp 網站程序開發,短信羣發 API.
  6. 懂 dos 命令、批處理、組策略、註冊表、服務、沙箱、虛擬機等技術

1.1 C語言

1.1.1 C 語言動態走迷宮

在這裏插入圖片描述
源碼見我的博客園博文 C語言動態走迷宮

1.2 Java

1.2.1 網絡爬蟲

1.2.1.1 網絡爬蟲一

Java爬蟲獲取某個頁面中指定節點的內容

1.2.1.2 網絡爬蟲一

在這裏插入圖片描述

1.2.2 可疑文件監測刪除腳本

可疑文件監測刪除JSP腳本

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" import="java.io.*,java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

	<%
	
	    /**
	     *可疑文件監測刪除腳本
	     * 範例:刪除WebRoot/WEB-INF/ 下所有的JSP和JSPX 文件
	     */
	    //必須配置
	    String configDetectionFolder="WEB-INF";//配置檢索的文件夾
	    Boolean enalbeDeleteThread=true;//是否啓用刪除監測線程
	    response.setHeader("refresh" , "30" );//30秒刷新一次
	
	    //可選:配置參數
	    Boolean enablePrintWebName=false;//是否打印當前項目名稱和網址
	    Boolean enablePrintFileName=false;//是否打印監測到的可疑文件名稱
	    Boolean enablePrintFilePath=false;//是否打印監測到的可疑文件路徑
	    Boolean enablePrintDeleteFileLog=false;//是否打印刪除文件日誌
	    
	    
	    //可選:是否打印網站信息
	    if(enablePrintWebName){
	    	String path = request.getContextPath();
	    	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()+ path + "/";
	    	out.println("<p>當前監測網站名稱:"+path+"</p>");
	    	out.println("<p>當前監測網站網址:"+basePath+"</p>");
	    }    
		//必選:打印監視器名稱
		String currentFileURI=request.getRequestURI();
		String currentFileName=currentFileURI.substring(currentFileURI.lastIndexOf("/")+1);
        out.println("監視器文件: "+currentFileName);
	   
				
		//獲取項目實際根目錄
		String contextPath= request.getServletContext().getRealPath("/")+File.separator;
		//設置監測的文件夾
		File searchRootFolderFile = new File(contextPath +File.separator+configDetectionFolder);
		//查找SmartScanWeb\WEB-INF目錄下的的所有文件夾和文件
		out.println("<p>當前監控真實文件夾路徑:</p><p>"+searchRootFolderFile.getAbsolutePath()+"</p>");

		
		//初始化保存監測結果集合
		//所有的文件夾集合
		List<String> searchFolderList = new ArrayList<>();
		//所有的文件名稱集合
		List<String> searchFileList = new ArrayList<>();
		//檢索到的文件夾路徑
		List<String> searchFolderPathList = new ArrayList<>();
		//執行刪除文件列表
		List<File> searchFilePathList = new ArrayList<>();
		

		//遞歸遍歷監控目錄下所有的文件夾, JSP和JSPX文件
		if (searchRootFolderFile.exists()) {
			LinkedList<File> rootFolderList = new LinkedList<File>();
			File[] files = searchRootFolderFile.listFiles();
			for (File file : files) {
				if (file.isDirectory()) {
					searchFolderList.add(file.getName());
					searchFolderPathList.add(file.getAbsolutePath());
					rootFolderList.add(file);
				} else if(file.getName().endsWith(".jsp")||file.getName().endsWith(".jspx")){
					searchFileList.add(file.getName());
					searchFilePathList.add(file);
				}
			}
			File temp_file;
			while (!rootFolderList.isEmpty()) {
				//遍歷過一個目錄移除第一個
				temp_file = rootFolderList.removeFirst();
				files = temp_file.listFiles();
				for (File file2 : files) {
					if (file2.isDirectory()) {
						searchFolderList.add(file2.getName());
						searchFolderPathList.add(file2.getName());
						rootFolderList.add(file2);
					} else if(file2.getName().endsWith(".jsp")||file2.getName().endsWith(".jspx")){
						searchFileList.add(file2.getName());
						searchFilePathList.add(file2);
					}
				}
			}
			
		}else{
			out.println("文件不存在!");
		}
		
		//打印檢索結果
	    out.println("<hr/><p>監測狀態: ");
	    out.println("發現JSP/JSPX文件個數: "+searchFileList.size()+"</p><hr/>");
	   
	  
	    //可選可刪除: 打印可疑文件列表
	    if(enablePrintFileName){
	        out.println("<p>可疑文件名稱列表:</p>");
		    for(int i=0;i<searchFileList.size();i++){
		    	out.println("<p>"+searchFileList.get(i)+"</p>");
		    }
	    }
	    //可選可刪除:打印可疑文件路徑
	    if(enablePrintFilePath){
	        out.println("<p>可疑文件路徑列表:</p>");
		    for(int i=0;i<searchFilePathList.size();i++){
		    	out.println("<p>"+searchFilePathList.get(i).getAbsolutePath()+"</p>");
		    }
	    }
	    
	    
	    //執行刪除
	    if(enalbeDeleteThread){
	       int deleteCount=0;
	   	   for(int i=0;i<searchFilePathList.size();i++){
	   		   //做判斷不刪除自身版本
	   		   if(!searchFilePathList.get(i).getAbsolutePath().toString().contains(currentFileName)){
	   			   if(enablePrintDeleteFileLog){
	   			      out.println("正在刪除:<p>"+searchFilePathList.get(i).getAbsolutePath()+"</p>");
	   			   }
	   			   searchFilePathList.get(i).delete();
	   			   deleteCount++;
	   		   }
	   	   }
	   	   out.println("刪除個數:"+deleteCount);
	    }
	    
	%>
</body>
</html>

1.2.3 HTTP FileServer

基於Spring Boot 開發的一個類似FTP文件服務器,實現功能如下:

  1. 支持文件上傳下載
  • 關於文件下載

默認監控當前機器C:\ftp_share_folder 的文件下的所有文件變化,只要刷新下頁面,就可以獲取文件下載列表

  • 關於文件上傳

默認上傳到C:\ftp_share_folder 根目錄下

  • 關於文件上傳下載限制

最大默認支持1024GB,已解決tomcat內嵌容器大文件上傳超時問題

  • 修改監控文件夾

修改監控文件夾很簡單隻需要修改application-dev.properties 下的 com.xingyun.ftp.ftp-share-folder=C:/ftp_share_folder

  1. 長文本持久化支持以實現類似剪切板功能

基於H2內嵌文本數據庫實現,最大支持999999999個字符的保存和讀取

Github 開源地址

1.3 C#

1.3.1 郭哥教學助手

爲大學老師講課開發的一款軟件,支持攝像頭打開,窗體中嵌入Office 文檔

在這裏插入圖片描述

1.3.2 繪製圓形窗體

在這裏插入圖片描述

1.4 Python

1.4.1 Python爬蟲

Python爬蟲獲取某個網頁所有的a標籤中的超鏈接網址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章