学生学分管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#include

#include

#define LEN sizeof(Node)

#define ConsoleLength 60

typedef struct

{

char num[11]; /*学号*/

char name[10]; /*姓名*/

int Credit;

} elemtype ;

typedef struct node

{

elemtype data;

struct node * next;

} Node,*Nodeptr;

//赋值elem

void CopyElem (elemtype *x,const char* num,const char* name,const int Credit); void CopyElem (Node *p,const elemtype x);

void CopyElem (Node *p,const char* num,const char* name,const int Credit);

void menu();//菜单函数

void to_menu();//返回菜单函数

void PrintTheLink (Nodeptr L);

//传入链表头指针,插入元素,排序方法(1降序,0升序,-1无序)

void InsertElemToLink (Nodeptr L,const elemtype x);

void InsertElemToLink (Nodeptr L,const char* num,const char* name,const int Credit); int DelElem (Nodeptr L,const int aID);

int DelElem (Nodeptr L,const char* num);

int SortTheLink(Nodeptr L,int elemOrder=0);

int ClearTheLink(Nodeptr L);

int SortLink(Nodeptr L);

int CreateLink(Nodeptr L);

void InsertElemToLink(Nodeptr L);

int DeleteLink(Nodeptr L);

void save(Node *L);

Node *load();

void main()

{

int fun;

Nodeptr L;

L = new Node;

menu();//打印目录

L->next = NULL;

L->data.Credit=0;

while (1)

{

printf("请输入功能号[0-7]:",&fun);

scanf("%d",&fun);

switch (fun)

{

case 0: break;

case 1:

CreateLink(L);//传进一个结构体指针的实参

break;

case 2:

PrintTheLink(L);

break;

case 3:

DeleteLink(L);

break;

case 4:

InsertElemToLink(L);

break;

case 5:

SortLink(L);

break;

case 6:save(L);break;

case 7:L=load(); break;

default:

printf("输入错误!");

break;

}

if(fun==0) break;

to_menu();

}

}

void menu()/*显示主菜单*/

{

system("cls");//清屏

printf("\n");

printf("\t\t★☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆★\n");

printf("\t\t☆☆\n");

printf("\t\t☆★☆学分管理系统☆★☆\n");

printf("\t\t☆☆\n");

printf("\t\t☆[0] 退出[1] 创建链表☆\n");

printf("\t\t☆☆\n");

printf("\t\t☆[2] 输出学生记录[3] 删除学生记录☆\n");

printf("\t\t☆☆\n");

printf("\t\t☆[4]插入学生记录[5] 排序☆\n");

printf("\t\t☆☆\n");

printf("\t\t☆[6]保存到文件[7]从文件读取☆\n");

printf("\t\t☆☆\n");

printf("\t\t★☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆★\n\n"); }

void to_menu()// 等待用户按回车后回到主菜单

{

char c1,c2;

printf("\n\n\n按回车键返回主菜单...");

scanf("%c%c",&c1,&c2);//第一个字符吸收上次的确认回车键

menu();

}

//显示学生信息

void PrintTheLink (Nodeptr L)

{

//传入的L为储存学生信息的头结点

Nodeptr p;

int i = 1;

int j,numlen,namelen;

p = L->next;//P指向下一个结点

for(j=0;j

{

printf("*");

}

printf("\n");

printf("序号%*c学号%*c姓名%*c成绩\n",ConsoleLength/4-4,' ',

ConsoleLength/4-4,' ',ConsoleLength/4-4,' ');//输出提示信息

相关文档
最新文档