當前位置:首頁 » 考試成績 » 數據結構學生成績管理系統順序表

數據結構學生成績管理系統順序表

發布時間: 2021-02-13 18:12:11

① 數據結構學生成績管理系統

這么點分,要求這么高啊~~~~~~~`唉

② C語言數據結構學生成績管理系統

這個我會,可以幫你寫,

③ 數據結構。求程序。學生成績管理(用順序表)

#include<stdio.h>
#include<stdlib.h>
#define N 10 //順序表的最大容量
int length=0; //順序表的當前元素個數

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define LIST_INIT_SIZE 100//線性表存儲的空間初始化分配量
#define LISTINCREAMENT 10 //線性表存儲空間的分配增量

typedef struct LNode//線性單鏈表存儲結構
{
int data;
struct LNode *next;
}LNode,*LinkList;

int CreatList_L(LinkList&L)//創建一個線性鏈表
{
L=(LinkList)malloc(sizeof(LNode));//分配一個空間給鏈表,作為頭結點

if(!L) exit(OVERFLOW);
L->next=NULL;
return OK;
}
int DestroyList_L(LinkList &L)//銷毀鏈表
{
if(L) free(L);
return OK;
}
int ListInsert_L(LinkList&L,int i,int e)//再練表的第i個元素前插入一個元素e
{
LinkList p=L;//p指針定位於i-1
LNode *s;
int j=0;
while(p&&j<i-1) {p=p->next;j++;}//定位
if(!p||j>i-1) return ERROR;//如果i<1或大於鏈表元素個數+1
s=(LNode*)malloc(sizeof(LNode));
if(!s) exit(OVERFLOW);
s->data=e; //完成插入操作
s->next=p->next;
p->next=s;
return OK;
}

int ListDelet_L(LinkList&L,int i,int&e)//刪除鏈表L中的第i個元素,並返回給e;
{
LinkList p=L;
LNode* q;
int j=0;
while(!p&&j<i-1) {p=p->next;j++;}//p指針定位於i-1;
if(!p->next||j>i-1) return ERROR;

e=p->next->data; //完成刪除操作
q=p->next;
p->next=p->next->next;
free(q);
return OK;

}

int ListTraverse_L(LinkList L,int n)//鏈表的遍歷
{
int i=0;
if(!L)return ERROR;
L=L->next;
while(L)
{
if(L->data==n)return i;
L=L->next;
i++;
}

return FALSE;
}

int InverseSingleList_L(LinkList &L)
{
if(!L->next||!L->next->next)//如果鏈表少於2個Node那麼鏈表不需要改變順序
return OK;
LNode *p,*q;
p=L->next; //第一次因為p是最後一個連接所以把p->next設為空
q=p->next;
p->next=NULL;
p=q;
while(p)
{
q=p->next; //用q去保留p後面一個Node;
p->next=L->next;
L->next=p;
p=q;
}
return OK;
}

int main()
{
int List[N];
LinkList L;

int ch,exit='N';
do
{
system("CLS");
printf("\t\t********************************************\n");
printf("\t\t* 1.創建一個順序表 .........(1) *\n");
printf("\t\t* 2.在順序表中查找元表.........(2) *\n");
printf("\t\t* 3.在順序表中插入元表.........(3) *\n");
printf("\t\t* 4.在順序表中刪除元表.........(4) *\n");
printf("\t\t* 5.退出 .........(5) *\n");
printf("\t\t********************************************\n");
printf("\n請選擇操作代碼:");
ch=getchar();

switch(ch)
{
case '1':
printf("\n請輸入十個元素");
CreatList_L(L);
for(length=0;length<N;length++)
{
scanf("%d",&List[length]);
getchar();
ListInsert_L(L,length+1,List[length]);
}
printf("\n創建成功!");
getchar();
break;
case '2':
scanf("%d",&List[0]);
if(ListTraverse_L(L,List[0]))printf("該元素存在該年表的第%d個位置",ListTraverse_L(L,List[0]));
else printf("不存在該元素");
getchar();
break;
case '3':
scanf("%d%d",&length,&List[0]);
ListInsert_L(L,length,List[0]);
system("pause");
break;
case '4':
scanf("%d",&length);
ListDelet_L(L,length,List[0]);
system("pause");
break;
case '5':
printf("\n您是否真的要退出程序(Y/N):");
getchar();
exit=getchar();
break;
default:
getchar();
printf("\n無效輸入,請重新選擇...:");
getchar();
break;

}

}while(exit!='y'&&exit!='Y');

}

④ 求學生成績管理系統的主要數據結構啊。。。

你說的數據結構是指學生成績管理系統的資料庫表么?

⑤ 可以幫我用數據結構(C語言)順序表編一個學生信息表

#include "stdio.h"#include "stdlib.h"typedef struct chain{ long num; float score; struct chain *next;}jd;jd *create(long *num,float *score,int n){ jd *head=NULL,*p,*q; p=q=(jd *)malloc(sizeof(jd)); p->num=num[0]; p->score=score[0]; head=p; q=p; for (i=1;i<n;i++) { p=(jd *)malloc(sizeof(jd)); p->num=num[i]; p->score=score[i]; p->next=q; q=p; } p->next=NULL; return(head);}main(){ jd *create(long *num,float *score,int n); jd *head; long num[8]={1000,1001,1002,1003,1004,1005,1006,1007}; float score[8]={71.2,78.9,97.5,87.4,79.3,77.5,88.6,90.5}; int n=8; head=(num,score,n);}

⑥ 怎樣用C語言中的順序表編寫學生學籍管理系統拜託各位大神

/*給你寫好了,實現基本功能 其他自己完善 謝謝!*/ #include "stdio.h" #include "stdlib.h" #include "string.h" #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define MAXLEN 12 typedef int Status; typedef struct { char num[MAXLEN]; char name[MAXLEN]; int socre; /*只寫一門先*/ int credit; }ElemType; typedef struct { ElemType *elem; int length; int listsize; }SqList; Status ListInit(SqList *L) { L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L->elem)exit(OVERFLOW); L->length=0; L->listsize=LIST_INIT_SIZE; return OK; } Status ListInsert(SqList *L,int pos,ElemType e) { /*先不先溢出那種情況了*/ ElemType *p,*q; if(pos<1||pos>L->length+1) return ERROR; p=&L->elem[L->length-1]; q=&L->elem[pos-1]; for(;p>=q;--p) *(p+1)=*p; *q=e; ++L->length; return OK; } void Print(SqList L) { int i; for(i=0;i<L.length;++i) { printf("學號:%s",L.elem[i].num); printf("姓名:%s",L.elem[i].name); printf("成績:%d",L.elem[i].socre); printf("學分:%d",L.elem[i].credit); printf("\n"); } } void ReadIn(ElemType *e) { printf("輸入學號:"); scanf("%s",e->num); printf("輸入姓名:"); scanf("%s",e->name); printf("輸入成績:"); scanf("%d",&e->socre); printf("輸入學分:"); scanf("%d",&e->credit); } void Sort(SqList *L) { int i,j; ElemType t; for(i=0;i<L->length-1;++i) for(j=0;j<L->length-i-1;++j) if(L->elem[j].socre>L->elem[j+1].socre) { t=L->elem[j]; 1 L->elem[j]=L->elem[j+1]; L->elem[j+1]=t; } } void main() { SqList L; int key,len; ElemType e; ListInit(&L); do{ printf("(1):錄入成績\n"); printf("(2):成績排序\n"); printf("(3):顯示所有成績\n"); printf("(4):退出\n"); scanf("%d",&key); switch(key) { case 1 :ReadIn(&e); len=L.length; ListInsert(&L,++len,e); break; case 2 :Sort(&L);break; case 3 :Print(L);break; case 4:exit(0); default:printf("Error\n");break; } }while(1); }

⑦ 數據結構實驗:運用順序表或鏈表,實現對學生成績的輸入、輸出、查詢、插入、刪除、修改、排序等功能

這個問題你可以用易微庫表這個工具試下,工具可以在網路軟體http://rj..com/中搜索易微庫表,使用手冊可以在網路文庫http://wenku..com/中搜索易微庫表,以下是簡介
普通人也可以自己設計程序,根據平時處理業務數據時總結的表格、方法、公式等信息,創建一個自己的程序。數據結構自定義、自動計算記錄數、自動計算列合計、錄入首字母自動顯示相應的屬性類值、Excel數據處理、數據去重、數據整理、數據統計、數據一維表變成二維表的列轉行,數據公式計算、數據首字母檢索、數據快速檢索、Excel數據導入、Excel數據導出、數據顯示排序、查詢結果計算百分比、查詢結果計算順序名次、數據查詢條件自定義、數據高級篩選、小數據量數據挖掘、自定義顯示欄位名稱等等這些功能都可以通過簡單配置後即可實現。如此神奇的事情,趕快創建一個屬於自己的庫表程序吧。

⑧ C語言 順序線性表 實現學生成績管理系統

/***************************頭文件*********************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/***************************常量***********************************/
#define MENU_NUM 10
#define N 3
/****************************結構體********************************/
typedef struct s1
{
char no[10] ; //學號由10個字元組成
char name[15] ; //學生姓名
float score[N] ; //各門課成績
float sum ; //總分
float average ; //平均分
struct s1 *next ; //指向後繼結點的指針
}STUDENT; //定義結構體類型
/********************************全局變數*************************/
struct s1 * head=NULL; //鏈表頭結點
/********************************函數聲明*************************/
void InputData( STUDENT * ptr ); //錄入信息
void PrintMenu( ); //顯示菜單
int MenuSelect( ); //選擇菜單項
void Init( ); //初始化
void create( ); //創建鏈表
void print( ) ; //列印鏈表數據
void Delete( ); //刪除指定學號的記錄數據
void append(); //追加一個數據到鏈表尾部
void computer(); //計算鏈表中所有人的總分和平均分
/***********************************主函數********************************/
void main()
{
int key;
while(1) {
key=MenuSelect();
switch(key)
{
case 1:
Init(); //初試化鏈表。也就是若鏈表不為空則釋放鏈表中所有數據,將head置為空(NULL)
break;
case 2:
create(); //創建鏈表,輸入數據
break;
case 3:
Delete(); //刪除一個指定學號的記錄數據
break;
case 4:
print(); //列印鏈表中所有數據
break;
case 5:
computer(); //計算鏈表中所有人的總分和平均分
break;
case 6:
append(); //追加一個數據到鏈表的尾部
break;
case 7:
Init(); //釋放鏈表
exit(0);
}
}
}
/*****************************************************************
*函數名:PrintMenu
*
*描 述:顯示操作菜單*
*
*入口參數:無
*
*出口參數:無
******************************************************************/
void PrintMenu( )
{
int i;
char * menu[]={
"-----------------------------------------------",
"| 基於指針和鏈表的學生成績管理系統 |",
"| 1. 初始化鏈表 |",
"| 2. 創建鏈表 |",
"| 3. 刪除指定學號的記錄 |",
"| 4. 列印學生成績信息 |",
"| 5. 計算學生的總分和平均分 |",
"| 6. 插入一條學生記錄 |",
"| 7. 退出 |",
"-----------------------------------------------",
};
printf("\n\n");
for (i=0;i<MENU_NUM;i++)
printf("%s\n",menu[i]);
printf("\n輸入要進行的操作(1-7):");
}
/*****************************************************************
*函數名:MenuSelect
*
*描 述:選擇菜單選項,返回選擇的選項
*
*入口參數:無
*
*出口參數:整型數據
******************************************************************/
int MenuSelect( )
{
int key;
PrintMenu( );
scanf("%d",&key);
return key;
}
/*****************************************************************
*函數名:Init
*
*描 述:初始化單鏈表。也就是釋放鏈表中的所有數據
*
*入口參數:無
*
*出口參數:無
******************************************************************/
void Init( )
{
STUDENT *p,*ptr; //定義兩個臨時指針變數p,ptr
p=head;
ptr=head; //將兩個臨時變數指向頭指針head ;
while(ptr!=NULL)
{
ptr=ptr->next; //ptr指向下一個結構數據
free(p); //釋放p所指向的結構數據的內存
p=ptr; //將p指向ptr所指向的數據
}
head=NULL; //將head指向NULL
}
/*****************************************************************
*函數名:create
*
*描 述:創建單鏈表
*
*入口參數:無
*
*出口參數:無
******************************************************************/
void create( )
{
STUDENT *pt, *pth=NULL; //定義兩個指針變數:pt指向即將申請新的數據內存,pth指向當前數據
while(1)
{
pt=(STUDENT *)malloc(sizeof(STUDENT)); //讓pt指向新申請的內存空間
InputData(pt); //輸入數據,存放到pt所指向的結構數據。注意讓pt的next指向NULL
if (strcmp(pt->no,"@")==0)
{
free(pt); //釋放pt所指向的內存空間
break; //退出循環
}
else if (head==NULL)
{
pth=pt;
head=pt; //將頭指針head和pth指向pt
}
else
{
pth->next=pt; //將pth的next指向pt;
pth=pt; //將pth指向pt;
}
}
}
/*****************************************************************
*函數名:print
*
*描 述:列印單鏈表中所有數據
*
*入口參數:無
*
*出口參數:無
******************************************************************/
void print( )
{
int i=0;
STUDENT *p; //第一個指針p
p=head; //將p指向head
printf("\n");
printf("******************************STUDENT******************************\n");
printf("|rec| 學號 | 姓名 | 成績1| 成績2| 成績3|總成績| 平均成績|\n");
printf("|---|----------|------------|------|------|------|------|---------|\n");
//列印表頭
while (p!=NULL)
{
printf("|%3d|%10s|%-12s|%6.1f|%6.1f|%6.1f|%6.2f|%9.1f|\n",
++i,p->no,p->name,p->score[0],p->score[1],p->score[2],
p->sum,p->average); //列印p所指向的結構中的所有數據。注意列印數據間的分隔線
p=p->next; //將p指向p的下一個結構數據
}
printf("********************************END********************************\n");
//列印表尾
}
/*****************************************************************
*函數名:Delete
*
*描 述:刪除指定學號的記錄
*
*入口參數:無
*
*出口參數:無
******************************************************************/
void Delete( )
{
STUDENT *p,*pth; //定義兩個指針p,pth
char no[11]; //定義一個整數no(用來存儲輸入的學號)
printf("輸入要刪除學生的學號:");
scanf("%s",no); //用輸入語句輸入一個學號存儲到no中
p=head;pth=head; //將p和pth都指向頭指針
if (strcmp(p->no,no)==0) //也就是若頭指針指向的數據需要刪除
{
head=head->next; //將head指針指向head的下一個數據;
free(p); //釋放p所指向的數據
}
else
{
p=p->next; //將p指向p的下一個數據
while ( p!=NULL)
{
if (strcmp(p->no,no)==0) //找到了要刪除的數據
{
pth->next=p->next; //將pth的next指向p的next
free(p); //釋放p
break; //退出循環
}
else
{
pth=pth->next; //將pth指向pth的next 或 將pth指向p
p=p->next; //將p指向p的next
}
}
}
}
/*****************************************************************
*函數名:append
*
*描 述:增加學生記錄
*
*入口參數:無
*
*出口參數:無
******************************************************************/
void append()
{
STUDENT *p,*pth; //定義兩個指針變數p,pth
pth=head; //將pth指向head
while ( pth->next!=NULL)
{
pth=pth->next; //ptr指向ptr的next
}
p=(STUDENT *)malloc(sizeof(STUDENT)); //將p指向新申請的內存空間
InputData(p);
p->next=NULL; //數據數據存儲到p所指向的內存空間,注意將p的next置為NULL
pth->next=p; //將ptr的next指向p
}
/*****************************************************************
*函數名:InputData
*
*描 述:輸入學生信息
*
*入口參數:指針
*
*出口參數:無
******************************************************************/
void InputData( STUDENT *ptr )
{
int i;
printf("輸入學號:");
scanf("%s",ptr->no);
if (strcmp(ptr->no,"@")==0 )
return;
printf("輸入姓名:");
scanf("%s",ptr->name);
for(i=0;i<3;i++)
{
printf("輸入成績:");
scanf("%f",&ptr->score[i]);
}
ptr->sum=0;
ptr->average=0;
ptr->next=NULL; //不要忘記這一步
}
/*****************************************************************
*函數名:computer
*
*描 述:計算學生總成績和平均成績
*
*入口參數:無
*
*出口參數:無
******************************************************************/
void computer()
{
STUDENT *p;
p=head;
for(;p;p=p->next)
{
p->sum=p->score[0]+p->score[1]+p->score[2];
p->average=(p->score[0]+p->score[1]+p->score[2])/3;
}
}

⑨ 問下關於數據結構順序表 寫的學生管理小程序

建議將頭文件和其實現分開。而且你的頭文件不標准

下面是我的~

student.h

#ifndef _STUDENT_H_
#define _STUDENT_H_
#define MAXlength 50
typedef struct{
int data[MAXlength];
int length;
}LinerLink;
extern void InsertLink(LinerLink *line, int temp, int position);
extern void PrintLink(LinerLink *line);
extern void FindLink(LinerLink *line, int x);
extern void DeleteLink(LinerLink *line, int position);
#endif

student_1.cpp //實現頭文件的功能

#include "student.h"
#include <stdio.h>
void InsertLink(LinerLink *line, int temp, int position)
{
int i=line->length;
if(position>line->length)
printf("輸入錯誤,位置過大 ");
else
{
for(;position<i;i--)
{
line->data[i]=line->data[i-1];
}
line->length++;
line->data[position]=temp;
}
}
/*輸出元素操作*/
void PrintLink(LinerLink *line)
{
for(int i=0; i<line->length; i++)
{
printf("data%d=%d",i,line->data[i]);
printf(" ");
}
}
/*查找輸入找到的第一個元素操作*/
void FindLink(LinerLink *line, int x)
{
for(int i=0; i<line->length; i++)
{
if(x==line->data[i])
{
printf("找到元素,在第%d位置~ ",i+1);
break;
}
}
}
/*刪除找到的第一個元素操作*/
void DeleteLink(LinerLink *line, int position)
{
if(position>line->length)
printf("輸入錯誤,位置過大 ");
else
{
for(;position<line->length;position++)
{
line->data[position-1]=line->data[position];
}
line->length--;
}
}
熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919