【C#】华南理工大学计算机考研复试题目 您所在的位置:网站首页 华南理工的计算机专业考研分数线 【C#】华南理工大学计算机考研复试题目

【C#】华南理工大学计算机考研复试题目

2024-02-03 03:42| 来源: 网络整理| 查看: 265

华南理工大学计算机考研复试,在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张表才能顺利建立起来。

--在数据库中根据上述表的定义创建上述数据库,同时需建立相应的约束关系 create table [EMPLOYEE]( [EmpNo] varchar(8) not null primary key, [EmpName] varchar(50) not null, [EmpSex] varchar(2) check([EmpSex]='男' or [EmpSex]='女'), [EmpAge] int check([EmpAge]>0) ) create table [COMPANY]( [CmpNo] varchar(8) not null primary key, [CmpName] varchar(50) not null ) create table [WORKS]( [EmpNo] varchar(8) references [EMPLOYEE]([EmpNo]), [CmpNo] varchar(8) references [COMPANY]([CmpNo]), [Salary] int check([Salary]>0) ) 这里,所有表名、字段名补上[],是为了避免,有某些表名、字段名触发系统的关键字。

同时注意,题目,需要同时建立约束关系。

因此,Sql语句最后,该有的实体完整性、参照完整性、域完整性不能漏,没有就丢分。

2、将上面的数据输入到数据库中相应的表中

这里,推荐还是用最传统的SQL语句完成,也就是复制、粘贴改改数据的事情,比用图形界面操作要快。

--将上面的数据输入到数据库中相应的表中 insert into [EMPLOYEE] values('E01','张三','女',32); insert into [EMPLOYEE] values('E02','李四','男',28); insert into [EMPLOYEE] values('E03','王五','女',42); insert into [EMPLOYEE] values('E04','赵六','男',37); insert into [EMPLOYEE] values('E05','陈七','男',51); insert into [COMPANY] values('C01','阳光科技'); insert into [COMPANY] values('C02','晨光科技'); insert into [COMPANY] values('C03','未来科技'); insert into [WORKS] values('E01','C01',3000); insert into [WORKS] values('E01','C02',4000); insert into [WORKS] values('E02','C02',5000); insert into [WORKS] values('E02','C03',2500); insert into [WORKS] values('E03','C01',3500); insert into [WORKS] values('E04','C02',3000); insert into [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数据库查看器》(点击打开链接)我已经写过了,这里不再复制、粘贴一次了,有兴趣可以去看看,具体代码如下:

using System; using System.Collections.Generic; using System.Text; using System.Data;//DataTable用到 using System.Data.SqlClient;//一系列的数据库操作类用到 namespace SCUT { class DB : IDisposable { private SqlConnection sqlConnection; public DB()//私有无参构造函数 { sqlConnection = new SqlConnection(@"server=.\SQLEXPRESS;database=SCNT;Trusted_Connection=SSPI;"); sqlConnection.Open(); } public DataTable getBySql(string sql) {//查询 SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(new SqlCommand(sql, sqlConnection)); DataTable dataTable = new DataTable(); sqlDataAdapter.Fill(dataTable); return dataTable; } public void setBySql(string sql) { //修改 new SqlCommand(sql, sqlConnection).ExecuteNonQuery(); } public void Dispose() {//相当于析构函数 sqlConnection.Close(); //在C#中关闭数据库连接不能在类的析构函数中关,否则会抛“内部 .Net Framework 数据提供程序错误 1”的异常 //通过实现C#中IDisposable接口中的Dispose()方法主要用途是释放非托管资源。 } } } 这个类,直接使用《【C#】使用Windows身份验证连接Sql Server,ListView随窗体大小的变化而调节列宽》( 点击打开链接)中介绍的不安全,但开发快速的Windows身份验证,去连接数据库,为了是不用像《【SQL Server】用户的设置与授权、sa用户登录、查询一个数据库中有多少张表》( 点击打开链接),再去SQL Server中开用户。

同时,去掉了这个类单例化的部分,单例主要作用是保证数据库连接只有一个,不会出现多次连接导致数据库的拥堵,这里题目没要求,不这样写,省些代码,感兴趣的,可以到《【php】利用单例模式设计数据库连接Model类》(点击打开链接)了解。

最后,还去掉set、getBySql中对于Sql注入过滤的部分,这些题目都没要求,不做,省时间,反正就算在实际开发怎么不及格,考试高分就行。

自己知道这是为了考试快速答题,但不符合实际开发就可以了。没必要纠结。

之后,我们再搞一个便于窗体之间与窗体之间传递数据的Intent.cs,具体代码如下,这在《【C#】窗体间互相传值》(点击打开链接)说过了,这里不再赘述。就一个存数据的字典容器。

using System; using System.Collections.Generic; using System.Text; namespace SCUT { class Intent { public static Dictionary dict = new Dictionary(); } } 上述两个工具性的cs类做完之后,可以正式开始窗体的编写。Form1.cs的布局、要修改的属性、添加的事件如下:

对于C#控件毫无概念的同学,可以参考《【C#】简单窗体程序,判断是否闰年,禁止窗体调整大小,关闭窗体前的判断 》(点击打开链接)

这里摆了一个TabControl,具体可以看《【C#】标签页》(点击打开链接),完成题目1,不要将所有功能摆在一个窗体的要求。

因为接下来要完成4个功能,如下图,右击这个TabControl,为其添加到4个选项卡

在TabControl中的第一个选项卡摆了一个listview,修改的属性如下图所示,listview的具体使用,请看《【C#】ListView的使用,对Access数据库的增删改查》(点击打开链接)

之后,第2个标签页的布局如下:

这里应题目的要求,要使用下拉菜单combobox,这个组件在《【C#】文件选择对话框OpenFileDialog与下列列表ComboBox》(点击打开链接)说过了,这里不再赘述,注意,将其的DropDownStyle,改成不能编辑的DropDownList。

之后,第三个、第四个标签页的布局内容如下,这两页的布局、所修改的属性内容基本相同,都是一个label加listview,因为,题目只是要求将查询结果打印到窗体上来。

不过,精华在最后的SQL查询代码~

接下来,为了完成第2题对员工表的增删改查。我们要新建一个窗体Form2,基本的流程同《【C#】窗体间互相传值》(点击打开链接),其布局、要修改的属性、添加的事件如下图所示:

这里唯一注意的是,由于题目要求老师的性别要求用单选按钮实现。那么你只好在姓名那里,先拖一个panel1,再放上两个radiobutton,这样,两个radiobutton就自动互斥了。

接下来,双击form1.cs、form2.cs各个标签页的各个button,为各个按钮添加点击事件。

如果你的vs没有自动跳转,请按如下图的方式,进入代码编写界面。

Form1.cs的代码如下:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Text.RegularExpressions;//用到了正则表达式 namespace SCUT { public partial class Form1 : Form { DB db; public Form1() { InitializeComponent(); db = new DB(); } private void Form1_Load(object sender, EventArgs e) { //员工表 增删改查 中“查部分” //生成表头 listView1.Columns.Add("员工号", listView1.Width / 4 - 1, HorizontalAlignment.Left); listView1.Columns.Add("员工姓名", listView1.Width / 4 - 1, HorizontalAlignment.Left); listView1.Columns.Add("性别", listView1.Width / 4 - 1, HorizontalAlignment.Left); listView1.Columns.Add("年龄", listView1.Width / 4 - 1, HorizontalAlignment.Left); //表的内容 DataTable table = db.getBySql(@"select * from [EMPLOYEE]"); listView1.BeginUpdate();//数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度 for (int i = 0; i < table.Rows.Count; i++) { ListViewItem listViewItem = new ListViewItem();//生成每一列 for (int j = 0; j < table.Columns.Count; j++) { if (j C#读->C#构造数据到前台,万变不离其宗。

最后,祝各位通过考研初试,有机会到华南理工复试的计算机考生,在考研复试的过程中,没有任何意外,稳稳当当,别说做完,能够在1.5小时中,完成上述80%的内容,基本稳了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有