收藏 分销(赏)

基于结构体链表的学生成绩管理系统.doc

上传人:可**** 文档编号:1636658 上传时间:2024-05-07 格式:DOC 页数:7 大小:48.54KB 下载积分:10 金币
下载 相关 举报
基于结构体链表的学生成绩管理系统.doc_第1页
第1页 / 共7页
基于结构体链表的学生成绩管理系统.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
#include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> struct STUDENT { int num; char name[10]; char sex; int score; struct STUDENT *next; }; struct STUDENT *Head; int count=0; void createClass(); void showClass(); void insertClass(); void deleteClass(); void queryClass(); void savestuInfo(); void loadstuInfo(); void editClass(); void showMenu(); void main() { int choice; do { showMenu(); printf("请选择项目:"); while(scanf("%d",&choice)!=1) { getchar(); system("cls"); showMenu(); printf("上次选择项目有错,请重新选择项目:"); } system("cls"); switch(choice) { case 1:createClass();break; case 2:showClass();break; case 3:deleteClass();break; case 4:insertClass();break; case 5:editClass();break; case 6:savestuInfo();break; case 7:loadstuInfo();break; case 8:queryClass();break; case 9:exit(0);break; default:printf("选择无效!");break; } printf("提示:按任意键继续!"); getch(); system("cls"); }while(choice!=9); } void createClass() { int i,n; struct STUDENT *p,*q; printf("请输入要创建的人数:"); scanf("%d",&n); for(i=0;i<n;i++) { p=(struct STUDENT *)malloc(sizeof(struct STUDENT)); printf("请输入第%d个学生的学号、姓名、成绩、性别:",i+1); scanf("%d%s%d%c",&p->num,p->name,&p->score,&p->sex); p->next=NULL; if(i==0) Head=p; else { q->next=p; } q=p; count++; } } void showClass() { struct STUDENT *p; p=Head; if(count==0) printf("该班级为空!\n"); else { printf("学生信息如下:\n"); printf("学号 姓名 成绩 性别:\n"); while(p) { printf("%-6d%-6s%-6d%c\n",p->num,p->name,p->score,p->sex); p=p->next; } } } void insertClass() { struct STUDENT *p,*q,*m; int num; printf("请输入插入位置上的学生的学号:"); scanf("%d",&num); p=Head; q=Head; m=(struct STUDENT *)malloc(sizeof(struct STUDENT)); printf("请输入新增学生的学号、姓名、成绩、性别:"); scanf("%d%s%d%c",&m->num,m->name,&m->score,&m->sex); m->next=NULL; while(p) { if(p->num==num) { if(p==Head) { m->next=Head; Head=m; } else { q->next=m; m->next=p; } return; } else { if(p!=Head) q=p; p=p->next; } } } void editClass() { struct STUDENT *p; p=Head; int num; printf("请输入要修改的学生的学号:"); scanf("%d",&num); while(p) { if(p->num==num) { printf("请输入新学生的姓名、成绩、性别:"); scanf("%s%d%c",p->name,&p->score,&p->sex); return; } p=p->next; } if(p==NULL) printf("要修改的学生不存在!"); } void deleteClass() { struct STUDENT *p,*q; int num; printf("请输入要删除的学生的学号:"); scanf("%d",&num); if(Head==NULL) { printf("该班级为空!\n"); } q=Head; while(num!=q->num&&q->next!=NULL) { p=q; q=q->next; } if(num==q->num) { if(q==Head) Head=q->next; else p->next=q->next; free(q); } else printf("要删除的学生不存在!\n"); } void queryClass() { int x; struct STUDENT *p; p=Head; printf("请输入需要查找的学生的学号:"); scanf("%d",&x); while(p) { if(p->num==x) { printf("你要找的学生信息如下:\n"); printf("学号 姓名 成绩 性别:\n"); printf("%-6d%-6s%-6d%c\n",p->num,p->name,p->score,p->sex); break; } p=p->next; } if(p==NULL) printf("查无此人!"); } void savestuInfo() { FILE *fp; struct STUDENT *p=Head; if((fp=fopen("Class.txt","w"))==NULL) { printf("文件打开失败!"); return; } if(count) { fprintf(fp,"%d\n",count); while(p) { fprintf(fp,"%d %s %d%c\n",p->num,p->name,p->score,p->sex); p=p->next; } } else { printf("该班级目前没人!"); } if(fclose(fp)) { printf("文件关闭失败!"); } } void loadstuInfo() { int i; FILE *fp; struct STUDENT *p,*q; if((fp=fopen("Class.txt","r"))==NULL) { printf("文件打开失败!"); return; } p=Head; while(p) { q=p->next; free(p); p=q; } fscanf(fp,"%d",&count); for(i=0;i<count;i++) { p=(struct STUDENT *)malloc(sizeof(struct STUDENT)); fscanf(fp,"%d %s %d%c\n",&p->num,p->name,&p->score,&p->sex); p->next=NULL; if(i==0) Head=p; else { q->next=p; } q=p; } if(fclose(fp)) { printf("文件关闭失败!"); } } void showMenu() { printf("----------------基于结构体数组的学生信息管理系统----------------\n"); printf("----------------------------------系统提示----------------------------------\n"); printf("1.学生信息输入\n"); printf("2.学生信息显示\n"); printf("3.学生信息删除\n"); printf("4.学生信息插入\n"); printf("5.学生信息修改\n"); printf("6.学生信息保存\n"); printf("7.学生信息导入\n"); printf("8.学生信息查询\n"); printf("9.退出程序\n"); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服