欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c语言课程设计学生信息管理系统(23页).doc

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

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

    c语言课程设计学生信息管理系统(23页).doc

    -题目名称: 学生信息管理系统 算法分析: 1用结构体标出信息系统的成员:学生学号,学生姓名,班级,成绩,排名2 利用c语言的文件知识将系统的信息存放在c盘下的“zuoye.txt”的文件夹下3 定义各个子函数(1)定义输入信息函数,将学生信息按一定格式用scanf函数输入(统计M个学生的信息);(2)定义输出函数,每两个表一页直到最后一个;(3)定义信息查询函数。a,定义按学号查询函数,如果输入的学号等于学生学号则输出要查询的信息;b,定义按姓名查询函数,如果输入的姓名字符串等于其中一个学生的姓名字符串则输出信息;c,定义按班级查找函数,如果输入的数字等于其中学生的班级数,则输出该信息;d,定义按成绩查找函数,如果输入的数字等于其中学生的成绩数,则输出该信息;e,定义查找总函数,输入一个数选择查找方式,1-4分别对应调用abcd四个函数。(4)定义删除信息函数。输入的数字作为要删除的学生学号,输出要删除的学生信息后选择是否删除,删除后将第g+1个的信息赋给第g个,输出删除后的信息表。(5)定义信息修改函数。输入的数字等于要修改的学生学号,输出要修改的学生信息后选择是否修改,用switch,case语句选择要修改的项目,输入n,y决定是否继续直到不继续修改,输出学生信息。(6)定义信息统计函数。输入一个数字作为成绩,比较M个学生成绩是否等于输入的数字,统计相等的个数n输出。(7)定义成绩排序函数。用冒泡排序法将M个学生的成绩按从大到小的顺序排列后输出。4 定义主函数。调用读取文件函数,输入数字1-5分别对应调用修改学生信息函数,删除学生信息函数,查找学生信息函数,统计学生信息函数,学生成绩排行信息函数,0表示退出系统。最后调用保存文件函数。结束程序。流程设计:学生信息管理系统程序用结构体说明各个成员定义各个子函数定义成绩排序函数定义统计函数定义删除信息函数定义修改信息函数定义输入输出函数定义信息查询函数用冒泡排序法将M个学生的成绩按从大到小排列比较成绩数是否等于输入数选择要删除的学号,判断是否删除switch,case语句选择查询方式选择要修改的信息1-4定义按学号,姓名,班级,成绩的函数计数,输出n将第g+1个信息赋给第g个判断是否继续修改直到不继续,结束定义主函数,用switch case选择要调用的子函数保存文件退出系统结束程序代码设计:#include<stdio.h>#include<stdlib.h>#include<string.h>#define M 2#define PAGE 2 /*学生信息结构体类型*/ typedef struct int num; /*学号*/ char name20; /*姓名*/ int banji; /*班级*/ int chengji; /*成绩*/ int paiming; /*排名*/ STUDENTS; int read_file(STUDENTS students)/*文件的读取*/ FILE *fp;/*定义一个文件指针变量*/ int i=0; if(fp=fopen("zuoye.txt","r")=NULL)/*文件空判断,fopen打开一个文件*/ printf("nn*库存文件不存在!请创建"); return 0; while(feof(fp)!=1)/*文件是否结束*/ fread(&studentsi,sizeof(STUDENTS),1,fp);/*读取文件*/ if(studentsi.num=0)/*学号是否为零*/ break; else i+; fclose(fp);/*关闭文件*/ return i; void save_file(STUDENTS students,int sum)/*保存文件*/ FILE *fp; int i; if(fp=fopen("zuoye.txt","wb")=NULL)/*判断文件是否为空*/ printf("读文件错误!n"); return; for(i=0;i<sum;i+) if(fwrite(&studentsi,sizeof(STUDENTS),1,fp)!=1)/*向文件写入的数据块不等于1*/ printf("写文件错误!n"); fclose(fp); /*输入模块*/ int input(STUDENTS students) int i=0; printf("nn 录入学生信息 (最多%d人)n",M); printf("-n"); do printf("n 第%d人",i+1); printf("n 学生学号:"); scanf("%d",&studentsi.num); if(studentsi.num=0) break; printf("n 学生姓名:"); scanf("%s",studentsi.name); printf("n 班级:"); scanf("%d",&studentsi.banji); printf("n 成绩:"); scanf("%d",&studentsi.chengji); printf("n 排名:"); scanf("%d",&studentsi.paiming); i+; while(i<M); printf("n -%d个学生信息输入完毕!-n",i); printf("n 按任意键返回主菜单!"); getchar(); return i; /*输出模块*/ void output(STUDENTS students) int i=0,j=0,page=1;printf("nn -学生信息表- 第%d页nn",page);/*每两个一页*/ printf("学生学号-姓名-班级- 成绩-排名n"); printf("-n"); do if(studentsi.num!=0) j+; if(j%PAGE!=0) printf("%12d %10s %2d %3d %4d n",studentsi.num,studentsi.name, studentsi.banji, studentsi.chengji,studentsi.paiming); printf("-n"); else printf("按任意键继续!"); getchar(); printf("nn -学生信息表- 第%d页nn",+page); printf("学生学号-姓名-班级- 成绩-排名n"); printf("-n"); printf("%12d %10s %2d %3d %4d n",studentsi.num,studentsi.name, studentsi.banji, studentsi.chengji,studentsi.paiming); printf("-n"); i+; while(studentsi.num<M); printf("按任意键返回主菜单!"); getchar( ); /*学生信息查询*/ void find_by_num(STUDENTS students,int sum) /*按学号查找*/ int i,find_num; printf("n 请输入要查找的学生学号:"); scanf("%d",&find_num); for(i=0;i<sum;i+) if(studentsi.num=find_num) printf("这是您所查找到的学生信息:n"); printf("学生学号-姓名-班级- 成绩-排名n"); printf("-n"); printf("%12d %10s %2d %3d %4d n",studentsi.num,studentsi.name, studentsi.banji, studentsi.chengji,studentsi.paiming); printf("-n"); break; else printf("n 未找到要查找的学生信息,按任意键返回!"); getchar(); void find_by_name(STUDENTS students,int sum)/*按姓名查找*/ int i; char find_name20; printf("n 请输入要查找的学生姓名:"); scanf("%s",find_name); for(i=0;i<sum;i+); if(strcmp(studentsi.name,find_name)=0) /*字符串比较相等返回0*/ printf("这是您所查找到属于该学生的信息:");printf("学生学号-姓名-班级- 成绩-排名n");printf("-n");printf("%12d %10s %2d %3d %4d n",studentsi.num,studentsi.name, studentsi.banji, studentsi.chengji,studentsi.paiming);printf("-n"); else printf("n 未找到要查找的学生信息,按任意键返回!");getchar(); void find_by_banji(STUDENTS students,int sum)/*按班级查找*/ int i; int find_banji; printf("n 请输入要查找的学生班级:"); scanf("%d",&find_banji); for(i=0;i<sum;i+)if(studentsi.banji=find_banji)printf("这是您所查找到属于该班级的学生:"); printf("学生学号-姓名-班级- 成绩-排名n"); printf("-n"); printf("%12d %10s %2d %3d %4d n",studentsi.num,studentsi.name, studentsi.banji, studentsi.chengji,studentsi.paiming); printf("-n"); else printf("n 未找到要查找的班级信息,按任意键返回!");getchar(); void find_by_chengji(STUDENTS students,int sum)/*按成级查找*/ int i; int find_chengji; printf("n 请输入要查找的学生成绩:"); scanf("%d",&find_chengji); for(i=0;i<sum;i+) if(studentsi.chengji=find_chengji) printf("这是您所查找到有该成绩的学生:"); printf("学生学号-姓名-班级- 成绩-排名n"); printf("-n"); printf("%12d %10s %2d %3d %4d n",studentsi.num,studentsi.name, studentsi.banji, studentsi.chengji,studentsi.paiming); printf("-n"); else printf("n 未找到要查找的学生信息,按任意键返回!");getchar(); void find(STUDENTS students,int sum)/*定义查找总函数*/ int choice; printf("n 您要按照哪种方式查找? n");/*用switch语句*/ printf("n 1.按学生学号查找 n"); printf("n 2.按学生姓名查找 n"); printf("n 3.按学生班级查找 n"); printf("n 4.按学生成绩查找 n"); printf("n 0. 退出n"); printf("n 请选择(0-4): n"); scanf("%d",&choice); switch(choice) case 1: find_by_num(students,sum); break; case 2: find_by_name(students,sum); break; case 3: find_by_banji(students,sum); break; case 4: find_by_chengji(students,sum); break; case 0: break; /*删除信息模块*/ void del(STUDENTS students) int i,g,sum; int del_num; printf("n 请输入要删除的学生学号:"); scanf("%d",&del_num); for(i=0;i<sum;i+) if(studentsi.num=del_num)/*通过学号判断*/ printf("这是您所要删除学生信息:n"); printf("学生学号-姓名-班级- 成绩-排名n"); printf("-n"); printf("%12d %10s %2d %3d %4d n",studentsi.num,studentsi.name, studentsi.banji, studentsi.chengji,studentsi.paiming); printf("-n"); printf("您确认要删除吗?"); printf("按任意键继续!"); getchar(); printf("已成功删除学生信息!"); for(g=i;g<sum;g+) studentsg=studentsg+1; printf("删除后的信息表:n"); printf("学生学号-姓名-班级- 成绩-排名n"); printf("-n"); printf("%12d %10s %2d %3d %4d n",studentsi.num,studentsi.name, studentsi.banji, studentsi.chengji,studentsi.paiming); printf("-n"); /*信息修改模块*/ void modify(STUDENTS students,int sum) int i=0,choice,modify_num,flag; do printf("请输入要修改的学生学号:"); scanf("%d",&modify_num); for(i=0;i<sum;i+) if(studentsi.num=modify_num) printf("nn -学生信息- nn"); printf("学生学号-姓名-班级- 成绩-排名n"); printf("-n"); printf("%12d %10s %2d %3d %4d n",studentsi.num,studentsi.name, studentsi.banji, studentsi.chengji,studentsi.paiming); printf("-n"); printf("n 您要修改哪一项?n"); printf("n 1.学生姓名n"); printf("n 2.学生班级n"); printf("n 3.成绩n"); printf("n 4.排名n"); printf("n 请选择(1-4):n"); scanf("%d",&choice); switch(choice) case 1: printf("n 请输入修改后的学生姓名:"); scanf("%s",studentsi.name); break; case 2: printf("n 请输入修改后的学生班级:"); scanf("%s",studentsi.banji); break; case 3: printf("n 请输入修改后的成绩:"); scanf("%s",studentsi.chengji); break; case 4: printf("n 请输入修改后的排名:"); scanf("%d",&studentsi.paiming); break; printf("nn -学生信息- nn"); printf("学生学号-姓名-班级- 成绩-排名n"); printf("-n"); printf("%12d %10s %2d %3d %4d n",studentsi.num,studentsi.name, studentsi.banji, studentsi.chengji,studentsi.paiming); printf("-n"); break; else printf("n 该学生不存在!"); printf("n 修改成功!n"); printf("您要继续修改吗?(Y/N)"); if (choice='Y'|choice='y') flag=1; printf("n 继续!n"); else flag=0; while( flag=1); /*直到不修改结束循环*/ printf("n 按任意键返回主菜单!"); getchar(); /*学生信息统计模块*/void count(STUDENTS students,int sum) /*统计某个成绩的学生个数*/ int i; int count_chengji; int n=0; printf("请输入一个成绩:n"); scanf("%d",&count_chengji); for(i=0;i<sum;i+) if(studentsi.chengji=count_chengji)/*计数*/ n+; break; printf("统计出属于该成绩的一共有%d个人n",n);/*成绩排序模块*/ void sort(STUDENTS students,int sum) STUDENTS t; int i,j; printf("nn -学生信息- nn"); printf("学生学号-姓名-班级- 成绩-排名n"); printf("-n"); for(i=1;i<sum;i+) for(j=i+1;j<sum;j+) if(studentsj.chengji>studentsi.chengji)/*冒泡排序法*/ t=studentsj; studentsj=studentsi; studentsi=t; for(i=0;i<sum;i+) printf("%12d %10s %2d %3d %4d n",studentsi.num,studentsi.name, studentsi.banji, studentsi.chengji,studentsi.paiming); printf("-n"); void main() STUDENTS studentsM; int choice,sum; sum=read_file(students);/*文件读取*/ if (sum=0) printf("请录入学生信息!*n"); sum=input(students);/*输入信息*/ do printf("nnn *学生信息管理系统* nn"); printf(" 1.修改学生信息 nn"); printf(" 2.删除学生信息nn"); printf(" 3.查找学生信息nn"); printf(" 4.统计学生信息nn"); printf(" 5.学生成绩排行信息nn"); printf(" 0.退出系统nn"); printf(" 请选择nn"); scanf("%d",&choice); switch(choice) case 1 : modify(students,sum); break; case 2 : del(students); break; case 3 : find(students,sum); break; case 4 : count(students,sum); break; case 5 : sort(students,sum); break; case 0 : break; while(choice!=0); /*直到选择退出系统*/ save_file(students,sum); 运行结果:第 - 25 - 页-

    注意事项

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

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开