成绩管理系统改进 (一)

2014-11-24 02:59:11 · 作者: · 浏览: 21

这次改写了一些地方:

1:加入文件读写;

2:异常处理(效果是!但不是C标准库的异常处理函数setjmp,longjmp);

3:其他一些小地方改写;

看代码:


[cpp]
#include
#include
#include
#include
#include
typedef struct L
{
char Name[30];
long long Num;
float English;
float C_language;
struct L *Next;
}*Node;
void Menu(); //功能菜单
void Search(Node p); //查找
void Name_Search(Node p); //按姓名查找
void Num_Search(Node p); //按学号查找
void Initialization(Node p); //初始化表
void Add(Node p); // 添加
void Insert(Node p); //插入
void Delet(Node p); //删除
void Show(Node p); //显示
void Sort(Node p); //排序
void C_Sort(Node p); //c成绩排序
void En_Sort(Node p); //英语成绩排序
void Num_Sort(Node p); // 学号排序
void All_Sort(Node p); //总成绩排序
void Most(Node p); //最大值
void DelName(Node p); //按姓名删除
void DelNum(Node p); //按学号删除
void Modify(Node p); //修改
void Num_Modify(Node p); //按学号修改
void Name_Modify(Node p); //按姓名修改
void Menu1(); //菜单
void Explanation(); //说明
void Import(Node p); //从文件导入数据
void Export(Node p); //将数据导入到外部文件中
int main()
{
Node p=new struct L;
system("color 1a");
Initialization(p);
Menu();
printf("\t选择:\n");
printf("\t");
int m;
while(true)
{
scanf("%d",&m);
if(m==11)
{
Explanation();
getch();
system("cls");
break;
}
else
{
printf("\t请先看说明!\n");
printf("\t");
}
}
Menu1();
printf("\t选择:\n");
printf("\t");
int n;
while(scanf("%d",&n)!=EOF)
{
switch(n)
{
case 1:
Add(p);fflush(stdin);break;
case 2:
Show(p);fflush(stdin);break;
case 3:
Insert(p);fflush(stdin);break;
case 4:
Sort(p);fflush(stdin);break;
case 5:
Delet(p);fflush(stdin);break;
case 6:
Search(p);fflush(stdin);break;
case 7:
Modify(p);fflush(stdin);break;
case 8:
fflush(stdin);return 0;
case 9:
Export(p);fflush(stdin);break;
case 10:
Import(p);fflush(stdin);break;
case 11:
Explanation();fflush(stdin);break;
default :
fflush(stdin);printf("\t没有该选项:\n");break;
}

getch();
printf("\t");
system("cls");
Menu1();
printf("\t选择:\n");
printf("\t");
}
return 0;
}
void Menu()
{
printf("\n");
printf("\t 成绩管理系统 \3\n");
printf(" --------------------------------------\n");
printf("\t|\t1:添加\t |\t2:输出\t |\n");
printf(" --------------------------------------\n");
printf("\t|\t3:插入\t |\t4:排序\t |\n");
printf(" --------------------------------------\n