?? 純c的學生成績管理系統.txt
字號:
1.題目:學生成績管理系統
用結構體數組或鏈表開發一個學生成績管理系統。
2.具體要求
1)本系統應包含以下基本功能:
1>用戶交互界面。
設計用戶界面,由用戶界面進入相應操作。
2>輸入學生信息。
每個學生包括的信息為:學號、姓名、班級、學期、課程名稱、課程成績(課程名可自擬)。其中學號唯一,不可重復。
3>編輯學生信息。
1.修改某學生的制定信息。
2.刪除某學生的所有信息。
4>成績統計
1.統計某一門課程的平均成績,將統計結構在屏幕上顯示。
2.能按學生某門課程成績排序,并顯示結果。
5>學生信息查詢。
1.按姓名查詢:輸入學生姓名,顯示該學生的所有信息。
2.按學號查找:輸入學生學號,顯示該學生的所有信息。
3.按某一門課程的成績查詢:能夠分屏顯示。
4.按班級查詢:查詢某一班級的所有學生信息,能夠分屏顯示。
6>幫助系統:顯示幫助文件。
7>退出系統
2)附加:以上輸入的所有學生信息及修改后的更新信息都可以文件的形式保存,以便今后直接調用.
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define MAXLEN 100
#define ERROR 0
typedef struct node
{ int num;
char name[MAXLEN];
int score;
struct node *next;
}list;
// 頭文件creat.h的內容
//#include"hh.h"
list *create()
{ list *head,*p,*r;
int i,n;
head=(list *)malloc(sizeof(list));
head->next=ERROR;
r=head;
printf("請輸入學生人數:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{ p=(list *)malloc(sizeof(list));
printf("輸入學生的學號:\n");
scanf("%d",&p->num);
printf("輸入學生的姓名:\n");
scanf("%s",p->name);
printf("輸入學生的成績:\n");
scanf("%d",&p->score);
p->next=ERROR;
r->next=p;
r=r->next;
}
return(head);
}
// 以下是頭文件insert.h的內容
list *insert(list *h)
{
list *p,*q,*r,*head;
head=h;
r=h;
p=h->next;
// 下面構造一個學生的信息
q=(list *)malloc(sizeof(list));
printf("輸入待插入學生的學號:\n");
scanf("%d",&q->num);
printf("輸入姓名:\n");
scanf("%s",q->name);
printf("輸入成績:\n");
scanf("%d",&q->score);
q->next=ERROR;
// 找到鏈表的表尾結點
while(p!=ERROR)
{ r=p;
p=p->next;
}
//將新結點插入到表尾
r->next=q;
r=r->next;
return(head);
}
// 以下是頭文件find.h的內容
void find(list *h)
{
int k;
list *p;
p=h->next;
printf("輸入要查找學生的學號:\n");
scanf("%d",&k);
while(p && p->num!=k)
p=p->next;
if(p)
{ printf("學號\t姓名\t成績\n");
printf("%d\t%s\t%d\n",p->num,p->name,p->score);
}
else
printf("沒找到!\n");
}
// 以下是頭文件del.h的內容
list *del(list *h)
{ int k;
list *p,*q;
q=h;
p=h->next;
printf("請輸入待刪除學生的學號:\n");
scanf("%d",&k);
while(p && p->num!=k)
{ q=p;
p=p->next;
}
if(p)
{
q->next=p->next;
free(p);
}
else
printf("沒有這個學生成績,無法刪除!\n");
return(h);
}
// 以下是頭文件output.h的內容
void output(list *h)
{
list *p;
p=h->next;
while(p!=ERROR)
{printf("學號\t姓名\t成績\t\n");
printf("%d\t%s\t%d\n",p->num,p->name,p->score);
p=p->next;
}
}
int main()
{ list *p;
int k; //控制循環的標志
while(1)
{
printf(" -----------------------------------\n");
printf(" | 學生成績管理 |\n");
printf(" |__ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|\n");
printf(" | 1. 登記成績 |\n");
printf(" | 2. 查詢成績 |\n");
printf(" | 3. 插入成績 |\n");
printf(" | 4. 刪除成績 |\n");
printf(" | 5. 輸出所有學生成績 |\n");
printf(" | 0. 退出程序 |\n");
printf(" ------------------------------------\n");
printf(" 請輸入你的選擇:\n");
scanf("%d",&k);
switch(k)
{ case 1: p=create();break;
case 2: find(p);break;
case 3: p=insert(p);break;
case 4: p=del(p);break;
case 5: output(p);break;
case 0: exit(0);
default: printf("選擇錯誤,重新開始!\n");
}
} //while
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -