ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:165.15KB ,
资源ID:7621190      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7621190.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言学生成绩管理系统含源代码.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c语言学生成绩管理系统含源代码.docx

1、c语言学生成绩管理系统含源代码C 语言程序设计作业一 设计项目:学生成绩管理系统二 总体设计:1 程序设计组成框图:学生成绩管理系统输入学生成绩查看学生成绩及成绩排序通过学号查询学生成绩统计成绩信息通过学号修改学生成绩添加学生成绩通过学号删除学生成绩保存学生成绩退出程序2:模块功能说明:1 输入功能:输入学生学号及成绩。2 查看功能:输出学号及各科成绩。3 查询功能:通过学号查询学生及各科成绩。 4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。5 修改功能:通过输入学号修改指定学生的错误信息。6添加功能:添加学生信息。7删除功能:通过输入学号输入指定学生信息。8保存功能:将学生信

2、息保存。9 退出系统。 3:主要函数之间的调用关系及各自功能:主要函数的函数原型void inputscore(void);void savescore(void);void avergescore(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);i.在菜单界面输入1,调用函数inputscore()实现输入学生成绩信息

3、功能。ii.在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计算。iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生。v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。vii

4、i.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。ix.在菜单界面输入9,退出成绩管理系统。开始输入指令19输入成绩查询成绩成绩统计修改成绩添加成绩删除成绩保存成绩显示成绩123456789退出三 程序运行效果截图1 主菜单2 输入成绩3 查看成绩4 查询成绩5统计成绩6修改成绩7 添加成绩8 删除成绩9保存成绩四 个人总结整个程序主要运用了课本上的基础知识,并未有太大创新,通过for循环,循环输入学生成绩。在学生成绩排序中运用选择法,同时实现学生名次的确定。在删除指定学生成绩时,先确定信息存储位置即其在结构体数组中的序号,通过结构体变量的整体赋值将从指定位置以后的学生信

5、息赋给前一个结构体变量,并将学生总数n减1,实现删除学生成绩信息。源代码#include#include#include#include#include#define N 30#define M 3typedef struct student char number10; char name20; float scoreM; float aver; float total;STU;STU stuN;int n;void inputscore(void);void savescore(void);void avergescore(void);void total(void);void modif

6、yscore(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(); do flag=1; switch(getch() case 1 : inputscore();break; /*输入成绩*/ case 2 : lookscore();break; /*查看成绩*/ case 3 : searc

7、hscore();break; /*查找成绩*/ case 4 : statistic();break; /*成绩统计*/ case 5 : modify();break; /*修改成绩*/ case 6 : add();break; /*添加成绩*/ case 7 : delscore();break; /*删除成绩*/ case 8 : savescore();break; /*保存成绩*/ case 9 :exit(0); /*退出程序*/ default : printf(输入有误n); printf(按任意键继续n); getch(); menu(); while (flag=1);

8、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(请输入您的选择n);/*输入各个同学的学生信息(王超)*/void inputsc

9、ore(void) int i,j; system(cls); printf(请输入学生总数:n); scanf(%d,&n); printf(提示:*输入学号时请输入由1位大写字母和8位数字组成的学号,如P01214000*n); /*因二维表上下需对正故有此要求*/ for(i=0;in;i+) printf(请输入学生%d的学号 :n,i+1); scanf(%s%s,stui.number,stui.name); printf(请输入学生成绩:n); printf(高数t物理tC语言n); for(j=0;jM;j+) scanf(%f,&stui.scorej); printf(成功

10、输入n);/*计算各个同学的总分(友)*/void total(void) int i,j; for(i=0;in;i+) stui.total=0; for(j=0;jM;j+) stui.total+=stui.scorej; /*计算各个同学的平均分*/void avergescore(void) int i,j; for(i=0;in;i+) stui.aver=0; for(j=0;jM;j+) stui.aver+=stui.scorej; stui.aver=stui.aver/M; /*查看学生成绩及根据平均分对学生进行排序*/void lookscore(void) int

11、i,j,k; STU t; total(); avergescore(); system(cls); for(i=0;in-1;i+) for(k=i,j=i+1;jstuk.aver) k=j; if(k!=j) t=stuk; stuk=stui; stui=t; printf(名次t学号ttt高数t物理tC语言t总分t平均分n); for(i=0;in;i+) printf(%dt%st%st,i+1,stui.number,stui.name); for(j=0;jM;j+) printf(%4.2ft,stui.scorej); printf(%4.2ft,stui.total);

12、printf(%4.2f,stui.aver); printf(n); /*通过输入学号查找学生成绩*/void searchscore(void) char a10; int i,j; system(cls); printf(请输入需查询的学生学号n); scanf(%s,a); for(i=0;in;i+) if(strcmp(a,stui.number)=0) printf(名次t学号ttt高数t物理tC语言t总分t平均分n); printf(%dt%st%st,i+1,stui.number,stui.name); for(j=0;jM;j+) printf(%4.2ft,stui.s

13、corej);printf(%4.2ft,stui.total); printf(%4.2f,stui.aver); printf(n); break; /*找到该学生成绩信息后跳出for循环*/ else printf(未找到该学生信息n); /*统计学生成绩信息,平均分及格率,优秀率*/void statistic(void) STU *p=stu;int i,j; float count=0.0,sum=0.0; system(cls); for(i=0;iaver; printf(该班级平均分为%4.2fn,sum/n); /*平均分计算*/ for(i=0;iaver=60) cou

14、nt+; printf(该班级及格率为%4.2f%n,count/n*100); /*及格率计算*/ count=0.0; for(i=0;iaver=90) count+; printf(该班级优秀率为%4.2f%n,count/n*100); /*优秀率计算*/ printf(平均分低于60的学生n); for(i=0;in;i+) if(stui.aver60) printf(%sn,stui.name); /*统计不及格学生*/*修改学生成绩*/void modify(void) char a10; int i,j; system(cls); printf(请输入需要修改成绩的学生学号

15、n); scanf(%s,a); for(i=0;in;i+) if(strcmp(a,stui.number)=0) printf(名次t学号ttt高数t物理tC语言t总分t平均分n); printf(%dt%st%st,i+1,stui.number,stui.name); for(j=0;jM;j+) printf(%4.2ft,stui.scorej);printf(%4.2f,stui.total); printf(%4.2f,stui.aver); printf(n); printf(请重新输入该学生的学号 :n); scanf(%s%s,stui.number,stui.name

16、); printf(请重新输入学生成绩:n); printf(高数t物理tC语言n); for(j=0;jM;j+) scanf(%f,&stui.scorej);/*找到该学生成绩后进行修改,跳出for循环*/ printf(修改成功n); break; else printf(请确认该学生是否为本班学生!n); /*添加学生成绩*/void add(void) int a,i,j; system(cls); printf(请输入新增加的学生人数:n); scanf(%d,&a); n=n+a; for(i=n-a;in;i+) printf(请输入学生%d的学号 :n,i+1); scan

17、f(%s%s,stui.number,stui.name); printf(请输入学生成绩:n); printf(高数t物理tC语言n); for(j=0;jM;j+) scanf(%f,&stui.scorej); printf(添加成功n); /*删除学生成绩*/void delscore(void) int i,j,c; char m,a10; system(cls); printf(请输入学生学号n); scanf(%s,a); for(i=0;in;i+) if(strcmp(a,stui.number)=0) printf(名次t学号ttt高数t物理tC语言t总分t平均分n); p

18、rintf(%dt%st%st,i+1,stui.number,stui.name); for(j=0;jM;j+) printf(%4.2ft,stui.scorej);printf(%4.2ft,stui.total); printf(%4.2f,stui.aver); printf(n); c=i; break; else printf(未找到该学生信息n); printf(是否删除该学生成绩(y/n)n); scanf(%s,&m); if(m=y) for(i=c;in-1;i+) stui=stui+1; /*结构体整体赋值将后一位学生成绩信息拷贝进入前一位学生信息的存储位置*/

19、n=n-1; /*删除该学生信息后学生总数减一*/ printf(删除成绩成功n); else printf(删除成绩失败n);/*保存学生成绩*/void savescore(void) FILE *fp; int i,flag=1; char m; system(cls); puts(是否保存学生成绩(y/n); scanf(%s,&m); if(m=y) if(fp=fopen(score.dat,wb)=NULL) printf(文件打开失败n); return; for(i=0;in;i+) if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(保存失败n); flag=0; if(flag=1) printf(保存成功!n); fclose(fp); else return;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1