欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

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

    • 资源ID:2384901       资源大小:144.50KB        全文页数:18页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

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

    第一章 本课程设计的题目及要求1.1课程设计题目要求1. 要求利用C语言面向过程的编程思想来完成系统的设计; 2. 突出C语言的函数特征,以多个函数实现每一个子功能; 3. 画出功能模块图; 4. 进行简单界面设计,能够实现友好的交互; 5. 具有清晰的程序流程图和数据结构的详细定义; 6. 熟练掌握C语言对文件的各种操作。1.2设计思想程序运用结构体数组和循环进行程序的编写.第二章 系统完成功能及功能框图2.1系统功能1每条记录包括一个学生学号、姓名、四科成绩。2输入功能:可以一次完成无数条记录的输入。3显示功能:完成全部学生记录的显示。4查找功能:完成按学号查找学生记录,并显示。5修改功能:通过查找学生学号,修改学生记录。6保存功能:将学生记录保存到任何自定义的文件中。7读取功能:将保存到文件中的学生记录读取出来。8应提供一个界面来调用各个功能,调用界面和功能的操作界面应尽可能清晰美观。2.2系统框图主要功能 输出编辑删除查询录入第三章 系统使用介绍 3.1主菜单输入字符后以获得相应的功能,按照菜单提示即可。3.2输入信息和浏览信息3.3查询、修改和删除第四章 工作分工我的主要任务是完成对该程序的设计工作,运用所学的知识来对该程序进行整体的设计,在这几天的编程时间里我会去图书馆查阅资料,以便对整个小组的工作提供最大的便利,最后我还将对检测过程进行帮助,用最快的速度帮助调试工作尽快的完成。我首先设计了整个系统的主函数,这个函数可以最有效的将所有函数运用起来,并且减小程序的大小void main()/主函数int fun; read_data(); menu(); while(1) system("color f0");/编辑菜单及字体颜色 printf("请输入功能号0-6:",&fun); scanf("%d",&fun); switch(fun) case 0:/ 退 出 break; case 1: /按班级输出学生成绩 view_data(); break; case 2: /输入学生记录 add(); break; case 3: /删除学生记录 delete_data(); break; case 4: /编辑学生记录 edit_data(); break; case 5: /查询学生记录 query_data_no(); break; case 6: /统计系统 query_data_tongji(); break; if(fun=0) break; to_menu(); 然后我将系统设计完整后运用了起泡法将浏览函数中加入了排序的函数,这样做可以使得输出的函数的结果更加的清晰,让使用者方便查找到要查找的对象strcpy(tmp.xueqi,dd.stui.xueqi); strcpy(tmp.no,dd.stui.no); strcpy(tmp.name,dd.stui.name); tmp.clas=dd.stui.clas; tmp.chi=dd.stui.chi; tmp.math=dd.stui.math; tmp.eng=dd.stui.eng; =dd.stui.com; tmp.sum=dd.stui.sum; tmp.aver=dd.stui.aver; strcpy(dd.stui.xueqi,dd.stuj.xueqi); strcpy(dd.stui.no,dd.stuj.no);strcpy(dd.stui.name,dd.stuj.name); dd.stui.clas=dd.stuj.clas; dd.stui.chi=dd.stuj.chi; dd.stui.math=dd.stuj.math; dd.stui.eng=dd.stuj.eng; dd.stui.com=dd.stuj.com; dd.stui.sum=dd.stuj.sum; dd.stui.aver=dd.stuj.aver; strcpy(dd.stuj.xueqi,tmp.xueqi); strcpy(dd.stuj.no,tmp.no); strcpy(dd.stuj.name,tmp.name); dd.stuj.clas=tmp.clas; dd.stuj.chi=tmp.chi; dd.stuj.math=tmp.math; dd.stuj.eng=tmp.eng; dd.stuj.com=; dd.stuj.sum=tmp.sum; dd.stuj.aver=tmp.aver;在系统中我将添加的函数设计为下次使用可以记录内容的,里面主要运用到了结构体中的count变量,并且加入了保存项目中,这样做使得下次使用时添加数据更加便利,仅仅运用添加就可以满足使用者的需求。最后经过了接受建议后,我将我设计的系统的结构优化为两个,函数的名字也将次级菜单中的更改为tongji1、tongji2,这样使得在修改时更为简便快捷。第五章 总结经过了这几天对程序的设计,使我更加了解程序的设计过程,以及设计的思路,我将会在以后的日子里,运用上本次设计的经验,为以后的学习工作打下基础,唯一够的工作创造更好的条件。参考文献C语言设计第三版 清华大学出版社出版附录程序源代码#include <stdio.h>#include <io.h>#include <stdlib.h>#include <string.h>#include <windows.h>#define MAX 200/宏定义,修改数值可以改变程序所包含的最大文件个数struct student char xueqi20;/学期 char no20; /学号 int clas;/班级 char name50; /姓名 int chi;/语文成绩int math;/数学成绩int eng;/英语成绩int com;/计算机成绩int sum;int aver;struct data int count; /* 当前学生数组中学生的个数 */ struct student stuMAX; /* 学生数组 */ dd;void menu() /输出主菜单函数 system("cls"); /清空屏幕函数 printf("n"); printf("ttt*n"); printf("ttt* *n"); printf("ttt* 学生成绩管理系统 *n"); printf("ttt* *n"); printf("ttt* 0 退出 *n"); printf("ttt* 1 按学号输出学生成绩 *n"); printf("ttt* 2 输入学生记录 *n"); printf("ttt* 3 删除学生记录 *n"); printf("ttt* 4 编辑学生记录 *n"); printf("ttt* 5 查询学生记录 *n"); printf("ttt* 6 统计学生记录 *n"); printf("ttt* *n"); printf("ttt*n");void menu2()/输出统计系统菜单system("cls");/清空屏幕函数printf("n"); printf("ttt*n"); printf("ttt* *n"); printf("ttt* 统计系统 *n"); printf("ttt* *n"); printf("ttt* 0 退出 *n"); printf("ttt* 1 输出班级学生成绩 *n"); printf("ttt* 2 班级各科成绩平均数 *n"); printf("ttt* 3 班级各科成绩总分 *n"); printf("ttt* 4 不及格名单 *n"); printf("ttt* *n"); printf("ttt*n");void to_menu()/to_menu函数 char c1,c2; printf("nnn按回车键返回主菜单."); scanf("%c%c",&c1,&c2); menu();/调用menu函数void to_menu2()/to_menu函数 char c1,c2; printf("nnn按回车键返回上一菜单."); scanf("%c%c",&c1,&c2); menu2();/调用menu函数void save_data() /保存数据函数 FILE *fp; int i,k; k=dd.count; fp=fopen("c:/dada.txt","w");/打开函数,打开记录文件 fwrite(&k,sizeof(int),1,fp);/写入函数,写入文件数据 for(i=0;i<k;i+) fwrite(&dd.stui,sizeof(struct student),1,fp); fclose(fp);/关闭函数,关闭记录文件void read_data()/读取数据信息 FILE *fp; int i,k; struct student st; struct data gf; k=0; if(access("c:/dada.txt",0)=-1) /如果文件不存在 fp=fopen("c:/dada.txt","w");/打开函数,打开记录文件 fwrite(&k,sizeof(int),1,fp);/写入函数,写入文件数据 fclose(fp); fp=fopen("c:/dada.txt","r"); fread(&k,sizeof(int),1,fp); dd.count=k; for(i=0;i<k;i+) fread(&st,sizeof(struct student),1,fp); strcpy(dd.stui.xueqi,st.xueqi); strcpy(dd.stui.no,st.no); strcpy(dd.stui.name,st.name); dd.stui.clas=st.clas; dd.stui.chi=st.chi; dd.stui.math=st.math; dd.stui.eng=st.eng; dd.stui.com=; dd.stui.sum=st.sum; dd.stui.aver=st.aver; fclose(fp);/关闭函数,关闭记录的文件void view_data()/查看所有学生信息 int i,j,k; struct student tmp;k=dd.count; for(i=0;i<k;i+)/该部分实现为所有数据以学号进行排序,“起泡法” for(j=(i+1);j<k;j+) if(strcmp(dd.stui.no,dd.stuj.no)>0) strcpy(tmp.xueqi,dd.stui.xueqi); strcpy(tmp.no,dd.stui.no); strcpy(tmp.name,dd.stui.name); tmp.clas=dd.stui.clas; tmp.chi=dd.stui.chi; tmp.math=dd.stui.math; tmp.eng=dd.stui.eng; =dd.stui.com; tmp.sum=dd.stui.sum; tmp.aver=dd.stui.aver; strcpy(dd.stui.xueqi,dd.stuj.xueqi); strcpy(dd.stui.no,dd.stuj.no);strcpy(dd.stui.name,dd.stuj.name); dd.stui.clas=dd.stuj.clas; dd.stui.chi=dd.stuj.chi; dd.stui.math=dd.stuj.math; dd.stui.eng=dd.stuj.eng; dd.stui.com=dd.stuj.com; dd.stui.sum=dd.stuj.sum; dd.stui.aver=dd.stuj.aver; strcpy(dd.stuj.xueqi,tmp.xueqi); strcpy(dd.stuj.no,tmp.no); strcpy(dd.stuj.name,tmp.name); dd.stuj.clas=tmp.clas; dd.stuj.chi=tmp.chi; dd.stuj.math=tmp.math; dd.stuj.eng=tmp.eng; dd.stuj.com=; dd.stuj.sum=tmp.sum; dd.stuj.aver=tmp.aver; printf("学期t学号t班级t姓名tt语文t数学t英语t计算机t总分t平均分"); printf("n-n"); for(i=0;i<k;i+) printf("%st%st%-8d%stt%-8d%-8d%-8d%-12d%-8d%-8dn",dd.stui.xueqi,dd.stui.no,dd.stui.clas,dd.stui.name,dd.stui.chi,dd.stui.math,dd.stui.eng,dd.stui.com,dd.stui.sum,dd.stui.aver);void add()/添加学生信息 struct student st; int b,k; while(1) k=dd.count; printf("n请输入学生信息:"); printf("n学期"); printf("n-n"); getchar(); gets(dd.stuk.xueqi); printf("n学号"); printf("n-n");gets(dd.stuk.no);printf("n班级"); printf("n-n");scanf("%d",&dd.stuk.clas);printf("n姓名"); printf("n-n"); getchar();gets(dd.stuk.name);printf("n语文"); printf("n-n"); scanf("%d",&dd.stuk.chi); printf("n数学"); printf("n-n"); scanf("%d",&dd.stuk.math); printf("n英语"); printf("n-n"); scanf("%d",&dd.stuk.eng); printf("n计算机"); printf("n-n"); scanf("%d",&dd.stuk.com); dd.stuk.sum=dd.stuk.chi+dd.stuk.math+dd.stuk.eng+dd.stuk.com; dd.stuk.aver=dd.stuk.sum/4;dd.count+;printf("nn继续添加学生信息1-yes 0-no:"); scanf("%d",&b); if(b=0) break; save_data();void delete_data()/删除学生记录 int i,j; char no20; j=dd.count-1; view_data(); printf("n请输入要删除学生的学号:"); scanf("%s",&no); for(i=0;i<dd.count;i+) if(strcmp(dd.stui.no,no)=0) strcpy(dd.stui.xueqi,dd.stuj.xueqi); strcpy(dd.stui.no,dd.stuj.no); dd.stui.clas=dd.stuj.clas;strcpy(dd.stui.name,dd.stuj.name); dd.stui.chi=dd.stuj.chi;dd.stui.math=dd.stuj.math;dd.stui.eng=dd.stuj.eng;dd.stui.com=dd.stuj.com;dd.stui.sum=dd.stuj.sum;dd.stui.aver=dd.stuj.aver;dd.count-;save_data();printf("nn删除(学号-%s)成功!",no); break; if(i=(dd.count-1) printf("nn没有找到该学生(学号-%s)!",no);save_data();void edit_data()/编辑学生记录 int i,k; char no10,name50; printf("n请输入要编辑学生的学号:"); scanf("%s",no); k=-1; for(i=0;i<dd.count;i+) if(strcmp(dd.stui.no,no)=0) k=i; break; if(k=-1) printf("nn没有找到该学生(学号-%s)!",no); else printf("n请输入学生信息:"); printf("n学期"); printf("n-n"); getchar(); gets(dd.stuk.xueqi); printf("n学号"); printf("n-n"); gets(dd.stuk.no);printf("n班级"); printf("n-n");scanf("%d",&dd.stuk.clas);printf("n姓名"); printf("n-n"); getchar();gets(dd.stuk.name);printf("n语文"); printf("n-n"); scanf("%d",&dd.stuk.chi); printf("n数学"); printf("n-n"); scanf("%d",&dd.stuk.math); printf("n英语"); printf("n-n"); scanf("%d",&dd.stuk.eng); printf("n计算机"); printf("n-n"); scanf("%d",&dd.stuk.com); dd.stuk.sum=dd.stuk.chi+dd.stuk.math+dd.stuk.eng+dd.stuk.com; dd.stuk.aver=dd.stuk.sum/4; save_data();void query_data_no()/查询学生记录 int i; char no20; printf("n请输入要查询学生学号:"); scanf("%s",&no); printf("nn学期t学号t班级t姓名t语文t数学t英语t计算机t总分t平均分"); printf("n-n"); for(i=0;(i<dd.count);i+) if(strcmp(dd.stui.no,no)=0) printf("%st%st%-8d%st%-8d%-8d%-8d%-12d%-8d%-8dn",dd.stui.xueqi,dd.stui.no,dd.stui.clas,dd.stui.name,dd.stui.chi,dd.stui.math,dd.stui.eng,dd.stui.com,dd.stui.sum,dd.stui.aver); break; if(i=dd.count) printf("nnnn没有找到该学生(姓名-%s)!"); void tongji1()/输出某班所有学生的成绩int i;int clas;printf("请输入要查询的班级:");scanf("%d",&clas);printf("nn学期t学号t班级t姓名tt语文t数学t英语t计算机t总分t平均分"); printf("n-n"); for(i=0;i<dd.count;i+)if(dd.stui.clas)=clas) printf("%st%st%-8d%stt%-8d%-8d%-8d%-12d%-8d%-8dn",dd.stui.xueqi,dd.stui.no,dd.stui.clas,dd.stui.name,dd.stui.chi,dd.stui.math,dd.stui.eng,dd.stui.com,dd.stui.sum,dd.stui.aver);void tongji2()/输出某班各科成绩平均值的函数int i,j;int k=0;float chi=0,math=0,eng=0,com=0;printf("nnn请输入要查询的班级:");scanf("%d",&k);for(i=0,j=0;i<dd.count;i+)if(k=dd.stui.clas)chi=dd.stui.chi+chi;math=dd.stui.math+math;eng=dd.stui.eng+eng;com=dd.stui.com+com;j+;if(j!=0)printf("n%d班n语文成绩平均分为%fn数学成绩平均分为%fn英语成绩平均分为%fn计算机成绩平均分为%fnn",k,(chi/j),(math/j),(eng/j),(com/j);elseprintf("没有该班信息");void tongji3()/输出各科总成绩的函数int i;int k,j;float chi=0,math=0,eng=0,com=0;printf("nnn请输入要查询的班级:");scanf("%d",&k);for(i=0,j=0;i<dd.count;i+)if(k=dd.stui.clas)chi+=dd.stui.chi;math+=dd.stui.math;eng+=dd.stui.eng;com+=dd.stui.com;if(k!=0)printf("n%d班n语文成绩总分为%fn数学成绩总分为%fn英语成绩总分为%fn计算机成绩总分为%fnn",k,chi,math,eng,com);elseprintf("没有该班信息");void tongji4()/输出不及格名单的函数int i; read_data();/调用read_data()函数 prin

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开