Viết chương trình thực hiện các công việc sau:(Menu chính)
1. Nhập danh sách sinh viên, bao gồm: họ tên, lớp;
2. Xuất DSSV đã được sắp xếp theo Alphabet;
3. Tìm kiếm 1 Sinh viên thông qua tên;
4. Thoát;
Nếu bài này dùng cấu trúc thì đơn giản. Vấn đề ở đây là chỉ được dùng chuỗi và con trỏ.
Nhờ mọi người hướng dẫn dùm. Mình vẫn chưa biết làm sao. Đặc biệt là thao tác nhập Sinh viên;
Dưới đây là cách làm của mình nhưng vẫn chưa đúng
Code:
#include<stdio.h>
#include<conio.h>
#include<string.h>
char *ds[100][2];
int ssv=0,n;
void NhapSV(int &ssv)
{
printf("So sv can nhap: "); scanf("%d",&n);
printf("-----------------------------------------------------------\n");
for(int i=ssv; i<ssv+n; i++)
{
char sv[30], cl[20];
printf("\tHo va ten sv[%d]: ",i+1);fflush(stdin) ;gets(sv);
ds[0][i]=sv;
printf("\tLop: "); gets(cl);
ds[1][i]=cl;
}
ssv=ssv+n;
}
void XuatSV(int i)
{
char *sv=ds[0][i], *cl=ds[1][i];
printf("Ho va ten: %-30s",sv);
fflush(stdin);
printf("Lop: %-20s\n",cl);
}
void DSSV()
{
if(ssv==0) {printf("Srr! DSSV dang rong. Vui long nhap Du Lieu truoc!\n"); NhapSV(ssv);}
else
for(int i=0; i<ssv; i++)
XuatSV(i);
}
void MeNu()
{
int lc;
printf("*******CAC CHUC NANG CHINH CUA CHUONG TRINH*******\n");
do{
printf("---------------------------------------------------\n");
printf("1. Nhap danh sach sinh vien. \n");
printf("2. Xuat Danh Sach SB da duoc sap xep theo Alphabet.\n");
printf("3. Tim kiem SV theo ho hoac ten.\n");
printf("4. Thoat.\n");
printf("---------------------------------------------------\n");
printf("Lua chon cua ban: ");
scanf("%d", &lc);
switch (lc)
{
case 1:
{
printf("BAN VUA CHON THAO TAC NHAP SINH VIEN\n");
printf("************************************\n");
NhapSV(ssv);
break;
}
case 2: {
printf("BAN VUA LUA CHON THAO TAC XUAT DSSV THEO ALPHABET\n");
printf("*************************************************\n");
DSSV();
break;
}
case 3: {
printf("BAN VUA LUA CHON THAO TAC TIM KIEM\n");
printf("**********************************\n");
break;
}
}
}
while(lc!=4);
}
void main()
{
MeNu();
getch();
}