欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    c语言程序设计学生管理系统.docx

    • 资源ID:920828       资源大小:18.56KB        全文页数:24页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言程序设计学生管理系统.docx

    1、c语言程序设计学生管理系统/*学生成绩管理系统 数据库的数据项主要数据包括:学号、姓名、年级、专业、成绩 1、成绩 2、成绩 3、平均 成绩、总成绩。 要求具有以下功能: (1)添加、删除任意个记录。 (2)修改任意个记录。 (3)显示、保存记录。 (4)排序功能:打开学生数据库,计算每个学生的平均成绩和总成绩,用冒泡法或选择排 序法将平均成绩和总成绩排序后生成两个新文件(从大到小), 存盘并显示这两个文件的全部记录。 (5)查询功能:打开总成绩排序文件,用折半查找法统计出给定分数的人数并显示。 要求: (1)设计一个主函数和多个子函数,每个子函数完成一个相对独立的子功能。 (2)程序运行时,

    2、首先进行口令检查,再显示菜单。并能根据菜单调用相应的函数功能。 口令程序段的功能要求: 1提示用户输入一个口令。 2用户输入口令后,若口令对,则提示用户通过,可执行后续程序;否则不通过。 3可对用户的口令输入进行次数限制(如:重复输入 3 次都不对),则自动退出系 统。*/ #include #include #include struct student int num; char name10; int grade; char major10; float score_1,score_2,score_3,aver,total; struct student *next; ; struct

    3、student *creat(void); struct student *add(void); struct student *del(int num); struct student *alter(); void save(struct student *head); void read(); void totalsort(struct student *head); void aversort(struct student *head); void Bfindsort(); int all=0; void main() int i,n,m,num; char ord10=student,

    4、ord_110; struct student *p; for(i=0;i=3;i+) if(i=3) exit(0); 牰湩晴尨请第%d 次输入进入系统的指令:,i+1); scanf(%s,ord_1); if(strcmp(ord,ord_1)!=0) 牰湩晴尨输入的指令有误请重新输入。n); if(strcmp(ord,ord_1)=0) break; p=NULL; 潬灯?瀺楲瑮?输入系统的功能:n0、建立一个数据库;n1、添加与保存学生数据;n2、删 除与保存学生数据;n3、修改与保存学生数据;n4、显示数据库的记录;n5、将数据进 行排序;n6、查询指定成绩的人数:); loop

    5、: scanf(%d,&n); if(n6) printf( 输入的选择有误请重新输入:); goto loop; if(n=2) 牰湩晴尨输入删除学生数据的学号:); scanf(%d,&num); switch(n) case 0:p=creat();save(p);read();break; case 1:p=add();save(p);read();break; case 2:p=del(num);save(p);read();break; case 3:p=alter();save(p);read();break; case 4:read();break; case 5: 牰湩晴尨输

    6、入选择排序的功能 1、根据平均成绩;2、根据总成绩:); loop_1: scanf(%d,&m); if(m2) printf( 输入的选择有误请重新输入:); loop_1; goto switch(m) case 1:aversort(p);break; case 2:totalsort(p);break; break; case 6:Bfindsort();break; loop_5: 牰湩晴尨输入你要进行的步骤:1、返回上一菜单菜单;2、退出程序。 n); scanf(%d,&n); if(n2) 牰湩晴尨输入的选择有误,请重新输入:); goto loop_5; switch(n)

    7、 case 1:goto loop_2;break; case 2:break; struct student *creat(void) int i,n; struct student *head,*p,*q,*tail; 牰湩晴尨输入学生的个数:); scanf(%d,&n); head=NULL; for(i=0;inext=p; tail=p; p-next=NULL;q=head; 牰湩晴尨输入学生的学号、名字、年级、专业、三门成绩:); scanf(%d %s %d %s %f %f %f,&p-num,&p-name,&p-grade,&p-major,&p- score_1,&p

    8、-score_2,&p-score_3); loop: while(q-next!=NULL) if(q-num=p-num) 牰湩晴尨输入的学生号错误请重新输入学生学号:); scanf(%d,&p-num); goto loop; q=q-next; p-aver=(p-score_1+p-score_2+p-score_3)/3; p-total=p-score_1+p-score_2+p-score_3; return(head); void save(struct student *head) struct student *p; FILE *fp; if(fp=fopen(stud

    9、ent.txt,wb)=NULL) 牰湩晴尨打开文件失败。n); exit(0); p=head; while(p!=NULL) fwrite(p,sizeof(struct student),1,fp); p=p-next; fclose(fp); struct student *del(int num) int i,n=0; struct student *p,*q,*head; FILE *fp; if(all=0) 牰湩晴尨数据库为空。n); head=NULL; return(head); p=(struct student *)malloc(sizeof(struct studen

    10、t); if(fp=fopen(student.txt,b)=NULL) 牰湩晴尨打开 student.txt 文件失败n); exit(0); for(i=0;p!=NULL;i+) p=(struct student *)malloc(sizeof(struct student); fread(p,sizeof(struct student),1,fp); if(i=0) head=p; if(num=p-num) if(p=head) head=p-next; else q-next=p-next; n+; all-; q=p; if(n=0) 牰湩晴尨没有%d 这一学生号的学生!n,n

    11、um); return(head); struct student *add() int i,j,m,n=0; FILE *fp; struct student *p,*q,*temp,*head,*tail; if(all=0) head=NULL; else if(fp=fopen(student.txt,b)=NULL) 牰湩晴尨打开 student.txt 文件失败n); exit(0); p=(struct student*)malloc(sizeof(struct student); fread(p,sizeof(struct student),1,fp); head=p; tai

    12、l=p; while(p-next!=NULL) p=(struct student*)malloc(sizeof(struct student); fread(p,sizeof(struct student),1,fp); tail-next=p; tail=p; tail-next=NULL; fclose(fp); 牰湩晴尨输入需要输入学生的个数:); scanf(%d,&j); for(i=0;inum,&p-name,&p-grade,&p-major,&p- score_1,&p-score_2,&p-score_3); temp=head; loop_1: while(temp!

    13、=NULL) if(temp-num=p-num) 牰湩晴尨输入的学生号错误请重新输入学生学号:); scanf(%d,&p-num); goto loop_1; temp=temp-next; p-aver=(p-score_1+p-score_2+p-score_3)/3; p-total=p-score_1+p-score_2+p-score_3; if(head=NULL) head=p;p-next=NULL; else q=head; n=1; while(q-next!=NULL) q=q-next; n+; 牰湩晴尨该链表一共有节点个数%d。n,n); 牰湩晴尨输入将数据插入第

    14、几个节点后面。n); loop: scanf(%d,&m); if(mn) 输入有误,请重新输入。n);牰湩晴尨 loop;goto q=head; if(m=0) p-next=head; head=p; else while(m-1)!=0) q=q-next; m-; p-next=q-next; q-next=p; return(head); struct student *alter() int m,num,gra,n; maj10,name10; charfloat score_1,score_2,score_3; struct student *p,*q,*head; FILE

    15、*fp; if(all=0) 牰湩晴尨数据库为空。n); head=NULL; return(head); if(fp=fopen(student.txt,b)=NULL) 牰湩晴尨打开 student.txt 文件失败n); exit(0); p=(struct student*)malloc(sizeof(struct student); fread(p,sizeof(struct student),1,fp); head=p; q=p; 潬灯?瀺楲瑮?输入修改学生数据的姓名:); scanf(%s,&name); while(strcmp(name,p-name)!=0) p=p-nex

    16、t; if(p=NULL) 牰湩晴尨没有该学生。n); return(head); loop: 牰湩晴尨请选择修改学生的具体数据:n1、学号;2、年级;3、专业;n4、成绩 1;5、成绩 2;6、成绩 3:); scanf(%d,&m); if(m6) printf( 输入的选择有误请重新输入:); goto loop; switch(m) case ?牰湩晴尨输入新的学号:);loop_2:scanf(%d,&num); while(q!=NULL) if(q-num=num) 牰湩晴尨输入的学生号错误请重新输入学生学号:); goto loop_2; q=q-next; p-num=num

    17、;break; case ?牰湩晴尨输入新的年级:);scanf(%d,&gra); p-grade=gra; break; case ?牰湩晴尨输入新的专业:);scanf(%s,&maj); strcpy(p-major,maj);break; case ?牰湩晴尨输入新的成绩:);scanf(%f,&score_1);p-score_1=score_1; p-aver=(p- score_1+p-score_2+p-score_3)/3; p-total=p- score_1+p-score_2+p-score_3; break; case ?牰湩晴尨输入新的成绩:);scanf(%f,

    18、&score_2);p-score_2=score_2; p-aver=(p- score_1+p-score_2+p-score_3)/3; p-total=p- score_1+p-score_2+p-score_3;break; case ?牰湩晴尨输入新的成绩:);scanf(%f,&score_3);p-score_3=score_3; p-aver=(p- score_1+p-score_2+p-score_3)/3; p-total=p- score_1+p-score_2+p-score_3;break; 牰湩晴尨选择你要执行的内容:n1、返回上一菜单n2、返回主菜单n3、修改

    19、另一学生 的数据); loop_5: scanf(%d,&n); if(n3) 牰湩晴尨输入的选择有误,请重新输入:); goto loop_5; switch(n) case 1:goto loop;break; case 2:break; case 3:goto loop_1;break; return(head); void read() struct student *p,*head; FILE *fp; if(all=0) 牰湩晴尨系统没有学生数据。n); return; if(fp=fopen(student.txt,b)=NULL) 牰湩晴尨打开文件失败。n); exit(0);

    20、 p=(struct student*)malloc(sizeof(struct student); fread(p,sizeof(struct student),1,fp); head=p; 牰湩晴尨打开 student.txt 文件的学生数据。n); printf(list num name grade major score_1 score_2 score_3 aver totaln); while(p!=NULL) printf(student %-3d %-4s %-5d %-5s %-7.2f %-7.2f %-7.2f %-4.2f %-5.2f n, p-num,p-name,

    21、p-grade,p-major,p-score_1,p-score_2,p-score_3,p- aver,p-total); p=p-next; fclose(fp); void aversort(struct student *head) int temp; float temp_1; char temp_210; struct student *p,*q,*i; FILE *fp; p=head; while(p-next!=NULL) q=p; i=p-next; while(i!=NULL) if(i-averq-aver) q=i; i=i-next; if(q!=p) temp=

    22、p-num;p-num=q-num;q-num=temp; strcpy(temp_2,p-name);strcpy(p-name,q-name);strcpy(q-name,temp_2); temp=p-grade;p-grade=q-grade;q-grade=temp; strcpy(temp_2,p-major);strcpy(p-major,q-major);strcpy(q-major,temp_2); temp_1=p-score_1;p-score_1=q-score_1;q-score_1=temp_1; temp_1=p-score_2;p-score_2=q-score

    23、_2;q-score_2=temp_1; temp_1=p-score_3;p-score_3=q-score_3;q-score_3=temp_1; temp_1=p-aver;p-aver=q-aver;q-aver=temp_1; temp_1=p-total;p-total=q-total;q-total=temp_1; p=p-next; if(fp=fopen(student_1.txt,wb+)=NULL) 牰湩晴尨打开 student_1.txt 文件失败n); exit(0); p=head; while(p!=NULL) fwrite(p,sizeof(struct stu

    24、dent),1,fp); p=p-next; p=head; rewind(fp); 牰湩晴尨读出由平均成绩排序出来的文件 student_1.txt。n); printf(list num name grade major score_1 score_2 score_3 aver totaln); while(p!=NULL) fread(p,sizeof(struct student),1,fp); printf(student %-3d %-4s %-5d %-5s %-7.2f %-7.2f %-7.2f %-4.2f %-5.2f n, p-num,p-name,p-grade,p-

    25、major,p-score_1,p-score_2,p-score_3,p- aver,p-total);p=p-next; fclose(fp); void totalsort(struct student *head) int temp; float temp_1; char temp_210; struct student *p,*q,*i; FILE *fp; p=head; while(p-next!=NULL) q=p; i=p-next; while(i!=NULL) if(i-totalq-total) q=i; i=i-next; if(q!=p) temp=p-num;p-

    26、num=q-num;q-num=temp; strcpy(temp_2,p-name);strcpy(p-name,q-name);strcpy(q-name,temp_2); temp=p-grade;p-grade=q-grade;q-grade=temp; strcpy(temp_2,p-major);strcpy(p-major,q-major);strcpy(q-major,temp_2); temp_1=p-score_1;p-score_1=q-score_1;q-score_1=temp_1; temp_1=p-score_2;p-score_2=q-score_2;q-score_2=temp_1; temp_1=p-score_3;p-score_3=q-score_3;q-score_3=temp_1; temp_1=p-aver;p-aver=q-aver;q-aver=temp_1; temp_1=p-total;p-total=q-total;q-total=temp_1; p=p-next; if(fp=fopen(student_1.txt,wb+)=NULL) 牰湩晴尨打开 student_1.txt 文件失败n); exit(0); p=head; while(p!=NULL) fw


    注意事项

    本文(c语言程序设计学生管理系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开