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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

成绩管理系统课程设计报告.docx

1、成绩管理系统课程设计报告 组员:星河 54110316 刘风 54110315 张宇 54110314 分工: 星河: 程序设计整体思路,模块划分 联系各种函数,形成一个完整的程序 按名称排序的函数 分段函数 界面 刘风: 相关成绩单的形成 文件的打开与关闭函数 作业的调试 寻找错误点 程序的特色设计 张宇: 按成绩排序(冒泡法) 界面优化; 以链表形式组织优秀成绩单和不及格成绩单 程序优化 关键代码的注释 各成员所完成的工作占全组工作的百分比: 星河:36% 刘风:32% 张宇:32% 程序划分: bad(),bad1(),divide(),good(),good1(),load(),mai

2、n(),open(),save(),sort1(),sort2(),sort3()各个函数; 各个函数功能: 主函数负责程序开始界面,用户可选择读入或成绩单; Bad函数负责不及格学生的查找,还有其输出,存入磁盘;Bad1函数负责单科不及格学生的查找,还有其输出,存入磁盘;good函数负责优秀学生的查找,还有其输出,存入磁盘;good1函数负责优秀学生的查找,还有其输出,存入磁盘;divide函数负责学生成绩的分段,还有其输出,存入磁盘;sort1函数负责按学号排序即原始成绩单的排序,还有其输出;sort2函数负责按姓名排序,选用选择法排序,还有其输出,存入磁盘;sort3函数负责按成绩排序,

3、选用冒泡法排序,还有其输出,存入磁盘;open函数负责打开文件,读入成绩单,进入系统,同时完成读入若干班级成绩单的功能;load函数负责各个功能的选择,贯穿整个程序;save函数负责存储各类成绩单到磁盘; 各函数调用关系:load函数贯穿程序前后,是各个调用函数的桥梁,其调用sort1(),sort2(),sort3(),bad(),bad1(),divide(),good(),good1(),open(),其又被各个函数调用;save函数被sort1(),sort2(),sort3()调用;主函数还调用open函数,还有其自身的调用; 设计思想: 总体思路:综合运用各个函数的调用关系,程序简

4、单明了,给同伴分配任务,获取各 个函数的编写思路,最终将程序串联起来,成为完整程序;最终调试通过,于第3次上机完成原始程序,后经多次改良,诸如文件名自定义、链表的组织、界面的优化等一系列工作,形成最终的程序。 各模块设计思想:综合运用各个函数的调用关系,避免繁琐拖沓的设计; 界面设计:为求界面美观,运用了输出函数,形成简洁的界面;同时舍弃了画面图形的设计,以求简明; 特色设计:程序相对简单,不是繁琐拖沓的作风,各函数分配合理; 用户自定义文件名等一系列功能,更人性化; 其中优秀和不及格成绩单以链表组织,并以链表输出; 完成了读入若干班级成绩单的功能,并增添单科成绩的查询; 界面简明,用户选择颇

5、多; 创建文件嵌入其中,可自行处理自己编写的文件; 运用不同存取文件方式,灵活多变,如二进制文件.; 以结构体形式保存数据,更加简练;#include#include#include#includevoid load();#define SIZE 30 /*宏定义*/#define level 90#define badlevel 60struct student_type /*创建结构体*/ char name20; int num; char sex; int math; int english; int chinese; int average; studSIZE;struct stud

6、ent_type temp;void save() /*save函数单独独立,多次调用,简洁明了*/ int i; char filename20; printf(); printf(请输入要存储的排序后成绩单的文件名:); scanf(%s,filename); /*用户自定义文件名*/ FILE*fp; if(fp=fopen(filename,w)=NULL) printf(cannot open filen); exit(0); for(i=0;iSIZE;i+) fprintf(fp,%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3d

7、n,studi.name,studi.num,studi.sex,studi.math,studi.english,studi.chinese,studi.average); fclose(fp); /*数据存入磁盘*/ printf(数据已储存入%sn,filename); void sort1() int i; for(i=0;iSIZE;i+) printf(%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,studi.name,studi.num,studi.sex,studi.math,studi.english,studi.ch

8、inese,studi.average); save(); load(); void sort2() char b20; int p,q,k; for(p=0;pSIZE-1;p+) k=p; for(q=p+1;q0) /*选择法按姓名排序*/ temp=studk; studk=studq; studq=temp; printf(按姓名排序如下:n); for(k=0;kSIZE;k+) printf(%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,studk.name,studk.num,studk.sex,studk.math,s

9、tudk.english,studk.chinese,studk.average); save(); load();void sort3() int i,k,a,r; bool flag; flag=true; printf(请你选择:1 升序 2 降序n); /*用户可选择的成绩单组织方式*/ scanf(%d,&a); printf(); switch(a) case 1 :while(flag) /*冒泡法排序*/ flag=false; for(i=0;istudi+1.average) temp=studi; studi=studi+1; studi+1=temp; flag=tru

10、e; ; printf(按平均成绩升序如下:n);break; case 2 :while(flag) /*冒泡排序*/ flag=false; for(i=0;iSIZE-1;i+) if(studi.averagestudi+1.average) temp=studi; studi=studi+1; studi+1=temp; flag=true; ; printf(按平均成绩降序如下:n); break; for(k=0;k0;i-=10) printf(%d%d的学生如下:n,i-10,i); /*输出循环设计,简洁*/ fprintf(fp,%d%d的学生如下:n,i-10,i);

11、for(k=0;kSIZE;k+) if(studk.averagei-10) printf(%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,studk.name,studk.num,studk.sex,studk.math,studk.english,studk.chinese,studk.average); fprintf(fp,%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,studk.name,studk.num,studk.sex,studk.math,studk.engl

12、ish,studk.chinese,studk.average); fclose(fp); printf(); printf(数据已储存入%sn,filename); load();void good() struct link /*链表形式组织优秀成绩单*/ char name20; int num; char sex; int math; int english; int chinese; int average; struct link *next; *top=NULL; struct link *p,*y; int k; char filename20; printf(请输入要存储的优

13、秀成绩单的文件名:); /*用户自定义文件名*/ scanf(%s,filename); printf(); FILE*fp; if(fp=fopen(filename,w)=NULL) printf(cannot open filen); exit(0); printf(优秀学生:n); fprintf(fp,优秀学生:n); for(k=0;k=level) p=(struct link*)malloc(sizeof(struct link); strcpy(p-name,studk.name);p-num=studk.num;p-sex=studk.sex;p-math=studk.ma

14、th;p-english=studk.english;p-chinese=studk.chinese;p-average=studk.average; p-next=top ; top=p; y=top; while(y!=NULL) printf(%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,y-name,y-num,y-sex,y-math,y-english,y-chinese,y-average); fprintf(fp,%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,y-

15、name,y-num,y-sex,y-math,y-english,y-chinese,y-average); y=y-next; /*以链表形式组织输出*/ fclose(fp); printf(); printf(数据已储存入%sn,filename); load();void bad() struct link /*链表形式组织优秀成绩单*/ char name20; int num; char sex; int math; int english; int chinese; int average; struct link *next; *top=NULL; struct link *

16、p,*y; int k; char filename20; printf(请输入要存储的不及格成绩单的文件名:); /*用户自定义文件名*/ scanf(%s,filename); printf(); FILE*fp; if(fp=fopen(filename,w)=NULL) printf(cannot open filen); exit(0); printf(不及格学生:n); fprintf(fp,不及格学生:n); for(k=0;kSIZE;k+) if(studk.averagename,studk.name);p-num=studk.num;p-sex=studk.sex;p-m

17、ath=studk.math;p-english=studk.english;p-chinese=studk.chinese;p-average=studk.average; p-next=top ; top=p; y=top; while(y!=NULL) printf(%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,y-name,y-num,y-sex,y-math,y-english,y-chinese,y-average); fprintf(fp,%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d

18、平均分:%-3dn,y-name,y-num,y-sex,y-math,y-english,y-chinese,y-average); y=y-next; /*以链表形式组织输出*/ fclose(fp); printf(); printf(数据已储存入%sn,filename); load();void good1() /*用户可以查询单科优秀的成绩单*/ int a,b,k; char filename20; printf(请输入要存储的单科优秀成绩单的文件名:);/*用户自定义文件名*/ scanf(%s,filename); printf(); FILE*fp; if(fp=fopen

19、(filename,w)=NULL) printf(cannot open filen); exit(0); printf(请你选择所要查询的科目:1 数学 2 英语 3 语文n); scanf(%d,&a); printf(); switch(a) case 1 : printf(数学优秀学生:n); fprintf(fp,数学优秀学生:n); for(k=0;k=level) printf(%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,studk.name,studk.num,studk.sex,studk.math,studk.e

20、nglish,studk.chinese,studk.average); fprintf(fp,%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,studk.name,studk.num,studk.sex,studk.math,studk.english,studk.chinese,studk.average); break; case 2 : printf(英语优秀学生:n); fprintf(fp,英语优秀学生:n); for(k=0;k=level) printf(%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d

21、语文:%-3d 平均分:%-3dn,studk.name,studk.num,studk.sex,studk.math,studk.english,studk.chinese,studk.average); fprintf(fp,%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,studk.name,studk.num,studk.sex,studk.math,studk.english,studk.chinese,studk.average); break; case 3 : printf(语文优秀学生:n); fprintf(fp,语文

22、优秀学生:n); for(k=0;k=level) printf(%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,studk.name,studk.num,studk.sex,studk.math,studk.english,studk.chinese,studk.average); fprintf(fp,%-12s 学号:%d 性别:%c 数学:%-3d 英语:%-3d 语文:%-3d 平均分:%-3dn,studk.name,studk.num,studk.sex,studk.math,studk.english,studk.chinese,studk.average); break; printf(); fclose(fp);printf(数据已储存入%sn,filename);load();void bad1() /*用户可以查询单科不及格的成绩单*/ int a,b,k; char filename20; printf(请输入要存储的单科不及格成绩单的文件名:);/*用户自定义文件名*/ scanf(%s,filename); printf(); FIL

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2