1,已知dicom文件包含病人姓名,ID,性別,生日,檢查設備等信息,請用你所熟悉的任意一種程序語言,編寫一個完整的過程,完成從一個給定路徑(如“D:\My Document\”,裏面都是dicom文件)中,析取文件名,病人姓名,ID,性別,生日,檢查設備,編寫程序時,請在必要的地方加以註釋。
//C# public static List<object> ReadAllFileInfo() { var result = new List<object>(); var dir=new DirectoryInfo("D:\My Document\"); var dirs=dir.GetDirectiories(dir); for(int i = 0; i < dirs.Length; i++) { var item = dirs[i]; var fileName = item.Name;//文件名 var content = File.ReadAllText(item.FullName); var contentList = content.Split(',') var name = contentList[0];//病人姓名 var id = contentList[1];//ID var gender = contentList[2];//性別 var birthday = contentList[3];//生日 var device = contentList[4];//檢查設備 //todo... result.Add(new object(){ fileName, name, id, gender, birthday, device, }; } return result; }
2,根據下面產品API信息(見附件),設計一個程序頁面通過調用API實現對後臺資源的定製化顯示
<!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11.1.min.js"></script> <script> $(document).ready(function(){ $.get("http://www.example.com/Citrix/Store/resources/v2?group=core&group=sub",function(data,status){ if(status == 200) { //解析xml var xmlDoc = $.parseXML( data ), var $xml = $( xmlDoc ), var id= $xml.find('id'); var title = $xml.find( "title" ); var link = $xml.find('link); var summary = $xml.find('summary'); //渲染dom元素 var html="<p>" + id + "</p><p>" + title + "</p>"; $('.divMain').html(html); }else if(status == 400) { alert('Bad/Missing security token (see CitrixAuth Authentication Scheme document [3] )'); }else if(status == 401) { alert('No resource available for the specified {id} parameter (the resource may not exist or access to it may not be authorized for the requesting user).'); } }); }); </script> </head> <body> <div id='divMain'> </div> </body> </html>
數據庫設計
下面的表有問題嗎?如果有,如何改進?
城市* 街道* 郵政編碼
佛山 金魚街 528000
佛山 大福路 528000
佛山 季華路 528000
廣州 北京路 510000
廣州 三元里 510000
廣州 中山路 510000
… … …
*城市和街道聯合做主鍵
有問題 首選主鍵需要是當前表的ID,或者關聯表的外鍵 需要將城市單獨出來一張表 City 字段包括 ID、Name 例如 1 佛山 2 廣州 街道單獨一張表 Streat 字段包括 ID、Name、CityID(外鍵關聯City)、PostID(外鍵關聯郵編) 郵編表 Post 字段包括 ID、Code 查詢語句如下 select City.Name,Streat.Name,Post.Code from Streat left join City on City.ID = Streat.CityID left join Post on Post.ID = Streat.PostID
2、假設有以下的兩個表:
Cus_A
ID* Name Address
… … …
Cus_B
ID* Name Address
… … …
*主鍵
表Cus_A和表Cus_B的結構完全相同,表Cus_A和表Cus_B中既存在ID相同的記錄,也存在ID不同的記錄。現要求將ID只存在於表Cus_A中而不存在於表Cus_B中的記錄全部插入到Cus_B表中,並用表Cus_A中的記錄更新表Cus_B中相同的ID的記錄,請寫出完成這一功能的存儲過程。
--使用遊標循環,存儲過程如下 declare @ID int, @Name nvarchar(50), @Address nvarchar(250) declare myCurssor cursor for (select * from Cus_A where id not in (select ID from Cus_B)) open myCurssor; fetch next from myCurssor into @ID, @Name, @Address; while(@@fetch_status=0) begin insert into Cus_B(ID,Name,Address) values(@ID, @Name, @Address) end close myCurssor deallocate myCurssor go --批量更新B表數據 update Cus_B set Name=(select Name from Cus_A where Cus_A.ID=Cus_B.ID), Address=(select Address from Cus_A where Cus_A.ID=Cus_B.ID) --表結構一樣,可以直接用select into語法 insert into Cus_B(ID,Name,Address) select ID,Name,Address from Cus_A where ID not in (select ID from Cus_B);
3、某公司正在開發一個檔案管理系統,要求在關係數據庫中實現和Windows文件系統完全一致的樹狀文件目錄。爲了實現這一目錄結構,至少需求哪些表?請詳細描述這些表的用途和結構(如有必要,可用圖表進行描述)。最後,請用僞編碼(或自然語言)描述按樹狀結構遍歷所有檔案的算法。
主要的表如下 目錄表 Directory 字段 ID、Name、Path、ParentID 檔案表 Document 字段 ID、Name、DirectoryID(外鍵目錄表ID) //C# 主要使用樹狀節點的遞歸算法處理 private List<Directory> List = new List<Directory>(); public void GetDirectoryList(int id) { var sql = "select * from Directory left join Document on DirectoryID.ID = Directory.ID"; if(id > 0) { sql += "where Directory.ParentID=" + id; } var query = context.Databse.SqlQuery(sql); if(query.Count == 0) { break; } foreach(var item in query.ToList()) { List.Add(new Directory() { ID=item.ID, Name=item.Name, }); } }
試題四:系統設計
簡述“單點登錄”的原理,並設計一個單點登錄的方案。
單點登錄,通過給授權服務器驗證請求token,將token和本地的cookie關聯,從而記錄登錄狀態,授權服務器拿到token之後進行有效期的校驗,確定是否可以正常登錄授權。 方案有騰訊開放平臺接口提供的OAuth2.0 如果需要自己設計,可以設計一個token頒發接口、token認證接口 業務接口每次調用之前需要先驗證token是否存在,不存在需要拿用戶名和密碼去token頒發接口獲取token 如果存在,需要去接口校驗token是否失效,有效的token才能正常登錄 還可以通過登錄方式不同,可以使不同設備頒發不同token,同時在線
簡述一個軟件工程的主要步驟,並指出每個步驟的明確目標及實施辦法。最後分析哪些是關鍵步驟。
項目立項 需求調研 確認需求文檔 確認技術選型 搭建技術架構 搭建框架代碼 拆分業務和任務模塊 並行開發 系統連調測試 系統上線 運維升級
綜合
你認爲在團隊開發中,你能發揮自己的能力嗎?爲什麼?當個人意見與主管出現矛盾時,你用什麼方法解決?
可以 對自己負責的模塊能按時保質保量完成,開發工作不延期 自己的任務完成了,還可以瞭解處理其他模塊的任務 做到有責任心,說到做到 當意見不一致的時候,我會和主管分析兩個不同意見的利弊得失 如果按照他的想法實現會有什麼問題,導致什麼後果;如果按照我的想法實現會有什麼問題和結果 如果在我表明自己的見解的時候,主管還是覺得不可行的話,我回按照主管的想法去實現