資源簡介
內含源碼(有詳細注釋) 以及 最后的實驗報告成品
程序說明:
編寫的是一個菜單驅動的學生成績管理系統。
?能輸入并顯示n個學生的m門考試科目的成績,總分和平均分。
?能按總分高低進行排序
?任意輸入一個學號,能顯示學生的姓名,各門功課的成績
?在使用過程中,用戶如有計算特定成績的需要,程序中附有簡易計算器可以使用

代碼片段和文件信息
#include?
#include?
#include?
#include?
#define?COURSENUM?20????/*科目數量的最大值*/
struct?student
{
??
??int?number;???????????????????????????/*定義每個學生的學號變量*/?????????????
??char?name[20];????????????????????????/*定義每個學生的姓名變量*/?
??int?score[COURSENUM];????????????????/*定義每個學生m門成績的變量*/
??int?sum;??????????????????????????????/*定義每個學生的總成績變量*/
??float?aver;???????????????????????????/*定義每個學生的平均成績變量*/
??struct?student?*next;?????????????????/*指針的鏈域*/?
};
typedef?struct?student?STU;?????????????/*給struct?student定義一個新名字?STU*/
int?Menu(void);????????????????????????/*函數聲明:輸出菜單的函數*/
int?Ascending(int?aint?b);?????????????/*函數聲明:決定數據是否按升序排列(aint?Descending(int?aint?b);????????????/*函數聲明:決定數據是否按降序排列(a>b為真)*/?
void?IntSwap(int?*pt1int?*pt2);?????????/*函數聲明:整型數據交換*/?
void?CharSwap(char?*pe1char?*pt2);???????/*函數聲明:字符型數據交換*/
void?FloatSwap(float?*pt1float?*pt2);????/*函數聲明:實型數據交換*/
STU?*AppendNode(STU?*headconst?int?m);????/*函數聲明:創建新的節點*/
STU?*DeleteNode(STU?*headint?nodeNum);????/*函數聲明:找到要刪除的節點并刪除*/
STU?*ModifyNode(STU?*headint?nodeNumconst?int?m);??/*函數聲明:找到要修改的數據對應的節點*/
STU?*SearchNode(STU*headint?nodeNum);?????????????/*函數聲明:找到某個節點*/
STU?*AppendScore(STU?*headconst?int?m);???????????/*函數聲明:輸入學生的成績*/
void?TotalScore(STU?*headconst?int?m);????????????/*函數聲明:計算學生的平均成績*/
void?PrintScore(STU?*headconst?int?m);????????????/*函數聲明:輸出學生成績*/?
STU?*DeleteScore(STU*headconst?int?m);????????????/*函數聲明:刪除學生成績*/
void?ModifyScore(STU*headconst?int?m);?????????????/*函數聲明:修改學生成績*/
void?SortScore(STU*headconst?int?mint?(*compare)(int?aint?b));?/*函數聲明:對學生成績進行排序*/?
void?SearchScore(STU?*headconst?int?m);?????/*函數聲明:查找學生成績*/
void?DeleteMemory(STU?*head);???????????????/*函數聲明:釋放內存*/
void?caculator(void);???????????????/*函數說明:一款計算器*/?
int?main()
{
??
??int?ch;?????/*用戶選擇的數字*/
??int?m;???????/*科目的數量*/
??
??STU?*head=NULL;??/*定義一個頭指針并置空*/
?
??printf(“以下為學生成績管理程序的示例。我們將會為您展示菜單供您選擇\n\n“);
??printf(“please?input?course?number(m<20):\t“);??
???/*提示輸入科目數量*/
??scanf(“%d“&m);
???????????????????????/*程序開始進行*/
??while?(1)????
??{
???printf(“請您在菜單中選擇選項“);
???ch=Menu();??
?????/*調用函數顯示菜單并返回用戶的選擇值*/
???switch(ch)
???
????{
?????
???????case?1:head=AppendScore(headm);???/*調用成績輸入函數*/?
????????????TotalScore(headm);??????????/*調用函數計算學生成績的平均值*/
????????????break;
?????
??????case?2:PrintScore(headm);??????????/*調用成績顯示函數*/
????????????break;
?????
??????case?3:head=DeleteScore(headm);??????/*調用成績刪除函數*/
???????????printf(“\nAfter?deleted“);
???????????PrintScore(headm);????????????/*成績刪除后顯示結果*/?
???????????break;
?????
??????case?4:ModifyScore(headm);???????????/*調用成績修改函數*/
????????????TotalScore(headm);????????????/*修改完后重新計算成績平均值*/
????????????printf(“\nafter?modified\n“);???
????????????PrintScore(headm);????????????????/*輸出修改后結果*/
????????????break;
?????
??????case?5:SearchScore(headm);??????????????/*調用修改成績的函數*/
????????????break;
???
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????51687??2012-01-11?14:09??菜單驅動的學生成績管理系統.docx
?????文件??????24229??2012-01-07?23:37??菜單驅動的學生成績管理系統.c
-----------?---------??----------?-----??----
????????????????75916????????????????????2
- 上一篇:牛頓-柯特斯公式C++實現
- 下一篇:用普里姆(Prim)算法構造最小生成樹
評論
共有 條評論