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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言课程设计学生成绩管理系统完美运行代码.docx

1、C语言课程设计学生成绩管理系统完美运行代码/所包含的头文件#include #include #include /标准库函数#include /字符操作函数#include /控制台输入输出函数/定义系统中所需要用到的结构体类型struct _birthday int year; int month; int day;struct _score float english; float math; float mcu; float total;typedef struct _birthday Birthday;typedef struct _score Score;struct _studen

2、t char no15; char name20; char sex10; Birthday birth; Score sco;typedef struct _student Student; / 函数说明void Menu();void Run();void Inti();void Print(Student *p);void PrintTablHeader();void PrintAll(Student *a,int n);int SearchByNo(Student *a,int n,char no);void SearchByname(Student *a,int n,char nam

3、e);void SortByTotal(Student*a,int n);void SortByMcu(Student*a,int n);void SortByMath(Student*a,int n);void SortByEnglish(Student*a,int n);void Sort(Student *a,int n,int course);int DeleteByNo(Student*a,int n,char no);void save(Student *a,int n);void english(Student stu , int n );void math(Student st

4、u , int n);void mcu(Student stu , int n);void englishaver(Student stu,int n);void mathaver(Student stu,int n);void mcuaver(Student stu,int n);void totalaver(Student stu,int n);int load(Student t);/符号常量和变量说明#define N 100 / 学生最大人数int length=0; / 学生实际人数 int item;char ch;#define ENGLISH 0 / 英语课程#define

5、MATH 1 / 数学课程#define MCU 2 / 计算机课程#define TOTAL 3 / 总分Student stuN = / 学生结构体数组,全局变量 10, 王安, 男, 1991, 2, 14, 15, 55,31, 11, 张羽, 女, 1992, 9, 22, 92, 83, 58, 12, 李明, 男, 1992, 2, 18, 60, 65, 72, 13,李江,男,1992,12,14,100,50,78, 14, 李楠, 男, 1992, 6, 29, 90, 52, 76, 15, 张萍, 女,1991, 8, 9,57, 78, 92, 16,李文,女,19

6、92,10,4,100,80,60, 17,张雨,女,1991,12,14,60,90,80;/6.2主函数及各功能函数void Init() int i; length=8; for(i=0;ino,p-name,p-sex, p-birth.year,p-birth.month,p-birth.day, p-sco.english,p-sco.math,p-sco.mcu,p-sco.total); void PrintTablHeader () printf(学号t姓名t性别t生日tt英语t数学t计算机t总分n);void PrintAll(Student *a,int n) int i

7、; printf( 目前学生总人数为:%dn,length); PrintTablHeader(); for(i=0;in;i+) Print(&ai);/调用Printf函数输出第i个学生信息 printf(n); int SearchByNo(Student *a,int n,char no) /按学号查找学生成绩信息 int p=-1; int i; for(i=0;in;i+) if(strcmp(ai.no,no)=0) p=i; break; return p;void SearchByname(Student *a,int n,char name) /按姓名查找学生成绩信息 in

8、t i; int flag=0; PrintTablHeader(); for (i=0;in;i+) if(strcmp(ai.name, name)=0) flag=1; Print(&ai); printf(n); if (flag=0) printf(查询失败!);void SortByEnglish(Student*a,int n) /根据英语成绩进行排序 int i,j;/循环变量 float maxval;/用于临时保存最大值 int maxpos;/用于临时保存最大值的下标 Student temp;/临时变量 /总共需要N-1次选择和交换 for (i=0;in-1;i+)

9、maxval=ai.sco.english; maxpos=i; /在无序区寻找最大值 for (j=i;jmaxval) maxval=aj.sco.english; maxpos=j; if (maxpos!=-1) temp=amaxpos; amaxpos=ai; ai=temp; void SortByMath(Student*a,int n) /根据数学成绩进行排序 int i,j;/循环变量 float maxval;/用于临时保存最大值 int maxpos;/用于临时保存最大值的下标 Student temp;/临时变量 /总共需要N-1次选择和交换 for (i=0;in-

10、1;i+) maxval=ai.sco.math; maxpos=i; /在无序区寻找最大值 for (j=i;jmaxval) maxval=aj.sco.math; maxpos=j; if (maxpos!=i) temp=amaxpos; amaxpos=ai; ai=temp; void SortByMcu(Student*a,int n) /根据计算机成绩进行排序 int i,j;/循环变量 float maxval;/用于临时保存最大值 int maxpos;/用于临时保存最大值的下标 Student temp;/临时变量 /总共需要N-1次选择和交换 for (i=0;in-1

11、;i+) maxval=ai.sco.mcu; maxpos=i; /在无序区寻找最大值 for (j=i;jmaxval) maxval=aj.sco.mcu; maxpos=j; if (maxpos!=-1) temp=amaxpos; amaxpos=ai; ai=temp; void SortByTotal(Student*a,int n) /根据学生总成绩进行排序 int i,j;/循环变量 float maxval;/用于临时保存最大值 int maxpos;/用于临时保存最大值的下标 Student temp;/临时变量 /总共需要N-1次选择和交换 for (i=0;in-1

12、;i+) maxval=ai.sco.total; maxpos=i; /在无序区寻找最大值 for (j=i;jmaxval) maxval=aj.sco.total; maxpos=j; if (maxpos !=-1) temp=amaxpos; amaxpos=ai; ai=temp; void english(Student stu , int n) /查询英语成绩不及格学生信息 int i=0; for(i=0;in;i+) if(stui.sco.english60) printf(t学生证号:%-15s姓名:%-15s英语分数:%-15gnn,stui.no,stui.name

13、,stui.sco.english); void math(Student stu , int n) /查询数学成绩不及格学生信息 int i=0; for(i=0;in;i+) if(stui.sco.math60) printf(t学生证号:%-15s姓名:%-15s数学分数:%-15gnn,stui.no,stui.name,stui.sco.math); void mcu(Student stu , int n) /查询计算机成绩不及格学生信息 int i=0; for(i=0;in;i+) if(stui.sco.mcu=N) return n; while (1) printf(请

14、输入学号:); scanf(%s,&an.no); pos=SearchByNo(a,n,an.no); if (pos!=-1) printf(学号已经存在,请重新输入!n); else break; printf(请输入姓名:); scanf(%s,&an.name); printf(请输入性别:); scanf(%s,&an.sex); printf(请输入出生年份:); scanf(%d,&an.birth .year); printf(请输入出生月份:); scanf(%d,&an.birth .month ); printf(请输入出生日期:); scanf(%d,&an.birt

15、h .day ); printf(请输入英语成绩:); scanf(%f,&an.sco.english ); printf(请输入数学成绩:); scanf(%f,&an.sco.math ); printf(请输入计算机成绩:); scanf(%f,&an.sco.mcu); an.sco.total =an.sco.english+an.sco.math+an.sco.mcu; n+; return n; int DeleteByNo(Student*a,int n,char no) int pos=SearchByNo(a,n,no); int i; if (pos=-1) print

16、f(学号不存在,请重新输入!n); return n;/减少学生人数,并返回该值 if (pos=n-1) n-; return n; for (i=pos;in;i+) ai=ai+1; n-; return n;/减少学生人数,并返回该值/*修改函数*/int ModifyByNo(Student*a,int n,char no) int pos=SearchByNo(a,n,no); int p; char sno15; if(pos=-1) printf(该学生不存在!n); return n; while (1) printf(请输入学号:); scanf(%s,&sno); p=S

17、earchByNo(a,n,sno); if(p=-1 | p=pos)/两种情况,1.下表不存在 2.不修改下表 strcpy(apos.no,sno); break; else printf(学生学号已存在,请重新输入!); printf(请输入姓名:); scanf(%s,&apos.name ); printf(请输入性别:); scanf(%s,&apos.sex); printf(请输入出生年份:); scanf(%d,&apos.birth .year); printf(请输入出生月份:); scanf(%d,&apos.birth .month ); printf(请输入出生日

18、期:); scanf(%d,&apos.birth .day ); printf(请输入英语成绩:); scanf(%f,&apos.sco.english ); printf(请输入数学成绩:); scanf(%f,&apos.sco.math ); printf(请输入计算机成绩:); scanf(%f,&apos.sco.mcu ); return n; void save(Student *a,int n) /保存函数 int i; FILE *fp; if(fp=fopen(student information.txt,wb)=NULL) printf(不能打开文件!n); exi

19、t(1); printf(n保存文件n); fprintf(fp,%d,n);/将记录数写入文件 fprintf(fp,rn);/将换行符号写入文件 for(i=0;in;i+) fprintf(fp,%st%st%st%d-%d-%dt%3.1ft%3.1ft%3.1ft%3.1f,ai.no,ai.name ,ai.sex ,ai.birth .year,ai.birth .month ,ai.birth .day ,ai.sco.english ,ai.sco .math ,ai.sco .mcu ,ai.sco.total );/写入记录 fprintf(fp,rn);/将换行符号写入

20、文件 fclose(fp); printf(成功保存文件!n);/*文件的读入*/int load(Student t) int i,n; FILE *fp; if(fp=fopen(student information.txt,rb+)=NULL)/打开文件 printf(不能打开文件!n); exit(1); fscanf(fp,%d,&n);/读入记录数 for(i=0;in;i+) fread(fp,%st%st%st%d%d%dt%3.1ft%ft%ft%f,ti.no ,ti.name,ti.sex,&ti.birth.year,&ti.birth.month,&ti.birth

21、.day,&ti.sco.english,&ti.sco.math,&ti.sco.mcu,&ti.sco.total);/读入记录 fclose(fp); printf(成功读入记录!); return n;void englishaver( Student stu,int n) /英语平均成绩int i;double aver1,sum1=0;for(i=0;in;i+) sum1+=stui.sco.english; aver1=1.0*sum1/n; printf(英语平均分:%.2fnn,aver1);void mathaver(Student stu,int n) /数学平均成绩

22、int i;double aver1,sum1=0;for(i=0;in;i+) sum1=sum1+stui.sco.math; aver1=sum1/n; printf(数学平均分: %.2fnn,aver1);void mcuaver(Student stu,int n) /计算机平均成绩 int i;double aver1,sum1=0 ;for(i=0;in+1;i+) sum1+=stui.sco.mcu; aver1=1.0*sum1/n; printf(计算机平均分: %.2fnn,aver1);void totalaver(Student stu,int n) /总平均成绩 int i ;double aver1,sum;for(i=0;in;i+) sum=stui.sco.mcu+stui.sco.english+stui

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

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