C语言试验报告--学生成绩管理系统.docx

上传人:scccc 文档编号:13536107 上传时间:2022-01-14 格式:DOCX 页数:24 大小:173.91KB
返回 下载 相关 举报
C语言试验报告--学生成绩管理系统.docx_第1页
第1页 / 共24页
C语言试验报告--学生成绩管理系统.docx_第2页
第2页 / 共24页
C语言试验报告--学生成绩管理系统.docx_第3页
第3页 / 共24页
C语言试验报告--学生成绩管理系统.docx_第4页
第4页 / 共24页
C语言试验报告--学生成绩管理系统.docx_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《C语言试验报告--学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C语言试验报告--学生成绩管理系统.docx(24页珍藏版)》请在三一文库上搜索。

1、X X大学C S UC语言程序设计实践报告题 目学生成绩治理系统学生姓名剽悍的小白兔指导教师TZ学 院信息科学与工程学院专业班级 电气信息类 XXXX班完成时间20XX 年X月设计目的通过课程设计使学生综合使用所学过的 C语言程序设计知识,掌握结构化程序设计的根本思路和方法,在所掌握的根本知 识和技能的根底上,进一步提升自学水平和查找资料的水平,解 决一定程度的复杂的结构化程序设计问题,加深对所学知识的理 解与掌握,增强学生我们利用自己所学知识解决实际问题的水平, 为以后的程序开发打下根底.随着科学技术的不断开展,对人们的工作水平要求也越来越 高,然而计算机就成了帮助人们解决这个问题的工具,熟

2、练的运 用计算机,它能为人们解决许多工作上的难题.对与一个治理人 员来说,快而迅速的了解各种信息是很关键的.使用计算机在 C 语言环境下编写相关的治理系统就能到达对相关信息的录入、显 示;对记录的查询极其修改等目的.基于同样的C语言环境,对其提供的头文件*h(stdio.h ,stdlib.h,string.h,malloc.h,mem.h,ctype.h,conio.h 等)的 不同组合,能为我们解决许许多多的问题,因此,用它来编写成 绩治理治理系统是可行的.、学生成绩治理系统主要功能 数据的录入: 如录入学生的根本信息, 以及该学生选修课程的 根本信息;数据的修改: 如修改指定学号、 或者

3、指定姓名的学生信息, 或 者修改其选修课程信息;数据的插入:插入某个学生信息; 数据的查询:如按学号查询、按姓名查询等; 数据的删除:如删除指定学号、 或者指定姓名的学生及其选修 课程信息;平均成绩的计算: 计算每个学生各门功课的平均成绩, 并按平 均成绩从高到低的次序输出学生信息; 列出不及格学生清单学号、姓名、不及格的课程和成绩 .四、功能的实现与要求1数据录入: 数据录入的功能是将需要的数据进行录入, 用于后面 的各项操作.实现:用输入函数对数据进行录入,先确定学生的个 数,再用一个循环进行输入,选修课程数量亦然.2. 数据修改:数据修改的主要功能是为修改数据输入出现的错误, 实现: 先

4、指定该生的学号, 找到该生,再输出该生当前的信息, 用一 个 if 语句对数据进行修改,再用一个循环语句对选修课信息进行修 改.3. 数据插入 : 数据插入的主要功能是在数据录入之后,为预防数 据输入的遗漏, 实现:分为两个局部,第一个是插入第一个位置, 第 二是插入第一个位置之后,把当前的位置赋给后面的加以实现. 4数据查询: 数据查询的主要功能是在数据输入之后进行分类再 现,实现:分为输出所有数据,按学号查询,按姓名查询,当输入的 数据满足条件时即输出所要求的.5数据删除:数据删除的主要功能是在数据录入、数据插入和数据 修改完成之后对无用数据进行删除, 实现:输入学号, 满足条件时即 把后

5、一个数值赋给前一个数值,到达删除的目的.6平均值计算:平均值计算的主要功能是求平均值,再对其进行排 序,实现:用公式进行计算求平均值, 之后便是排序问题, 求最大值, 然后依次输出各最大值,即实现了排序功能.7. 列出不及格学生清单:这局部的主要功能是列出不及格学生清 单,实现:用一个判断语句,当分数小于 60 时,即输出相应的学生 信息即可.五、系统框图查询学生根本信息录入修改班机信息治理输入修改登录模块学生课程治理查询输入修改学生成绩治理查询退出系统六、系统流程图开始性别选择1选择2排序选择3选择4选择5选择6选择7选择8结束选择8保存数据学号按姓名按景平均成绩按平均成绩上下按学号退出系统

6、选择操作主菜单班级显示数据查询插入数据姓名删除输入数据读取数据七、界面设计-系统运行界面局部如下:欢送逬入学生成绩治理系统设计者的叫刖M拒导教师乂 大学信息科学与工程学院电气加班20217Pp*ss Fn-tzeF ten Cnntiniif*图1主界面糸统主菜单录入数据上修改数据 丸插入数据4数据查询 乩删除数据筑平均成绩计算趴列出不及洛学生清单 卸退出系统请输入一个数字来选择目录=图2主菜单图3录入数据请输入要修改数据的学生的学号:备学生当前信息班级沢学号汽姓名茁性别汕年龄切 鳖鐫黔幾聋觸年龄6选修课程信息4请输入修改后数据:F辰否继续修改此学主信息皿?图4修改数据HAgE是否要将信息、插

7、入到第一个位置少代y3 3 C M lfl是否添加该学生的选條课程信息少卅V请输入此学生选修课程数量:1请分别输入该学生选修课程信息课程编号课程名称学分测试成绩平时成绩1 Math 2 45 67是否继续插入下一学生信息歸图5插入数据数据査询i-显示全部数据养按学号查询3-按姓名查询H返回主菜单请输入一个数字来选择目录:图6数据查询Sli=ii=3学万汴姓名称:Hath学牡個:2学号乂旌名汕 称:Math学分:2.阿性别汕年龄:饰测试威宛第柑OJ:F年龄汉&测试成绩:33-0平吋威绩心厨平时成绩:现目综合成绩51综合成绩丹.0图7计算平均成绩列出不及晤学拄清单不及格学生清单:堆名;c不及格课综

8、合成绩:弓1上 建不及带课=nath垛合成绩:卵卫是否返回主目录y/n?图8不及格学生统计八、程序代码#include#include#include#include main()int i,w=O,u/*被选中学生的下标*/,f/*科目数量*/;int o=0/*学生总数*/,p=0,g50/*每个学生的选修课程数 量*/,a,x,b/*新增学生个数*/,xx/*当前学生班级*/;char xm50/*当前学生姓名*/,h10;char oo/*判断是否继续 */,q;float s50/* 平均成绩 */,max,al50;long qq;struct studentint i;/* 班级

9、 */long j;/* 学号 */char m30;/* 姓名 */char n10;/* 性别 */int x;/* 年龄 */c50; struct score int q;/* 课程编号 */ char w50;/* 课程名称 */ float e;/* 学分 */ float r;/* 测试成绩 */ float t;/* 平时成绩 */ double y;/* 综合成绩 */ z5010;printf(nn*nnn欢 迎 进 入 nn学生成绩治理系统nnn 设计者 :剽悍的小白兔 090909XXXXnn 电气 09XX 班 nnn指导教师: TZnnXX 大学 信息科学与工程学院

10、2021 年 7 月nnn*n*Press Enter to Continue);getchar();system(CLS);while(1)system(CLS);printf(nn*n系统主菜单nn1.录入数据nn2.修改数据nn3.插入数据nn4.数据查询nn5.删除数据nn6.平均成绩计算nn7.列出不及格学生清单nn8.退出系统nn);printf( 请输入一个数字来选择目录 :nn); scanf(%d,&i);system(CLS);if(i=1)/*1. 录入数据 */printf( 录入数据 nn);while(1)printf(n 请输入要录入的学生个数 :n); scan

11、f(%d,&b);if(b=1)for(a=0;ab;a+)printf(n请输入第%d个学生的根本信息:nn班级 学号 姓名 性别 年龄n,a+1);scanf(%d %ld %s %s %d,&co+a.i,&co+a.j,&co+a.m,&co+a.n,&co+a.x); printf(n 请输入此学生选修课程数量: n);scanf(%d,&f);go+a=f;for(i=0;if;i+)printf(n 请输入该学生第 %d 门选修课程信息 :nn 课程编号 课程名称 学分 考 试成绩 平时成绩 n,i+1);scanf(%d %s %f %f %f,&zo+ai.q,&zo+ai.

12、w,&zo+ai.e,&zo+ai.r,&zo+ai.t);o=p+b;p=b;getchar();printf(n 是否继续输入 y/n?n);scanf(%s,&h);if(strcmp(h,n)=0) break;else if(strcmp(h,y)=0) system(CLS);else if(i=2)/*2. 修改数据 */printf( 修改数据 n);if(o=0) printf(n 系统内没有学生信息 );elsewhile(1)printf(n 请输入要修改数据的学生的学号: n);scanf(%ld,&qq);w=0;for(a=0;ao;a+)if(qq=ca.j)pr

13、intf( 该 学 生 当 前 信 息 : 班 级 :%d 学 号 :%ld 姓 名 :%s 性 别 :%s 年 龄:dn,ca.i,ca.j,ca.m,ca.n,ca.x);u=a;w=w+1;if(w=0) printf( 输入错误! );break;while(1)printf(n 请输入数字选择要修改的数据:n1. 班级 2.学号 3.姓名 4.性别 5.年龄 6.选修课程信息 n);scanf(%d,&i);if(i!=6) printf(n 请输入修改后数据 :n);if(i=1) scanf(%d,&cu.i);else if(i=2)scanf(%ld,&cu.j);else

14、if(i=3)scanf(%s,&cu.m);else if(i=4)scanf(%s,&cu.n);else if(i=5)scanf(%d,&cu.x);else if(i=6)printf(n 该学生选修课当前信息: );for(i=0;igu;i+)printf(课程编号:d课程名称:%s学分:3.1f测试成绩:3.1f平时成 绩:%3. 1 fn,zui.q,zui.w,zui.e,zui.r,zui.t);n);1.课程编号 2.课程名称 3.学分 4.printf(n 请输入要修改的数据的当前选修课程编号: scanf(%d,&x);w=0;for(i=0;igu;i+)if(x

15、=zui.q)printf(n 请输入数字选择要修改的数据:测试成绩 5.平时成绩 n);scanf(%d,&xx);printf(n 请输入修改后数据 :n);if(xx=1)scanf(%d,&zui.q);else if(xx=2) else if(xx=3) else if(xx=4) else if(xx=5)scanf(%s,&zui.w); scanf(%f,&zui.e); scanf(%f,&zui.r); scanf(%f,&zui.t);else printf( 输入错误! );w=w+1;if(w=0) printf( 输入错误! );else printf( 输入错误

16、! );break;printf(nn 是否继续修改此学生信息 y/n?n);scanf(%s,&h);if(strcmp(h,n)=0) break;else if(strcmp(h,y)=0) system(CLS);printf(nn 是否继续下一学生信息 y/n?n);scanf(%s,&h);if(strcmp(h,n)=0) break;else if(strcmp(h,y)=0) system(CLS);else if(i=3)/*3. 插入数据 */printf( 插入数据 );while(1)printf(n 是否要将信息插入到第一个位置 y/n?nn); scanf(%s,

17、&h);if(strcmp(h,n)=0)printf(n 请输入要插入位置前一个学生的学号: );scanf(%ld,&qq);for(a=0;aa;u-)cu+1=cu;for(i=0;igu;i+)zu+1i=zui;gu+1=gu;scanf(%d %ld %s %s %d,&ca+1.i,&ca+1.j,&ca+1.m,&ca+1.n,&ca+1.x); o=o+1;printf( 是否添加该学生的选修课程信息 y/n?);scanf(%s,&h);if(strcmp(h,y)=0)printf(n 请输入此学生选修课程数量: n);scanf(%d,&f);ga+1=f;print

18、f(n 请分别输入该学生选修课程信息: nn 课程编号 测试成绩 平时成绩 n);for(i=0;i=0;u-)cu+1=cu;for(i=0;igu;i+)zu+1i=zui;gu+1=gu;scanf(%d %ld %s %s %d,&c0.i,&c0.j,&c0.m,&c0.n,&c0.x);o=o+1;printf( 是否添加该学生的选修课程信息 y/n?n);scanf(%s,&h);if(strcmp(h,y)=0)printf(n 请输入此学生选修课程数量: n);scanf(%d,&f);g0=f;printf(n 请分别输入该学生选修课程信息: nn 课程编号 课程名称 平时

19、成绩 n);for(i=0;if;i+)课程名称 学分学分 测试成绩scanf(%d %s %f %f %f,&z0i.q,&z0i.w,&z0i.e,&z0i.r,&z0i.t);printf(nn 是否继续插入下一学生信息 y/n?n); scanf(%s,&h);if(strcmp(h,n)=0) break;else if(strcmp(h,y)=0) system(CLS);else if(i=4)/*4. 数据查询 */printf( 数据查询 n);for(a=0;ao;a+)for(i=0;iga;i+)zai.y=zai.r*0.7+zai.t*0.3;while(1)pri

20、ntf(nn*nn 数据查 询nnn1.显示全部数据nn2.按学号查询nn3.按姓名查询nn4.返回主菜单;printfnn 请输入一个数字来选择目录 :nn;scanf(%d,&p);if(p=1)for(a=0;ao;a+)printf( 班 级 :%d 学 号 :%ld 姓 名 :%s 性 别 :%s 年龄:dn,ca.i,ca.j,ca.m,ca.n,ca.x);for(i=0;iga;i+)printf(课程编号:%d课程名称:%s学分:3.1f测试成绩:3.1f平时成绩:%3.1f 综合成绩:3.1fn,zai.q,zai.w,zai.e,zai.r,zai.t,zai.y);el

21、se if(p=2)printf( 请输入要查询学生的学号: n); scanf(%ld,&qq);w=0;for(a=0;ao;a+)if(qq=ca.j)printf( 班 级 :%d 学 号 :%ld 姓 名 :%s 性 别 :%s 年 龄:dn,ca.i,ca.j,ca.m,ca.n,ca.x);for(i=0;iga;i+)printf( 课程编号 :%d 课程名称 :%s 学分 :%3.1f 测试成绩 :%3.1f 平时 成绩 :%3.1f 综合成绩 :%3.1fn,zai.q,zai.w,zai.e,zai.r,zai.t,zai.y);w=w+1;if(w=0) printf(

22、 此学号不存在! n);else if(p=3)printf( 请输入要查询学生的姓名: n);scanf(%s,&xm);w=0;for(a=0;ao;a+)if(strcmp(xm,ca.m)=0)printf( 班 级 :%d 学 号 :%ld 姓 名 :%s 性 别 :%s 年 龄:dn,ca.i,ca.j,ca.m,ca.n,ca.x);for(i=0;iga;i+)printf( 课程编号 :%d 课程名称 :%s 学分 :%3.1f 测试成绩 :%3.1f 平时 成绩 :%3.1f 综合成绩 %3.1fn,zai.q,zai.w,zai.e,zai.r,zai.t,zai.y);

23、w=w+1;if(w=0) printf( 此姓名不存在! n);else if(p=4)break;else printf( 输入错误! n);printfnn 是否返回数据查询界面 y/n?n; scanf(%s,&h);if(strcmp(h,n)=0) break;else if(strcmp(h,y)=0) system(CLS);else if(i=5)/*5. 删除数据 */printf( 删除数据 );while(1)printf(n 请输入要删除的学生的学号: n);scanf(%ld,&qq);w=0;for(a=0;ao;a+)if(qq=ca.j)for(i=a;io;

24、i+) ci=ci+1;for(u=0;ugi;u+)ziu=zi+1u; gi=gi+1;printf(n 已删除 nn);w=w+1;o=o-1;if(w=0) printf(n 该学生不存在! n); printf(nn 是否继续删除学生数据 y/n?n); scanf(%s,&h);if(strcmp(h,n)=0) break;else if(strcmp(h,y)=0) system(CLS);else if(i=6)/*6. 平均成绩计算 */printf( 平均成绩计算 );:nn);printf(n 按平均成绩从高到低的次序输出学生信息 for(a=0;ao;a+)for(i

25、=0;iga;i+) zai.y=zai.r*0.7+zai.t*0.3;while(1)for(a=0;ao;a+)ala=0;for(u=0;uga;u+)ala=ala+zau.t;sa=ala/ga;for(a=0;ao;a+)max=sa;for(u=a;umax)max=su;su=sa;sa=max;for(a=0;ao;a+)printf( 平 均 成 绩 : %3.1f 班 级 :%d 学 号 :%ld 姓 名 :%s 性 别 :%s 年 龄:dn,sa,ca.i,ca.j,ca.m,ca.n,ca.x);for(i=0;iga;i+)printf( 课程编号 :%d 课程名

26、称 :%s 学分 :%3.1f 测试成绩 :%3.1f 平时成绩 :%3.1f 综合成绩 3.1fn,zai.q,zai.w,zai.e,zai.r,zai.t,zai.y);printf(nn 是否返回主目录 y/n?n); scanf(%s,&h);if(strcmp(h,y)=0) break;else if(strcmp(h,n)=0) system(CLS);else if(i=7)/*7. 列出不及格学生清单 */printf( 列出不及格学生清单 );for(a=0;ao;a+)for(i=0;iga;i+) zai.y=zai.r*0.7+zai.t*0.3;while(1)p

27、rintf(nn 不及格学生清单: nn);x=0;for(a=0;ao;a+)for(u=0;uga;u+)if(int)zau.y60)printf( 学 号 :%ld 姓 名 :%s 不 及 格 课 程 :%s 综 合绩:3.1fn,ca.j,ca.m,zau.w,zau.y);x=x+1;if(x=0) printf( 所有学生成绩均及格 );printf(nn 是否返回主目录 y/n?n); scanf(%s,&h);if(strcmp(h,y)=0) break;else if(strcmp(h,n)=0) system(CLS);else if(i=8)/*8. 退出系统 */b

28、reak;else printf( 输入错误! );getchar(); 九、心得体会通过本次 C 程序课程设计,我觉得对自己提升很大:克服了 的偷懒的毛病,这在我以后的学习和工作中的心理定位与调节有 很大的帮助.我感受到了编程是一项非常烦琐周密的活动,他不 但需要一个人周密的思考问题的水平,处理问题的水平,还需要 有足够的耐心和严谨治学的作风,来不得半点马虎.通过本次课程设计,我初步学会了论文设计的根本方法,学 会了怎样去借鉴别人的方法和经验,知道如何去查找资料和整合 处理这些资料的水平,这为以后的大学毕业设计论文打下了一个 初步的根底使我收益最大的是享受到了一种成功的喜悦,在这两 个星期之中从开始确实定论文题目,然后是上网和上图书馆查找 资料,编写 C 语言原程序,然后是进行编译,这个环节是一个非 常痛苦和艰难的,常常会由于一小点的错误而在编译失败与再次 修改的漫漫循环之路中,但失败的越多,对人的考验就越多,在 编译运行成功之后的享受成功的喜悦也就越多,另外在调试程序 的过程中不断的思考和运用已经学到的知识,这对于自己是有很 大的提升的.由于所学的知识不多,自己的编程经验缺乏,仍存在一些错 误,按现有的知识水平有些东西暂时还无法解决,还有待于在以 后的学习中不断提升和改良!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1