Member 14559183 Ответов: 2

Обзор требований мы требуем, чтобы вы написали “консольное приложение C#” для базового приложения customer relationship manager (CRM). Нужно извлечь данные из CSV файла


Requirements Overview
We require you to write a “C# Console Application” for a basic Customer Relationship Manager (CRM) application.
As Pinewood write software that is used for Dealership Management in the Automotive industry, this CRM will be targeted towards this scenario.
Requirements Analysis
You have been provided with a text document containing customer and vehicle information. This document will need to be imported into the application, processed and then stored in such a way that various reports can be run on this data.
Data
Customer Information
•	Forename
•	Surname
•	Date of Birth
Vehicle Information
•	Manufacturer
•	Model
•	Registration number
•	Registration date
•	Engine size (in cc)
•	Owner
•	InteriorColour (Car only)
•	Has Helmet Storage (Motorcycle only)
Required Relationships
•	Customers can have 1 to many vehicles.
•	Vehicle must have exactly one owner.
•	Vehicle type cannot be changed once it is created.
Reports
•	We will require reports to be designed to contain:
o	All known customers and any vehicles they own.
o	All customers between the age of 20 and 30.
o	All Vehicles registered before 1st January 2010.
o	All Vehicles with an engine size over 1100.
Expected demonstrable skills
•	Good understanding of C#.
•	Good understanding of Object Orientated (OO) principles.
•	Good understanding of relational data principles.
•	Reusable code – low coupling, high cohesion.


Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Graduate_Test_Brief
{
    class Program
    {
        
        static void Main(string[] args)
        {
            Console.Write(string.Join(" ", GetReport("Joe", @"..\..\Assets\Customer Information.csv", 1)));
            Console.Read();
        }

        public static string[] GetReport(string data, string filePath, int coloumn)
        {
            string[] reportNotFound = { "Report Not Found" };
            try
            {
                string[] lines = File.ReadAllLines(@"..\..\Assets\Customer Information.csv");//File.ReadAllText(@"..\..\Assets\Customer Information.csv");
                for (int i = 0; i < lines.Length; i++)
                {
                    string[] fields = lines[i].Split(',');
                    if (fields[coloumn].Equals(data))
                    {
                        Console.WriteLine("Report Found");
                      
                        return fields;
                    }
                }
                return reportNotFound;

            }
            catch (Exception e)
            {
                Console.WriteLine("File Could Not Be Found");
                Console.WriteLine(e.Message);
                return reportNotFound;
            }
        }
    }
}

ZurdoDev

А теперь вы должны задать вопрос.

Member 14559183

привет,
взгляните на отчеты мне просто нужно это сделать но в этой программе я могу получить только 1 данные в то время как я хочу получить больше 1

Dave Kreskowiak

Эммм....да.

Мне неприятно говорить вам это, но если вы не можете написать этот код без посторонней помощи, вы не получите эту работу.

Написанный вами код не демонстрирует ни одного из "ожидаемых доказуемых навыков".

У вас нет ничего, показывающего какие-либо объектно-ориентированные принципы, никаких отношений с базой данных (для этого вам не нужна база данных!), никакой модели данных вообще и ничего, что отделяет что-либо от чего-либо еще.

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
Мы требуем, чтобы вы написали “консольное приложение C#” для базового приложения Customer Relationship Manager (CRM).

В CRM все зависит от баз данных.
Фрагмент кода, который вы показываете, даже отдаленно не связан с базой данных.
Цитата:
Этот документ должен быть импортирован в приложение, обработан и затем сохранен таким образом, чтобы на этих данных можно было запускать различные отчеты.

код настолько далек от требований, что единственное, что нужно сделать, - это отказаться и начать все заново с нуля.


Member 14559183

Мне не нужно использовать базу данных, все данные предоставляются в CSV-файле, который я должен извлечь из данных из этого, и если мне нужно использовать базу данных, то у меня нет вопросов, потому что я использую базу данных много времени, и я знаю, что делать в базе данных, но я никогда не использовал CSV или excel файл раньше, чтобы делать такие вещи.

Patrice T

Как вы планируете продемонстрировать "хорошее понимание принципов реляционных данных"?
без баз данных ?

Member 14559183

Важные соображения, прежде чем вы начнете
В этом примере требуется два поддерживаемых типа транспортных средств: автомобили и мотоциклы.
Поскольку это должно быть произведено в консольном приложении, никакой графический интерфейс не ожидается и не требуется. Данные, импортированные из CSV, не должны сохраняться вне среды выполнения приложения; нет необходимости создавать базу данных.
Если вы хотите создать систему меню, которая позволяет независимо запускать различные отчеты, то вы можете это сделать, но это не обязательно.
Все отчеты должны быть доступны либо через меню, либо автоматически запускаться при выполнении кода.

Мы ожидаем, что этот тест продлится около 2-3 часов, но вы можете взять больше или меньше, если хотите. Если у вас нет времени, то, пожалуйста, не стесняйтесь включать заметки, которые подробно описывают, что вы будете делать дальше или что вы хотели бы сделать, если бы у вас было больше времени.

Удачи.





Это дальнейшие строки, и я также был шокирован тем, что в этом случае мне не нужно использовать базу данных

Рейтинг:
1

OriginalGriff

Я бы настоятельно предложил две вещи:

1) Внимательно прочитайте требования. Вы, кажется, пропустили довольно много из них. Обратите особое внимание на все в разделе "ожидаемые доказуемые навыки", потому что, насколько я вижу, вы не продемонстрировали ни одного из них вообще в этом коде. Честно говоря, ваш код выглядит так, как будто его написал студент недели три-четыре назад, а не кто-то, претендующий на реальную работу.

2) Не ждите, что другие выручат вас и получат пропуск на собеседование, которого вы не заслуживаете. Помните, что это фактически экзамен, поэтому заставить других сделать это за вас - это обман, который нечестен по отношению к вам (так как вы провалите собеседование, если получите его с нашим кодом; нечестен по отношению к тем, кто может сделать это для себя; нечестен по отношению к компании (интервью-это нечестно). дорогойХуже того, если вы пробьетесь через собеседование, одному из нас, возможно, придется работать с вами в течение короткого времени, пока вы были в компании* и никто не любит "таскать" коллег. Если вы не можете выполнить эту работу, не подавайте заявку на нее!

* Коротко, потому что вас быстро раскусят и вышвырнут при первой же возможности.