91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-05
  • 語言: C/C++
  • 標簽: 鏈表??

資源簡介

1、學生成績管理(必做)(鏈表) [問題描述]   設計一個程序,記錄并統計班級學生的成績情況。 [基本要求] (1) 該題目要求使用雙向鏈式線性表。每個結點存儲的信息包括姓名,成績。排序要求是按照成績自多到少排序。另外,將有不及格成績的學生單獨存成一個鏈表。 (2) 初始輸入: 從文件讀入學生信息,建立初始鏈表。 (3)動態調整鏈表結點順序,不及格成績學生結點移到另外一個鏈表。 (4) 可有補考成績輸入,補考后及格的學生結點再移入正常鏈表。 (5) 可進行各種常見操作,例如顯示所有學生成績、插入一個學生節點、刪除一個學生節點、查詢學生成績等。

資源截圖

代碼片段和文件信息

#include
using?namespace?std;
#include
#include
#include
typedef?struct?Student????????//定義包含學生姓名和成績的結構體
{
char*name;
int?grade;
}ST;
typedef?struct?DuLNode???????//定義雙向鏈表
{
ST?data;
struct?DuLNode?*prior?*next;??????//前后指針
}LIST;
LIST*?insert(LIST*?LIST*);???????????????????//插入節點
void?creat_list(LIST*?LIST*);????????????????//創建雙向鏈表
LIST?*del(LIST*?char?*);???????????????????????????//刪除節點
int?menu_select();????????????????????????????//功能選擇
LIST*search(LIST*);???????????????????????????//尋找節點
void?show_list(LIST*);????????????????????????//顯示鏈表信息
//*****************************************************主函數
void?main()
{
LIST*pass?*fail?*p?*q;
char?student_name[20];
int?grade;
for?(;;)
{
switch?(menu_select())
{
case?1:printf(“建立學生成績管理系統!\n“);
pass?=?(LIST*)malloc(sizeof(LIST));
fail?=?(LIST*)malloc(sizeof(LIST));
creat_list(pass?fail);
printf(“系統成功建立!\n“);
break;
case?2:printf(“插入一個學生節點!\n“);
p?=?(LIST*)malloc(sizeof(LIST));
printf(“請輸入插入學生的姓名:\n“);
scanf(“%s“?student_name);
printf(“請輸入該生成績:\n“);
scanf(“%d“?&grade);
p->data.name?=?(char*)malloc(strlen(student_name)*sizeof(char));
strcpy(p->data.name?student_name);
p->data.grade?=?grade;
if?(p->data.grade?>=?60)????????????????//該生及格
pass?=?insert(pass?p);
else????????????????????????????????????//該生不及格
fail?=?insert(fail?p);
printf(“插入成功!\n“);
break;
case?3:printf(“查詢學生成績!\n“);
printf(“現在先在及格學生中查找!\n“);
p?=?search(pass);
if?(p?==?NULL)???????????????//表面所查找學生不在及格學生之列
{
printf(“現在在不及格學生中查找!\n“);
p?=?search(fail);
if?(p?==?NULL)
{
printf(“請檢查輸入是否有誤!\n“);
break;
}
}
printf(“所查詢學生的成績為:%d\n“?p->data.grade);
break;
case?4:printf(“刪除學生信息!\n“);
printf(“請輸入刪除學生的姓名:\n“);
scanf(“%s“?student_name);
printf(“現在先在及格學生中查找要刪除的學生!\n“);
p?=?del(pass?student_name);
if?(p?==?NULL)
{
printf(“現在在不及格學生中查找要刪除的學生!\n“);
del(fail?student_name);
}
break;
case?5:printf(“輸出成績!\n“);
printf(“及格學生成績為:\n“);
show_list(pass);
printf(“不及格學生成績為:\n“);
show_list(fail);
break;
case?6:printf(“輸入補考成績!\n“);
q?=?(LIST*)malloc(sizeof(LIST));
q->data.name?=?(char*)malloc(strlen(student_name)*sizeof(char));
q?=?search(fail);?????????????????????????//在不及格學生鏈表中找到對應的學生
strcpy(student_name?q->data.name);
if?(fail->next?==?q)
{
fail->next?=?q->next;
if?(q->next)
q->next->prior?=?fail;
}
else
{
q->prior->next?=?q->next;
if?(q->next)
q->next->prior?=?q->prior;
}
free(q);??????????????????????????????????????//在不及格學生中刪除該生信息
p?=?(LIST*)malloc(sizeof(LIST));
p->data.name?=?(char*)malloc(strlen(student_name)*sizeof(char));
strcpy(p->data.name?student_name);
printf(“請輸入該生補考成績:\n“);
scanf(“%d“?&grade);
p->data.grade?=?grade;
if?(p->da

評論

共有 條評論