![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 12.07.2012
Сообщений: 7
|
![]()
задача:нужно написать программу работающую со списком группы.Список храниться в текстовом файле каждый студент описывает однной строчкой следующий формат: фамилия имя отчество пол год рождения
пол-буквы м и ж год-число Основная задача написать программу которая определяет сколько раз встречается каждое имя среди студентов группы Алгоритм: файл main.cpp: #include <QtGui/QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } файл mainwindow.cpp: #include "mainwindow.h" #include "ui_mainwindow.h" #include <QFile> #include <QInputDialog> #include <QStandardItemModel> #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connect(ui->openFileButton, SIGNAL(clicked()), this, SLOT(inputData())); rowCount=0; ui->tableWidget->setColumnWidth(0,ui->tableWidget->geometry().width()*3); } void MainWindow::inputData() { if(ui->fromFileRadio->isChecked()) { openFile(); } else if(ui->fromStrRadio->isChecked()) { inputString(); } else { throw; } } void MainWindow::inputString() { QString str=QInputDialog::getText(this,"Inp ut names", "Names",QLineEdit::Normal,"",0, 0); QStringList tempList=str.split(" "); writeInTabel(tempList); } void MainWindow::writeInTabel(QStringLis t sl) { rowCount=0; QTableWidget* currentTabe; if(ui->fromFileRadio->isChecked()) { currentTabe=ui->tableFromFile; } else if(ui->fromStrRadio->isChecked()) { currentTabe=ui->tableFromStr; } else { throw; } for(int i=0;i<sl.count();i++) { currentTabe->setRowCount(rowCount+1); QTableWidgetItem * item = new QTableWidgetItem(); item->setText(sl[i]); currentTabe->setItem(rowCount, 0, item); QTableWidgetItem * item1 = new QTableWidgetItem(); item1->setText(QString::number(sl.count(s l[i]))); currentTabe->setItem(rowCount, 1, item1); if(sl.count(sl[i])>1){ sl.removeAll(sl[i]); i--;} rowCount++; } } void MainWindow: ![]() { rowCount=0; QString fileName=QFileDialog::getOpenFileNa me(this,"Open file","","",0,0); QFile file(fileName); QString tempString; QStringList tempList; if(file.open(QIODevice::ReadOnly)) { QTextStream in(&file); while(!in.atEnd()) { tempString=in.readLine(); tempList=tempString.split(" ",QString::SkipEmptyParts); addRow(tempString); names+=tempList[1]; } } writeInTabel(names); } void MainWindow::addRow(QString s) { ui->tableWidget->setRowCount(rowCount+1); QStringList tempList=s.split(";",QString::SkipE mptyParts); for(int i=0;i<3;++i) { QTableWidgetItem * item = new QTableWidgetItem(); item->setText(tempList[i]); ui->tableWidget->setItem(rowCount, i, item); } rowCount++; } MainWindow::~MainWindow() { delete ui; } файл inputwindow.cpp: (файл второй формы) #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QFileDialog> #include <QTextStream> #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); QString maxFam(); void addRow(QString s); void openFile(); void inputString(); void writeInTabel(QStringList); ~MainWindow(); public slots: void inputData(); private: int rowCount; Ui::MainWindow *ui; QStringList names; }; #endif ЕСТЬ ЛИ ОШИБКА В КОДЕ??? И ЕСЛИ МОЖНО ПОМОЧЬ В ДОВЕДЕНИЕ ПРОГРАММЫ ДО УМА (нужно сделать кнопку вызова строки с помощью которой можно добавить в таблицу еще одного студента) p.s текстовик вложил и два скриншота эта работа делалась на первом курсе так что пожалуйста не надо использовать функции изученные на 3-6 курсе ЗАРАНЕЕ СПАСИБО |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Люди проблема со змейкой ужасно долго старался но не получилось в одном месте, хотя вроде бы все правильно написал! | zhenka619 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 24.01.2012 16:30 |
Правильно ли написал программы? | Lynsha | Общие вопросы C/C++ | 8 | 01.02.2011 23:49 |
нахождение произведений элементов (правильно ли я её написал) | trollo_ | Помощь студентам | 3 | 08.01.2011 21:40 |
Написал программу, помогите натянуть Шейдеры или как нибудь модифицировать программу | WMLite | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 16.06.2009 13:57 |
Помогите разобраться... Написал программу | Neset | Работа с сетью в Delphi | 3 | 26.02.2009 11:39 |