小型学生信息数据学籍管理系统.docx
- 文档编号:25185578
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:27
- 大小:19.49KB
小型学生信息数据学籍管理系统.docx
《小型学生信息数据学籍管理系统.docx》由会员分享,可在线阅读,更多相关《小型学生信息数据学籍管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
小型学生信息数据学籍管理系统
#include
#include
#include
#defineEXIT_FAILTURE0
#definesize100
typedefenum
{
ERR,
OK,
}Bool_t;
typedefstructstudent
{
charname[20];//姓名
charsex[10];//性别
charclas[20];//班级
charyuanxi[40];//院系
chartelnum[10];//电话号码
longid;//学号
}S_node;//学生信息
typedefstructograde
{
floatbanzhur;//班主任打的成绩
floatzipin;//考试平均成绩
floattapin;//小组打的成绩
floatendGrade;//最终的测评成绩
}O_node;//综合测评成绩
typedefstructgrade
{
floatC_sharp;
floatMath;
floatEnglish;
floatdata_c;
floatsport;
floatarrGrade;//考试平均成绩
structdata_node*next;
}G_node;//考试成绩
typedefstructnode
{
S_nodedata;
structnode*next;
}Node;//学生信息结点
typedefstructnode1
{
G_nodedata;//考试成绩
S_nodedata1;//学生信息
O_nodedata2;//综合测评成绩
structnode1*link;
}Node_t;//学生成绩结点
voidmainMenu();
voidmenu1(Node**);
voidmenu2(Node_t**);
voidmenu3(Node_t**);
voidmenu4(Node_t**);
voidmenu5();
//第一部分
Bool_tadd_to_list(Node**);//录入学生信息
voidrevise_list(Node**);//修改学生信息
Bool_tgai_what(Node*);
Bool_tdelet_list(Node**);//删除学生信息
Bool_tempty_list(Node**);//判空表
intnode_changdu(Node**);
Bool_tscan_list(Node**);//浏览学生信息
//第二部分
voidmenu3(Node_t**);
Bool_tempty_head(Node_t**);//判空表
Bool_tluru_Grade(Node_t**);//录入成绩
Bool_tcreat_node(Node_t**);//创建链表
Bool_tadd_to_list1(Node_t**);//录入测评成绩
Bool_tadd_to_list2(Node_t**);//录入学生考试成绩
Bool_tinGrade_list1(Node_t**);//查询测评成绩
Bool_tinRank_list1(Node_t**);//排名
Bool_tinGrade_list2(Node_t**);//查询考试成绩
floatinRank_list2(Node_t*);//查询考试的平均成绩
floatcountGrade(Node_t*);//计算测评成绩
intnode_length(Node_t**);//求表长
voidprint_All(Node_t**);//打印学生成绩
Node*first=NULL;
Node_t*head=NULL;
FILE*fp;
intmain(intargc,char*argv[])
{
mainMenu();//菜单提示
system("PAUSE");
return0;
}
voidmainMenu()
{
inti;
system("cls");
printf("\t\t欢迎进入学生信息数据管理系统\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("1.进入学生信息管理系统");
printf("2.进入学生数据管理系统");
printf("3.退出学生数据管理系统\n");
printf("____________________________________________________________________\n");
printf("\t\t\t请您选择操作:
");
scanf("%d",&i);
switch(i)
{
case1:
menu1(&first);
break;
case2:
menu3(&head);
break;
case3:
printf("请手动退出系统\n");
break;
default:
printf("输入错误,请输入以上提示数字");
break;
}
puts("输入任意键继续!
");
getch();
mainMenu();
getchar();
}
voidmenu1(Node**list)
{
inti;
system("cls");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("^1.录入学生信息2.修改学生信息3.删除学生信息^\n");
printf("^4.浏览学生信息5.进入主菜单^\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("\t\t\t请您选择操作:
");
scanf("%d",&i);
switch(i)
{
case1:
add_to_list(list);//录入学生信息
break;
case2:
revise_list(list);//修改学生信息
break;
case3:
delet_list(list);//删除学生信息
break;
case4:
scan_list(list);//浏览学生信息
break;
case5:
mainMenu();//返回主菜单
break;
default:
printf("pleasefollowtheorder");
break;
}
puts("输入任意键继续!
");
getch();
menu1(list);
getchar();
}
voidmenu2(Node_t**head)
{
inti;
system("cls");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("^1.录入测评成绩并排名2.录入考试成绩^\n");
printf("^3.返回上面一层^\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("\t\t\t请您选择操作:
");
scanf("%d",&i);
switch(i)
{
case1:
add_to_list1(head);//录入测评成绩
break;
case2:
add_to_list2(head);//录入考试成绩
break;
case3:
menu3(head);
break;
}
puts("输入任意键继续!
");
getch();
menu2(head);
getchar();
}
voidmenu3(Node_t**head)
{
inti;
system("cls");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("^1.录入成绩2.查询成绩3.返回主菜单^\n");
printf("^4.查询综合评测成绩和考试成绩,并打印出来^\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("\t\t\t请您选择操作:
");
scanf("%d",&i);
switch(i)
{
case1:
luru_Grade(head);
break;
case2:
menu4(head);
break;
case3:
mainMenu();
break;
case4:
print_All(head);
break;
default:
printf("pleasekeeptothemessage");
break;
}
puts("输入任意键继续!
");
getch();
menu3(head);
getchar();
}
voidmenu4(Node_t**head)
{
inti;
system("cls");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("^1.查询测评成绩2.查询考试成绩3.返回上一层^\n");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("\t\t\t请您选择操作:
");
scanf("%d",&i);
switch(i)
{
case1:
inGrade_list1(head);//查询测评成绩以及名次
break;
case2:
inGrade_list2(head);//查询考试成绩
break;
case3:
menu3(head);
break;
default:
printf("pleasekeeptothemessage");
break;
}
puts("输入任意键继续!
");
getch();
menu4(head);
getchar();
}
voidmenu5()
{
system("cls");
printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
printf("1.修改姓名2.修改性别3.修改班级4.修改院系\n");
printf("5.修改号码6.修改学号7.返回上层8.返回主菜单\n");
printf("___________________________________________________\n");
}
Bool_tadd_to_list(Node**list)
{
intn,i;
printf("请输入你要输入学生的数目:
");
scanf("%d",&n);
for(i=0;i { Node*new_node;//创建一个新的结点 new_node=malloc(sizeof(Node)); if(new_node==NULL) { printf("Error: mallocfailedinadd_to_list"); exit(EXIT_FAILTURE);//宏定义'0' } printf("请输入您的学号: "); scanf("%ld",&new_node->data.id); printf("请输入您的姓名: "); scanf("%s",new_node->data.name); printf("请输入您的性别: "); scanf("%s",new_node->data.sex); printf("请输入您的班级: "); scanf("%s",new_node->data.clas); printf("请输入您的院系: "); scanf("%s",new_node->data.yuanxi); printf("请输入您的联系电话: "); scanf("%s",new_node->data.telnum); putchar('\n'); new_node->next=*list; *list=new_node; } returnOK; } voidrevise_list(Node**list)//按学号查找信息 { longi;intn,a;Node*p=*list;//间接访问运算 printf("请输入你要修改的人数: "); scanf("%d",&n); for(a=0;a { printf("请输入学号: "); scanf("%d",&i); while(p! =NULL&&p->data.id! =i) { p=p->next; } if(p! =NULL&&p->data.id==i) { gai_what(p);//修改信息 } else { printf("未找到,抱歉! \n"); } } } Bool_tgai_what(Node*p) { inti; printf("\t\t请对应选择你想要的菜单项: \n"); menu5(); scanf("%d",&i); switch(i) { case1: printf("请输入新姓名: "); scanf("%s",p->data.name); break; case2: printf("请输入新性别: "); scanf("%s",p->data.sex); break; case3: printf("请输入新班级: "); scanf("%s",p->data.clas); break; case4: printf("请输入新院系: "); scanf("%s",p->data.yuanxi); break; case5: printf("请输入新号码: "); scanf("%d",p->data.telnum); break; case6: printf("请输入新学号: "); scanf("%ld",p->data.id); break; case7: menu1(&p); case8: mainMenu(); default: printf("请输入指定数字: "); break; } printf("\t\t更改资料成功! \n"); gai_what(p); returnOK; } Bool_tempty_list(Node**list)//判空表 { return*list==NULL; } Bool_tdelet_list(Node**list) { longi;Node*p=*list;Node*q=*list;//q指向p的前一个结点 if(empty_list(list)==OK) { printf("表为空,无法删除"); returnERR; } else { printf("请输入你要删除学生的学号: "); scanf("%ld",&i); while(p->next! =NULL&&p->data.id! =i) { q=p; p=p->next; } if(p->next==NULL)//p指向最后一个元素或者只有一个元素 { if(p->data.id==i) { if(p! =q)//为最后一个结点时 { q->next=p->next; } else{//为第一个结点时 *list=q->next; } free(p); printf("删除成功"); returnOK; } printf("未找到,删除失败"); returnERR; } //删除中间结点 elseif(p->data.id==i) { q->next=p->next; free(p); printf("删除信息成功\n"); returnOK; } } returnOK; } intnode_changdu(Node**list) { Node*p=*list;inttotle=0; while(p! =NULL) { totle+=1; p=p->next; } returntotle; } Bool_tscan_list(Node**list) { Node*p=*list; if(empty_list(list)==OK) { printf("空表,无法浏览"); returnERR; } else { printf("下面是学生的数据信息: \n"); while(p! =NULL) { printf("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n"); printf("姓名是: %4s\n",p->data.name); printf("性别是: %4s\n",p->data.sex); printf("班级是: %4s\n",p->data.clas); printf("院系是: %4s\n",p->data.yuanxi); printf("联系电话是: %4s\n",p->data.telnum); printf("学号是: %4ld\n",p->data.id); printf("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n"); p=p->next; } returnOK; } } //第二部分 Bool_tempty_head(Node_t**head)//判空表 { return*head==NULL; } Bool_tluru_Grade(Node_t**head)//判断创建结点是否失败 { if(creat_node(head)==ERR) { printf("failedincreatnode"); returnERR; } menu2(head); returnOK; } Bool_tcreat_node(Node_t**head)//建立结点 { inti,n;Node_t*new_node; printf("请输入你要操作的人数: "); scanf("%d",&n); for(i=0;i { new_node=malloc(sizeof(Node_t)); if(new_node==NULL) { printf("failedincreatnode! "); returnERR; } new_node->link=*head; *head=new_node; } returnOK; } //录入测评成绩 Bool_tadd_to_list1(Node_t**head) { Node_t*p=*head; while(p! =NULL) { printf("请输入您的学号: "); scanf("%ld",&p->data1.id); printf("请输入自评成绩: "); scanf("%f",&p->data2.zipin); printf("请输入班主任评测成绩: "); scanf("%f",&p->data2.banzhur); printf("请输入他评成绩: "); scanf("%f",&p->data2.tapin); putchar('\n'); p->data2.endGrade=countGrade(p);//将计算的测评成绩保存到结点中 p=p->link; } inRank_list1(head);//排名 printf("输入完成! \n"); returnOK; } //计算测评成绩 floatcountGrade(Node_t*p) { floata; a=(p->data2.banzhur)*0.3+ (p->data2.tapin)*0.2+ (p->data2.zipin)*0.1; returna; } //录入学生考试成绩 Bool_tadd_to_list2(Node_t**head) { Node_t*p=*head; while(p! =NULL) { printf("请输入您的学号: "); scanf("%ld",&p->data1.id); printf("请输入C_sharp的成绩: "); scanf("%f",&p->data.C_sharp); printf("请输入数学的成绩: "); scanf("%f",&p->data.Math); printf("请输入英语的成绩: "); scanf("%f",&p->data.English); printf("请输入体育的成绩: "); scanf("%f",&p->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小型 学生 信息 数据 学籍 管理 系统