當前位置:編程學習大全網 - 源碼下載 - 學生成績錄入系統源代碼

學生成績錄入系統源代碼

C

用語言寫的學生成績管理系統的源代碼。

/* * * * * * * * * * * * xuesheng . c * * * * * * * * * */

/******

頭文件(

。h

)

***********/

#include "stdio.h" /*I/O

功能

*/

#include "stdlib.h" /*

其他說明

*/

#include "string.h" /*

字符串處理功能

*/

#包含“conio . h”/*

屏幕操作功能

*/

#包含“mem . h”/*

記憶操作功能

*/

#包含" ctype.h" /*

字符操作功能

*/

#包含" alloc.h" /*

動態地址分配功能

*/

#定義N 3 /*

定義常數

*/

typedef結構z1 /*

定義數據結構

*/

{

字符編號[11];

char name[15];

int score[N];

浮動總和;

浮動平均值;

int順序;

struct z 1 * next;

}學生;

/*

下面是壹個函數原型。

*/

學生* init();/*

初始化功能

*/

學生* create();/*

創建鏈接列表

*/

學生*刪除(學生* h);/*

刪除記錄

*/

作廢打印(學生* h);/*

顯示所有記錄

*/

void搜索(學生* h);/*

尋求

*/

void save(學生* h);/*

保護

*/

學生* load();/*

在記錄中讀取

*/

void電腦(學生* h);/*

計算總分和平均分

*/

學生*插入(學生* h);/*

插入記錄

*/

void append();/*

附加記錄

*/

void copy();/*

復制文件

*/

學生*排序(學生* h);/*

分類

*/

學生*指數(學生* h);/*

指數

*/

void total(學生* h);/*

分類總計

*/

int menu _ select();/*

菜單功能

*/

/******

主功能啟動

*******/

主()

{

int I;

學生*頭;/*

鏈表定義頭指針

*/

head = init();/*

初始化鏈表

*/

clr SCR();/*

cls

*/

for(;;) /*

無限循環

*/

{

switch(menu_select()) /*

調用主菜單功能,

作為switch語句返回值整數

的條件

*/

{ /*

價值觀不同,

執行不同的功能,

破裂

不能省略

*/

案例0:head = init();打破;/*

執行初始化

*/

case 1:head = create();打破;/*

創建鏈接列表

*/

情況二:head=delete(頭);打破;/*

刪除記錄

*/

案例三:打印(頭);打破;/*

顯示所有記錄

*/

案例四:搜索(頭);打破;/*

查找記錄

*/

案例五:救(頭);打破;/*

保存文件

*/

情況6:head = load();打破;/*

閱讀文件

*/

案例7:計算機(頭);打破;/*

計算總分和平均分

*/

案例8:頭=插入(頭);打破;/*

插入記錄

*/

案例九:copy();打破;/*

復制文件

*/

案例10:head = sort(head);打破;/*

分類

*/

case 11:append();打破;/*

附加記錄

*/

案例12:head=index(頭);打破;/*

指數

*/

案例13:合計(頭);打破;/*

分類總計

*/

案例14:出口(0);/*

如果菜單返回值為

14

程序結束

*/

}

}

}

/*

菜單函數,返回值是整數。

*/

menu_select()

{

char * MENU[]= { ************** * * * *菜單* * * * * * * * * * * * * * ",/*

定義菜單單詞

字符串數組

*/

" 0.初始化列表",/*

初始化

*/

" 1.輸入列表",/*

輸入記錄

*/

" 2.從列表中刪除記錄",/*

從表中刪除記錄

*/

" 3.打印列表",/*

顯示單個鏈表中的所有記錄

*/

" 4.按姓名搜索記錄",/*

按名稱查找記錄

*/

" 5.保存文件",/*

將單鏈表中的記錄保存到壹個文件中。

*/

" 6.加載文件",/*

從文件中讀取記錄

*/

" 7.計算分數",/*

計算所有學生的總分和平均分。

*/

" 8.將記錄插入列表",/*

將記錄插入表中

*/

" 9.將文件復制到新文件",/*

復制文件

*/

" 10.排序以生成新文件",/*

分類

*/

" 11.將記錄附加到文件",/*

將記錄附加到文件

*/

" 12.編號索引",/*

指數

*/

" 13.數字總計",/*

分類總計

*/

" 14.退出" };/*

放棄

*/

char s[3];/*

以字符形式保存選擇號。

*/

int c,I;/*

定義塑性變量

*/

gotoxy(1,25);/*

移動光標

*/

printf("按任意鍵進入菜單......\ n ");/*

按任意鍵進入主菜單。

*/

getch();/*

輸入任意鍵。

*/

clr SCR();/*

清除屏幕

*/

gotoxy(1,1);/*

移動光標

*/

textcolor(黃色);/*

將文本顯示顏色設置為黃色。

*/

textbackground(藍色);/*

將背景顏色設置為藍色。

*/

gotoxy(10,2);/*

移動光標

*/

putch(0xc 9);/*

輸出左上角邊框┏ */

for(I = 1;我& lt44;i++)

putch(0x CD);/*

輸出頂部邊框水平線

*/

putch(0x bb);/*

輸出右上邊框

┓*/

for(I = 3;我& lt20;i++)

{

gotoxy(10,I);putch(0x ba);/*

輸出左垂直線

*/

gotoxy(54,I);putch(0x ba);

} /*

輸出右垂直線

*/

gotoxy(10,20);putch(0x c8);/*

輸出左上角邊框┗ */

for(I = 1;我& lt44;i++)

putch(0x CD);/*

輸出下邊框水平線

*/

putch(0x BC);/*

輸出右下角邊框┛ */

窗口(11,3,53,19);/*

制作壹個窗口來顯示菜單,

根據菜單的數量設置大小。

數數

*/

clr SCR();/*

cls

*/

for(I = 0;我& lt16;i++) /*

輸出主菜單數組

*/

{

gotoxy(10,I+1);

cprintf("%s ",menu[I]);

}

textbackground(黑色);/*

將背景顏色設置為黑色。

*/

窗口(1,1,80,25);/*

恢復原始窗口大小

*/

gotoxy(10,21);/*

移動光標

*/

做{

printf("\n

進入

妳們

choice(0 ~ 14):";/*

在菜單窗口中顯式

提示信息

*/

scanf("%s ",s);/*

輸入選項

*/

c = atoi(s);/*

將輸入字符串轉換成整數。

*/

} while(c & lt;0 | | c >;14);/*

所選項目不存在。

0~14

站間重傳

*/

返回

c;/*

返回選擇,

主程序根據這個數字調用相應的函數。

*/

}

學生*init()

{

返回NULL

}

/*

創建鏈接列表

*/

學生*創建()

{

int I;int s;

STUDENT *h=NULL,* info/*學生

指向結構的指針

*/

for(;;)

{

info=(學生*)malloc(sizeof(學生));/*

申請空間

*/

如果(!信息)/*

如果指針

信息

空的

*/

{

printf(" \ n內存不足");/*

輸出內存溢出

*/

返回NULL/*

返回壹個空指針

*/

}

輸入("輸入號碼:",信息-& gt;否,11);/*

輸入學號,核對壹下。

*/

if(info-& gt;沒有[0]=='@ ')分隔符;/*

如果學號的第壹個字符是

@

然後輸入結束。

*/

輸入("輸入姓名:",信息-& gt;姓名,15);/*

輸入名稱並檢查。

*/

printf("請輸入%d分數\n ",N);/*

提示開始輸入分數

*/

s = 0;/*

計算每個學生的總分,初始值為

0*/

for(I = 0;我& ltn;i++) /*N

課程周期

普通

時間

*/

{

做{

printf("分數%d:",I+1);/*

提示選擇哪些課程?

*/

scanf("%d ",& amp信息-& gt;score[I]);/*

輸入分數

*/

if(info-& gt;score[I]& gt;100 | |信息->;score[I]& lt;0) /*

確保分數在裏面

0~100

在...之間

*/

printf("壞數據,重復輸入\ n ");/*

出錯信息

*/

} while(info-& gt;score[I]& gt;100 | |信息->;score[I]& lt;0);

s = s+info-& gt;得分[I];/*

累積每門課的分數。

*/

}

信息-& gt;sum = s;/*

保存總分

*/

信息-& gt;平均值=(浮點)信噪比;/*

求平均值

*/

信息-& gt;順序= 0;/*

排序前,該值為

0*/

信息-& gt;next = h;/*

將首節點作為新輸入節點的後繼節點。

*/

h = info/*

新的輸入節點是新的頭節點。

*/

}

返回(h);/*

返回磁頭指針

*/

}

/*

輸入壹個字符串並驗證其長度。

*/

輸入(char *提示、char *s、int計數)

{

char p[255];

做{

printf(提示);/*

顯示提示信息

*/

scanf("%s ",p);/*

輸入語符列

*/

if(strlen(p)>count)printf("\n太長!\ n ");/*

檢查長度,超級

及格

數數

值重新輸入

*/

}while(strlen(p)>計數);

strcpy(s,p);/*

將輸入字符串復制到字符串。

s

中間

*/

}

/*

輸出鏈表中的節點信息

*/

作廢打印(學生*h)

{

int I = 0;/*

統計記錄的數量

*/

學生* p;/*

移動指針

*/

clr SCR();/*

cls

*/

p = h;/*

帶有初始值的磁頭指針

*/

printf(" \ n \ n \ n **************** * * * * * * * * * * *學生* * * * * * * * * * * * * * * * "

* * * * * * * * * * * * * \ n ");

printf(" | rec | nO | name | sc 1 | sc2 | sc3 | sum |

ave | order | \ n ");

printf(" |-|-|-|-|-|-|-|-|-

-|-| \ n ");

而(p!=空)

{

i++;

printf("|%3d

| %-10s | %-15s | % 4d | % 4d | % 4d |

%4.2f

|

%4.2f

|

%3d

|\n ",

我,p-& gt;不,p-& gt;姓名,p-& gt;得分[0],p-& gt;得分[1],

p->;分數[2],p-& gt;sum,p->平均值,p-& gt;訂單);

p = p-& gt;接下來;

}

printf(" ******************** * * * * * * * * * * * * * * * *結束* * * * * * * * * * * * * * * * * * * *

* * * * * * * * * * * \ n ");

}

/*

刪除記錄

*/

學生*刪除(學生*h)

{

學生*p,* q;/*p

為了找到要刪除的節點指針,

q

作為它的前身指針

*/

char s[11];/*

存儲學生編號

*/

clr SCR();/*

cls

*/

printf("請刪除否\ n ");/*

顯示提示信息

*/

scanf("%s ",s);/*

輸入要刪除的記錄的學生編號。

*/

自己修改壹下就好了。

呵呵,這是定制的,誰有時間幫妳?這個需要錢,因為浪費別人的時間!

  • 上一篇:芯片系數源代碼
  • 下一篇:智慧家居中的七個問題
  • copyright 2024編程學習大全網