資源簡(jiǎn)介
基于指針和鏈表的學(xué)生成績(jī)管理系統(tǒng)源代碼,本代碼清晰易懂,對(duì)于成績(jī)排序給出了兩種方法。
代碼片段和文件信息
/*
*?Copyright?(c)?2011長(zhǎng)沙源享科技
*?All?rights?reserved
*
*?文件名稱:指針和鏈表實(shí)現(xiàn)2.cpp
*?文件標(biāo)識(shí):
*?摘????要:指針和鏈表實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
*
*?當(dāng)前版本:1.0
*?作????者:龍文
*?完成日期:2011年3月30日
*
*/
/***************************頭文件*********************************/
#include?
#include?
#include?
/***************************常量***********************************/
#define?MENU_NUM?10
#define?N?3
/****************************結(jié)構(gòu)體********************************/
typedef?struct?s1
{
char???????no[10]?;???????????????????//學(xué)號(hào)由10個(gè)字符組成
char???????name[15]?;?????????????????//學(xué)生姓名
float??????score[N]?;?????????????????//各門課成績(jī)
float??????sum?;??????????????????????//總分
float??????average?;??????????????????//平均分
struct?s1??*next?;????????????????????//指向后繼結(jié)點(diǎn)的指針
}STUDENT;?????????????????????????????????//定義結(jié)構(gòu)體類型
/********************************全局變量*************************/
struct?s1?*?head=NULL;??????????????????????//鏈表頭結(jié)點(diǎn)
/********************************函數(shù)聲明*************************/
void?InputData(??STUDENT?*?ptr?);?????????//錄入信息
void?PrintMenu(?);????????????????????????//顯示菜單
int?MenuSelect(?);???????????????????????//選擇菜單項(xiàng)
void?Init(?);?????????????????????????????//初始化
void?create(?);???????????????????????????//創(chuàng)建鏈表
void?print(?)?;???????????????????????????//打印鏈表數(shù)據(jù)
void?Delete(?);???????????????????????????//刪除指定學(xué)號(hào)的記錄數(shù)據(jù)
void?append();????????????????????????????//追加一個(gè)數(shù)據(jù)到鏈表尾部
void?computer();??????????????????????????//計(jì)算鏈表中所有人的總分和平均分
/***********************************主函數(shù)********************************/
void?main()
{
int?key;
while(1)?{
key=MenuSelect();
switch(key)
{
case?1:
Init(); ?????????//初試化鏈表。也就是若鏈表不為空則釋放鏈表中所有數(shù)據(jù),將head置為空(NULL)
break;
case?2:
create();??? ?????????//創(chuàng)建鏈表,輸入數(shù)據(jù)
break;
case?3:
Delete(); ?????????//刪除一個(gè)指定學(xué)號(hào)的記錄數(shù)據(jù)
break;
case?4:
print(); ????????? ?//打印鏈表中所有數(shù)據(jù)
break;
case?5:
computer(); ?????????????//計(jì)算鏈表中所有人的總分和平均分
break;
case?6:
append();????????????????//追加一個(gè)數(shù)據(jù)到鏈表的尾部
break;
case?7:
Init(); ?????????//釋放鏈表
exit(0);
}
}
}
/*****************************************************************
*函數(shù)名:PrintMenu
*
*描??述:顯示操作菜單*
*
*入口參數(shù):無
*
*出口參數(shù):無
******************************************************************/
void?PrintMenu(?)
{
int?i;
char?*?menu[]={
“-----------------------------------------------“
“|????????基于指針和鏈表的學(xué)生成績(jī)管理系統(tǒng)?????|“
“|???1.?初始化鏈表?????????????????????????????|“
“|???2.?創(chuàng)建鏈表???????????????????????????????|“
“|???3.?刪除指定學(xué)號(hào)的記錄?????????????????????|“
“|???4.?打印學(xué)生成績(jī)信息???????????????????????|“
“|???5.?計(jì)算學(xué)生的總分和平均分?????????????????|“
“|???6.?插入一條學(xué)生記錄???????????????????????|“
“|???7.?退出???????????????????????????????????|“
“-----------------------------------------------“
};
printf(“\n\n“);
for?(i=0;i printf(“%s\n“menu[i]);
printf(“\n輸入要進(jìn)行的操作(1-7):“);
}
/******
評(píng)論
共有 條評(píng)論