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

    2022年C语言程序设计-学生成绩管理系统 .pdf

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

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

    2022年C语言程序设计-学生成绩管理系统 .pdf

    1 河南理工大学计算机科学与技术学院课程设计报告200 200 学年第学期课程名称设计题目学生姓名学号专业班级指导教师年月日一、设计目的3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 16 页 - - - - - - - - - 2 二、课程设计的要求与数据 3 三、成绩管理系统主要功能 4 四、界面设计4 五、程序源码5 六、心得体会16 一、设计目的进一步加深、巩固学生所学专业课程( C语言 )的基本理论知识,理论联系实际, 进一步培养学生综合分析问题和解决问题的能力。掌握运用C 语言独立地编写、调试应用程序和进行其它相关设计的技能。二 、 课程设计的要求与数据名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - - - - 3 1、用C语言实现系统;2、对学生信息 (包括学号、姓名、性别、高数、英语、C语言、平均分 )进行管理 , 包括学生成绩的信息输入、 显示、添加、删除、修改、查询、退出 . 3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:(1) 每一条记录包括一个学生的学号、姓名、性别、3门课成绩。(2) 成绩信息显示浏览功能:完成全部学生记录的显示。(3)可以添加后来学生的信息。(4) 成绩信息的删除 : 按学号进行删除某学生的成绩。(5)可以修改某学生的信息。(6) 查询功能:完成按姓名查找学生记录,并显示。(7) 应提供一个界面来调用各个功能, 调用界面和各个功能的操作界面应尽可能清晰美观 ! 三、成绩管理系统主要功能1. 输入记录2. 用指定格式显示全部记录3. 根据姓名查找记录4. 根据姓名删除记录5. 保存记录到文件6. 按序号显示记录名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 16 页 - - - - - - - - - 4 7. 按姓名由小到大的顺序排序四、 界面设计此系统界面采用图形和数字化菜单设计。主界面设计如下:- 欢迎进入学生成绩管理系统-制作者:河南理工大学信息管理* *主菜单* * 1. 登记学生资料2. 删除学生资料3. 查找学生资料4. 修改学生资料5. 保存学生资料6. 退出系统* 五、程序代码#include stdio.h #include stdlib.h #include string.h int shoudsave=0; /* */ struct student char num10;/* 学号*/ char name20; char sex4; int cgrade; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 16 页 - - - - - - - - - 5 int mgrade; int egrade; int totle; int ave; char neartime10;/* 最近更新时间*/ ; typedef struct node struct student data; struct node *next; Node,*Link; void menu() printf(*主菜单*); printf(t1登记学生资料ttttt2 删除学生资料n); printf(t3查询学生资料ttttt4 修改学生资料n); printf(t5保存学生资料ttttt0 退出系统 n); printf(*n); void printstart() printf(-n); void Wrong() printf(n=提示 :输入错误 !n); void Nofind() printf(n=提示 :没有找到该学生!n); void printc() /* 本函数用于输出中文*/ printf( 学号 t 姓名性别英语成绩数学成绩C 语言成绩总分平均分 n); void printe(Node *p)/* 本函数用于输出英文*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 16 页 - - - - - - - - - 6 printf(%-12s%st%st%dt%dt%dt %dt %dn,p-data.num,p-data.name,p-data.sex,p-data.egrade,p-data.mgrade,p-data.cgrade,p-data.totle,p-data.ave); Node* Locate(Link l,char findmess,char nameornum) /* 该函数用于定位连表中符合要求的接点,并返回该指针*/ Node *r; if(strcmp(nameornum,num)=0) /* 按学号查询*/ r=l-next; while(r!=NULL) if(strcmp(r-data.num,findmess)=0) return r; r=r-next; else if(strcmp(nameornum,name)=0) /* 按姓名查询*/ r=l-next; while(r!=NULL) if(strcmp(r-data.name,findmess)=0) return r; r=r-next; return 0; void Add(Link l) /* 增加学生*/ Node *p,*r,*s; char num10; r=l; s=l-next; while(r-next!=NULL) r=r-next; /* 将指针置于最末尾*/ while(1) printf( 请你输入学号(以 0返回上一级菜单:); scanf(%s,num); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 16 页 - - - - - - - - - 7 if(strcmp(num,0)=0) break; while(s) if(strcmp(s-data.num,num)=0) printf(=提示 :学号为 %s 的学生已经存在,若要修改请你选择4 修改 !n,num); printstart(); printc(); printe(s); printstart(); printf(n); return; s=s-next; p=(Node *)malloc(sizeof(Node); strcpy(p-data.num,num); printf( 请你输入姓名:); scanf(%s,p-data.name); getchar(); printf( 请你输入性别:); scanf(%s,p-data.sex); getchar(); printf( 请你输入c 语言成绩 :); scanf(%d,&p-data.cgrade); getchar(); printf( 请你输入数学成绩:); scanf(%d,&p-data.mgrade); getchar(); printf( 请你输入英语成绩:); scanf(%d,&p-data.egrade); getchar(); p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade; p-data.ave=p-data.totle / 3; /* 信息输入已经完成*/ p-next=NULL; r-next=p; r=p; shoudsave=1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 16 页 - - - - - - - - - 8 void Qur(Link l) /* 查询学生*/ int sel; char findmess20; Node *p; if(!l-next) printf(n=提示 :没有资料可以查询!n); return; printf(n=1按学号查找 n=2 按姓名查找 n); scanf(%d,&sel); if(sel=1)/* 学号*/ printf( 请你输入要查找的学号:); scanf(%s,findmess); p=Locate(l,findmess,num); if(p) printf(tttt查找结果 n); printstart(); printc(); printe(p); printstart(); else Nofind(); else if(sel=2) /* 姓名*/ printf( 请你输入要查找的姓名:); scanf(%s,findmess); p=Locate(l,findmess,name); if(p) printf(tttt查找结果 n); printstart(); printc(); printe(p); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 16 页 - - - - - - - - - 9 printstart(); else Nofind(); else Wrong(); void Del(Link l) /* 删除*/ int sel; Node *p,*r; char findmess20; if(!l-next) printf(n=提示 :没有资料可以删除!n); return; printf(n=1按学号删除 n=2 按姓名删除 n); scanf(%d,&sel); if(sel=1) printf( 请你输入要删除的学号:); scanf(%s,findmess); p=Locate(l,findmess,num); if(p) r=l; while(r-next!=p) r=r-next; r-next=p-next; free(p); printf(n=提示 :该学生已经成功删除!n); shoudsave=1; else Nofind(); else if(sel=2) printf( 请你输入要删除的姓名:); scanf(%s,findmess); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 16 页 - - - - - - - - - 10 p=Locate(l,findmess,name); if(p) r=l; while(r-next!=p) r=r-next; r-next=p-next; free(p); printf(n=提示 :该学生已经成功删除!n); shoudsave=1; else Nofind(); else Wrong(); void Modify(Link l) Node *p; char findmess20; if(!l-next) printf(n=提示 :没有资料可以修改!n); return; printf( 请你输入要修改的学生学号:); scanf(%s,findmess); p=Locate(l,findmess,num); if(p) printf( 请你输入新学号(原来是 %s):,p-data.num); scanf(%s,p-data.num); printf( 请你输入新姓名(原来是 %s):,p-data.name); scanf(%s,p-data.name); getchar(); printf( 请你输入新性别(原来是 %s):,p-data.sex); scanf(%s,p-data.sex); printf( 请你输入新的c 语言成绩 (原来是 %d 分):,p-data.cgrade); scanf(%d,&p-data.cgrade); getchar(); printf( 请你输入新的数学成绩(原来是 %d 分):,p-data.mgrade); scanf(%d,&p-data.mgrade); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 16 页 - - - - - - - - - 11 getchar(); printf( 请你输入新的英语成绩(原来是 %d 分):,p-data.egrade); scanf(%d,&p-data.egrade); p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade; p-data.ave=p-data.totle/3; printf(n=提示 :资料修改成功!n); shoudsave=1; else Nofind(); void Disp(Link l) int count=0; Node *p; p=l-next; if(!p) printf(n=提示 :没有资料可以显示!n); return; printf(tttt显示结果 n); printstart(); printc(); printf(n); while(p) printe(p); p=p-next; printstart(); printf(n); void Tongji(Link l) Node *pm,*pe,*pc,*pt,*pa; /* 用于指向分数最高的接点*/ Node *r=l-next; if(!r) printf(n=提示 :没有资料可以统计!n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 16 页 - - - - - - - - - 12 return ; pm=pe=pc=pt=pa=r; while(r!=NULL) if(r-data.cgrade=pc-data.cgrade) pc=r; if(r-data.mgrade=pm-data.mgrade) pm=r; if(r-data.egrade=pe-data.egrade) pe=r; if(r-data.totle=pt-data.totle) pt=r; if(r-data.ave=pa-data.ave) pa=r; r=r-next; printf(-统计结果 -n); printf( 总分最高者 :t%s %d 分n,pt-data.name,pt-data.totle); printf( 平均分最高者:t%s %d 分n,pa-data.name,pa-data.ave); printf( 英语最高者 :t%s %d 分n,pe-data.name,pe-data.egrade); printf( 数学最高者 :t%s %d 分n,pm-data.name,pm-data.mgrade); printf(c 语言最高者 :t%s %d 分n,pc-data.name,pc-data.cgrade); printstart(); void Sort(Link l) Link ll; Node *p,*rr,*s; ll=(Link)malloc(sizeof(Node); /* 用于做新的连表*/ ll-next=NULL; if(l-next=NULL) printf(n=提示 :没有资料可以排序!n); return ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 16 页 - - - - - - - - - 13 p=l-next; while(p) s=(Node*)malloc(sizeof(Node); /* 新建接点用于保存信息*/ s-data=p-data; s-next=NULL; rr=ll; while(rr-next!=NULL & rr-next-data.totle=p-data.totle) rr=rr-next; if(rr-next=NULL) rr-next=s; else s-next=rr-next; rr-next=s; p=p-next; free(l); l-next=ll-next; printf(n=提示 :排序已经完成!n); void Save(Link l) FILE* fp; Node *p; int flag=1,count=0; fp=fopen(c:student,wb); if(fp=NULL) printf(n=提示 :重新打开文件时发生错误!n); exit(1); p=l-next; while(p) if(fwrite(p,sizeof(Node),1,fp)=1) p=p-next; count+; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 16 页 - - - - - - - - - 14 else flag=0; break; if(flag) printf(n=提示 :文件保存成功.(有%d 条记录已经保存.)n,count); shoudsave=0; fclose(fp); void main() Link l;/* 连表*/ FILE *fp; /* 文件指针*/ int sel; char ch; char jian; int count=0; Node *p,*r; printf(nt欢迎进入 ntttt学生成绩管理系统nntttt- 作者:河南理工大学信息管理n); l=(Node*)malloc(sizeof(Node); l-next=NULL; r=l; fp=fopen(C:student,rb); if(fp=NULL) printf(n=提示 :文件还不存在,是否创建?(y/n)n); scanf(%c,&jian); if(jian=y|jian=Y) fp=fopen(C:student,wb); else exit(0); printf(n=提示 :文件已经打开,正在导入记录.n); while(!feof(fp) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 16 页 - - - - - - - - - 15 p=(Node*)malloc(sizeof(Node); if(fread(p,sizeof(Node),1,fp) /* 将文件的内容放入接点中*/ p-next=NULL; r-next=p; r=p; /* 将该接点挂入连中*/ count+; fclose(fp); /* 关闭文件*/ printf(n=提示 :记录导入完毕,共导入 %d 条记录 .n,count); while(1) menu(); printf( 请你选择操作:); scanf(%d,&sel); if(sel=0) if(shoudsave=1) getchar(); printf(n=提示 :资料已经改动,是否将改动保存到文件中(y/n)?n); scanf(%c,&ch); if(ch=y|ch=Y) Save(l); printf(n=提示 :你已经退出系统,再见 !n); break; switch(sel) case 1:Add(l);break; /* 增加学生*/ case 2:Del(l);break;/* 删除学生*/ case 3:Qur(l);break;/* 查询学生*/ case 4:Modify(l);break;/* 修改学生*/ case 5:Save(l);break;/* 保存学生*/ case 9:printf(ttt=帮助信息 =n);break; default: Wrong();getchar();break; /* */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 16 页 - - - - - - - - - 16 六、心得体会通过本次 C 程序课程设计,我觉得对自己提高很大:克服了的偷懒的毛病,这在我以后的学习和工作中的心理定位与调节有很大的帮助。我感受到了编程是一项非常烦琐周密的活动,他不但需要一个人周密的思考问题的能力,处理问题的能力,还需要有足够的耐心和严谨治学的作风,来不得半点马虎。通过本次课程设计,我初步学会了程序设计的基本方法,学会了怎样去借鉴别人的方法和经验,知道如何去查找资料和整合处理这些资料的能力,这为以后的大学毕业设计论文打下了一个初步的基础使我收益最大的是享受到了一种成功的喜悦,在这两个星期之中从开始的确定论文题目,然后是上网和上图书馆查找资料,编写 C 语言原程序,然后是进行编译,这个环节是一个非常痛苦和艰难的,常常会因为一小点的错误而在编译失败与再次修改的漫漫循环之路中,但失败的越多,对人的考验就越多,在编译运行成功之后的享受成功的喜悦也就越多,另外在调试程序的过程中不断的思考和运用已经学到的知识,这对于自己是有很大的提高的。由于所学的知识不多,自己的编程经验不足,仍存在一些错误,按现有的知识水平有些东西暂时还无法解决,还有待于在以后的学习中不断提高和改进!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 16 页 - - - - - - - - -

    注意事项

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

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




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

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

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

    收起
    展开