欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

C語言單鏈表版學(xué)生信息管理系統(tǒng)

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

本文實例為大家分享了C語言學(xué)生信息管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

代碼:

//以單鏈表作為存儲結(jié)構(gòu),設(shè)計和實現(xiàn)課程成績管理的完整程序。
//程序包括如下功能。 
//1.建立學(xué)生成績表,包含學(xué)生的學(xué)號、姓名和成績。 
//2.可以顯示所有學(xué)生成績。 
//3.可以計算學(xué)生的總數(shù)。 
//4.可以按學(xué)號和序號查找學(xué)生。 
//5.可以在指定位置插入學(xué)生成績數(shù)據(jù)。 
//6.可以刪除指定位置的學(xué)生數(shù)據(jù)。 
//7.可以把學(xué)生成績按從高到低的順序排序。 
 
//作者: yinlinqvan 
//操作系統(tǒng):Mac OS X 
//編譯器:gcc 
 
#include "string.h" 
#include "sys/malloc.h" 
#include "stdlib.h" 
#include "stdio.h" 
#include "time.h" 
#include "sys/types.h" 
#define MAXSIZE 100 
 
typedef struct Student 
{ 
 char sname[9]; 
 char sno[5]; 
 int score; 
}DataType; 
 
typedef struct 
{ 
 DataType data; 
 struct Node *next; 
}LinkList; 
 
LinkList * inputdata(); 
 
void display(LinkList * p); 
 
//遍歷鏈表 
void displayAll(LinkList * L); 
 
//插入 
LinkList * createTailList();//尾插 
LinkList * createHeadList();//頭插 
 
//查詢 
void getElem(LinkList * L, int i);//按序號 
void locateElemBysno(LinkList * L, char ch[]);//按值 
void locateElemBysname(LinkList * L, char ch[]); 
 
int lengthList(LinkList * L); 
 
//插入 
void insertElem(LinkList * L, int i);//在第i個結(jié)點前進(jìn)行插入 
void insertElemBysno(LinkList * L, char ch[5]);//按學(xué)號 
 
void deleteElem(LinkList * L, char ch[]); 
 
//排序 
void insertSort(LinkList * L); 
 
int menue(); 
 
int main(int argc,char *argv[]) 
{ 
 LinkList *L; 
 char sno[5] = {'\0'}; 
 char sname[9] = {'\0'}; 
 int b = 1; 
 int i = 1; 
 while (b) { 
  switch(menue()) 
  { 
   case 1: 
    L = createTailList(); 
    //L = createHeadList(); 
    break; 
   case 2: 
    //displayAll(L); 
    printf("\t◎輸入插入哪個位置前:"); 
    scanf("%d", &i); 
    insertElem(L, i); 
    //scanf("%s", sno); 
    //insertElemBysno(L, sno); 
    break; 
   case 3: 
    printf("\t◎輸入待刪除學(xué)生的學(xué)號:"); 
    scanf("%s", sno); 
    deleteElem(L, sno); 
    break; 
   case 4: 
    printf("╭═══════════════════════════════╮\n"); 
    printf("║\t學(xué)生總數(shù)為:%d\t\t║\n", lengthList(L)); 
    printf("╰═══════════════════════════════╯\n\n"); 
    break; 
   case 5: 
    printf("\t◎輸入待查找學(xué)生的學(xué)號:"); 
    scanf("%s", sno); 
    locateElemBysno(L, sno); 
    break; 
   case 6: 
    printf("\t◎輸入待查學(xué)生的位置:"); 
    scanf("%d", &i); 
    getElem(L, i); 
    break; 
   case 7: 
    displayAll(L); 
    break; 
   case 8: 
    insertSort(L); 
    break; 
   case 9: 
    i = 2; 
    while (i) 
    {      
     system("clear"); 
     printf("\033[5m"); 
     printf("\033[?25l");  //隱藏光標(biāo) 
     printf("\n\n\n\n\n\n"); 
     printf("╭═══════════════════════════════╮\n"); 
     printf("║\t正在退出(%d秒)\t\t║\n", i--); 
     printf("╰═══════════════════════════════╯\n"); 
 
     sleep(1); 
    } 
    printf("\033[0m"); 
    system("clear"); 
    return 0; 
    break; 
   default: 
    i = 2; 
    while (i) 
    { 
     system("clear"); 
     printf("╭═══════════════════════════════╮\n"); 
     printf("║操作數(shù)無效,正在返回主菜單(%d秒)║\n", i--); 
     printf("╰═══════════════════════════════╯\n"); 
     sleep(1); 
    } 
    continue; 
  } 
  getchar(); 
  printf("PRESS ENTER TO CONTINUE!"); 
  while (1) { 
   if ('\n' == getchar()) 
   { 
    break; 
   } 
  } 
 } 
 return 0; 
} 
int menue() 
{ 
 system("clear"); 
 //警告音 
 printf("\033[0m");    //關(guān)閉所有屬性 
 
 printf("\033[44;37m");   //47是字背景顏色,33是字體的顏色 
 printf ("\033[5m");    //閃爍 
 printf("\n^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^\n\n"); 
 printf("\033[0m");    //關(guān)閉所有屬性 
  
 printf("\033[44;37m"); 
 printf("╭═══════════════════════════════╮\n"); 
 printf("║\t學(xué)生成績管理程序\t║\n"); 
 printf("║\t\t\t\t║\n"); 
 printf("║\t<1>創(chuàng)建\t\t\t║\n"); 
 printf("║\t<2>指定位置后插入\t║\n"); 
 printf("║\t<3>按位置刪除\t\t║\n"); 
 printf("║\t<4>求學(xué)生總數(shù)\t\t║\n"); 
 printf("║\t<5>按學(xué)號查找\t\t║\n"); 
 printf("║\t<6>按位置查找\t\t║\n"); 
 printf("║\t<7>顯示所有學(xué)生\t\t║\n"); 
 printf("║\t<8>成績排序\t\t║\n"); 
 printf("║\t<9>退出\t\t\t║\n"); 
 printf("╰═══════════════════════════════╯\n\n"); 
 
 printf ("\033[5m"); 
 printf("^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^\n\n"); 
 printf("\033[0m");    //關(guān)閉所有屬性 
 
 time_t rawtime; 
 struct tm * timeinfo; 
 time ( &rawtime ); 
 timeinfo = localtime ( &rawtime ); 
 //printf ( "\t\007%s", asctime (timeinfo) ); 
  
 printf ("\033[;34m"); 
 printf ("\t[%4d-%02d-%02d %02d:%02d:%02d]\n", 
   1900+timeinfo->tm_year, 
   1+timeinfo->tm_mon, 
   timeinfo->tm_mday, 
   timeinfo->tm_hour, 
   timeinfo->tm_min, 
   timeinfo->tm_sec); 
  
 char colorname[3][20] = {{"RED"}, {"BLUE"}, {"YELLLOW"}}; 
 srand(time(&rawtime)); //時間觸發(fā) 
 //textcolor(colorname[rand()%3]); 
 //printf("\t[textcolor is %s]\n", colorname[rand()%3]); 
 //顏色碼和控制碼 我的參考鏈接 http://wenku.baidu.com/view/a38f77ff910ef12d2af9e70b.html 
  
 printf("\t◎輸入功能項:");  
 int a = 0; 
 scanf("%d",&a); 
 printf("\033[0m"); 
 
 system("clear"); 
 return a; 
} 
 
LinkList * inputdata() 
{ 
 LinkList *s = NULL; 
 char sno[5] = {'\0'}; 
 char sname[9] = {'\0'}; 
 int score = 0; 
  
 printf("\tsno\t->"); 
 scanf("%s", sno); 
 if (sno[0] == '#') { 
  return s; 
 } 
 s = (LinkList *)malloc(sizeof(LinkList)); 
 strcpy(s -> data.sno, sno); 
  
 printf("\tsname\t->"); 
 scanf("%s", sname); 
 strcpy(s -> data.sname, sname); 
  
 printf("\tscore\t->"); 
 scanf("%d", &score); 
 s -> data.score = score; 
  
 printf("\n"); 
 return s; 
} 
 
void display(LinkList * p) 
{ 
 printf("╭═══════════════════════════════════════════════╮\n"); 
 printf("║\tsno\t\tsname\t\tscore\t║\n"); 
 printf("║\t%s\t\t%s\t\t%-4d\t║\n", p->data.sno, p->data.sname, p->data.score); 
 printf("╰═══════════════════════════════════════════════╯\n\n");} 
void displayAll(LinkList * L) 
{ 
 printf("╭═══════════════════════════════════════════════╮\n"); 
 printf("║\tsno\t\tsname\t\tscore\t║\n"); 
 LinkList * p = L -> next; 
 while(p) 
 { 
  printf("║\t%s\t\t%s\t\t%-4d\t║\n", p->data.sno, p->data.sname, p->data.score); 
  p = p -> next; 
 } 
 printf("╰═══════════════════════════════════════════════╯\n\n"); 
} 
LinkList * createTailList() 
{ 
 //鏈表頭結(jié)點 
 LinkList * L = (LinkList *)malloc(sizeof(LinkList)); 
 //結(jié)點 
 LinkList * s = NULL; 
 //尾結(jié)點 
 LinkList * r = L; 
          
 printf("╭═══════════════════════════════════════════════╮\n"); 
 printf("║\t\t尾插法建立\t\t\t║\n"); 
 printf("║\t請輸入學(xué)生信息(當(dāng)學(xué)號為\"#\"時結(jié)束)\t║\n"); 
 printf("║\t\t\t\t\t\t║\n"); 
 printf("║\t學(xué)號sno  (不超過4位)\t\t║\n"); 
 printf("║\t姓名sname (不超過4個漢字)\t\t║\n"); 
 printf("║\t成績score (int型)\t\t\t║\n"); 
 printf("╰═══════════════════════════════════════════════╯\n\n"); 
          
 while (1) { 
  s = inputdata(); 
  if (!s) { 
   break; 
  } 
  r->next = s; 
  r = s; 
 } 
 r->next = NULL; 
 return L; 
} 
 
LinkList * createHeadList() 
{ 
 //鏈表頭結(jié)點 
 LinkList * L = (LinkList *)malloc(sizeof(LinkList)); 
 //結(jié)點 
 LinkList * s = NULL; 
  
 printf("╭═══════════════════════════════════════════════╮\n"); 
 printf("║\t\t頭插法建立\t\t║\n"); 
 printf("║\t請輸入學(xué)生信息(當(dāng)學(xué)號為\"#\"時結(jié)束)\t║\n"); 
 printf("║\t\t\t\t\t\t║\n"); 
 printf("║\t學(xué)號sno  (不超過4位)\t\t║\n"); 
 printf("║\t姓名sname (不超過4個漢字)\t\t║\n"); 
 printf("║\t成績score (int型)\t\t\t║\n"); 
 printf("╰═══════════════════════════════════════════════╯\n\n"); 
 while (1) { 
  s = inputdata(); 
  if (!s) { 
   break; 
  } 
  s->next = L->next; 
  L->next = s; 
 } 
 return L; 
} 
 
void getElem(LinkList * L, int i) 
{ 
 LinkList * p = L; 
 int j = 0; 
 while (p && j<i) { 
  p = p->next; 
  j++; 
 } 
 if (!p) { 
  printf("╭═══════════════════════════════╮\n"); 
  printf("║\tDon't find the student!\t║\n"); 
  printf("╰═══════════════════════════════╯\n\n"); 
 } 
 else 
 { 
  display(p); 
 } 
} 
 
void locateElemBysno(LinkList * L, char ch[5]) 
{ 
 LinkList * p = L->next; 
 while (p && (0 != strcmp(p->data.sno, ch))) 
 { 
  p = p -> next; 
 } 
 if (!p) { 
  printf("╭═══════════════════════════════╮\n"); 
  printf("║\tDon't find the student!\t║\n"); 
  printf("╰═══════════════════════════════╯\n\n"); 
 } 
 else 
 { 
  display(p); 
 } 
} 
void locateElemBysname(LinkList * L, char ch[9]) 
{ 
 LinkList * p = L->next; 
 while (p && (0 != strcmp(p->data.sname, ch))) 
 { 
  p = p -> next; 
 } 
 if (!p) { 
  printf("╭═══════════════════════════════╮\n"); 
  printf("║\tDon't find the student!\t║\n"); 
  printf("╰═══════════════════════════════╯\n\n"); 
 } 
 else 
 { 
  display(p); 
 } 
} 
int lengthList(LinkList * L) 
{ 
 LinkList * p = L->next; 
 int j = 0; 
 while (p) { 
  p = p->next; 
  j ++; 
 } 
 return j; 
} 
void insertElem(LinkList * L, int i) 
{ 
 LinkList * s = inputdata(); 
 LinkList * p = L; 
 int j = 0; 
 while (p && j<i-1) 
 { 
  p = p->next; 
  j++; 
 } 
 if (p && p->next) 
 { 
  s->next = p->next; 
  p->next = s; 
 } 
 else 
 { 
  printf("╭═══════════════════════════════╮\n"); 
  printf("║\tDon't find the student!\t║\n"); 
  printf("╰═══════════════════════════════╯\n\n"); 
 } 
 displayAll(L); 
 
} 
 
void insertElemBysno(LinkList * L, char ch[5]) 
{ 
 LinkList * p = L; 
 LinkList * s = NULL; 
  
 while (p && (0 != strcmp(p->data.sno, ch))) 
 { 
  p = p->next; 
 } 
 if (!p) { 
  printf("╭═══════════════════════════════╮\n"); 
  printf("║\tDon't find the student!\t║\n"); 
  printf("╰═══════════════════════════════╯\n\n"); 
 } 
 else 
 { 
  s = inputdata(); 
  s->next = p->next; 
  p->next = s; 
 } 
} 
 
void deleteElem(LinkList * L, char ch[5]) 
{ 
 LinkList *p, *q; 
 p = L->next; 
 q=L; 
 while (p && (strcmp(p->data.sno, ch) != 0)) { 
  q = p; 
  p = p->next; 
 } 
 if (!p) { 
  printf("╭═══════════════════════════════╮\n"); 
  printf("║\tDon't find the student!\t║\n"); 
  printf("╰═══════════════════════════════╯\n\n"); 
 } 
 else 
 { 
  display(p); 
  q->next = p->next; 
  free(p); 
 } 
} 
void insertSort(LinkList * L) 
{ 
 LinkList * L1; 
 LinkList * p; 
 LinkList * q; 
 LinkList * s; 
 int len; 
 len = lengthList(L); 
 L1 = (LinkList *)malloc(sizeof(LinkList)); 
 if (L->next) { 
  s = (LinkList *)malloc(sizeof(LinkList)); 
  strcpy(s->data.sno, L->data.sno); 
  strcpy(s->data.sname, L->data.sname); 
  s->data.score = L->data.score; 
  s->next = NULL; 
  L1->next = s; 
  q = L->next; 
 } 
 else 
 { 
  printf("╭═══════════════════════════════════╮\n"); 
  printf("║\tThe student link list is empty!\n║\n"); 
  printf("╰═══════════════════════════════════╯\n\n"); 
 
  return; 
 } 
 while (q) { 
  p = L1->next; 
  while (p &&(p->data.score >= q->data.score)) 
  { 
   p = p->next; 
  } 
  s = (LinkList *)malloc(sizeof(LinkList)); 
  strcpy(s->data.sno, q->data.sno); 
  strcpy(s->data.sname, q->data.sname); 
  s->data.score = q->data.score; 
  if (!p) { 
   s->next = NULL; 
   p->next = s; 
  } 
  else 
  { 
   s->next = p->next; 
   p->next = s; 
  } 
  q = q->next; 
 } 
 displayAll(L1); 
}

更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。

 以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:C語言排序算法之插入排序

欄    目:C語言

下一篇:C語言實現(xiàn)簡單學(xué)生學(xué)籍管理系統(tǒng)

本文標(biāo)題:C語言單鏈表版學(xué)生信息管理系統(tǒng)

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/947.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有