Example #1
0
        bool deleteStudents() {
            cout << "Please enter SID or name. Enter 0 to finish." << "\n";
            string query;
            cin >> query;
            if ( query == "0" )
                return false;

            int deleted = 0;
            bool targets[MAX_STUDENTS];
            fill(targets, targets + MAX_STUDENTS, false);
            
            for ( int i = 0; i < si_cnt; ++ i ) {
                string sid;
                if ( si_list[i].sid == query ) {
                    sid = query;
                    targets[i] = true;
                }
                if ( si_list[i].name == query ) {
                    sid = si_list[i].sid;
                    targets[i] = true;
                }
                if ( ! sid.empty() )
                    sid_set.erase(sid);
            }

            for ( int i = si_cnt - 1; i >= 0; -- i ) {
                if ( targets[i] ) {
                    deleteStudent(i);
                    deleted ++;
                }
            }
            cout << deleted << " student(s) removed." << "\n";

            return true;
        }
main(int argc, char *argv[]){
    int menuchoice;
    Students st;
    char filename[100];
 
    if (argc > 1)
    {
        printf("You have imported a file.\n");
        strcpy(filename, argv[1]);
    }
    else
    {
        printf("The program is going to use the default file.\n");
        strcpy(filename, FILENAME);
    }
    printf("Filename: %s\n", filename);
    initStudents (&st);
    do
    {
        menuchoice=displayMainMenu();
        switch (menuchoice)
        {
            case 0: exit(0);
            case 1: loadData(filename, &st); break;
            case 2: saveData(filename, &st); break;
            case 3: addStudent(&st); break;
            case 4: deleteStudent(&st); break;
            case 5: sortID(&st); break;
            case 6: sortSurName(&st); break;
            case 7: displayStudents(st);break;
        }
    } while(1);
}
studentMonitor::studentMonitor(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::studentMonitor)
{
    QStringList students;

    ui->setupUi(this);
    ui->treeWidget->setColumnWidth( 0, 50  );
    ui->treeWidget->setColumnWidth( 1, 200 );
    this->setWindowFlags( Qt::Dialog | Qt::Popup );
    this->fillBoxGroupes();
    this->fillSudentsMonitor(students);
    ui->layMain->setMargin(8);
    this->setLayout(ui->layMain);
    this->setGeometry(100, 100, 640, 400);
    this->show();

    QObject::connect(ui->buttonAdd, SIGNAL(clicked()),
                     this, SLOT(newStudent()));
    QObject::connect(ui->buttonDelete, SIGNAL(clicked()),
                     this, SLOT(deleteStudent()));
    QObject::connect(ui->buttonEdit, SIGNAL(clicked()),
                     this, SLOT(editStudent()));
    QObject::connect(ui->treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),
                     this, SLOT(determineStudent(QTreeWidgetItem*, int)));
    QObject::connect(ui->radioGroupes, SIGNAL(clicked(bool)),
                     this, SLOT(selectGroupeEnabled(bool)));
    QObject::connect(ui->boxGroupes, SIGNAL(currentIndexChanged(QString)),
                     this, SLOT(refreshStudentMonitorOneGroupe(QString)));
    QObject::connect(ui->buttonCancel, SIGNAL(clicked()),
                     this, SLOT(deleteLater()));
}
Example #4
0
int main(int argc, char ** argv) {
	
   // array of type Student
   Student *s = malloc(sizeof(Student) * 100);
   // zero the newly allocated memory
   memset(s, 0, sizeof(Student)*100);

   int menuOpt;
   int terminateflag = 0;
	
   while (!terminateflag)
   {
      menuOpt = menu();
      switch (menuOpt){
         case 1:	// Module that handles entering the student's basic information (name, email, UID#)
            newStudent(s);
            break;
        
         case 2:   // Module that loads a database file into memory.
            loadDB(s);
            break;

         case 3:   // Module that saves the database to a file
            saveDB(s);
            break;
            
         case 4:   // Module that searches for a student in the database
            viewStudent(s);
            break;
            
         case 5:   // Module that allows the user to enter a grade
            enterGrades(s);
            break;
            
         case 6:   // Delete a student
            deleteStudent(s);
            break;
				
         case 7:   // Exit
            terminateflag = 1;
            break;
				
        	default: 
         printf("Please enter a valid option number.\n\n");
         break;
      }
   }
	
   return 0;
}
Example #5
0
void MainWindow::setupClassViewer()
{
    tbtnAdd_class->setAction(actionAdd_class, true);
    tbtnAdd_class->setText(tr("Add"));
    tbtnAdd_class->setIconSize(QSize(16, 16));
    tbtnDelete_class->setAction(actionDelete_class, true);
    tbtnDelete_class->setText(tr("Delete"));
    tbtnDelete_class->setIconSize(QSize(16, 16));
    tbtnAdd_student->setAction(actionAdd_student, true);
    tbtnAdd_student->setText(tr("Add"));
    tbtnAdd_student->setIconSize(QSize(16, 16));
    tbtnDelete_student->setAction(actionDelete_student, true);
    tbtnDelete_student->setText(tr("Delete"));
    tbtnDelete_student->setIconSize(QSize(16, 16));
    tbtnAdd_session->setAction(actionAdd_session, true);
    tbtnAdd_session->setText(tr("Add"));
    tbtnAdd_session->setIconSize(QSize(16, 16));
    tbtnDelete_session->setAction(actionDelete_session, true);
    tbtnDelete_session->setText(tr("Delete"));
    tbtnDelete_session->setIconSize(QSize(16, 16));
    QObject::connect(actionAdd_class, SIGNAL(triggered()), this, SLOT(addClass()));
    QObject::connect(actionDelete_class, SIGNAL(triggered()), this, SLOT(deleteClass()));
    QObject::connect(actionPrint_class_summary, SIGNAL(triggered()), this, SLOT(printClassSummary()));
    QObject::connect(actionAdd_student, SIGNAL(triggered()), this, SLOT(addStudent()));
    QObject::connect(actionDelete_student, SIGNAL(triggered()), this, SLOT(deleteStudent()));
    QObject::connect(actionAdd_session, SIGNAL(triggered()), this, SLOT(addSession()));
    QObject::connect(actionDelete_session, SIGNAL(triggered()), this, SLOT(deleteSession()));
    QObject::connect(CLSCFirstYearSpinBox, SIGNAL(valueChanged(int)), CLSCLastYearSpinBox, SLOT(setMinimum(int)));
    QObject::connect(CLLCListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem *)), this, SLOT(setCurrentClass(QListWidgetItem *)));
    QObject::connect(CLLSListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem *)), this, SLOT(setCurrentClassMember(QListWidgetItem *)));
    QObject::connect(CLLSSListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem *)), this, SLOT(viewSession(QListWidgetItem *)));
    QObject::connect(CLLSSListWidget, SIGNAL(currentIndexAvailabilityChanged(bool)), actionDelete_session, SLOT(setEnabled(bool)));
    QObject::connect(CLLSSListWidget, SIGNAL(currentTextChanged(QString)), this, SLOT(toggleAddSessionToMemberEnabled()));
    QObject::connect(CLSSResultsTableWidget, SIGNAL(currentIndexAvailabilityChanged(bool)), tbtnRemoveSession, SLOT(setEnabled(bool)));
    QObject::connect(CLSSResultsTableWidget, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), this, SLOT(viewSessionAndStudent(QTableWidgetItem *)));
    QObject::connect(CLLCSearchLineEdit, SIGNAL(textChanged(QLineEdit *, const QString &)), CLLCListWidget, SLOT(filterItems(QLineEdit *, const QString &)));
    QObject::connect(CLLSSearchLineEdit, SIGNAL(textChanged(QLineEdit *, const QString &)), CLLSListWidget, SLOT(filterItems(QLineEdit *, const QString &)));
    QObject::connect(CLLSSSearchLineEdit, SIGNAL(textChanged(QLineEdit *, const QString &)), CLLSSListWidget, SLOT(filterItems(QLineEdit *, const QString &)));
    QObject::connect(tbtnApplyClassChanges, SIGNAL(released()), this, SLOT(updateClassProperties()));
    QObject::connect(tbtnSaveMemberName, SIGNAL(released()), this, SLOT(updateClassMemberName()));
    QObject::connect(tbtnAddSession, SIGNAL(released()), this, SLOT(addSessionToMember()));
    QObject::connect(tbtnRemoveSession, SIGNAL(released()), this, SLOT(removeSessionFromMember()));
    CLLCListWidget->setSortingEnabled(true);
    CLLSSListWidget->setSortingEnabled(true);
    CLSSResultsTableWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
    CLSSResultsTableWidget->verticalHeader()->hide();
    CLSSResultsTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
    setCLSCEnabled(false);
}
Example #6
0
int main(int argc, char *argv[])
{
	//LinkList to store all account and student info
	pAccount AccountList = NULL;
	pStudent StudentList = NULL;

	//Init the LinkList
	systemInit(CONFIG_FILE, &AccountList, &StudentList);

	Role role;
	Menu menu;
	role = confirmAccount(AccountList);
	if (role == -1) {
		return 0;
	}

	while ((menu = showSystemMenu(role)) != 9) {
		while (getchar() != '\n') {
			continue;
		}
		switch(menu) {
			case 1: 
				if (role == 1) {
					searchStudentAdmin(StudentList);
				} else {
					searchStudentGuest(StudentList);
				}
				break;
			case 2: addStudent(&StudentList); break;
			case 3: updateStudent(StudentList); break;
			case 4: deleteStudent(&StudentList); break;
			case 5: addUserAccount(&AccountList); break;
			case 6: updateUserAccount(AccountList); break;
			case 7: deleteUserAccount(&AccountList); break;
			case 8: searchAccountMenu(AccountList); break;
			default: break;
		}
		saveData(CONFIG_FILE, AccountList, StudentList);
	}
	return 0;
}
Example #7
0
/**
* poz : variable indicating if the lastName is located at start or end
* poz values: 1 for start, 2 for end
*
* functional module
*/
Node* deleteStudent(Node* currentNode, char* lastName, int poz)
{
	// if we are at the end of the list
	if (currentNode == 0)
		return 0;

	// check if the current node is the one for deletion
	if (poz == 1)
	{
		char* token;
		char separator[2] = " ";

		char nameBuffer[256];
		strcpy(nameBuffer, currentNode->info->name);

		token = strtok(nameBuffer, separator);

		if (strcmp(token, lastName) == 0)
		{
			Node* nextElement = currentNode->next;

			if (currentNode->info->name != 0)
				free(currentNode->info->name);
			if (currentNode->info->faculty != 0)
				free(currentNode->info->faculty);

			free(currentNode);

			return nextElement;
		}

		currentNode->next = deleteStudent(currentNode->next, lastName, poz);
	}

	return currentNode;
}
void TeachWin::deleteStudentButton() {
    //remove student from database here
    std::string str = ui->listWidget->currentItem()->text().toStdString();
    deleteStudent(str);
}
Example #9
0
int main() {
	FILE *fp;
	FILE *fp2;
	char* file_name = "students.txt";
	char* file_name2 = "log.txt";
	int studentId;
	char name[30];
	char class[10];
	char department[10];
	int r;
	StudentNode temp;
	StudentNode* result;
	int i;
	int loop;
	int userChoice;


	//Initialize index array
	for (i = 0; i<20; i++) {
		indexArray[i].r = i;
		indexArray[i].node = NULL;
		cur[i] = NULL;
	}

	printf("Begin of program\n\n");

	//Try to open file to read
	if ((fp = fopen(file_name, "r")) == NULL) {
		printf("No such file\n");
		exit(1);
	}


	//Add students to their corespoding indexes
	while (fscanf(fp, "%d:%[^:]:%[^:]:%[^:\n]", &studentId, name, class, department) == 4) {
		addStudent(studentId, name, class, department);
	}

	//Link indexes together
	linkIndexes();


	//Menu
	loop = 1;
	while (loop) {
		printf ("******************************\n* What do you wanna do?      *\n*     1- Add student         *\n*     2- Delete student      *\n*     3- Find student        *\n*     4- Edit student        *\n*     5- Student list        *\n*     6- Exit                *\n******************************");
		printf("\nYour choice: ");
		scanf("%d%*c", &userChoice);
		switch (userChoice) {
			case 1: 
				studentId = askForId();
				temp = findStudentById(studentId);
				if (temp == NULL) { 
					strcpy(name, askForName());
					strcpy(class, askForClass());
					strcpy(department, askForDepartment());
					addStudent (studentId, name, class, department);
					linkIndexes();
					addStudentToFile(studentId, name, class, department, file_name);
					makeLog(studentId, "APPEND", file_name2);
					printf("Add success!\n");
				} else
					printf("ID already existed!\n");
				break;
			case 2:
				studentId = askForId();
				if (deleteStudent(studentId) == 1) {
					deleteStudentFromFile(studentId, file_name);
					makeLog(studentId, "DELETE", file_name2);
					printf("Delete success!\n");
				} else
					printf("Can't find any student with given ID!\n");
				break;
			case 3:
				printf("\nFind by which criteria?\n1- Student ID\n2- Name\n3- Class\n4- Department\n5- Back to menu\nYour choice: ");
				scanf("%d%*c", &userChoice);
				switch (userChoice) {
					case 1:
						studentId = askForId();
						temp = findStudentById(studentId);
						printf("\nResult:\n");
						if (temp != NULL) {
							printf("%-10d | %-30s | %-10s | %-10s\n", temp->studentId, temp->name, temp->class, temp->department);
						} else 
Example #10
0
int solve() {
	int choice;
	Result person[MAXLENGTH];
	int n;
	int case1 = 0;
	int currentIndex = 0;

	while(1) {
		switch(choice = menu()) {
			case 1:
			printf("You choose option %d\n", choice);
			getStudentInformation(person, &currentIndex);
			printStudentList(person, currentIndex);
			case1 = 1;
			continue;
			case 2:
			printf("You choose option %d\n", choice);
			if(!case1) {
				printf("Please choose case 1 first!\n");
				continue;
			}
			searching(person, currentIndex);
			continue;
			case 3:
			printf("You choose option %d\n", choice);
			if(!case1) {
				printf("Please choose case 1 first!\n");
				continue;
			}
			findScholashipStudent(person, currentIndex);
			printStudentList(person, currentIndex);
			continue;
			case 4:
			printf("You choose option %d\n", choice);
			if(!case1) {
				printf("Please choose case 1 first!\n");
				continue;
			}
			fixGrade(person, currentIndex);
			printStudentList(person, currentIndex);
			continue;
			case 5:
			printf("You choose option %d\n", choice);
			if(!case1) {
				printf("Please choose case 1 first!\n");
				continue;
			}
			deleteStudent(person, &currentIndex);
			printStudentList(person, currentIndex);
			continue;
			case 6:
			printf("You choose option %d\n", choice);
			break;
			default:
			printf("Invalid choice!\n");
			continue;
		}
		break;
	}

	return 0;
}
Example #11
0
void main()
{
	Node* list = 0;
	Node* secondList = 0;

	Student* stud = 0;

	FILE *f;
	f = fopen("Students.csv", "r");

	if (f)
	{
		stud = (Student*)malloc(sizeof(Student));

		// buffers
		char name[256];
		char birth[256];
		char faculty[256];

		// pattern: 1,John Smith,10-10-1990,Faculty of Computer Sciene,1,1008
		fscanf(f, "%d, %[^,], %[^,], %[^,], %hd, %hd",
			&(stud->id), name, birth, faculty, &stud->year, &stud->group);

		while (!feof(f))
		{
			stud->name = (char*)malloc((strlen(name) + 1) * sizeof(char));
			strcpy(stud->name, name);

			char* token;

			// solving date field
			char separator[2] = "-";
			token = strtok(birth, separator);
			stud->birthDay.day = atoi(token);

			token = strtok(0, separator);
			stud->birthDay.month = atoi(token);

			token = strtok(0, separator);
			stud->birthDay.year = atoi(token);


			// solving name field
			stud->name = (char*)malloc((strlen(name) + 1) * sizeof(char));
			strcpy(stud->name, name);

			// solving faculty
			stud->faculty = (char*)malloc((strlen(faculty) + 1) * sizeof(char));
			strcpy(stud->faculty, faculty);

			// INSERTION HERE:
			//list = frontInsertion(list, stud);
			list = rearInsertion(list, stud);
			secondList = frontInsertion(secondList, stud);

			// allocate new student && read next line from csv file
			stud = (Student*)malloc(sizeof(Student));
			fscanf(f, "%d, %[^,], %[^,], %[^,], %hd, %hd",
				&(stud->id), &name, &birth, &faculty, &stud->year, &stud->group);
		}
	}
	else
	{
		perror("[FILE ERROR]");
	}

	printList(list);
	searchStudent(list, "fate1");
	searchStudent(list, "fate2");
	searchStudent(list, "fate3");

	list = deleteStudent(list, "Max", 1);
	//list = deleteElement(list, "Philip Rafaello");
	printf("\nList after deletion of Max: ");

	printList(list);

	// search for a student in list
	Student* searched = searchElement(list, "John Smith");
	if (searched)
	{
		printf("\nStudent found: %s", searched->name);
	}
	else
	{
		printf("\nStudent not found!");
	}

	// interchange adjacent nodes in list
	list = interchangeNodesAdj(list, 3, 4);
	printf("\nList after adjacent interchange: ");
	printList(list);

	// interchange nodes in list
	list = interchangeNodes(list, 1, 5);
	printf("\nList after adjacent interchange: ");
	printList(list);

	// sort list by year
	printf("\nSorting the list: ");
	sortList(&list);
	printList(list);

	// list concatenation
	printf("\nFirst list: ");
	printList(list);
	printf("\nSecond list: ");
	printList(secondList);

	//Node* concatenatedList = concatenateList(list, secondList);
	//printf("\nResult: ");
	//printList(concatenatedList);

	deleteList(list);

	// testing some things
	int a = 0x5;

	a = 0xA;
	a = 0xB;
	a = 0xC;

	printf("\nHex: %x", a);


	// finally
	fclose(f);
	printf("\n");
}
Example #12
0
int main(){
	student_t *head, *newStudent,*temp;
	int age,major; 
	float gpa;
	char * name, *name1, cr;
	char *msg;
	int i;
	int answer,data;
	
	head = NULL;
	printf("You are now entering the student zone!\n");

	answer = menu();
	while(answer != 7){
		switch (answer) {
			case 1:
				printf("enter age:\n");
				scanf("%d%c",&age,&cr);
				printf("enter gpa:\n");
				scanf("%f%c",&gpa,&cr);
				printf("enter major:\n");
				scanf("%d%c",&major,&cr);
				printf("enter name:\n");
				name = getline();
				//printf("length: %d\n",strlen(name));
				newStudent = createStudent(age, name,major,gpa);
				break;
			case 2:
				insertStudent(&head,newStudent);
				break;
			case 3:
				printf("enter student name to delete\n");
				name1 = getline();
				deleteStudent(&head,name1);
				free(name1);
				break;
			case 4:
				printf("enter student name to investigate\n");
				name1 = getline();
				data = dataMenu();
				switch (data) {
					case 1:
						temp = findStudent(head, name1);
						if(temp == NULL){
							printf("Student %s not found \n",name1);
							break;
						}
						age = getAge( temp);
						printf("The age of %s, is %d\n",name1,age);
						break;
					case 2:
						temp = findStudent(head, name1);
						if(temp == NULL){
							printf("Student %s not found \n",name1);
							break;
						}
						gpa = getGpa( temp);
						printf("The gpa of %s, is %f\n",name1,gpa);					
						break;
					case 3:						
						temp = findStudent(head, name1);
						if(temp == NULL){
							printf("Student %s not found \n",name1);
							break;
						}
						major = getMajor( temp);
						printf("The gpa of %s, is %d\n",name1,major);					
						break;
						
					default:
						break;
				}
				break;
			case 5:
				temp = head;
				while(temp != NULL){
					msg = toString( temp);
					printf("%s\n",msg);
					temp = temp->link;
				}
				break;
			case 6:
				insertStudentRear(&head,newStudent);
				break;			
			default:
				break;
		}
		answer = menu();
	}
	printf("BYE\n");
	return(0);

}
Example #13
0
main()
{
	char op;
	int i = 1;
	//Grupo
	ML E1;
	createML(&E1);

	
	//printML(E1);

	while(i)
	{	
		op = printMenu();
		fflush(stdin);
		switch(op)
		{
			case '1':
				system("CLS");
					char gName[128];

					printf("Nombre del grupo: ");
					scanf("%128s",gName);

					addNodeGroup(&E1,gName);
				printf("\n\n\t");
				system("PAUSE");
			break;
			case '2':
				deleteGroup(&E1);
				printf("\n\n\t");
				system("PAUSE");
			break;
			case '3':
				system("CLS");
				addStudent(&E1);
				printf("\n\n\t");
				system("PAUSE");
			break;
			case '4':
				system("CLS");
				char boleta[12];
				printf("Numero de boleta del alumno: \n");
				scanf("%s",boleta);

					deleteStudent(&E1,boleta);

				printf("\n\n\t");
				system("PAUSE");
			break;
			case '5':
				system("CLS");
					printML(E1);
				printf("\n\n\t");
				system("PAUSE");
			break;
			case '6':
				exit(1);
			break;
			default:
			break;
		}
	}

	getch();
}