Hitcents C#Programming Test

This test is designed to evaluate generalC# and Xamarin development skills. Prior knowledge of C# or Xamarin tools isnot a requirement, we are really evaluating your skills to learn quickly, use searchengines and StackOverflow, and problem solve—all on your own.

Begin by installing Xamarin.Android andXamarin Studio here: http://xamarin.com/android

The installer will take some time, but willinstall Java, the Android SDK, and everything you need to take this test. Itshould work on a Mac or Windows. After using Xamarin Studio with Androidprojects, you may get a prompt saying you must purchase a license, select theoption to start a 30-day trial.

General Rules:

  • You may use the internet, books, or any other programming-related material.  Open source projects available on Github, CodePlex, etc. are also fine to use to assist you on each question.
  • Points will be deducted for solutions that include poor programming practices, excessive RAM or CPU usage, or could be considered slow and non-optimized.  Likewise, bonus points may be awarded for excellent software design and quick executing code.
  • You may complete any question in any order, although some questions may build onto answers from previous questions.

Question 1 (Sorting data):

  • Create a C# console project in Xamarin Studio. This will just run natively on your desktop.
  • Prompt the user to enter several “words” separated by spaces
  • When the user presses <enter>, sort the words alphabetically
  • Print out the sorted words, and prompt the user for a new set of words
  • The application will continue to prompt for more words, until the user types the word “exit”
  • Make your program user-friendly, your text printed at the console should be nicely formatted and easy to understand

Question 2 (Importing data):

  • Create a C# console project in Xamarin Studio. This will just run natively on your desktop.
  • You are given a large text file containing address data for many different stores in the United States.  Look in “Question 2\Stores.txt”, you may also see the layout of this file described in “Stores.xls”.
  • Create the necessary tables to store the information in SQLite. Use proper data types, primary keys, indexes, etc., as your schema design is taken into account.  Make sure to trim blank spaces out of each column, and handle the possibility of bad data.
  • Create a console application that will load this text file into SQLite, you must load the file and insert each row from C# code.  No import tools or classes can be used, you will have to read the file from C# and parse the data by hand (or via an open source project if desired).  You may use any method you wish to connect to the database.
  • Part of the challenge in this problem is to find an appropriate C# library for working with SQLite and integrate it into your project.
  • Speed is a priority, so make sure the time it takes for the entire file to load is printed in the console window on completion.  Full time format in HH:MM:SS.mmm is preferred.

Question 3 (Importing more data):

  • Create a C# console project in Xamarin Studio. This will just run natively on your desktop.
  • Building onto your existing SQL database, you will have to keep track of order information for each store from Question 2.
  • You will have to parse the Orders.xml file located in the “Question 3” folder.  You may use any method you wish for parsing the xml.  You should not have to worry about malformed xml.
  • An order contains the following:

◦  A GUID as a primary key or ID

◦  The store's ID number

◦  Total Items in the order

◦  Total Cost of the order in USdollars

◦  Up-to a 32 character name of aperson tied to the order

◦  A Yes/No value that says if theorder was a “rush” order.

◦  Date and time of the order

  • Import this xml into a new table in the same database as Question 2, use appropriate data types, as hard disk space needs to be kept at minimum while not affecting rounding, if someone decided to run queries that total the rows in your database they should be able to get accurate answers.
  • Also print out the time it takes for your code to run as you did in Question 2.
  • BONUS: Set up a proper foreign key relationship from your orders to your stores in your database.  If someone ran a query to delete a store, SQLite should automatically delete any orders by that store.  Queries will also be made that lookup orders by order id, customer, and date.  Make indexes to speed up queries in this manner.

Question 4 (Web Requests):

  • Create a C# console project in Xamarin Studio. You can also choose to make a Xamarin.Android app if you prefer.
  • You are trying to discover a password for a login on a website, at the url: https://www.hitcents.com/csharptest.cgi?username=*&password=* (replace the asterisks with the username and password)
  • Luckily the web site is not very secure, and is limited to a 2 letter password that can only contain letters, numbers, or the underscore “_” and you know that a valid username is “john.smith”.  You also know that it is not case sensitive.
  • Make a console application that hits the web page, guessing every combination of passwords for “john.smith”.  Print out the correct password when discovered.  The page will return either “SUCCESS” or “FAIL”.
  • Each web request could potentially fail at a networking level, so make sure you handle the error gracefully and retry the password combination in such cases.
  • To speed up the time it takes for your program to run, make up to 5 or more requests at a time on separate threads, making sure to stop when the password is found.
  • Record the overall time it takes your program to run as in Question 1 and Question 2.

 

Question 5 (Xamarin.Android):

  • Create a Xamarin.Android project in Xamarin Studio.
  • Build a simple Android app using implementing any of the following concepts:

◦  Navigating to differentactivities

◦  Action Bar

◦  Android fragments

◦  ListView and adapters

◦  Using the camera or photolibrary

  • You can build any application you want, choose something to show off your abilities for making native Android apps with Xamarin.

Question6 (Java binding project):

  • Create a Xamarin Java Bindings project in Xamarin Studio.
  • Setup a binding for the China Mobile SDK included with this test. Documentation is also included.
  • Use “Metadata.xml” and rewrite any relevant parameter names, because they default to p0, p1, p2, etc.
  • Setup a sample application to make test purchases through the SDK.

某外企mono for android试题的更多相关文章

  1. 【月入41万】Mono For Android中使用百度地图SDK

    借助于Mono For Android技术,.Net开发者也可以使用自己熟悉的C#语言以及.Net来开发Android应用.由于Mono For Android把Android SDK中绝大部分类库都 ...

  2. Android(1)—Mono For Android 环境搭建及破解

    0.前言 最近公司打算开发一款Android平台的简单报表查询软件,因本人之前一直是.NET开发的,和领导商定之后决定采用Mono For Android 进行开发,暂时采用破解版进行开发: 下文是记 ...

  3. Android(4)—Mono For Android 第一个App应用程序

    0.前言 年前就计划着写这篇博客,总结一下自己做的第一个App,却一直被新项目所累,今天抽空把它写完,记录并回顾一下相关知识点,也为刚学习Mono的同学提供佐证->C#也是开发Android的! ...

  4. mono for android 获取手机照片或拍照并裁剪保存

    axml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

  5. mono for android Json 上传文件

    void button_Click(object sender, EventArgs e) { string Url = "上传地址,服务器端负责接收"; byte[] fbyte ...

  6. mono for android 用ISharedPreferences 进行状态保持 会话保持 应用程序首选项保存

    由于项目需要 要保持用户登录状态 要进行状态保持 用途就好像asp.net的session一样 登录的时候进行保存 ISharedPreferences shared = GetSharedPrefe ...

  7. mono for android 自定义titleBar Actionbar 顶部导航栏 修改 样式 学习

    以前的我是没有做笔记的习惯的,学习了后觉得自己能记住,但是最近发现很多学的东西都忘记了,所有现在一有新的知识,就记下来吧. 最近又做一个mono for android 的项目 这次调整比较大,上次做 ...

  8. mono for android学习过程系列教程(1)

    直接进入主题,关于mono for android的学习,首先配置好环境,如何配置环境,度娘谷歌一大堆,记得使用破解版. 我自己是百度“黑马四期”传智播客的视频,里面有破解版开发环境的软件. 今天直接 ...

  9. mono for android学习过程系列教程(2)

    接着上一讲继续开始写,今天介绍的是安卓的基本组成结构. 在大多数情况下,MONO FOR ANDROID的命名空间和Android的命名空间 是互相映射的.有时候需要大小写,非字母数字字符的用法以及名 ...

随机推荐

  1. "Unable to get image data from canvas because the canvas has been tainted by cross-origin data"问题产生原因及解决办法

    一.问题描述: 在支持html5的浏览器中运行javascript脚本,脚本主要是操作网页上的标签canvas,出错的操作为, getImageData(img,……), chrome 下出错信息为: ...

  2. .NET开源工程推荐(Accord,AForge,Emgu CV)

         本人用C#开发了一些项目,下面的开源工程给了我很大的帮助——详细的源代码介绍加丰富的实例运用,是非常不错的学习资源,分享给大家,同时附上我的相关开发项目.    Accord.NET The ...

  3. SlidesJS 3.0.4 在手机上遇到的一些问题及解决办法

    SlidesJS 3.0.4 http://slidesjs.com 在手机上遇到的一些问题及解决办法 1.手机上打开有sliderjs的页面后, 切换到别的页面再回来时, sliderjs部分不能滑 ...

  4. Linux 信号量互斥编程

    所谓信号量,其实就是一个数字.内核给这个数字赋予一定的含义,让它等于不同的值时所表示的意义不同.这样就可以用它来标示某种资源是否正被使用.信号的分类其实挺多的,主要还是二值和计数器.这里讨论二值 现在 ...

  5. bootstrap轮播组件,大屏幕图片居中效果

    在慕课网学习bootstrap轮播组件的时候,了解到轮播的图片都放在了类名为item下的img中 视频中老师对图片自适应采用给图片img设置width=100%完成,然而这样自适应处理图片在不同屏幕中 ...

  6. 创建对象的两种方法: new 和 面向对象(对象字面量)及对象属性访问方法

    创建对象的两种方法: new 和 面向对象(对象字面量)用 new 时:var o = new Object();o.name = "lin3615";alert(o.name); ...

  7. 1、Python django 框架下的word Excel TXT Image 等文件的上传

    1.文件上传(input标签) (1)html代码(form表单用post方法提交) <input class="btn btn-primary col-md-1" styl ...

  8. Web动效研究与实践

    随着CSS3和HTML5的发展,越来越多狂拽炫酷叼炸天的动效在网页设计上遍地开花,根据最新的浏览器市场份额报告,IE6的份额已经降到了5.21%,这简直是一个喜大普奔的消息,做动效可以完全不care低 ...

  9. MyISAM 和 InnoDB 讲解[转]

    MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处 ...

  10. WPF内嵌代码和后台代码简单混合使用

    下面实例展示了WPF内嵌代码和后台代码混合使用,一个简单基础的实例: xaml文件: <Window x:Class="WPF内嵌代码和后台代码混合使用.MainWindow" ...