Results
Results
// Sample data
const results = [
{ id: 1, student: "Nguyễn Văn A", class: "10A1", exam: "Kiểm tra 15 phút Toán
10", score: 9.5, date: "15/04/2025" },
{ id: 2, student: "Trần Thị B", class: "10A1", exam: "Kiểm tra 15 phút Toán 10",
score: 8.0, date: "15/04/2025" },
{ id: 3, student: "Lê Văn C", class: "11A2", exam: "Kiểm tra 1 tiết Lý 11",
score: 7.5, date: "14/04/2025" },
{ id: 4, student: "Phạm Thị D", class: "11A2", exam: "Kiểm tra 1 tiết Lý 11",
score: 6.0, date: "14/04/2025" },
{ id: 5, student: "Hoàng Văn E", class: "12A3", exam: "Thi học kỳ Hóa 12", score:
8.5, date: "20/04/2025" },
{ id: 6, student: "Ngô Thị F", class: "12A3", exam: "Thi học kỳ Hóa 12", score:
9.0, date: "20/04/2025" },
{ id: 7, student: "Đỗ Văn G", class: "10A2", exam: "Kiểm tra 45 phút Sinh 10",
score: 7.0, date: "12/04/2025" },
{ id: 8, student: "Vũ Thị H", class: "11A1", exam: "Thi học kỳ Văn 11", score:
8.0, date: "25/04/2025" },
]
const scoreDistribution = [
{ name: "0-4", count: 5 },
{ name: "4-5", count: 10 },
{ name: "5-7", count: 25 },
{ name: "7-8", count: 30 },
{ name: "8-9", count: 20 },
{ name: "9-10", count: 10 },
]
const pieData = [
{ name: "Giỏi (8-10)", value: 30, color: "#4CAF50" },
{ name: "Khá (7-8)", value: 30, color: "#2196F3" },
{ name: "Trung bình (5-7)", value: 25, color: "#FFC107" },
{ name: "Yếu (0-5)", value: 15, color: "#F44336" },
]
return (
<div className="space-y-6">
<Card>
<CardHeader>
<div className="flex items-center justify-between">
<div>
<CardTitle>Kết quả thi</CardTitle>
<CardDescription>Quản lý và phân tích kết quả thi của học
sinh</CardDescription>
</div>
<Button variant="outline" className="flex items-center gap-1">
<Download className="h-4 w-4" />
Xuất báo cáo
</Button>
</div>
</CardHeader>
<CardContent>
<Tabs defaultValue="results" className="w-full"
onValueChange={setActiveTab}>
<div className="flex justify-between items-center mb-4">
<TabsList>
<TabsTrigger value="results">Kết quả</TabsTrigger>
<TabsTrigger value="analytics">Phân tích</TabsTrigger>
</TabsList>
{activeTab === "results" && (
<div className="relative w-64">
<Search className="absolute left-2 top-2.5 h-4 w-4 text-muted-
foreground" />
<Input
placeholder="Tìm kiếm kết quả..."
className="pl-8"
value={searchTerm}
onChange={(e) => setSearchTerm(e.target.value)}
/>
</div>
)}
{activeTab === "analytics" && (
<div className="flex gap-2">
<Select defaultValue="all">
<SelectTrigger className="w-[180px]">
<SelectValue placeholder="Chọn lớp" />
</SelectTrigger>
<SelectContent>
<SelectItem value="all">Tất cả các lớp</SelectItem>
<SelectItem value="10a1">10A1</SelectItem>
<SelectItem value="10a2">10A2</SelectItem>
<SelectItem value="11a1">11A1</SelectItem>
<SelectItem value="11a2">11A2</SelectItem>
<SelectItem value="12a1">12A1</SelectItem>
<SelectItem value="12a2">12A2</SelectItem>
</SelectContent>
</Select>
<Select defaultValue="all">
<SelectTrigger className="w-[180px]">
<SelectValue placeholder="Chọn kỳ thi" />
</SelectTrigger>
<SelectContent>
<SelectItem value="all">Tất cả các kỳ thi</SelectItem>
<SelectItem value="exam1">Kiểm tra 15 phút Toán
10</SelectItem>
<SelectItem value="exam2">Kiểm tra 1 tiết Lý 11</SelectItem>
<SelectItem value="exam3">Thi học kỳ Hóa 12</SelectItem>
</SelectContent>
</Select>
</div>
)}
</div>
<Card>
<CardHeader className="pb-2">
<div className="flex items-center justify-between">
<div>
<CardTitle className="text-base">Phân loại học
lực</CardTitle>
<CardDescription>Tỷ lệ học sinh theo học
lực</CardDescription>
</div>
<PieChart className="h-4 w-4 text-muted-foreground" />
</div>
</CardHeader>
<CardContent>
<ResponsiveContainer width="100%" height={300}>
<RechartsPieChart>
<Pie
data={pieData}
cx="50%"
cy="50%"
labelLine={false}
outerRadius={100}
fill="#8884d8"
dataKey="value"
label={({ name, percent }) => `${name}: ${(percent *
100).toFixed(0)}%`}
>
{pieData.map((entry, index) => (
<Cell key={`cell-${index}`} fill={entry.color} />
))}
</Pie>
<Tooltip />
<Legend />
</RechartsPieChart>
</ResponsiveContainer>
</CardContent>
</Card>
</div>
</TabsContent>
</Tabs>
</CardContent>
</Card>