コード例 #1
0
TEST(AddPhoneNumber, AddPhoneNumberTest2){
  Students* students = new Students();
  students->addPhoneNumbers(0, "fsadhfdkasdfhl");
  students->addPhoneNumbers(0, "801");
  students->addUser("Hi", 0);
  EXPECT_EQ("801", students->phoneForName("Hi"));

}
コード例 #2
0
TEST(AddPhoneNumber, AddPhoneNumberTest1){
  Students* students = new Students();
  students->addUser("Mr. Plow", 12121);          //Simpsons reference?
  students->addPhoneNumbers(12121, "801-KL5-3226");

  EXPECT_EQ("801-KL5-3226", students->phoneForName("Mr. Plow"));

  delete students;
}
コード例 #3
0
TEST(AddUser, AddUserTest6){
  Students* students = new Students();
  
  students->addUser("Quinn", 0);
  students->addUser("Quinn", 0);

  EXPECT_EQ(1, students->numberOfNames());

  delete students;
}
コード例 #4
0
TEST(RemoveStudentTest, RemoveStudentTest1){
  Students* students = new Students();
  students->addUser("Jimmy", 5);
  students->removeStudent("Jimmy");
  EXPECT_EQ(0, students->numberOfNames());

  EXPECT_THROW(students->removeStudent("Billy"), std::out_of_range);

  
  // TODO: Figure this out
  std::vector<std::string> someNames();
  //someNames.push_back("Jimmy");
  //someNames.push_back("Bobby");
  
  //EXPECT_NO_THROW(students->removeList(someNames));

  delete students;
}
コード例 #5
0
TEST(GradeForName, GradeForNameTest2){
  Students* students = new Students();
  students->addUser("Quinn", 0);
  students->addGrade(0, ' ');

  EXPECT_EQ(' ', students->gradeForName("Quinn"));

  students->addUser("Andre", 1);
  students->addGrade(1, ' ');

  EXPECT_EQ(students->gradeForName("Quinn"), students->gradeForName("Andre"));

  delete students;
}
コード例 #6
0
//Edge case tests for AddUser
TEST(AddUser, AddUserTest1){
  Students* students = new Students();
  students->addUser("Quinn", 0);
  EXPECT_EQ(0, students->idForName("Quinn"));
  
  //we should get a positive number because it is an unsigned int on the map.
  students->addUser("Andre", -1);
  EXPECT_EQ(true, students->idForName("Andre") > 0);

  //not sure if this should throw an exception or not.
  students->addUser("", 5);
  EXPECT_EQ(5, students->idForName("")); 

  //exception?
  students->addUser(" ", 2);
  EXPECT_EQ(2, students->idForName(" "));

  delete students;
}
コード例 #7
0
ファイル: main.cpp プロジェクト: Macleopard/MyProjects
int main(int argc, char *argv[])
{
	SetConsoleTitle(TEXT("Students" ));
	// declaration of new variables
	string st_name,st_last_name;
	int final_scores[5] = {4,4,5,5,5};
	float average_ball;

	cout << "Enter Student name: ";
	cin >> st_name;
	cout << "Enter Student last name: ";
	cin >> st_last_name;
	Students *Student = new Students(st_name,st_last_name);
	cout << "Enter Student scores: ";
	for (int i=0;i<5;i++)
	{
		cin >> final_scores[i];
	}

	Student->set_student_name(st_name);
	Student->set_student_last_name(st_last_name);
	Student->set_student_score(final_scores);
	average_ball = Student->calculate_average_ball(final_scores);

	cout << "Current profile of student: " << endl;
	cout << Student->get_student_name() << endl;
	cout << Student->get_student_last_name() << endl;
	cout << Student->get_average_ball() << endl;
	cout << endl;
	Student->show_scores();
	cout << "Saving current profile to file..." << endl;
	Student->save_profile();
	delete Student;
	system("pause");
	return EXIT_SUCCESS;
}
コード例 #8
0
int main(int argc, char* argv[])
{
	students.loadStudents();

	std::cout << "Welcome to the student catalog thing" << std::endl;
	while (true)
	{
		std::cout << "Input a command:" << std::endl;
		std::string toPass = "";
		std::getline(std::cin, toPass);

		if (toPass == "exit")
		{
			break;
		}

		ParseStringToCommand(toPass);
	}
	return 0;
}
コード例 #9
0
//specific tests for AddUser that dont really have to do with edge cases.
TEST(AddUser, AddUserTest2){
  Students* students = new Students();
  // Overwrites the user's place
  students->addUser("Quinn", 0);
  students->addUser("Andre", 0);
  EXPECT_EQ(0, students->idForName("Andre"));

  students->addUser("David Johnson", 3);
  EXPECT_EQ(3, students->idForName("David Johnson"));
  //here, the test fails because the AddUser method is a little messed up.
  //we want to have only 1 person with the ID of 0, no matter the name.
  //instead we get Quinn, who was added first, then Andre was added in his place
  //and finally David Johnson was added last.  When overwritting an ID, the count 
  //of how many people on the map is not updated properly.
  EXPECT_EQ(2, students->numberOfNames());

  delete students;
}
コード例 #10
0
int _tmain(int argc, char* argv[])
{
	students.loadStudents();

	std::cout << "Welcome to the student catalog thing" << std::endl;
	while (true)
	{
		std::cout << "Input a command:" << std::endl;
		std::string toPass = "";
		std::getline(std::cin, toPass);

		if (toPass == "exit")
		{
			break;
		}

		switch (VerifyInputIntegrity(toPass))
		{
			case None:
				ParseStringToCommand(toPass);
				break;
			case InvalidCharacter:
				std::cout << "Invalid chracter in input" << std::endl;
				break;
			case InvalidFormat:
				std::cout << "Invalid format detected" << std::endl;
				break;
			default:
				std::cout << "Unknown error" << std::endl;
				break;
		}

		
	}
	return 0;
}
コード例 #11
0
ファイル: matrixU.cpp プロジェクト: dvirazulay/homework
int main(int argc, char* argv[]) {
    ifstream file;
    string data;
    vector<string> tokens;
    Courses courses;
    Students students;

    file.open("courses.conf");
    if (!file.is_open()) {
        cout << "Failed opening courses.conf." << endl;
        return 0;
    }
    while (getline(file, data)) {
        tokens = str_split(data, ',');
        // data: WEEKDAY,COURSE-ID,SPACE
        Course* course = new Course(*(tokens[0].c_str()) - '0', 
                                    tokens[1], 
                                    atoi(tokens[2].c_str()));
        courses.push_back(course);
    }
    file.close();

    file.open("students.conf");
    if (!file.is_open()) {
        cout << "Failed opening students.conf." << endl;
        return 0;
    }

    while (getline(file, data)) {
        tokens = str_split(data, ',');

        // data: STUD-ID,COURSE-ID1,COURSE-ID2,...,COURSE-IDN
        Student* student = new Student(tokens[0]);
        if (tokens.size() > 1) {
            for (size_t i = 1; i < tokens.size(); ++i) {
                for (size_t j = 0; j < courses.size(); ++j) {
                    if (courses[j]->getCourseId() == tokens[i]) {
                        if (courses[j]->addStudent(student)) {
                            // we have found a room for this student
                            // in the course he requested, so we are breaking
                            // the search for room.
                            // NOTE: we are not break;'ing when we find 
                            // a matching course because there might be 
                            // room in another day for this course.
                            break;
                        }
                    }
                }
            }
        }

        students.push_back(student);
    }
    
    file.close();

    // clean output files
    ofstream output;
    output.open("courses.out");
    output.close();
    output.open("students.out");
    output.close();

    for (size_t i = 0; i < courses.size(); ++i) {
        courses[i]->print("courses.out");
    }

    for (size_t i = 0; i < students.size(); ++i) {
        students[i]->print("students.out");
    }

    for (size_t i = 0; i < courses.size(); ++i) {
        delete courses[i];
        courses[i] = 0;
    }

    for (size_t i = 0; i < students.size(); ++i) {
        delete students[i];
        students[i] = 0;
    }

    return 0;
}
コード例 #12
0
TEST(AddUser, AddUserTest4){
  Students* students = new Students();
  students->addUser("Andre", 12);
  students->addUser("Andre", 13);

  EXPECT_EQ(13, students->idForName("Andre"));
  EXPECT_EQ(1, students->numberOfNames());

  students->addUser("Quinn", 21);
  students->addUser("Quinn", 23);
  EXPECT_EQ(23, students->idForName("Quinn"));
  EXPECT_EQ(2, students->numberOfNames());

  // No two users should ever have the same ID
  students->addUser("Quinn", 13);
  EXPECT_EQ(2, students->numberOfNames());
  EXPECT_EQ(13, students->idForName("Quinn"));
  //here, 2 users have the same ID with different names.
  
  EXPECT_NE(students->idForName("Andre"), students->idForName("Quinn")); 
  
  delete students;
}
コード例 #13
0
TEST(AddUser, AddUserTest3){
  Students* students = new Students();
  int user_count = 0;
  for(; user_count < 10; user_count++)
    students->addUser("Student " + std::to_string(user_count), user_count);

  EXPECT_EQ(user_count, students->numberOfNames());
  
  students->removeStudent("Student 0");
  students->removeStudent("Student 1");
  user_count -= 2;

  EXPECT_EQ(user_count, (int)students->numberOfNames());

  Students* moreStudents = new Students(); 
  moreStudents->addUser("Jim", 11);
  moreStudents->addUser("Jim", 12);
  
  EXPECT_NE(2, (int)moreStudents->numberOfNames());    //should be 2 instead of 1. 
  //it is possible to have 2 names with different IDs.
  //however, when 2 names with different IDs are present, 
  //the map only updates the numberOfNames  once.
  EXPECT_EQ(12, moreStudents->idForName("Jim"));
 
  moreStudents->removeStudent("Jim");
 
  //since Jim was in 2 spots in the map, he should be deleted at both spots?
  //this is true, and the count is correct here.  When Jim is deleted, he gets
  //deleted at both spots.
  EXPECT_EQ(0, (int)moreStudents->numberOfNames());

  delete students;
  delete moreStudents;
}
コード例 #14
0
TEST(RemoveListTest, RemoveListTest1){
  Students* students = new Students();

  std::vector<std::string> names;
  names.push_back("Andre");
  names.push_back("Jim");
  names.push_back("Quinn");

  //students->addUser("Andre", 0);
  //students->addUser("Jim", 1);
  //students->addUser("Quinn", 2);
  for(int i = 0; i < 3; i++){
    students->addUser(names[i], i);
  }
  students->addUser("Joe", 4);
  students->addUser("Billy", 5);
  students->addUser("Bob", 6);
  
  EXPECT_EQ(6, students->numberOfNames());
  EXPECT_TRUE(students->nameExists("Quinn"));
  EXPECT_TRUE(students->nameExists("Andre"));
  EXPECT_TRUE(students->nameExists("Jim"));
  
  students->removeList(names);
  
  EXPECT_FALSE(students->nameExists("Quinn"));
  EXPECT_FALSE(students->nameExists("Andre"));
  EXPECT_FALSE(students->nameExists("Jim"));
  EXPECT_EQ(3, students->numberOfNames());
  
  delete students;
}
コード例 #15
0
ファイル: main.cpp プロジェクト: qqchen/paike
bool SplitStudents()
{
	ofstream ofs;
	ofs.open("log.txt");
	static int tmpMatrix[3][3] = { 0 };

	for (size_t i = 0; i < TypeNum; i++)
	{
		Students* pp = pStu[i];
		cout << "processing " << pp->GetName() << "..." << endl;

		for (size_t mi = 0; mi < 3; mi++)
		{
			tmpMatrix[mi][0] = copySubjectMatrix[mi][pp->m_s1];
			tmpMatrix[mi][1] = copySubjectMatrix[mi][pp->m_s2];
			tmpMatrix[mi][2] = copySubjectMatrix[mi][pp->m_s3];
		}

		//if (ofs.is_open())
		//{
		//	ofs << "processing " << pp->GetName() << "..." << endl;
		//	ofs << "original:" << endl;
		//	for (size_t mi = 0; mi < 3; mi++)
		//	{
		//		ofs << tmpMatrix[mi][0] << " " << tmpMatrix[mi][1] << " " << tmpMatrix[mi][2] << endl;
		//	}
		//	ofs << endl;
		//}

		int num = pp->m_stuNum;
		int index = 0;
		while (num > 0)
		{
			index = (rand() % 6);
			bool minusSuccess = false;
			for (size_t identityIndex = 0; identityIndex < 6; identityIndex++)
			{
				int ii = (index + identityIndex) % 6; // 不断变换单位矩阵

				// 检查根据当前单位矩阵是否有学生可以分
				bool hasStudent = true;
				for (size_t ri = 0; ri < 3; ri++)
				{
					hasStudent = true;
					for (size_t ci = 0; ci < 3; ci++)
					{
						if (identityMatrix[ii][ri][ci] == 1)
							hasStudent = tmpMatrix[ri][ci] > 0;
					}
					if (!hasStudent)
						break;
				}

				if (!hasStudent)
					continue;
				else
				{
					// 分学生
					for (size_t ri = 0; ri < 3; ri++)
					{
						for (size_t ci = 0; ci < 3; ci++)
						{
							if (identityMatrix[ii][ri][ci] == 1)
							{
								tmpMatrix[ri][ci]--;
								classes[ri][pp->GetSubject(ci)].Push(pp->GetName(), pp->m_stuNum - num); // 分学生
							}
						}
					}
					num--;
					minusSuccess = true;
					break;
				}
			}
			// 由于某个班级人数分完了导致分不了,此时需要调整班级人数来容纳新的学生
			// 这里可以通过添加班级人数的最大误差来限制人数
			if (!minusSuccess)
			{
				vector<pair<int, int>> tmpIndex; // 有些课时不排课(用-1表示),找出来
				for (size_t ii = 0; ii < 3; ii++)
				{
					for (size_t jj = 0; jj < 3; jj++)
					{
						if (tmpMatrix[ii][jj] == -1)
							tmpIndex.push_back(pair<int, int>(ii, jj));
					}
				}

				int iii = 0;
				for (iii = 0; iii < 6; ++iii)
				{
					int sum = 0;
					for (int jjj = 0; jjj < tmpIndex.size(); ++jjj)
					{
						sum += identityMatrix[iii][tmpIndex[jjj].first][tmpIndex[jjj].second];
					}
					if (sum == 0)
						break;
				}

				for (size_t ri = 0; ri < 3; ri++)
				{
					for (size_t ci = 0; ci < 3; ci++)
					{
						if (identityMatrix[iii][ri][ci] == 1)
						{
							if (tmpMatrix[ri][ci] == 0)
							{
								bool update = false;
								for (size_t ti = 0; ti < 3; ti++)
								{
									if (tmpMatrix[ti][ci] > 2)
									{
										// 调整班级人数来容纳新的学生,此处应该添加限制
										tmpMatrix[ti][ci] -= step;
										tmpMatrix[ri][ci] += (step - 1);
										classes[ri][pp->GetSubject(ci)].Push(pp->GetName(), pp->m_stuNum - num); // 分学生
										// 更新班级人数
										SubjectMatrix[ti][ci] -= step;
										SubjectMatrix[ri][ci] += step;
									}
								}
							}
							else
							{
								tmpMatrix[ri][ci]--;
								classes[ri][pp->GetSubject(ci)].Push(pp->GetName(), pp->m_stuNum - num);  // 分学生
							}
						}
					}
				}
				num--;
			}

			//if (ofs.is_open())
			//{
			//	for (size_t mi = 0; mi < 3; mi++)
			//	{
			//		ofs << tmpMatrix[mi][0] << " " << tmpMatrix[mi][1] << " " << tmpMatrix[mi][2] << endl;
			//		//cout << tmpMatrix[mi][0] << " " << tmpMatrix[mi][1] << " " << tmpMatrix[mi][2] << endl;
			//	}
			//	ofs << endl << endl;
			//}
		}

		// 更新数据
		for (size_t mi = 0; mi < 3; mi++)
		{
			copySubjectMatrix[mi][pp->m_s1] = tmpMatrix[mi][0];
			copySubjectMatrix[mi][pp->m_s2] = tmpMatrix[mi][1];
			copySubjectMatrix[mi][pp->m_s3] = tmpMatrix[mi][2];
		}
	}

	// 保存数据
	if (ofs.is_open())
	{
		// 分班情况
		ofs << "splite students : " << endl << endl;
		for (size_t i = 0; i < 3; i++)
		{
			for (size_t j = 0; j < 6; j++)
			{
				ofs << "i, j : " << i << ", " << j << endl << endl;
				for (size_t k = 0; k < classes[i][j].m_students.size(); k++)
				{
					ofs << classes[i][j].m_students[k] << endl;
				}
			}
			ofs << endl << endl;
		}

		ofs << endl;
		// 更新后的班级人数
		for (size_t i = 0; i < 3; i++)
		{
			for (size_t j = 0; j < 6; j++)
			{
				ofs << SubjectMatrix[i][j] << " ";
			}
			ofs << endl << endl;
		}

		ofs << endl;
		// 每天每个科目分多少人
		for (size_t i = 0; i < 3; i++)
		{
			for (size_t j = 0; j < 6; j++)
			{
				ofs << classes[i][j].m_students.size() << " ";
			}
			ofs << endl << endl;
		}

	}
	ofs.close();
	return true;
}
コード例 #16
0
TEST(NameExistsTest, NameExistsTest2){
  Students* students = new Students();
  uint id = 0;
  uint id2 = 1;
  std::string quinn = "Quinn";
  std::string andre = "Andre";
  std::string phone = "801";
  std::string phone2 = "435";
  char grade = 'A';
  char grade2 = 'A';

  students->addUser(quinn, id);
  students->addUser(andre, id2);
  EXPECT_EQ(id, students->idForName(quinn));
  EXPECT_EQ(id2, students->idForName(andre));
  
  students->addPhoneNumbers(id, phone);
  students->addPhoneNumbers(id2, phone2);

  EXPECT_EQ(phone, students->phoneForName(quinn));
  EXPECT_EQ(phone2, students->phoneForName(andre));

  students->addGrade(id, grade);
  students->addGrade(id2, grade2);

  EXPECT_EQ(grade, students->gradeForName(quinn));
  EXPECT_EQ(grade2, students->gradeForName(andre));
  EXPECT_TRUE(students->fullRecord(quinn, id, phone, grade));
  EXPECT_TRUE(students->fullRecord(andre, id2, phone2, grade2));
  EXPECT_TRUE(students->nameExists(quinn));
  EXPECT_TRUE(students->nameExists(andre));

  std::string bill = "Bill";
  uint id3 = 3;
  students->addUser("Bill", id3);
  students->addPhoneNumbers(id3, phone);
  students->addGrade(id3, grade);

  EXPECT_TRUE(students->fullRecord(bill, id3, phone, grade));
  EXPECT_TRUE(students->nameExists(bill));

  delete students;
}
コード例 #17
0
TEST(AddUser, AddUserTest5){
  uint id = 12;
  std::string andre = "Andre";
  std::string aPhone = "801-867-5309";
  char aGrade = 'A';

  std::string quinn = "Quinn";
  std::string qPhone = "801-555-5555";
  char qGrade = 'B';

  // Shows what happens when two users have the same ID
  Students* students = new Students();
  students->addUser(andre, id);
  students->addPhoneNumbers(students->idForName(andre), aPhone);
  students->addGrade(students->idForName(andre), aGrade);

  students->addUser(quinn, id);
  students->addPhoneNumbers(students->idForName(quinn), qPhone);
  students->addGrade(students->idForName(quinn), qGrade);

  EXPECT_TRUE(students->fullRecord(andre, id, aPhone, aGrade));
  EXPECT_TRUE(students->fullRecord(quinn, id, qPhone, qGrade));
  EXPECT_NE(students->gradeForName(quinn), students->gradeForName(andre));
  EXPECT_NE(students->phoneForName(quinn), students->phoneForName(andre));
  // 2 different students should not have the same ID in the first place,
  // here, 2 different students with the same ID have the same grade when each grade
  // should be different. This must mean that when we add 2 users with the same ID
  // the first one is overwritten.  

  delete students;
}
コード例 #18
0
//this function takes the command from the cmd into commands that the program knows
void ParseCommand(Command cmd, std::vector<std::string> payload)
{
	if (cmd == Invalid)
	{
		printMessage("Invalid command.");
	}

	//adds a student
	else if (cmd == Add)
	{
		//Add a student
		if (payload.size() != 6)
		{
			//bad news throw the user an error.
			printMessage("Command add recieved incorrect # of arguments.");
		}
		else
		{
			//constuct the student
			Student toAdd = Student(payload[0], payload[1], payload[2],
				std::stoi(payload[3]), std::stoi(payload[4]), std::stoi(payload[5]));

			//make sure that id dosent exsist
			std::vector<Student> toCheck = students.searchStudents(students.ID, toAdd.getUID());

			//if to check == 0 then student doesnt exsist
			if (toCheck.size() < 100)
			{
				//make sure the student is valid
				if (!toAdd.isValidStudent())
				{
					printMessage("Invalid student attribute.");
					return;
				}

				//add
				students.addStudent(toAdd);
				students.saveStudent();
				std::cout << toAdd.getName() + " successfully added" << std::endl;
			}
			else
			{
				std::cout << "Student already exists" << std::endl;
			}
		}
	}

	//remove a student
	else if (cmd == Remove)
	{
		//see if student exsists
		std::vector<Student> toCheck = students.searchStudents(students.ID, payload[0]);

		//see if student exsist
		if (toCheck.size() != 0)
		{
			std::cout << "Student does not exist." << std::endl;
		}
		else
		{
			//delete student
			students.deleteStudent(toCheck[0]);
			students.saveStudent();
			std::cout << "Student deleted successfully" << std::endl;
		}
	}

	//search for student
	else if (cmd == Search)
	{
		//make sure there are arguments 
		if (payload.size() == 0)
		{
			std::cout << "Printing all students:" << std::endl;
			students.printAllStudents();
			return;
		}
		else
		{
			//slit the payload
			std::vector<std::string> commands = fileIO::split(payload[0], '=');

			//make sure the format  is correct
			if (commands.size() < 2)
			{
				printMessage("Search argument recieved invalid. Format should be [email protected].");
			}
			else
			{
				Students queryList = Students(students.searchStudents(commands[0],commands[1]));

				//iterate through rest of the arguments
				for (int i = 1; i < payload.size(); i++)
				{
					std::vector<std::string> commands = fileIO::split(payload[i], '=');

					if (commands.size() != 2)
					{
						printMessage("Search argument recieved invalid. Format should be [email protected].");
					}

					queryList = queryList.searchStudents(commands[0], commands[1]);
				}
			
				queryList.printAllStudents();
			}
		}
	}

	//update the student
	else if (cmd == Update)
	{
		//search for the student
		std::vector<Student> tempStudents = students.searchStudents(Students::ID, payload[0]);
		
		//for each argument update that one
		for (int i = 1; i < payload.size(); i++)
		{
			std::vector<std::string> commands = fileIO::split(payload[i], '=');
			students.updateInfo(tempStudents[0], commands);
		}

		students.saveStudent();
	}
	//you need help so print it
	else if (cmd == Help)
	{
		std::cout << "Here are a list of all the example commands: " << std::endl;
		std::cout << "add <name>,<UID>,<email>,<firstscore>,<secondscore>,<thirdscore>" << std::endl;
		std::cout << "remove <UID>" << std::endl;
		std::cout << "search UID=<id>,name=<bob>" << std::endl;
		std::cout << "update <UID>,UID=<id>,name=<new name>" << std::endl;
	}
}
コード例 #19
0
/*
 * gradeForName
 */
TEST(GradeForName, GradeForNameTest1){
  Students* students = new Students();
  students->addUser("Billy", 0);
  students->addGrade(0, 'C');
  EXPECT_EQ('C', students->gradeForName("Billy"));
 
  EXPECT_THROW(students->gradeForName("John"), std::out_of_range);

  students->addUser("Quinn", 1);
  students->addUser("Joe", 2);
  students->addGrade(1, 'D');
  students->addGrade(1, 'A');
  students->addGrade(2, 'z');

  EXPECT_EQ('A', students->gradeForName("Quinn"));
  EXPECT_EQ('z', students->gradeForName("Joe"));

  delete students;
}
コード例 #20
0
TEST(AddPhoneNumber, AddPhoneNumberTest3){
  Students* students = new Students();

  students->addUser("Steve", 21);
  EXPECT_EQ(21, students->idForName("Steve"));

  students->addPhoneNumbers(students->idForName("Steve"), "##");
  EXPECT_EQ("##", students->phoneForName("Steve"));
 
  students->addUser("Quinn", 0);
  students->addUser("Andre", 1);

  students->addPhoneNumbers(0, "");
  students->addPhoneNumbers(0, " ");
  students->addPhoneNumbers(1, "907");
  EXPECT_EQ(" ", students->phoneForName("Quinn"));
  EXPECT_EQ("907", students->phoneForName("Andre"));
  EXPECT_NE(students->phoneForName("Quinn"), students->phoneForName("Andre"));
  EXPECT_EQ(3, students->numberOfNames());
  delete students;
}
コード例 #21
0
/*
 * fullRecord()
 */
TEST(FullRecordTest, FullRecordTest1){
  Students* students = new Students();
  std::string bob = "Bob";
  std::string phoneNumber = "KL5-3226";
  char grade = 'D';
  uint id = 2;
  uint new_id = 5;

  students->addUser(bob, id);
  students->addGrade(students->idForName(bob), grade);
  students->addPhoneNumbers(students->idForName(bob), phoneNumber);
  students->fullRecord(bob, id, phoneNumber, grade);
  EXPECT_TRUE(students->fullRecord(bob, id, phoneNumber, grade));

  grade = 'C';
  students->addGrade(students->idForName(bob), grade);
  EXPECT_TRUE(students->fullRecord(bob, id, phoneNumber, grade));

  // Even though there is a new guy with the name of Bob, there should still be a full record of the old
  // Bob in there
  students->addUser(bob, new_id);
  EXPECT_TRUE(students->fullRecord(bob, id, phoneNumber, grade));
  
  delete students;
}
コード例 #22
0
TEST(NameExistsTest, NameExistsTest1){
  Students* students = new Students();
  uint id = 0;
  std::string quinn = "Quinn";
  std::string phone = "801";
  char grade = 'A';

  students->addUser("Quinn", id);
  students->addUser("Andre", 1);
  students->addUser("Jim", 2);
  students->addUser("Bob", 3);
  students->addPhoneNumbers(students->idForName("Quinn"), "801");
  students->addGrade(id, 'A');

  EXPECT_TRUE(students->fullRecord(quinn, id, phone, grade));
  EXPECT_EQ(4, students->numberOfNames());
  EXPECT_TRUE(students->nameExists("Quinn"));

  students->removeStudent("Quinn");

  EXPECT_EQ(3, students->numberOfNames());
  EXPECT_FALSE(students->nameExists("Quinn"));
  EXPECT_FALSE(students->fullRecord(quinn, id, phone, grade));

  delete students;
}
コード例 #23
0
void Register_Function(Modules md, Students st)
{
	Students st;
	Modules md;
	int dd,mm,yyyy;
   bool done=1;
   bool done_d=1;
   char string_date[15];
   char ch_d,stat=2;
   while(done_d)
   {
     system("cls");
     cout<<"\n Enter the New date (E).";
     cout<<"\n Exit (Q) ";
	 cout<<"\n Enter your choice: ";

	 cin>>  ch_d;

	 switch(ch_d)
	 {
	 case 'q':
	 case 'Q':
     done_d=0;

	 stat=1;
	 break;

 	 case 'e':
	 case 'E':
     stat=0;
	 break;


     }

if(stat==1)
break;
else if(stat==2)
continue;


   system("cls");
   cout<<"Please Enter the Date(dd mm yyyy):";
   cin>>dd>>mm>>yyyy;
	while(done)
	{ int ID;
     md.Browse();
	 cout<<"\n Date(dd-mm-yyy):"<<dd<<"-"<<mm<<"-"<<yyyy;
	 cout<<"\n Please Select one of Modules by ID or -1 to exit: ";
	 cin>>  ID;
	
	 if (ID<=-1) {done=0;break;}
	  if(md.Check_ID(ID)==0)
	 {getch();
		 continue;
	 }
	 int done_m=1;
	 while(done_m)
	 {
     system("cls");
     cout<<"\n Date(dd-mm-yyy):"<<dd<<"-"<<mm<<"-"<<yyyy<<" Module Name: "<<md.Get_Name(ID);
     cout<<"\n Enter the student ID (I).";
	 //cout<<"\n Undo (U).";
	 //cout<<"\n Search student name by ID (S).";
     cout<<"\n Browse students(B).";
	 cout<<"\n Exit (Q) ";
	 cout<<"\n Enter your choice: ";

     char IDc; 
	 int done_i=1;
	 int IDi=0;
	 cin>>  IDc;

	 switch(IDc)
	 {
	 case 'q':
	 case 'Q':
     done_m=0;
	 break;

	 case 'i':
	 case 'I':
          //system("cls")

		 while(1){
cout<<"\n Date(dd-mm-yyy):"<<dd<<"-"<<mm<<"-"<<yyyy<<" Module Name: "<<md.Get_Name(ID);
cout<<"\n Enter Student ID (-1 to exit): ";
cin>>IDi;
if (IDi<0) break;
if (st.Check_ID(IDi))
{
     cout<<"\n Date(dd-mm-yyy):"<<dd<<"-"<<mm<<"-"<<yyyy<<" Module Name: "<<md.Get_Name(ID)<<" Student ID/Name: "<<IDi<<'/'<<st.Get_Name(IDi);
	

     cout<<"\n On Time (O).";
	 cout<<"\n Late (L).";
	 cout<<"\n Absent (A).";
     cout<<"\n Exit (Q) ";
	 cout<<"\n Status: ";
	 cin>>IDc;

sprintf(string_date,"%d-%d-%d",dd,mm,yyyy);
Registers[Current_Reg].Date=string_date;
Registers[Current_Reg].Mod_ID=ID;
Registers[Current_Reg].Mod_Name=md.Get_Name(ID);
Registers[Current_Reg].St_ID=IDi;
	 	 switch(IDc)
	 {
	 case 'q':
	 case 'Q':
     
	 break;

	 case 'o':
	 case 'O':
Registers[Current_Reg].status=+1;
     


	 break;

	 case 'L':
	 case 'l':
Registers[Current_Reg].status=0;     
	 break;

	 case 'a':
	 case 'A':
Registers[Current_Reg].status=-1;     
	 break;


		 }


//cout<<"Record_number:("<<Current_Reg<<")"<<Registers[Current_Reg].Date<<" "<<Registers[Current_Reg].Mod_Name<<" "<<Registers[Current_Reg].St_ID;
Current_Reg++;
}


		 }

     //Registers[Current_Reg].
		 
	 break;

	 case 'b':
	 case 'B':
     st.Browse();
	 getch();
	 break;

	 case 's':
	 case 'S':
     //st.Search_Name()
	 break;



	 }  
	 }
	}
}
コード例 #24
0
ファイル: dom3 (1).cpp プロジェクト: kilarionov/cppTopics
int main()
{
    Teachers aTeacher;
    Students aStudent;
    GuestTeachers aGuestTeacher;

	int option = 0;
	int identity;
	int Points;
	if (Points < 0 || Points > 100)
    {
        cout << "Bad input! " << endl;
    }
	int EvaluationMark;
	if(EvaluationMark < 2 && EvaluationMark >6)
    {
        cout << "Bad input! " << endl;
    }
	int MonthlySalary;
	int passedDays;
	int SalaryForCourse;
	string Name;
	string Course;

	cout << "Get data for student with ID: 1" << endl;
	cout << "Get data for teacher with ID: 2" << endl;
	cout << "Get data for guest teacher with ID: 3" << endl;
	cout << "Add data for new student: 4" << endl;
	cout << "Add data for new teacher: 5" << endl;
	cout << "Add data for new guest	teacher: 6" << endl;

	unsigned short int arr[65535];

	while(true)
    {
        cout << "Enter option: ";
        cin >> option;
        {
            if(option == 7)
            {
                break;
            }
            if (option < 1 || option > 7)
            {
                cout << "Bad input! " << endl;
            }
            switch(option)
            {
            case 1:
                cout << aStudent.getID() << endl;
                cout << aStudent.getName() << endl;
                cout << aStudent.getCurrentCourse() << endl;
                cout << aStudent.getCurrentPoints() << endl;
                cout << aStudent.getAverageEvaluationMark() << endl;
                break;
            case 2:
                cout << aTeacher.getID() << endl;
                cout << aTeacher.getName() << endl;
                cout << aTeacher.getCurrentCourse() << endl;
                cout << aTeacher.getMonthlySalary() << endl;
                cout << aTeacher.getPassedDays() << endl;
                break;
            case 3:
                cout << aGuestTeacher.getID() << endl;
                cout << aGuestTeacher.getName() << endl;
                cout << aGuestTeacher.getCurrentCourse() << endl;
                cout << aGuestTeacher.getSalaryForCourse() << endl;
                break;
            case 4:
                cout << "Enter ID, Name, Current Course , Current Points and Average Evaliation Mark: "<< endl;
                cin >> identity >> Name >> Course >> Points >> EvaluationMark;
                aStudent.setID(identity);
                aStudent.setName(Name);
                aStudent.setCurrentCourse(Course);
                aStudent.setCurrentPoints(Points);
                aStudent.setAverageEvaluationMark(EvaluationMark);
                cout << "A student profile has been added." << endl;
                break;
            case 5:
                cin >> identity >> Name >> Course >> MonthlySalary >> passedDays;
                aTeacher.setID(identity);
                aTeacher.setName(Name);
                aTeacher.setCurrentCourse(Course);
                aTeacher.setMonthlySalary(MonthlySalary);
                aTeacher.setPassedDays(passedDays);
                cout << "A teacher profile has been added." << endl;
                break;
            case 6:
                cin >> identity >> Name >> Course >> SalaryForCourse;
                aGuestTeacher.setID(identity);
                aGuestTeacher.setName(Name);
                aGuestTeacher.setCurrentCourse(Course);
                aGuestTeacher.setSalaryForCourse(SalaryForCourse);
                cout << "A guest teacher profile had been added." << endl;
                break;
            }
        }
    }

	return 0;
}