Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2012, 18:40   #1
mugik770
 
Регистрация: 12.07.2012
Сообщений: 7
По умолчанию Qt Creator правильно ли написал программу

задача:нужно написать программу работающую со списком группы.Список храниться в текстовом файле каждый студент описывает однной строчкой следующий формат: фамилия имя отчество пол год рождения
пол-буквы м и ж год-число
Основная задача написать программу которая определяет сколько раз встречается каждое имя среди студентов группы
Алгоритм:
файл 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:penFile()
{
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 курсе
ЗАРАНЕЕ СПАСИБО
Изображения
Тип файла: jpg Безымянный.jpg (18.6 Кб, 131 просмотров)
Тип файла: jpg вввв.jpg (21.4 Кб, 125 просмотров)
Вложения
Тип файла: txt test.txt (145 байт, 127 просмотров)
mugik770 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Люди проблема со змейкой ужасно долго старался но не получилось в одном месте, хотя вроде бы все правильно написал! 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