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

    用c语言编写学生成绩管理系统(共11页).doc

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

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

    用c语言编写学生成绩管理系统(共11页).doc

    精选优质文档-倾情为你奉上#include<stdio.h> /编译预处理指令#include<string.h> /定义处理字符串函数#include<process.h> /宏指令的声明#include<conio.h> /定义通过控制台进行数据输入以及输出#define N 2000 /最多的人数人#define M 3 /统计成绩typedef struct student /定义类型char number10; /保存所有人的学号char name20; /保存学生姓名 char sex10; /保存性别float scoreM; /保存所有课程成绩float aver; /保存每个人的平均成绩float total; /总计成绩STU;STU stuN;int n;void inputscore(void); /学生成绩新建void savescore(void); /学生成绩保存void avergescore(void); /学生平均成绩void total(void); /学生成绩总计void modifyscore(void); /学生成绩修改void lookscore(void); /学生成绩查看 void searchscore(void); /学生成绩查询void statistic(void); /学生成绩统计void add(void); /学生成绩添加void modify(void); /学生成绩修改void delscore(void); /学生成绩删除void menu(void); /学生成绩菜单void main()short int flag=0;menu();doflag=1;switch(getch()case '1' : inputscore();break; /在菜单界面输入1,调用i函数nputscore()实现输入学生成绩信息功能case '2' : lookscore();break; /在菜单界面输入2,调用函数lookscore()实现学生成绩按平均分高低排序输出,同时lookscore()函数调用avregescore()函数实现各个学生的平均分计算case '3' : searchscore();break; /在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能case '4' : statistic();break; /在菜单界面输入4,调用statistic()函数输出每一门课程的最高分,平均分以及不及格人员case '5' : modify();break; /在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能case '6' : add();break; /在菜单界面输入6,调用add()函数实现添加学生成绩case '7' : delscore();break; /在菜单界面输入7,调用delscore()函数实现删除指定学生的成绩case '8' : savescore();break; /在菜单界面输入8,调用savescore()函数将学生成绩信息保存case '9' :exit(0);break; /在菜单界面输入9,退出成绩管理系统default : printf("输入有误n");printf("按任意键继续n");getch(); /按任意键继续,起到暂停的作用,函数头文件conio.h已经定义过menu(); / 菜单while (flag=1);void menu(void)system("cls"); /清屏printf("n");printf(" 欢迎进入学生成绩管理系统n");printf(" 菜单 n");printf(" 输入成绩-1n");printf(" 查看成绩及成绩排序-2n");printf(" 查询学生成绩-3n");printf(" 成绩统计-4n");printf(" 修改成绩-5n");printf(" 添加成绩-6n");printf(" 删除成绩-7n"); printf(" 保存成绩-8n");printf(" 退出系统-9n");printf(" n");printf(" 请输入您的选择(19)n");/*输入各个同学的学生信息*/void inputscore(void) /输入成绩int i,j;system("cls"); /清屏专用,以下出现位置作用相同printf(" 已经转到输入成绩菜单n");printf("请输入学生总数:n");scanf("%d",&n); printf("提示:输入学号时请输入9位学生编号:图书借阅证上的学号n");/因二维表上下需对正故有此要求for(i=0;i<n;i+) printf("n");printf("请输入第%d位学生的学号:n",i+1); scanf("%s",stui.number); /输入学生学号printf("姓名:n");scanf("%s",stui.name); /输入学生名字printf("请输入该学生性别n");scanf("%s",stui.sex); /输入性别printf("请输入学生成绩:n");printf("高数分t英语分tC语言分n");for(j=0;j<M;j+)scanf("%f",&stui.scorej); /输入高数、英语、C语言的成绩printf(" 成功输入(按任意键继续后请输入8进行保存)n");/*计算各个同学的总分*/void total(void)int i,j; /定义变量i,j;i用来表示学生个数,j则用来表示学生每门课的分数for(i=0;i<n;i+)stui.total=0;for(j=0;j<M;j+) /M表示科目在头文件出已经定义stui.total+=stui.scorej;/*计算各个同学的平均分*/void avergescore(void)int i,j; /定义变量i,j;i用来表示学生个数,j则用来表示学生每门课的分数for(i=0;i<n;i+)stui.aver=0;for(j=0;j<M;j+) /M表示科目在头文件出已经定义stui.aver+=stui.scorej;stui.aver=stui.aver/M; /计算平均分/*查看学生成绩及根据平均分对学生进行排序*/void lookscore(void)int i,j,k; / i,j,k都表示学生成绩比较用来调换顺序STU t;total(); / 此处用来对调用函数的声明avergescore();system("cls"); / 清屏专用printf(" 已经转到查看成绩及成绩排序菜单n");for(i=0;i<n-1;i+)for(k=i,j=i+1;j<n;j+)if(stuj.aver>stuk.aver)k=j;if(k!=j)t=stuk;stuk=stui;stui=t;printf("名次t学号tt姓名t性别t高数分t英语分tC语言分t总分t平均分n");for(i=0;i<n;i+)printf("%dt%st%st%st",i+1,stui.number,stui.name,stui.sex);for(j=0;j<M;j+)printf("%4.2ft",stui.scorej);printf("%4.2ft",stui.total);printf("%4.2f",stui.aver);printf("n");/*通过输入学号查找学生成绩*/void searchscore(void)char a10; /定义数组a的类型可输入数字,字母或字符int i,j;system("cls"); /清屏 printf(" 已经转到查询学生成绩菜单n");printf("请输入需查询的学生学号n");scanf("%s",a);for(i=0;i<n;i+)if(strcmp(a,stui.number)=0) /如果输入的学号为真则输出相关信息printf("名次t学号tt姓名t性别t高数分t英语分tC语言分t总分t平均分n");printf("%dt%st%st%st",i+1,stui.number,stui.name,stui.sex);for(j=0;j<M;j+)printf("%4.2ft",stui.scorej);printf("%4.2ft",stui.total);printf("%4.2f",stui.aver);printf("n");break; /找到该学生成绩信息后跳出for循环elseprintf("未找到该学生信息n");/*统计学生成绩信息,计算出每一门课的最高分*/ void statistic() int i,j=0,k=0,c1; char str2; float averageM,sum=0; printf("没有可被查找的记录n"); / system("cls"); if(M=0) /如果没有输入成绩则输出没有可查找的记录 printf("没有可被查找的记录n"); else while(1) printf("下面将统计考试成绩n"); printf("请选择你要统计哪科的成绩 1.高数t2.英语t3.C语言n"); scanf("%d",&c1); printf("t一共有%d个记录n",M); /*总共记录数*/ switch(c1) case 1: /用来判断高数的最高分,平均分,输出不及格人员名单 for(i=0;i<M;i+) sum+=stui.score0; if(stuk.score0>stui.score0) k=i; if(stuj.score0<stui.score0) j=i; average0=sum/M; printf("t高数的最高分:n"); printf("tt学号:%s 姓名:%s 分数:%.2fn",stuj.number,stuj.name,stuj.score0); printf("t高数的最低分是:n"); printf("tt学号:%s 姓名:%s 分数:%.2fn",stuk.number,stuk.name,stuk.score0); printf("t高数的平均分是 %5.2fn",average0); printf("平均分低于60分的学生成员名单n"); for(i=0;i<M;i+)if(stui.score0<60) printf("%sn",stui.name); break; case 2: / 用来判断英语的最高分,平均分,输出不及格人员名单 for(i=0;i<M;i+) sum+=stui.score1; if(stuk.score1>stui.score1) k=i; if(stuj.score1<stui.score1) j=i; average1=sum/M; printf("t英语的最高分:n"); printf("tt学号:%s 姓名:%s 分数:%.2fn",stuj.number,stuj.name,stuj.score1); printf("t英语的最低分是:n"); printf("tt学号:%s 姓名:%s 分数:%.2fn",stuk.number,stuk.name,stuk.score1); printf("t英语的平均分是 %5.2fn",average1); printf("平均分低于60分的学生成员名单n");for(i=0;i<M;i+)if(stui.score1<60) printf("%sn",stui.name); break; case 3: /用来判断C语言的最高分,平均分,输出不及格人员名单 for(i=0;i<M;i+) /*循环输入判断*/ sum+=stui.score2; if(stuk.score2>stui.score2) k=i; if(stuj.score2<stui.score2) j=i; average2=sum/M; printf("tC语言的最高分:n"); /*最高分*/ printf("tt学号:%s 姓名:%s 分数:%.2fn",stuj.number,stuj.name,stuj.score2); printf("tC语言的最低分是:n"); /*最低分*/ printf("tt学号:%s 姓名:%s 分数:%.2fn",stuk.number,stuk.name,stuk.score2); printf("tC语言的平均分是 %5.2fn",average2); printf("平均分低于60分的学生成员名单n");for(i=0;i<M;i+)if(stui.score2<60) printf("%sn",stui.name); break; default: /如果输入的数字不符合要求则显示错误信息printf("输入错误!请输入13之间的数n"); sum=0; getchar(); printf("是否继续进行统计?(y/n)"); gets(str); if(str0='y'|str0='Y') statistic(); else break; /*修改学生成绩*/void modify(void) char a10;int i,j;system("cls"); printf(" 已经转到修改成绩菜单n");printf("请输入需要修改成绩的学生学号n");scanf("%s",a);for(i=0;i<n;i+)if(strcmp(a,stui.number)=0)printf("名次t学号tt姓名t性别t高数分t英语分tC语言分t总分t平均分n");printf("%dt%st%st%st",i+1,stui.number,stui.name,stui.sex);for(j=0;j<M;j+)printf("%4.2ft",stui.scorej);printf("%4.2f",stui.total);printf("%4.2f",stui.aver);printf("n");printf("请重新输入该学生的姓名:n");scanf("%s",stui.number);printf("n");scanf("%s",stui.name);printf("请输入该学生性别n");scanf("%s",stui.sex);printf("请重新输入该学生成绩:n");printf("高数分t英语分tC语言分n");for(j=0;j<M;j+)scanf("%f",&stui.scorej); printf("修改成功n");break; /找到该学生成绩后进行修改,跳出for循环elseprintf("请确认该学生是否为该校学生!n");/*添加学生成绩*/void add(void)int a,i,j; /i定义为学生,j为学生分数,a代表加入学生的数量system("cls");printf(" 已经转到添加成绩菜单n");printf("请输入新增加的学生人数:n");scanf("%d",&a);n=n+a;for(i=n-a;i<n;i+) printf("n");printf("请输入第%d位学生的学号:n",i+1); scanf("%s",stui.number);printf("姓名:n");scanf("%s",stui.name);printf("输入该学生性别n");scanf("%s",stui.sex);printf("请输入学生成绩:n");printf("高数分t英语分tC语言分n");for(j=0;j<M;j+)scanf("%f",&stui.scorej);printf("添加成功n");/*删除学生成绩*/void delscore(void)int i,j,c;char m,a10; /m用来存放后面输入删除的字母y或nsystem("cls");printf(" 已经转到删除成绩菜单n");printf("请输入学生学号n");scanf("%s",a);for(i=0;i<n;i+)if(strcmp(a,stui.number)=0)printf("名次t学号tt姓名t性别t高数分t英语分tC语言分t总分t平均分n");printf("%dt%st%st%st",i+1,stui.number,stui.name,stui.sex);for(j=0;j<M;j+)printf("%4.2ft",stui.scorej);printf("%4.2ft",stui.total);printf("%4.2f",stui.aver);printf("n");c=i;break;elseprintf("未找到该学生信息n");printf("是否删除该学生成绩(y/n)n");scanf("%s",&m);if(m='y')for(i=c;i<n-1;i+)stui=stui+1; /结构体整体赋值将后一位学生成绩信息拷贝进入前一位学生信息的存储位置n=n-1; /删除该学生信息后学生总数减一printf("删除成绩成功n");elseprintf("删除成绩失败n");/*保存学生成绩*/void savescore(void)FILE *fp; /定义指针int i,flag=1;char m;system("cls");printf(" 已经转到保存成绩菜单n");puts("是否保存学生成绩(y/n)");scanf("%s",&m);if(m='y')if(fp=fopen("score.dat","wb")=NULL) /从文件score中打开printf("文件打开失败n");return;for(i=0;i<n;i+)if(fwrite(&stui,sizeof(struct student),1,fp)!=1) /学生成绩写入printf("保存失败n");flag=0;if(flag=1)printf("保存成功!n");fclose(fp); /界面关闭elsereturn; 专心-专注-专业

    注意事项

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

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




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

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

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

    收起
    展开