日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

数据结构课程设计——学生成绩管理系统

發(fā)布時間:2023/12/9 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构课程设计——学生成绩管理系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本程序是對學(xué)生的成績管理做一個簡單的模擬,用菜單選擇方式完成下列功能:?? 登記學(xué)生成績;查詢學(xué)生成績;插入學(xué)生成績;刪除學(xué)生成績。把問題看作對線性表的操作來完成。

?

#include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <string.h> #define MAXSIZE 100 int renshu; int true=1; int error=0;typedef struct Student{ //存放學(xué)生姓名的表char name[20]; //姓名int num; //學(xué)號int math;int chinese;int sum; //總成績 }Student;typedef struct{Student elem[MAXSIZE]; //線性表占用的數(shù)組空間int last; //最后一個元素的下標 }SeqList;//順序表的輸入 void InList(SeqList *L,int i){ //逐個輸入學(xué)生信息int x;printf("請輸入學(xué)生數(shù)量:");scanf("%d",&x);renshu=x;for(i=1;i<=x;i++){printf("第%d位學(xué)生信息\n",i);printf("———————————————\n");printf("姓名:");scanf("%s",&L->elem[i].name);printf("———————————————\n");printf("學(xué)號:");scanf("%d",&L->elem[i].num);printf("———————————————\n");printf("數(shù)學(xué)成績:");scanf("%d",&L->elem[i].math);printf("———————————————\n");printf("語文成績:");scanf("%d",&L->elem[i].chinese);printf("———————————————\n");L->elem[i].sum=L->elem[i].chinese+L->elem[i].math; //計算總成績}L->last=x;printf("\n"); }//輸出順序表 void OutList(SeqList *L,int i){ //輸出總成績for(i=1;i<=L->last;i++){printf("姓名:%s 學(xué)號:%d 語文:%d 數(shù)學(xué):%d 總分:%d\n",L->elem[i].name,L->elem[i].num,L->elem[i].chinese,L->elem[i].math,L->elem[i].sum);}printf("\n"); }//順序表的查詢 void Find(SeqList *L){ //順序表的查詢,按照學(xué)號查詢該學(xué)生成績int i=1;int n;if(L->last<1){ //判斷是否為空表 printf("沒有成績表\n");return;}printf("輸入要查找學(xué)生的學(xué)號\n");scanf("%d",&n);while(i<=L->last && L->elem[i].num!=n){ //循環(huán)查找對應(yīng)學(xué)號的下標 i++;}if(i<=L->last){printf("該學(xué)生姓名為:%s 學(xué)號為:%d 語文成績?yōu)?#xff1a;%d 數(shù)學(xué)成績?yōu)?#xff1a;%d 總分為:%d\n",L->elem[i].name,L->elem[i].num,L->elem[i].chinese,L->elem[i].math,L->elem[i].sum);return;}if(i>L->last){printf("學(xué)號錯誤,未查詢到該學(xué)生\n");return;} }//順序表的刪除 int Delete(SeqList *L, int i){ //從L中刪除指定位序i的元素,該元素數(shù)組下標為iint j;int k;printf("請輸入要刪除的學(xué)生學(xué)號:");scanf("%d",&i);if(L->last<1){ //檢查是否為空表printf("空表!");return error;}for(k=1;k<=L->last;k++){if(L->elem[k].num==i)break;}if(k>L->last){printf("未找到該學(xué)生!\n");return error;} else{for(j=k;j<=L->last;j++)L->elem[j]=L->elem[j+1]; //將位序j+1及以后的元素前移L->last--; //last仍指向最后元素return true;} }//順序表的插入 int Insert(SeqList *L,int i,Student e){ //在L的指定位序i中插入一個新元素e;位序i元素的數(shù)組位置下表是iint j;if(L->last==MAXSIZE){ //表空間已滿,不能插入printf("表滿\n");return 0;}if(i<1 || i>L->last+2){ //檢查插入位序的合法性:是否在1~n。n為當前元素個數(shù),即lastprintf("位序不合法\n");return 0;}for(j=L->last;j>=i-1;j--) //last指向序列最后元素L->elem[j+1]=L->elem[j];L->elem[i]=e;L->last++;return 1; }int main(){int N=1,i,j;SeqList L;Student e,g;int renshu,a;printf("**********************\n");printf("*------選擇操作------*\n");printf("*------1 登記--------*\n");printf("*------2 輸出--------*\n");printf("*------3 查詢--------*\n");printf("*------4 刪除--------*\n");printf("*------5 插入--------*\n");printf("*------0 退出--------*\n");printf("**********************\n");while(N){printf("請選擇操作\n");scanf("%d",&N);if(N==1){ //登記成績InList(&L,i);}else if(N==2){ //輸出成績OutList(&L,i);}else if(N==3){ //查詢Find(&L);}else if(N==4){ //刪除if(Delete(&L,j)){renshu--;printf("刪除成功\n");}else {printf("刪除失敗\n");}}else if(N==5){ //插入printf("請輸入要插入的位置:");scanf("%d",&a);printf("請輸入學(xué)生姓名:");scanf("%s",&g.name);printf("請輸入學(xué)生學(xué)號:");scanf("%d",&g.num);printf("請輸入學(xué)生數(shù)學(xué)成績:");scanf("%d",&g.math);printf("請輸入學(xué)生語文成績:");scanf("%d",&g.chinese);g.sum=g.math+g.chinese;if(Insert(&L,a,g)){renshu++;printf("插入成功\n");}else {printf("插入失敗\n");}}else if(N==0){printf("退出成功,按任意鍵結(jié)束\n");exit(0);}}return 0; }

?

總結(jié)

以上是生活随笔為你收集整理的数据结构课程设计——学生成绩管理系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。