[Danh sách liên kết đơn]Nhập/Thêm thông tin sinh viên trong C/C++

Đề bài: Viết chương trình thực hiện các chức năng sau: Nhập danh sách n sinh viên, mỗi sinh viên có các thông tin sau: Mã sinh viên, họ ...

Đề bài:
Viết chương trình thực hiện các chức năng sau:
  • Nhập danh sách n sinh viên, mỗi sinh viên có các thông tin sau: Mã sinh viên, họ và tên, Lớp, Điểm lý thuyết, Điểm Thực hành, Điểm thi, Điểm Trung Bình. Danh sách sinh viên được tổ chức và lưu trữ dưới dạng danh sách liên kết đơn (sử dụng thuật toán chèn phần tử vào cuối danh sách khi tạo danh sách)
  • Nhập vào từ bàn phím thông tin của 1 sinh viên, chèn sinh viên này vào đầu danh sách
  • Chèn thông tin của sinh viên vào một vị trí x trong danh sách

Code:



#include <cstdlib>
#include <cstdio>
typedef struct sinhVien
{
int maSV, diemT, diemLT, diemTH;
float diemTB;
char hoTen[30], lop[15];
struct sinhVien *next;
} sv, *head, *tail;
sv *addNode()
{
sv *new_sv = (sv*)malloc(sizeof(sv));
if(new_sv == NULL)
{
printf("\nLoi khi tao bo nho!");
exit(1);
}
printf("\nNhap ten: ");
fflush(stdin);
scanf("%[^\n]s",&new_sv-> hoTen);
printf("Nhap ma SV: ");
scanf("%d", &new_sv->maSV);
printf("Nhap lop: ");
scanf("%s", &new_sv->lop);
printf("Nhap diem ly thuyet: ");
scanf("%d", &new_sv->diemLT);
printf("Nhap diem thuc hanh: ");
scanf("%d", &new_sv->diemTH);
printf("Nhap diem thi: ");
scanf("%d", &new_sv->diemT);
new_sv->diemTB = (new_sv->diemLT+new_sv->diemTH+new_sv->diemT)/3.0;
new_sv-> next = NULL;
return new_sv;
}
void addHead(sv *&head, sv *tail)
{
sv *p;
p = addNode();
if(head ==NULL)
{
head =p;
tail = head;
}
else
{
p->next = head;
head = p;
}
}
void addTail(sv *&head, sv *tail)
{
sv *p;
p = addNode();
if(head == NULL)
{
head = p;
tail = head;
}
else
{
tail = head;
while(tail->next != NULL)
tail= tail->next;
tail->next = p;
}
}
int demNode(sv *head)
{
int dem;
sv *p = head;
dem =0;
while(p != NULL)
{
dem++;
p= p->next;
}
return dem;
}
void addMid(sv *&head, sv *tail)
{
int x;
int maxNode = demNode(head);
do
{
printf("\nNhap vao vi tri can chen:");
scanf("%d", &x);
}
while(x <1 || x >maxNode);
sv *newNode, *q;
printf("\nNhap vao thong tin can chen");
int dem=1;
if(x==1)
addHead(head, tail);
else
{
newNode = addNode();
q = head;
while(dem!=x-1 && q != NULL)
{
q=q->next;
}
newNode->next= q->next;
q->next = newNode;
}
}
void input(sv *&head, sv *tail)
{
int n;
do
{
printf("nhap vao so luong SV: ");
scanf("%d", &n);
}
while(n<=0);
int maSV, diemT, diemLT, diemTH;
float diemTB;
char hoTen[30], lop[10];
for(int i=0; i<n; i++)
{
printf("\nNhap vao thong tin sinh vien: %d", i+1);
addTail(head, tail);
}
}
void in(sv *head)
{
sv *p = head;
printf("\n == DANH SACH SINH VIEN == \n");
printf("%20s%15s%10s%10s%10s%10s%10s\n", "Ho ten","Ma SV","Lop","Diem LT","Diem TH", "Diem T","Diem TB");
while(p != NULL)
{
printf("%20s%15d%10s%10d%10d%10d%10.2f\n", p->hoTen, p->maSV, p->lop, p->diemLT, p->diemTH, p->diemT, p->diemTB);
p=p->next;
}
}
int main()
{
sv *head, *tail;
head = NULL, tail = NULL;
input(head, tail);
in(head);

printf("\nNhap vao thong tin can chen dau DS");
addHead(head, tail);
printf("\nDanh sach sau khi chen thong tin vao dau DS");
in(head);

addMid(head, tail);
printf("\nDanh sach sau khi chen thong tin ");
in(head);
return 0;}

Kết quả test: 


COMMENTS

BLOGGER: 4
  1. hay quá, bạn ra thêm nhiều bài nữa về SQL nhé

    Trả lờiXóa
  2. web này bạn làm bằng wordpress hay html css js thuần thế ?

    Trả lờiXóa
    Trả lời
    1. Dùng blogspot sau mình custom giao diện. Html, css và js, ngoài ra còn một chút jquery

      Xóa
Tên bạn chỉ hiện unknown,đổi tên ở đây:
https://www.blogger.com/edit-profile.g

Tên

bài viết hay,4,Bài viết khác,1,cấu trúc dữ liệu và giải thuật,3,fithou,36,ghim,4,giải tích 2,1,Hướng dẫn,5,Lập trình C,1,lập trình hướng đối tượng,3,Lập trình java,1,phần mềm,2,phần mềm lập trình,2,sách,1,tác phẩm đồ họa,3,tản mạn,4,Thiết kế web,3,thực hành lập trình cơ sở,18,thực hành lập trình hướng đối tượng,16,
ltr
item
Blog NDanh: [Danh sách liên kết đơn]Nhập/Thêm thông tin sinh viên trong C/C++
[Danh sách liên kết đơn]Nhập/Thêm thông tin sinh viên trong C/C++
https://1.bp.blogspot.com/-rcx3Mqy49lw/XmYPgi_yKXI/AAAAAAAAdgc/g2OoHRJlceIoVcn9ZKla8rBdNBqv-5negCLcBGAsYHQ/s640/add%252C%2Bin%2Blinked%2Blist.jpg
https://1.bp.blogspot.com/-rcx3Mqy49lw/XmYPgi_yKXI/AAAAAAAAdgc/g2OoHRJlceIoVcn9ZKla8rBdNBqv-5negCLcBGAsYHQ/s72-c/add%252C%2Bin%2Blinked%2Blist.jpg
Blog NDanh
https://blog.ndanh.com/2020/02/nhap-trong-danh-sach-lien-ket.html
https://blog.ndanh.com/
https://blog.ndanh.com/
https://blog.ndanh.com/2020/02/nhap-trong-danh-sach-lien-ket.html
true
1596452775547375681
UTF-8
Tải tất cả bài viết Không tìm thấy bài viết nào XEM TẤT CẢ Đọc thêm Trả lời Hủy trả lời Xóa Bởi Trang chủ PAGES POSTS Xem tất cả Bài viết đề xuất CHỦ ĐỀ LƯU TRỮ SEARCH TẤT CẢ BÀI VIẾT Không tìm thấy nội dung của bạn Quay về trang chủ Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow CHIA SẺ ĐỂ XEM NỘI DUNG Bước 1: Chia sẻ lên facebook chế độ công khai Bước 2: Vào facebook, ấn vào bài đã chia sẻ công khai để hiện nội dung! Click Copy All Code Select All Code Code của bạn đã được copy Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content