Hỏi & đáp lập trình

c++ 3.1 ko chay trên win 7 đc T_T nó báo lỗi this version is not compatible with the version of windows you're running. Check ur computer's system information to see whether you need an x86(32 bit) or 64(bit) version of the program and then contact the software publisher. T_T no báo vậy đó, trong khi máy bạn em xài win7 mà vẫn chạy ngon lành T_T huhuhu

TC.exe ~~> properties ~~> tab compatibility ~~> run this program in compatibility mode for Windows XP
và chọn run as admin ở dưới
 
Chỉnh sửa cuối:
c++ 3.1 ko chay trên win 7 đc T_T nó báo lỗi this version is not compatible with the version of windows you're running. Check ur computer's system information to see whether you need an x86(32 bit) or 64(bit) version of the program and then contact the software publisher. T_T no báo vậy đó, trong khi máy bạn em xài win7 mà vẫn chạy ngon lành T_T huhuhu

Win 7 thì xài Visual Studio 2008 hoặc bản 2010 luôn đi bạn, nếu không thích thì xài visual c++ 6.0 (win7 chạy ngon lành)

Mình có cái này muốn nhờ mọi người chỉ giùm lỗi sai
void DemTu(string str, int n)
{
vector<string> s1(1000);
int k1 = 0;
int i1 = 0;
for(int j1 = 0; j1 < str.length(); j1++)
{
if( str[j1] == ' ')
{
s1[k1] = str.substr(i1, j1-i1);
k1++;
i1 = j1+1;
}
}
s1.resize(k1);
//Dem tu moi cau
cout << "\nSo luong tu trong moi cau la: " ;
int j2 = 0;
int k =0;
for(int i2 = 0; i2 < n; i2++)
{
vector <string> s2(1000);
for(; j2 < s1.size();)
{

s2[j2] = s1[k++];
if(s2[j2][s2[j2].size()-1] == '.' || s2[j2][s2[j2].size()-1] == '!' || s2[j2][s2[j2].size()-1] == '?' )
{
j2++;
s2.resize(j2);
cout << "\nCau thu " << i2+1 << ": " << j2 << " tu: ";
for(int i3 = 0; i3 < s2.size(); i3++)
cout << s2[i3] << " ";
j2 = 0;

break;
}
else
{
j2++;

}
}
}
}
Đây là hàm để xuất ra 1 câu và đếm số từ trong câu đó. Nhưng chạy thì nó chỉ ra tới câu thứ 5 (ví dụ của mình là có 6 câu lận) và báo lỗi vector subcript is out of range. Mấy bạn giúp giùm mình xem sai chỗ nào. Mình debug thì vừa tới dòng này thì nó lỗi
s2[j2] = s1[k++];

Còn đây là bản code đầy đủ của mình(mọi người chạy thử) hơi lùm xùm một tí =((
Đề
Đếm số lượng câu trong đoạn văn(mình tự cho ví dụ)
Đếm số từ trong 1 câu
Tìm từ xuất hiện nhiều nhất trong đoạn(có thể có nhiều từ)
Sắp xếp tăng dần các từ theo thứ tự từ điển trong 1 câu

#include "iostream"
#include "string"
#include "vector"
using namespace std;

int DemCau(string str);
string ChuanHoaChuoiKieu1(string str);
string ChuanHoaChuoiKieu2(string str);
void DemTu(string str, int n);
void main()
{
int cs[100];
string str = "Sang som da 28-30 do C, mo hoi chay uot dam lung ao. Trua nong hon 38 do. Hoang hon, mat duong Sai Gon lai ham hap pha vao mat nguoi. Nhung ngay qua nguoi dan keu troi vi nong. Tai khu phong tro cong nhan tren duong Bui Van Ba, quan 7, 22h dem ngay 9/5, hang chuc nam nu cong nhan khu che xuat Tan Thuan thay vi ngu lay suc de sang di lam, lai keo nhau ra duong ngoi hong gio. Nam, mot cong nhan trong nhom cho hay, phong tro cua ho von da chat choi, nay lai them cai nong hung huc vua dat lung xuong da chay mo hoi, mo quat thay toan hoi nong nen khong the ngu duoc.";

//Chuan hoa theo kieu 1 (xoa khoang trang du, doi hoa thanh thuong, xoa cac ky tu . ! ? ,)
string str1 = ChuanHoaChuoiKieu1(str);
cout << str1;

//Chuan hoa theo kieu 2 (xoa khoang trang du, xoa cac ky tu,)
string str2 = ChuanHoaChuoiKieu2(str);
cout << "\n" << str2;

//Dem cau
int kq1 = DemCau(str);
cout << "\n-------------------------------------------------------------------";
cout << "\nSo luong cau la: " << kq1;

//Dem tu
DemTu(str, kq1);
vector<string> s1(1000);
int k1 = 0;
int i1 = 0;
for(int j1 = 0; j1 < str1.length(); j1++)
{
if( str1[j1] == ' ')
{
s1[k1] = str1.substr(i1, j1-i1);
k1++;
i1 = j1+1;
}
}
s1.resize(k1);

//Tim tu xuat hien nhieu nhat
int max = 0;
int sl = 0;
int m, n;
for(m = 0; m < k1-1; m++)
{
int dem = 1;
for(n = m+1; n < k1; n++)
{
if( s1[m] == s1[n])
{
dem++;
}
}
if( dem > max )
{
max = dem;
sl = 1;
cs[0] = m;
}
else
{
if (max == dem)
{
sl++;
cs[sl-1] = m;
}
}

}
cout << "\nSo lan xuat hien nhieu nhat cua tu: " << max;
cout << "\nBao gom cac tu: ";
for(int p = 0; p < sl; p++)
{
cout << s1[cs[p]] << " ";
}
//Sap xep tu trong moi cau theo thu tu tu dien
cout << "\nSap xep tang dan cac tu(theo thu tu tu dien) trong moi cau:\n";
vector<string> s2(1000);
int k2 = 0;
int i2 = 0;
for(int j2 = 0; j2 < str2.length(); j2++)
{
if( str2[j2] == ' ')
{
s2[k2] = str2.substr(i2, j2-i2);
k2++;
i2 = j2+1;
}
}
s2.resize(k2);
//
int j3 = 0;
for(int i3 = 0; i3 < kq1; i3++)
{
vector<string> temp(1000); //hello new day. alo alo.
for(; j3 < s2.size(); )
{
temp[j3] = s2[j3];
if(temp[j3][temp[j3].size()-1] == '.' || temp[j3][temp[j3].size()-1] == '?' || temp[j3][temp[j3].size()-1] == '!' )
{
j3++;
temp.resize(j3);
for(int i4 = 0; i4 < temp.size() - 1; i4++)
{
for(int j4 = i4+1; j4 < temp.size(); j4++)
{
if(temp[i4] > temp[j4])
{

string tam = temp[i4];
temp[i4] = temp[j4];
temp[j4] = tam;
}
}
}
/*int ktMax(string a, string b)
{
string t1 = a;
string t2 = b;
int i, j;
for(i = 0; i < t1.length(); i++)
{
if( t1 >= 'A' && t1 <= 'Z')
t1 = t1 + 32;
}
tuong tu cho t2
if( t1 == t2 )
{
if(a[0] > b[0] )
return 1;
}
else
{
if(t1 > t2 )
return 1;
else
return 0;
}

*/
cout << "\n";
for(int i5 = 0; i5 < temp.size(); i5++)
{
cout << temp[i5] << " ";
}
cout << "\n";
break;
}
else
{
j3++;
}

}
}
}

int DemCau(string str)
{
int dem = 0;
for(int i =0; i < str.length() ; i++)
{
if (str == '.' || str == '?' || str == '!')
dem++;
}
return dem;
}

void DemTu(string str, int n)
{
vector<string> s1(1000);
int k1 = 0;
int i1 = 0;
for(int j1 = 0; j1 < str.length(); j1++)
{
if( str[j1] == ' ')
{
s1[k1] = str.substr(i1, j1-i1);
k1++;
i1 = j1+1;
}
}
s1.resize(k1);
//Dem tu moi cau
cout << "\nSo luong tu trong moi cau la: " ;
int j2 = 0;
int k =0;
for(int i2 = 0; i2 < n; i2++)
{
vector <string> s2(1000);
for(; j2 < s1.size();)
{

s2[j2] = s1[k++];
if(s2[j2][s2[j2].size()-1] == '.' || s2[j2][s2[j2].size()-1] == '!' || s2[j2][s2[j2].size()-1] == '?' )
{
j2++;
s2.resize(j2);
cout << "\nCau thu " << i2+1 << ": " << j2 << " tu: ";
for(int i3 = 0; i3 < s2.size(); i3++)
cout << s2[i3] << " ";
j2 = 0;

break;
}
else
{
j2++;

}
}
}
}

string ChuanHoaChuoiKieu1(string str)
{
string strcpy = string(str, 0, str.length());
int n = strcpy.length();
while (strcpy[0] == '0')
strcpy.erase(0,1);
while (strcpy[n-1] == '0')
strcpy.erase(n-1, 1);
//Xoa cac khoang trang du
for(int i = n - 2; i >= 1; i--)
{
if(strcpy == ' ' && strcpy[i-1] == ' ')
strcpy.erase(i,1);
}
int m = strcpy.length();
//Xoa cac dau . , ! ?
for(int i = m -1; i >=0; i--) //ko dung n nua vi luc nay n da thay doi
{
if(strcpy == '.' || strcpy == '!' || strcpy == '?' || strcpy == ',')
strcpy.erase(i,1);
}
//Doi chu hoa thanh chu thuong
for(int j = 0; j < strcpy.length(); j++)
{
if(strcpy[j] >= 'A' && strcpy [j] <= 'Z')
{
strcpy[j] = strcpy[j] + 32;
}
}
return strcpy;
}
string ChuanHoaChuoiKieu2(string str)
{
string strcpy = string(str, 0, str.length());
while (strcpy[0] == '0')
strcpy.erase(0,1);
while (strcpy[strcpy.length()-1] == '0')
strcpy.erase(strcpy.length()-1, 1);
//Xoa cac khoang trang du
for(int i = strcpy.length() - 2; i >= 1; i--)
{
if(strcpy == ' ' && strcpy[i-1] == ' ')
strcpy.erase(i,1);
}
//Xoa cac dau . , ! ?
for(int i = strcpy.length() -1; i >=0; i--) //ko dung n nua vi luc nay n da thay doi
{
if(strcpy == ',')
strcpy.erase(i,1);
}
return strcpy;
}





 
Chỉnh sửa cuối:
hux tc.exe mình tìm hoài hok thấy vậy bạn T_T nó ở đâu thế, thanks 2 bạn đã giúp

---------- Post added at 23:04 ---------- Previous post was at 22:28 ----------

mình chọn bc.exe rồi làm như bạn nói rồi, nó vẫn ko cho mình chạy hux hux
 
có cách nào để copy nội dung cái label hiển thị trên form không :-??
nếu không thì phải dùng cái gì để thay thế để có thể copy được :-s
 
có cách nào để copy nội dung cái label hiển thị trên form không :-??
nếu không thì phải dùng cái gì để thay thế để có thể copy được :-s
bạn dùng textbox, cho nó ReadOnly, Border None, đổi BackColor thành màu phù hợp, nếu muốn ẩn Caret ( I ) thì dùng P/Invoke gọi hàm HideCaret của Windows khi textbox GotFocus
 
mình muốn lấy thông tin của file nhạc (bitrate, album, ca sĩ....) trong lập trình thì làm thế nào :-?
 
có ai biết tại sao cái hàm đổi từ xâu sang số convert.tosingle() với số vô tỉ, số má nó lại lệch hẳn so với xâu không :((
 
chả biêt hỏi ở đâu nên nhảy vô đây hỏi :|

ai có link Adobe After Efect + crack ko cho bé với :\


thanks
 
Mình mới bắt đầu học C++, có cái bài tập này ngồi làm cả buổi tối hôm qua chưa xong. Anh em biết thì chỉ dùm:
Viết một chương trình thực hiện các công việc sau:

1. Xây dựng lớp PS (phân số) có hai thuộc tính: tử số, mẫu số. Các phương thức: nhập, hiển thị, rút gọn.

2. Xây dựng lớp PS1 kế thừa lớp PS và có thêm các phương thức cộng, nhân hai phân số.

3. Nhập một dãy các phần số rồi cho biết tổng các phân số của dãy, tích các phân số của dãy.
Mình làm được như thế này rồi nhưng khi chạy thì cả tổng và tích nó đều hiện ra là bằng 0. Khó 1 cái là nó bắt phải xây dựng lớp kế thừa :(
#include"iostream.h"
#include"conio.h"
int t;
class ps
{
private:
int ts,ms;
public:
void nhap()
{
cout<<"Nhap tu so:";cin>>ts;
cout<<"Nhap mau so:";cin>>ms;
}
void hienthi()
{
if (ts==0) cout<<0;
else if (ts==ms) cout<<1;
else if (ms==0) cout<<"Phan so ko ton tai";
else cout<<ts<<"/"<<ms;
}
void rutgon();

};
int ucln(int a,int b)
{
int c;
do
{
c=a%b;
a=b;
b=c;
}
while(c!=0);
return a;
}
void ps::rutgon()
{
t=ucln(ts,ms);
ts=ts/t;
ms=ms/t;
}
class ps1:public ps
{
private:
int ts,ms;
public:
void nhap1()
{
ps::nhap();
}
void hienthi1()
{
ps::hienthi();
}
void rutgon1()
{
ps::rutgon();
}
ps1 cong(ps1 p1,ps1 p2)
{
ps1 p3;
p3.ts=p1.ts*p2.ms+p2.ts*p1.ms;
p3.ms=p1.ms*p2.ms;
return p3;
}
ps1 nhan(ps1 p1,ps1 p2)
{
ps1 p3;
p3.ts=p1.ts*p2.ts;
p3.ms=p1.ms*p2.ms;
return p3;
}
};
void main()
{
clrscr();
ps1 p1,p2,c,d;
p1.nhap1();
p1.rutgon1();
p2.nhap1();
p2.rutgon1();
cout<<"Phan so thu nhat la:";p1.hienthi1();
cout<<"\nPhan so thu hai la:";p2.hienthi1();
c=d.ps1::cong(p1,p2);
cout<<"\nTong hai phan so la:";c.rutgon1();c.hienthi1();
c=d.ps1::nhan(p1,p2);
cout<<"\nTich hai phan so la:";c.rutgon1();c.hienthi1();
getch();
}
Ai biết mình sai chỗ nào thì chỉ giúp với. Cảm ơn trước !
 
có ai biết tại sao cái hàm đổi từ xâu sang số convert.tosingle() với số vô tỉ, số má nó lại lệch hẳn so với xâu không :((

héo :(
hỏi thêm là có ai biết cách tạo cái nút trên forrm kiểu như nút toools trong này không :(

buttonbm.png


kiểu như bấm vào thì nó xổ ra cái menu ở dưới cái nút tools đó ý
 
Mã:
<?xml version="1.0"?>
<lophoc>
	<lop id="C001">
		<tenlop>Lop .NET</tenlop>
		<quarter name="Q7"/>
		<cahoc>5</cahoc>
		<giangvien>Cao Van E</giangvien>
	</lop>
<lop id="C002">
		<tenlop>Lop XML</tenlop>
		<quarter name="Q6"/>
		<cahoc>6</cahoc>
	</lop>
</lophoc>

mình có một file xml như trên
:| có ai biết làm cách nào để tạo một file xsd cho file xml trên để đảm bảo là hai cái id ở element <lop> không trùng nhau ko?
 
Mình mới bắt đầu học C++, có cái bài tập này ngồi làm cả buổi tối hôm qua chưa xong. Anh em biết thì chỉ dùm:

Mình làm được như thế này rồi nhưng khi chạy thì cả tổng và tích nó đều hiện ra là bằng 0. Khó 1 cái là nó bắt phải xây dựng lớp kế thừa :(

Ai biết mình sai chỗ nào thì chỉ giúp với. Cảm ơn trước !


class ps1:public ps
{
private:
int ts,ms;

class ps
{
private:
int ts,ms;

lúc khai báo nhập ts với ms ở functionc p1.nhap1() thì nó sẽ chỉ nhập vào ps::ts, ps::ms thôi, nhưng mà lúc tính bằng function cong() với nhân() thì lại kêu nó lấy ps1::ts, ps1::ms thì lấy đâu ra mà nó tính.

cái giải quyết của mình là
class ps
{
private: <=== đổi cái này thành public
int ts,ms;

class ps1:public ps
{
private: // <== xóa cái này
int ts,ms; // <== xóa luôn cái này

Tóm lại có thể hiểu như vậy;

void main()
{

ps1 p1,p2,c,d;
p1.nhap1(); //// nó sẽ nhập vào ps::ts, ps::ms (kô phải ps1::ts, ps1::ms) ////
p1.rutgon1();
p2.nhap1();
p2.rutgon1();
cout<<"Phan so thu nhat la:";p1.hienthi1();
cout<<"\nPhan so thu hai la:";p2.hienthi1();
c=d.ps1::cong(p1,p2); //// lúc kêu cái cong() thì nó sẽ lại lấy ps1::ts, ps1::ms (cái này chưa nhập số vào, cho nên nó kô tính được)////
cout<<"\nTong hai phan so la:";c.rutgon1();c.hienthi1();
c=d.ps1::nhan(p1,p2);
cout<<"\nTich hai phan so la:";c.rutgon1();c.hienthi1();
getch();
}


:D mình cũng chỉ mới học c++ thôi, cho nên kô rành lắm
 
Mã:
#include "stdafx.h"
#include"stdlib.h"



void main(int argc, char* argv[])
{
	if(argc == 3)
	{
		puts(argv[1]);
		puts(argv[2]);
	}
	else
		printf("Tham so sai");
	FILE *f = fopen(argv[1], "rt");	
	if(f == NULL)
	{
		printf("Khong mo duoc tap tin \n");
		return;		
	}
	fclose(f);
}

mình chạy cái chương trình trên trong debug thì được
mà lúc mình chạy trên cmd thì ko được , nó cứ báo ko mở được file , ai biết chỉ mình với :-s
 
tình hình là mình đang làm project 1 :< ngoài khoản design web thì mình làm bt mình phải nhận thêm code về giỏ hàng(mà mình lại mù tịt asp với những thứ liên quan :( )
bạn nào có code về phần giỏ hàng share minh tham khảo cái :(
 
class ps1:public ps
{
private:
int ts,ms;

class ps
{
private:
int ts,ms;

lúc khai báo nhập ts với ms ở functionc p1.nhap1() thì nó sẽ chỉ nhập vào ps::ts, ps::ms thôi, nhưng mà lúc tính bằng function cong() với nhân() thì lại kêu nó lấy ps1::ts, ps1::ms thì lấy đâu ra mà nó tính.

cái giải quyết của mình là
class ps
{
private: <=== đổi cái này thành public
int ts,ms;

class ps1:public ps
{
private: // <== xóa cái này
int ts,ms; // <== xóa luôn cái này

Tóm lại có thể hiểu như vậy;

void main()
{

ps1 p1,p2,c,d;
p1.nhap1(); //// nó sẽ nhập vào ps::ts, ps::ms (kô phải ps1::ts, ps1::ms) ////
p1.rutgon1();
p2.nhap1();
p2.rutgon1();
cout<<"Phan so thu nhat la:";p1.hienthi1();
cout<<"\nPhan so thu hai la:";p2.hienthi1();
c=d.ps1::cong(p1,p2); //// lúc kêu cái cong() thì nó sẽ lại lấy ps1::ts, ps1::ms (cái này chưa nhập số vào, cho nên nó kô tính được)////
cout<<"\nTong hai phan so la:";c.rutgon1();c.hienthi1();
c=d.ps1::nhan(p1,p2);
cout<<"\nTich hai phan so la:";c.rutgon1();c.hienthi1();
getch();
}


:D mình cũng chỉ mới học c++ thôi, cho nên kô rành lắm
Cám ơn cậu nhé tính được rồi. Thế còn câu 3 thì ntn nhỉ? Nhập nhiều phân số rồi tính tổng, tích chắc phải dùng mảng 2 chiều à?
 
mình muốn lấy thông tin của file nhạc (bitrate, album, ca sĩ....) trong lập trình thì làm thế nào :-?

Bạn phải biết cấu trúc của file đó như thế nào.Vd như file nhạc có phần mở rộng là mp3 là nó dùng 128 byte cuối cùng để lưu thông tin đó.Bạn phải chuyển dữ liệu đó về dạng string.

Và 1 file mp3 khi có lưu thông tin của ca sĩ, title, comment ... thì 3 byte đầu ( bắt đầu từ byte thứ 128 tính từ cuối lùi về) sẽ có string là "TAG", từ 3->33 là title,33->63 là artist ....
 
Cám ơn cậu nhé tính được rồi. Thế còn câu 3 thì ntn nhỉ? Nhập nhiều phân số rồi tính tổng, tích chắc phải dùng mảng 2 chiều à?

câu đó thì mình cũng bó tay rồi :D, có code thì mình đọc rồi suy nghĩ thì biết sai chỗ nào, chứ mình cũng kô biết viết làm sao nữa.
 
mình làm bài tập java câu hỏi nó là xây dựng nạp chồng kế thửa đa hình code nó như sau

import java.awt.*;
import java.awt.event.*;
public class ChuongtrinhDemo {

public static void main(String[] args){

Frame ctmt=new Frame("DEMO");
ctmt.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
ctmt.setSize(250,250);
ctmt.setVisible(true);
BorderLayout bl=new BorderLayout();
ctmt.setLayout(bl);
Panel phiabac=new Panel(new FlowLayout());
Panel phiatrung=new Panel(new GridLayout(6,2));
Panel phianam=new Panel(new FlowLayout());
ctmt.add("North",phiabac);
ctmt.add("Center",phiatrung);
ctmt.add("South",phianam);
Label ten=new Label("Chuong trinh tinh diem TB");
Label a=new Label("Diem Toan");
Label b=new Label("Diem Ly");
Label c=new Label("Diem Hoa");
Label d=new Label("Diem Tin");
Label e=new Label("Chon Hoc Sinh");
Label kq=new Label("Diem Trung Binh");
final TextField text_a=new TextField(6);
final TextField text_b=new TextField(6);
final TextField text_c=new TextField(6);
final TextField text_d=new TextField(6);
final Choice text_e= new Choice();
text_e.add("Hoc Sinh Chuyen");
text_e.add("Hoc Sinh Thuong");
final TextField text_ketqua=new TextField(6);
Button DTB=new Button("Tinh");

phiabac.add(ten);
phiatrung.add(a);
phiatrung.add(text_a);
phiatrung.add(b);
phiatrung.add(text_b);
phiatrung.add(c);
phiatrung.add(text_c);
phiatrung.add(d);
phiatrung.add(text_d);
phiatrung.add(e);
phiatrung.add(text_e);
phiatrung.add(kq);
phiatrung.add(text_ketqua);
phianam.add(DTB);

DTB.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
double a= Double.parseDouble(text_a.getText());
double b= Double.parseDouble(text_b.getText());
double c= Double.parseDouble(text_c.getText());
double d= Double.parseDouble(text_d.getText());
if(text_e.getSelectedItem().equals("Hoc Sinh Chuyen")){
HocSInhChuyen hsc= new HocSInhChuyen();
hsc.setDToan(a);
hsc.setDLy(b);
hsc.setDHoa(c);
hsc.setDTin(d);
text_ketqua.setText(String.valueOf(hsc.tinhdiem()));
}
if(text_e.getSelectedItem().equals("Hoc Sinh Thuong")){
HocSinhThuong hst=new HocSinhThuong();
hst.setDToan(a);
hst.setDLy(b);
hst.setDHoa(c);
hst.setDTin(d);
text_ketqua.setText(String.valueOf(hst.tinhdiem()));
}

}}
);

}
}
public class HocSinhThuong extends JHocSinh {

public HocSinhThuong(double toan, double ly, double hoa, double tin) {
super(toan, ly, hoa, tin);
// TODO Auto-generated constructor stub
}
public HocSinhThuong(){
super();
}
public float tinhdiem() {
// TODO Auto-generated method stub
return ((float)DToan*2+(float)DLy*2+(float)DHoa+(float)DTin)/6;
}

public float tinhdiem(double dt) {
// TODO Auto-generated method stub
return ((float)dt*2+(float)DLy*2+(float)DHoa+(float)DTin)/6;
}

public float tinhdiem(double dt, double dl) {
// TODO Auto-generated method stub
return ((float)dt*2+(float)dl*2+(float)DHoa+(float)DTin)/6;
}

public float tinhdiem(double dt, double dl, double dh) {
// TODO Auto-generated method stub
return ((float)dt*2+(float)dl*2+(float)dh+(float)DTin)/6;
}

public float tinhdiem(double dt, double dl, double dh, double dti) {
// TODO Auto-generated method stub
return ((float)dt*2+(float)dl*2+(float)dh+(float)dti)/6;
}

}
public class HocSInhChuyen extends JHocSinh {

public HocSInhChuyen(double toan, double ly, double hoa, double tin) {
super(toan, ly, hoa, tin);
// TODO Auto-generated constructor stub
}
public HocSInhChuyen(){
super();
}

public float tinhdiem() {
// TODO Auto-generated method stub
return ((float)DToan*2+(float)DLy*2+(float)DHoa+(float)DTin*5)/10;
}

public float tinhdiem(double dt) {
// TODO Auto-generated method stub
return ((float)dt*2+(float)DLy*2+(float)DHoa+(float)DTin*5)/10;
}

public float tinhdiem(double dt, double dl) {
// TODO Auto-generated method stub
return ((float)dt*2+(float)dl*2+(float)DHoa+(float)DTin*5)/10;
}

public float tinhdiem(double dt, double dl, double dh) {
// TODO Auto-generated method stub
return ((float)dt*2+(float)dl*2+(float)dh+(float)DTin*5)/10;
}

public float tinhdiem(double dt, double dl, double dh, double dti) {
// TODO Auto-generated method stub
return ((float)dt*2+(float)dl*2+(float)dh+(float)dti*5)/10;}}
public abstract class JHocSinh {
protected double DTin;
protected double DToan;
protected double DLy;
protected double DHoa;
// Ham getters and setters
protected double getDHoa() {
return DHoa;
}
protected void setDHoa(double hoa) {
DHoa = hoa;
}
protected double getDLy() {
return DLy;
}
protected double getDTin() {
return DTin;
}

protected void setDLy(double ly) {
DLy = ly;
}
protected void setDTin(double tin) {
DTin = tin;
}

protected double getDToan() {
return DToan;
}

protected void setDToan(double toan) {
DToan = toan;
}



/**
* Ham dựng ko đối số
*/

public JHocSinh( double toan, double ly, double hoa, double tin) {
super();

DToan = toan;
DLy = ly;
DHoa = hoa;
DTin= tin;
}
public JHocSinh()
{
super();
}

//Nạp chồng 3 hàm tính điểm 1,2,3,4 đối số
/**
* hàm tính điểm 1 đối số là điểm toán, các điểm còn lại xem như 1, công thức tính điểm Lớp chuyên (MC*3+DT+DL+DH)/6 ; Đối với lớp Đại trà (DT+DL+DH)/3
*/
public abstract float tinhdiem();
public abstract float tinhdiem(double dt);
public abstract float tinhdiem(double dt, double dl);
public abstract float tinhdiem(double dt, double dl,double dh);
public abstract float tinhdiem(double dt, double dl,double dh, double dti);



}
viết xong không có lỗi gì hết khi chạy lại có lỗi:(( sau đây là ảnh nhờ mấy anh chị pro giúp dùm em;))
1274933036123059483_574_574.jpg

12749330361380785176_574_574.jpg
 
Cám ơn cậu nhé tính được rồi. Thế còn câu 3 thì ntn nhỉ? Nhập nhiều phân số rồi tính tổng, tích chắc phải dùng mảng 2 chiều à?

lâu rồi ko đụng gì đến, ko bít nhầm chỗ nào ko :'>
Mã:
class PS{
    int ts;
    int ms;

public:
    //constructor
    PS(){
        ts=ms=1;        
    }
    void setTS(int t) {ts=t;}
    void setMS(int m) {ms=m;}
    int getTS() {return ts;}
    int getMS() {return ms;}
    void nhap(){
         int t=m=1;
         cout<<"Nhap tu so:";cin>>t;
         cout<<"Nhap mau so:";cin>>m;
         setTS(t);setMS(m);
    }
    void hienthi(){...}
    void rutgon(){...}
    PS rutgon(PS ps){...return kq;}//tra ve kieu PS kết quả rút gọn
}
class PS1:public PS{   
   void cong2ps(PS1 p1,PS1 p2){...}//nên dùng kiểu PS1 cho hàm này để trả về kết quả đã rút gọn như :
   PS1 cong2ps(PS1 p1,PS1 p2){PS1 result;....;return rutgon(result);}
   void nhan2ps(PS1 p1,PS1 p2){...}
   PS1 congps(PS1 p[]){PS1 result;...;return rutgon(result);} //Cong nhieu hon 2 ps,cái này gọi hàm cong2ps ra tính cho từng cặp phần tử
   PS1 nhanps(PS1 p[]){PS1 result;...;return rutgon(result);}// Nhan nhieu hon 2ps
}
 
Cái này có lẽ vì trong code cậu dùng tiếng Việt có dấu ở chỗ nào đó :-?
Thử File-> Properties -> Text file encoding -> UTF-8 xem :D
 
Back
Top