catchya

导航

某公司高级软件师面试题

1       问题分析

(任选一题作答。0.5小时。20分)

1.1      问题一

假设有一个n级的表单流转流程,每一级至少有一个审批人。在表单初始提交的时候,有如下要求:

1.     一般情况下,表单提交给第1级审批人(此时称为从第0级向第1级提交)

2.     如果当前提交人是第i级的审批人,他可以跳过之前的级别直接从第i级向第i+1级提交

3.     一个用户可以是多个级别的审批人。在这种情况下,他必须从他能够审批的最低级别提交

4.     最后一级审批不得跳过

根据以上条件,画出判断当前用户初始提交级别的程序流图。

1.2      问题二

假设有以下场景:某学校将每个学年(School Year)划分为若干评分阶段(Grading Period),学生(Student)在不同阶段中可能在不同的班级(Class)上课(但在某一阶段中只在一个班级),并在阶段结束时获得一份成绩单(Report Card)。要求管理员能够查看历史记录(如指定学年、阶段、班级,查看在这个阶段中该班级所有学生的成绩单)。

根据以上条件,画出SchoolYearGradingPeriodStudentClassReportCard的关系图。

2       算法设计

0.5小时。10分)

2.1      问题一

设计一个计算四则运算(加、减、乘、除)的算法。要求:

1.     考虑运算优先级

2.     可以不考虑括号

3.     不考虑字符串的分解问题,即假设你得到的输入是一个数组,每个元素是一个数字或运算符

3       实际操作

(上机题。任选2题作答。1.5小时。每题10分)

3.1      ASP

创建一个ASP页面,将Request.ServerVariables对象中的所有项目的KeyValue用一个表格输出到页面上,格式如下:

Key1

Value1

Key2

Value2

Keyn

Valuen

脚本语言使用VBScript

3.2      ASP.NET

创建一个ASPX页面,从Students.xml中读出数据,在页面上用一个DataGridDataView输出。要求:

1.     DataGrid需要包含列:学号(id)、姓名(name)、年龄(age)以及性别(gender

2.     分页:每页10条记录,并且有首页、上一页、下一页、尾页按钮(Link buttons)以及当前页标

3.     排序:可以按照姓名(name)、年龄(age)以及性别(gender)排序

4.     翻页和排序互不影响,即翻页时保留当前排序状态,而重新排序时也保留当前页号

5.     使用C#语言

3.3      SQL

创建一个数据库,使之可以存储以下信息:

1.     学生信息

a)       学号

b)       姓名

c)        年龄

d)       性别

2.     课程信息

a)       课程编号

b)       课程名

3.     学生成绩(一个学生可能在多个课程中有成绩)

在此数据库中创建一个存储过程,从数据库中按获得的参数搜索出一个学生信息的列表。对于任意一个学生,如果该学生在某门课程上有成绩,则同时取出这门课程的信息及该学生的成绩。该存储过程接受的参数为(参数为NULL表示该搜索条件不起作用):

1.     姓名:按学生姓名的关键字搜索。可能为NULL

2.     年龄:按学生的年龄搜索。可能为NULL

3.     性别:按学生的性别搜索。可能为NULL

4       软件设计

(任选1题作答。0.5小时。30分)

4.1      问题一

一项目现有如下需求:

1.     从网络A中的Active Directory目录服务中同步已有的用户和组信息到网络B中的一个数据库,以实现用户的登录信息(用户名、用户基本信息、组成员信息,包括密码)能在同一位置进行创建和维护。同步要经由Internet。两个网络的安全策略独立,但都允许常用端口(20212380443)的通信。

2.     组成员关系要同步到网络B中的数据库。在网络A中添加/删除/修改的用户和组要被同步到网络B中的数据库中。

3.     须支持三种同步形式:

a)       自动同步(按天、星期或月)

b)       手动同步(Active Directory管理员手动启动同步)

c)        网络A的管理员通过提供的工具(此项目的一部分)将用户和组信息到处到一个文件,然后访问网络BWeb服务器,将此文件上传到Web服务器并进行导入。

问题:

1.     请判断出此项目中的需解决的几个技术层面的主要问题

2.     并根据您对软件设计的经验列出在此项目中要使用的技术要点

3.     设计出项目的应用程序架构

4.     填出图形中?处应该使用什么来接收同步的数据

注:不需要设计表结构

4.2      问题二

信息管理系统在构架、设计上、模块上有很多相似之处,建立可复用的产品框架在公司层面有很大的意义。

假设你需要设计一个系统的基础框架(framework)。该框架的目的是解决信息管理系统的一些通用的问题(例如,用户管理,用户认证等),其本身并不解决具体的业务问题,也不会被用户直接使用。后续开发的多个应用(application)将搭建在这个平台上,以便达到开发成本最小化、效率/质量最优化。

请根据你的理解,画出这个框架的结构图,并在图中说明:

1.     列出该基础框架应该包含的模块(或框架需要解决的问题)

2.     应用以何种方式和这个框架整合?

3.     应用间的通信如何处理?

posted on 2008-04-29 22:36  往事少年  阅读(390)  评论(1)    收藏  举报