1. 程式人生 > >華南理工大學 2015 電腦科學與工程學院 複試 之 機試 902

華南理工大學 2015 電腦科學與工程學院 複試 之 機試 902

原文地址:C#】華南理工大學計算機考研複試題目

備註:博主是個菜鳥,這是第一篇部落格,可能會在排版上面有些錯誤,可以直接去原網址檢視。

本人是16級華工計科院統考生,在學校並沒有學過C#,通過閱讀原博主的一系列文章,學習了C#程式設計的一些基本知識,非常感謝,特轉載為本人第一篇部落格。

1.   當時並沒有找到過多的歷年複試機試題,其實在王道論壇上歷年試題非常詳細,計算機考研尋找資料時到王道論壇上更加方便。王道論壇

2.   學長編寫的程式碼中在“員工表增刪改查”時“修改”與“刪除”時,可以加一句判斷listview1是否選中的程式碼。


3.   

資料表建立時有外來鍵約束,修改以及刪除都可能違背外來鍵約束,使程式出現異常,可在“修改”和“刪除”功能的資料庫操作程式碼上加上try{}catch{}語句(下圖為修改時的語句)


4.   如果textbox中輸入文字過長,超過資料庫中的資料長度上限也會儲存,可以設定textbox的最大長度


下為正式轉載文章:

華南理工大學計算機考研複試,在34所408聯考高校中比較特別,除去各個學校都存在的面試環節,對比於其它科目傳統筆試,華南理工大學更加傾向於使用C#窗體的程式製作來進行面試複試,這與部分學校使用傳統的C語言編寫演算法不同。華南理工大學計算機考研複試的工程量、深度堪比一個小型的軟體專案。

網上一直對此資料甚小,有也是部分同學的回憶版,草草地敘述一下題目,也寫寫簡單程式設計思想。並沒有一份詳盡的資料。這對於部分沒有接觸過C#窗體的同學,有點痛苦。

下面講解如何利用C#、SQL Server2005、VS2010完成華南理工大學計算機考研複試,以最新的2015年3月份的真題為例。

首先,第一大題,10分,送分的題目:

1、建立資料夾“d:\研究生複試\[你的中文姓名]\” 例: 張三,應建立“d:\研究生複試\張三”資料夾。 所有文件和答案都放在這個資料夾中。

2、在資料夾中建立一個readme檔案(.txt或.doc均可),以說明所用的軟體工具。

3、設計文件,檔名為Info.doc,資料庫連線說明:如使用者名稱,密碼,ODBC/JDBC等資料來源配置等(資料庫連線方式及配置引數)如果必要,可以說明執行方式和相關引數 如果功能不能通過執行,則給出相應的原始碼。

4、在你的目錄中建立SOURCE目錄,系統原始檔放在該目錄下

5、考完後請不要關機,人離開就可以了。

答:

在做題之前,自己先檢測機器有沒有Visual Studio 2005/2008/2010、開始選單,找到Microsoft SQL Server 2005這個資料夾中的SQL Server Management Studio Express,沒有這裡工具,馬上舉手,換機器。畢竟做題時間非常緊,以下的所有內容不難,對於我這樣平時寫程式的人來說,甚至覺得就是無聊,但是如此之多的需求,我用了遠超於1個半小時完成,各位考生好自為之。

第1題,建立資料夾就不展示了,相信每一個用過計算機的同學都會,第5題自己記得別關機,相信沒有考生會這麼傻吧?

第4題,一會在第三大題搞C#的在一開始建立工程時候注意好路徑的選擇~。

第2、3題的說明文件留在最後那麼的10-20分鐘寫,做完沒做完都好,對整個工程做一個好好的總結,同時給改卷老師好好說明你做了什麼,這裡暫時不理會,沒寫完程式寫毛線!

直接第二大題,資料庫設計,35分

一、建立資料庫,並建立以下各表 一個員工可以到多個不同公司上班。

員工關係表EMPLOYEE(員工號EmpNo,員工姓名EmpName,性別EmpSex,年齡EmpAge)


工作關係表WORKS(EmpNo員工號,CmpNo公司號,Salary薪水)


公司關係表COMPANY(CmpNo公司號,CmpName公司名)


要求:

1、在資料庫中根據上述表的定義建立上述資料庫,同時需建立相應的約束關係

答:(1)首先,你在開始選單,找到Microsoft SQL Server 2005這個資料夾中的SQL Server Management Studio Express開啟它,直接使用如下圖的Windows 身份驗證登入。

(2)之後,如下圖,右擊“資料庫”,新建一個數據庫

(3)如下圖,這裡以新建一個SCNT(華南理工大學的英文簡稱)資料庫為例,雖然平時做工程沒有人會修改資料庫路徑的,直接讓系統管理的,但是,現在是考試,那你就將日誌、資料兩個資料庫檔案都改到你在第1大題、第1小題,一上來就建立的資料夾。其餘所有引數不改,也沒時間改,點“確定”。

(4)之後,我們在SCNT這個資料庫中新建查詢。

記得寫完的Sql語句,要塗黑之後再執行。


(5)執行如下的SQL語句,完成這一小題。題目設定得相當陰險。一般情況下,關係表是寫在所有表的結尾,最後建立的。因為關係表中的所有資料都是來自於其它表,沒有其它表的結構是建立不起來的。而改卷老師,故意將關係表擺在中間。

可以看到如下的SQL語句,必須將關係表的建立,擺在最後,這3張表才能順利建立起來。

[sql] view plain copy  print?
  1. --在資料庫中根據上述表的定義建立上述資料庫,同時需建立相應的約束關係
  2. createtable [EMPLOYEE](  
  3.     [EmpNo] varchar(8) notnullprimarykey,  
  4.     [EmpName] varchar(50) notnull,  
  5.     [EmpSex] varchar(2) check([EmpSex]='男'or [EmpSex]='女'),  
  6.     [EmpAge] intcheck([EmpAge]>0)  
  7. )  
  8. createtable [COMPANY](  
  9.     [CmpNo] varchar(8) notnullprimarykey,  
  10.     [CmpName] varchar(50) notnull
  11. )  
  12. createtable [WORKS](  
  13.     [EmpNo] varchar(8) references [EMPLOYEE]([EmpNo]),  
  14.     [CmpNo] varchar(8) references [COMPANY]([CmpNo]),  
  15.     [Salary] intcheck([Salary]>0)  
  16. )  
這裡,所有表名、欄位名補上[],是為了避免,有某些表名、欄位名觸發系統的關鍵字。

同時注意,題目,需要同時建立約束關係。

因此,Sql語句最後,該有的實體完整性、參照完整性、域完整性不能漏,沒有就丟分。

2、將上面的資料輸入到資料庫中相應的表中

這裡,推薦還是用最傳統的SQL語句完成,也就是複製、貼上改改資料的事情,比用圖形介面操作要快。

[sql] view plain copy  print?
  1. --將上面的資料輸入到資料庫中相應的表中
  2. insertinto [EMPLOYEE] values('E01','張三','女',32);  
  3. insertinto [EMPLOYEE] values('E02','李四','男',28);  
  4. insertinto [EMPLOYEE] values('E03','王五','女',42);  
  5. insertinto [EMPLOYEE] values('E04','趙六','男',37);  
  6. insertinto [EMPLOYEE] values('E05','陳七','男',51);  
  7. insertinto [COMPANY] values('C01','陽光科技');  
  8. insertinto [COMPANY] values('C02','晨光科技');  
  9. insertinto [COMPANY] values('C03','未來科技');  
  10. insertinto [WORKS] values('E01','C01',3000);  
  11. insertinto [WORKS] values('E01','C02',4000);  
  12. insertinto [WORKS] values('E02','C02',5000);  
  13. insertinto [WORKS] values('E02','C03',2500);  
  14. insertinto [WORKS] values('E03','C01',3500);  
  15. insertinto [WORKS] values('E04','C02',3000);  
  16. insertinto [WORKS] values('E05','C03',2000);  

同樣需要注意的是,關係表的資料最後才插入。

而且,清楚地瞭解該欄位的資料型別,不是數字,自覺補上'',是數字,千萬別有''

3、將資料庫備份到你的資料夾下,命名為backupInfo

備份,也就是幾分鐘的事,如下圖,右擊要備份的資料庫,選擇“任務”->"備份"

刪除原有的預設備份路徑之後,新增自定義的路徑。


選好路徑之後,自己寫好備份檔名,注意帶上字尾名,


弄好點確定,即可。


好,這個大題,至此做完,最好能夠在15分鐘之內做完。

下面進入到核心的C#程式設計,建議這個SQL Server Management Studio Express別關。因為按照現在市場上軟體程式設計MVC的思想,都是在資料庫先組織好查詢資料->推到相應的程式語言,這裡是C#窗體中->再組織好資料,打印出來,一會兒自然還要多次用到SQL Server Management Studio Express。

三、基於上述資料庫,請使用sql server2005+vs2008或vs2010完成員工資訊管理系統,並生成相應的可執行檔案(檔名為你的名字)。

具體要求如下:

1. 要求程式與資料庫能進行有效連線,並具有完善的人機互動介面, 要求有引數輸入介面和執行按鈕,在介面上有結果輸出展現區, 要求不要把所有操作全部集中在一個選單內。

2.完成對員工關係表的新增,刪除,修改和瀏覽四項功能。老師的性別要求用單選按鈕實現。(15分)

3.統計和查詢:

(1)根據員工號或員工名查詢員工所在的公司名和工資,員工號或員工名不能文字輸入,要求使用下拉選單實現,並與資料庫中現有資訊一致(10分)

(2)統計年齡至少為40歲員工的總工資,工資按從大到小順序排列;與資料庫中現有資訊一致(10分)

(3)查詢至少具有兩份工作員工的姓名和其公司名。(10分)

4. 具有資料完整性校驗功能,當出現數據異常和操作異常時,程式應給出清楚完整的異常提示資訊。(10分)

答:

由於題目要求,上來新建C#工程就尤為注意:

開啟VS2010之後,點選檔案->新建->專案,出現如下對話方塊,在左方的語言欄,請先找到C#程式語言,有可能藏在“其它語言”中,之後選擇C#旗下的Windows。

在選擇“Windows窗體應用程式”的時候,注意,是否有.NET版本的選擇,如果有,這個.NET選擇2.0。不選,如果有.net4.x也可以,程式設計寫法也一樣的,程式執行起來卡而已。


最後,最最最關鍵的是,就算你程式碼不會寫,也要做好的是,選擇好,工程的位置就是你第一題目建立的資料夾下的Source,名稱,按照題目要求,就是你的真實名稱。

之後解決方案的名稱,在你填完 名稱 就自動完成填寫,點選“確定”之後,就可以正式開始程式設計。

1、在正式的窗體開發之前,我們先如下圖,在解決方案中,新建兩個類.cs,磨刀不誤砍柴工,


一個是使用者資料庫連線、查詢的DB.cs,這個類的具體作用在《【C#】利用C#窗體與SQL Server的連線、Treeview製作SQL Server資料庫檢視器》(點選開啟連結)我已經寫過了,這裡不再複製、貼上一次了,有興趣可以去看看,具體程式碼如下:

[csharp] view plain copy  print?
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.Data;//DataTable用到  
  5. using System.Data.SqlClient;//一系列的資料庫操作類用到  
  6. namespace SCUT  
  7. {  
  8.     class DB : IDisposable  
  9.     {  
  10. 相關推薦

    華南理工大學 2015 電腦科學工程學院 複試 902

    原文地址:【C#】華南理工大學計算機考研複試題目 備註:博主是個菜鳥,這是第一篇部落格,可能會在排版上面有些錯誤,可以直接去原網址檢視。 本人是16級華工計科院統考生,在學校並沒有學過C#,通過閱讀原博主的一系列文章,學習了C#程式設計的一些基

    18電腦科學技術本指標和陣列實驗

    藉助指標完成重新排列一維陣列元素的順序,使得左邊的說有元素均為偶數並按由大到小的次序存放,右邊的所有元素均為奇數並按照由小到大的次序存放。 提示 #include<iostream> using namespace std; void fun_max_min(int *

    關於大學電腦科學技術相關專業學習路線的見解分析

    謹以此文獻給仍然迷失在大學生活中的計算機專業學子!!! 不管你是如何選擇了這門專業,我想告訴你的是這是一個很深的領域,沒有熱愛不如儘早轉行。 根據百度百科電腦科學與技術專業(以下簡稱計算機專業)給出的描述,該專業的主幹課程有演算法、資料結構、作業系統、編譯原理、

    電腦科學技術專業的學生大學期間如何鍛鍊自己,如何度過大學這幾年?

    首先,羨慕你,在大學期間就能接觸到知乎這種高質量分享知識和經驗的平臺。 其次,恭喜你,剛大一結束就有這種迷茫的覺悟。(我在大二結束後才迷茫) 舉幾個例項吧。我認為這比告訴你如何度過大學四年更有用。以下這些正面的例子中,希望你能通過自己的思考能有所領悟。(都是計算機或者相近專業) 1、我的室友A。      他

    電腦科學技術專業的大學學習內容

    大一上學期: 1. 計算機導論 這個隨便找個名校的課程就行,主要是梳理後面的知識脈絡。 2. c語言 《k&r》一本即可,也不要全看完(初次看後面鐵定看不懂),到struct那章把所有語法點弄明白就差不多了。其他c語言方面的書可以涉獵,但實話說幫助不大。 sp:這時最好動手實踐計算機配機器,裝機器;

    清華大學電腦科學技術專業本科生課程設定

     必修課  ·計算機原理 ·高階語言程式設計 ·離散數學 ·系統分析與控制 ·人工智慧 ·計算機網路與通訊 ·資料結構 ·編譯原理 ·數字邏輯 ·數值分析·作業系統·計算機組織與體系結構 ·微計算機技術 ·組合語言程式設計 ·計算機圖形學 選修課 ·形式語言與自動機 ·軟體工

    電腦科學技術專業的學生到底應該學什麼

    因為只有對計算機不算討厭所以上大學選了“電腦科學與技術”這個專業,4年碌碌無為,經常奇怪為什麼我們要學離散數學、數字邏輯、硬體設計、編譯原理和彙編==,雖然我很喜歡,但是貌似連老師都不知道這些有什麼用處…… 懵懵懂懂的順利畢業,走運順利找到了工作上了班,學校的知識很快忘得精

    電腦科學技術本科知識體系

    整個電腦科學就像人一樣,有兩條腿。一條叫做數學(基礎),一條叫做物理(基礎)。數學主要指的是離散數學,其中比較重要的是邏輯和證明、Turing論題和Churcher論題。邏輯系統用邏輯的方法描述這個世界,在寥寥數條公理和推理規則之上構築了整個邏輯系統、數論系統乃至電腦科學

    2018華南理工大學程序設計競賽 H-對稱反對稱

    對稱 pos print 其中 數據 string long IT 競賽 H-對稱與反對稱 題目描述 給出一個N*N的方陣A。構造方陣B,C: 使得A = B + C.其中 B為對稱矩陣,C為反對稱矩陣。 對於方陣S中的任意元素,若(S)ij = (S)ji,則稱S為對稱

    哈爾濱理工大學軟體微電子學院第八屆程式設計競賽同步賽(高年級) E 小樂樂匹配字串 【最長公共子序列】

    傳送門:https://ac.nowcoder.com/acm/contest/301/E   求最長公共子序列。 立個 flag 搞dp。   AC code: #include <cstdio> #include <iostream> #inc

    哈爾濱理工大學軟體微電子學院第八屆程式設計競賽同步賽(高年級) Solution

    A: Solved. 分別處理出每個%7後餘數的數字個數,再組合一下 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 #define ll long long 5 int n, m; 6 ll

    哈爾濱理工大學軟體微電子學院第八屆程式設計競賽同步賽(高年級) G 小樂樂打遊戲 【BFS】

    傳送門:https://ac.nowcoder.com/acm/contest/301/G   題意概括: 給一個地圖,有一個火山口 F 一個 起點 S 一個出口 E。 連結:https://ac.nowcoder.com/acm/contest/301/G來源:牛客網  

    哈爾濱理工大學軟體微電子學院第八屆程式設計競賽同步賽(高年級) A 小樂樂的組合數+ 【規律】

    任意門:https://ac.nowcoder.com/acm/contest/301/A 題意概括: 連結:https://ac.nowcoder.com/acm/contest/301/A來源:牛客網 小樂樂得知一週有7天之後就對7產生了興趣。 小樂樂得到了兩堆數字數字時連續的。

    哈爾濱理工大學軟體微電子學院第八屆程式設計競賽同步賽(高年級) J 小樂樂和25 【分類】

    題目描述  小樂樂特別喜歡25這個數字,他想把所有的數字都變成25的倍數。 現在小樂樂得到一個數字,想問問你最少用幾次操作才可以把這個數字改造成25的倍數。 對於一次操作我們可以把相鄰的兩位做交換,比如123經過一次操作之後就可以變成213或者132。

    哈爾濱理工大學軟體微電子學院第八屆程式設計競賽同步賽(高年級) F 樂樂下象棋 【記憶化搜尋】

    傳送門:https://ac.nowcoder.com/acm/contest/301/F 題目描述  小樂樂一天天就知道玩,這一天又想玩象棋。 我們都知道馬走日。 現在給定一個棋盤,大小是n*m,把棋盤放在第一象限,棋盤的左下角是(0,0),右上角是(n - 1, m -

    哈爾濱理工大學軟體微電子學院第八屆程式設計競賽同步賽(高年級)(J) 小樂樂和25

    小樂樂和25 連結:https://ac.nowcoder.com/acm/contest/301/J來源:牛客網 題目描述 小樂樂特別喜歡25這個數字,他想把所有的數字都變成25的倍數。 現在小樂樂得到一個數字,想問問你最少用幾次操作才可以把這個數字改造成25

    哈爾濱理工大學軟體微電子學院第八屆程式設計競賽同步賽(高年級)(F)小樂樂下象棋

    小樂樂下象棋 連結:https://ac.nowcoder.com/acm/contest/301/F來源:牛客網 題目描述 小樂樂一天天就知道玩,這一天又想玩象棋。 我們都知道馬走日。 現在給定一個棋盤,大小是n*m,把棋盤放在第一象限,棋盤的左下角是(0,0),

    【哈爾濱理工大學軟體微電子學院第八屆程式設計競賽同步賽(高年級)】小樂樂的組合數+(思維)

    連結:https://ac.nowcoder.com/acm/contest/301/A 來源:牛客網   題目描述 小樂樂得知一週有7天之後就對7產生了興趣。 小樂樂得到了兩堆數字數字時連續的。 第一堆包含[1,n]n個數字,第二堆包含[1,m]m個數字。 小樂樂想要

    哈爾濱理工大學軟體微電子學院第八屆程式設計競賽同步賽(高年級)B 小樂樂搭積木 (狀態壓縮)

    時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 32768K,其他語言65536K 64bit IO Format: %lld 題目描述 小樂樂想要給自己搭建一個積木城堡。 積木城堡我們假設為n*m的平

    小樂樂打遊戲 哈爾濱理工大學軟體微電子學院第八屆程式設計競賽同步賽(高年級)

    連結:https://ac.nowcoder.com/acm/contest/301/G 來源:牛客網   題目描述         小樂樂覺得學習太簡單了,剩下那麼多的時間好無聊,於是便想打遊戲。