欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言课程设计 学生成绩管理系统.docx

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

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

    C语言课程设计 学生成绩管理系统.docx

    1、C语言课程设计 学生成绩管理系统 青岛农业大学课程设计报告 题 目: 学生成绩管理系统 姓 名: 田世强 元成 张斌 学 院: 工程系 专 业: 电子信息工程技术 班 级: 2班 学 号: 200806013 200806015 200806023 指导教师: 曹红波 2010年9月16日一 设计目的进一步加深、巩固所学专业课程(C语言程序设计)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。二 课程设计的内容对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删

    2、除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。三 课程设计的要求与数据1、用C语言实现系统;2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:(1) 每一条记录包括一个学生的学号、姓名、3门课成绩(2)、成绩信息

    3、录入功能:(成绩信息用文件保存,可以一次完成若干条记录的输入。)(3)、成绩信息显示浏览功能:完成全部学生记录的显示。(4)、查询功能:完成按姓名查找学生记录,并显示。(5)成绩信息的删除:按学号进行删除某学生的成绩.(6)、排序功能:按学生平均成绩进行排序。(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!四 课程设计应完成的工作(1)编写算法;(2)算法测试,并有具体的测试结果和结果分析;(3)撰写课程设计报告。内容包括:1)封面扉页2)设计任务书3)目录4)总体设计方案(包括流程图)5)使用说明及运行实例(包括界面)6)成员设计内容简介7)项目源程序代码

    4、(注意注释的使用)8)指导教师评语五 总体设计(包含几大功能模块) 1、成绩录入功能2、成绩输出功能3、成绩查询功能4、删除模块 5、排序功能 6、统计功能 7、退出系统六 详细设计(各功能模块的具体实现算法流程图)6.1各函数的功能和实现1、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等相关信息;可用函数void input(STUDENT *data, int *len)来实现此操作。 2、成绩输出模块:输出学生的信息以及成绩void output(STUDENT *data, int len):通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage()、

    5、maverage()、eaverage()和comaverage()来输出成绩的平均分数、最高和最低分数。3、成绩查询模块:可用void find(STUDENT *data, int len)来实现。找到就输出此学生全部信息。4、删除模块:用函数void delete_item(STUDENT *data, int *len)来实现5、排序模块:用函数void sort(STUDENT *data, int len)来实现6、统计功能能:用函数void stat(STUDENT *data, int len) 来实现7、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动

    6、态创建的内存空间,再退出此程序。 如图6.1 图 6.1七 调试分析(包含各模块的测试用例,及测试结果) 7.1源程序#include #include #include #define MAXN 35#define MAX_NAME 256typedef struct student /学生信息 int no; char nameMAX_NAME; double Chinese; double math; double English; double mark_ave; double mark_tot; STUDENT;/*-输入信息子程序-*/void input(STUDENT *dat

    7、a, int *len) int no; putchar(n); printf(%sn, 请输入新的记录,如果需要退出当前菜单请输入-1.); printf(%sn, 格式:n学号n); printf(%sn, 姓名 语文 数学 英语); putchar(n); printf(如:n); printf(1n); printf(杨江彬 93 95 89n); scanf(%d, &no); while(no != -1) data*len.no = no; scanf(%s %lf %lf %lf, data*len.name, &data*len.Chinese, &data*len.math

    8、,&data*len.English); data*len.mark_ave=(data*len.Chinese+data*len.math+data*len.English)/3.0; data*len.mark_tot=data*len.Chinese+data*len.math+data*len.English; (*len)+; scanf(%d, &no); /*-输出信息子程序-*/void output(STUDENT *data, int len) int i; system(cls); printf(%8s, 学号); printf(%8s, 姓名); printf(%8s,

    9、 语文); printf(%8s, 数学); printf(%10s, 英语); printf(%12s, 平均分); printf(%10s, 总分); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); for (i = 0; i len; i+) printf(%8d, datai.no); printf(%8s, datai.name); printf(%8.1lf, datai.Chinese); printf(%8.1lf, datai.math); printf(%10.1lf, datai.English); pri

    10、ntf(%12.1lf, datai.mark_ave); printf(%10.1lf, datai.mark_tot); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); printf(按回车键继续.); getchar(); getchar();/*-排序子程序-*/void sort(STUDENT *data, int len) int i,j,k; STUDENT temp; for (i=0; ilen-1; i+) for (k=i, j=i+1; j dataj.mark_ave) k=j; if (k != i

    11、) temp = datai; datai = datak; datak = temp; /*-搜索子程序-*/void find(STUDENT *data, int len) int find_no, result ; int i;lab: result=0; printf(%sn, 请输入需要查找的学生的学号,退出当前菜单请输入 -1.); scanf(%d, &find_no); if (find_no = -1) return; /*exit the fine sub program*/ while( dataresult.no != find_no & result = len )

    12、 printf(%sn, 未查询到相关信息); goto lab; else system(cls); printf(%sn, 查询信息如下:); for (i =0; i 80; i+) putchar(=); putchar(n); printf(%8s, 学号); printf(%8s, 姓名); printf(%8s, 语文); printf(%8s, 数学); printf(%10s, 英语); printf(%12s, 平均分); printf(%10s, 总分); putchar(n); printf(%8d, dataresult.no); printf(%8s, datare

    13、sult.name); printf(%8.1lf, dataresult.Chinese); printf(%8.1lf, dataresult.math); printf(%10.1lf, dataresult.English); printf(%12.1lf, dataresult.mark_ave); printf(%10.1lf, dataresult.mark_tot); putchar(n);for (i =0; i 80; i+) putchar(=); putchar(n); goto lab; /*-插入子程序-*/void insert(STUDENT *data, in

    14、t *len) int no, pos; double Chinese, math, English, mark_ave, mark_tot; int i; char nameMAX_NAME;lab: printf(%sn, 输入新的记录,退出当前菜单请输入-1.); printf(%sn, 格式:学号); printf(%sn, 姓名 语文 数学 英语); scanf(%d, &no); if (no = -1) return; data*len.no = no; scanf(%s %lf %lf %lf, name, &Chinese, &math, &English); mark_av

    15、e=(Chinese+math+English)/3.0; mark_tot=Chinese+math+English; pos = 0; while (datapos.mark_ave mark_ave) & (pos = pos; i-) datai+1 = datai; datapos.no = no; strcpy(datapos.name, name); datapos.Chinese = Chinese; datapos.math = math; datapos.English = English; datapos.mark_ave = mark_ave; datapos.mark

    16、_tot = mark_tot; (*len)+; goto lab;/*-删除子程序-*/void delete_item(STUDENT *data, int *len) int no, i, pos;lab: pos=0; printf(%sn, 输入需要删除的学生的学号,退出当前菜单请输入-1.)scanf(%d, &no); if (no = -1) return; while( (datapos.no != no) & (pos = *len) printf(%sn, 未找到需要删除的学生); goto lab; else for (i = pos+1;i *len; i+) da

    17、tai-1 = datai; *len = *len -1; if (*len = 0) printf(%sn, 没有任何记录,请按回车键返回.); getchar(); getchar(); return; goto lab; /*-统计子程序-*/void stat(STUDENT *data, int len) int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0; int i; for (i = 0;i len; i+) if (datai.mark_ave =59) no_59+; else if (datai.mark_ave =69)

    18、no_69+; else if (datai.mark_ave =79) no_79+; else if (datai.mark_ave = 89) no_89+; else no_100+; system(cls); for (i =0; i 80; i+) putchar(=); putchar(n); printf(%10s, 分数); printf(%10s, 0-59); printf(%10s, 60-69); printf(%10s, 70-79); printf(%10s, 80-89); printf(%10s, 90-100);putchar(n); putchar(n);

    19、 printf(%10s, 学生); printf(%10d, no_59); printf(%10d, no_69); printf(%10d, no_79); printf(%10d, no_89); printf(%10d, no_100); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); printf(按回车键返回); getchar(); getchar();/*-显示信息子程序-*/void paint() int i; system(cls); printf(%55sn, 海都学院学生成绩管理系统n); print

    20、f( 制作者: n); for (i = 0; i 80; i+) putchar(=); putchar(n); printf( 1 输入信息 2 输出信息n); printf( 3 按平均分排序 4 按学号查找n); printf( 5 插入 6 按学号删除n); printf( 7 按平均分输出统计信息 8 保存到文件n); printf( 0 退出n); for (i = 0; i= 79; i+) putchar(=); putchar(n); printf(%sn, 请输入各操作对应的序号:);void save(STUDENT *data, int len)/将数据保存到文件in

    21、t i; FILE *fp; fp=fopen(成绩统计表.txt,w); fprintf(fp,%8s, 学号); fprintf(fp,%8s, 姓名); fprintf(fp,%8s, 语文); fprintf(fp,%8s, 数学); fprintf(fp,%10s, 英语); fprintf(fp,%12s, 平均分); fprintf(fp,%10sn, 总分); fprintf(fp,=n); putchar(n); for (i = 0; i len; i+) fprintf(fp,%8d, datai.no); fprintf(fp,%8s, datai.name); fpr

    22、intf(fp,%8.1lf, datai.Chinese); fprintf(fp,%8.1lf, datai.math); fprintf(fp,%10.1lf, datai.English); fprintf(fp,%12.1lf, datai.mark_ave); fprintf(fp,%10.1lfn, datai.mark_tot); fprintf(fp,=n); fclose(fp); printf(文件已保存到成绩统计表.txt); getchar();getchar();/*-主程序-*/void main() STUDENT dataMAXN; int len = 0;

    23、char ctrl_ch; paint(); scanf(%c, &ctrl_ch); while (ctrl_ch != 0) ; case 1: input(data, &len); break; case 2: output(data, len); break; case 3: sort(data, len); break; case 4: find(data, len); break; case 5: insert(data, &len); break; case 6: delete_item(data, &len); break; case 7: stat(data, len); b

    24、reak; case 8: save(data, len); break; default: if (ctrl_ch != n) printf(%sn, 输入错误!); break; if (ctrl_ch != n) paint(); scanf(%c, &ctrl_ch); 7.2调试与测试 7.2.1算法调试过程中出现的问题及解决方法(以下为其中一例)-Configuration: Cpp1 - Win32 Debug-Compiling.Cpp1.cppC:Documents and SettingsAdministrator桌面Cpp1.cpp(9) : error C2065: M

    25、AX_MAME : undeclared identifierC:Documents and SettingsAdministrator桌面Cpp1.cpp(9) : error C2057: expected constant expressionC:Documents and SettingsAdministrator桌面Cpp1.cpp(10) : error C2229: struct student has an illegal zero-sized array执行 cl.exe 时出错.Cpp1.obj - 1 error(s), 0 warning(s)解决方法:把“MANE”改成“NAME”-拼写错误。7.2.2主要程序运行结果运行开始(如图7.1)图7.1选择1输入成绩(7.2) 图7.2 选择3按平均分排序 再按2输出成绩(如图7.3) 图7.3选择4查找(输入学号3)(如图7.4) 图7.4选择5插入新数据(图7.5) 图7.5选择6按学号删除(输入学号4)(图7.6) 图7.6选择7按平均分输出统计信息(图7.7) 图7.


    注意事项

    本文(C语言课程设计 学生成绩管理系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开