计算机技术基础(c语言)课程设计--学生成绩管理系统.doc_第1页
计算机技术基础(c语言)课程设计--学生成绩管理系统.doc_第2页
计算机技术基础(c语言)课程设计--学生成绩管理系统.doc_第3页
计算机技术基础(c语言)课程设计--学生成绩管理系统.doc_第4页
计算机技术基础(c语言)课程设计--学生成绩管理系统.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机技术基础课程设计C语言设计报告题 目:学生成绩管理系统一选题背景:问题的提出:在学校的学生管理工作过程中,对学生的成绩统计管理是一个非常必要的问题。就此编写此C程序,对一个班的学生成绩进行管理,其中:每个学生的数据包括学号,姓名,三门功课的成绩(英语,数学,计算机),平均成绩及总成绩。并且可以根据实际情况的需要,对学生的数据进行修改(删除,添加,更改数据等)。二 设计思想 运用了C语言中的各种语句(如for循环语句,case开关语句,if else条件语句等),数组的知识以及函数及函数的调用等C语言基础知识将学生不同信息输入后统计输出并计算出其平均成绩和总成绩。用结构体的形式输入若干名学生的数据,用比较美观的格式输出所有学生的数据,用比较法对输入的数据按平均分进行由低到高的排序,查找指定学号的学生数据,并按照一定的格式输出查找结果。按照平均分统计各个分数段的学生人数,0为退出整个程序的运行。 三 程序流程图开始 学号排列比较法排序升序主菜单包含7个功能输入学生数据学号姓名三门功课成绩运用for语句求总分平均分调用output函数输出学生数据调用sort函数平均分按降序排列调用find函数查找任一学号学生的数据调用inset函数插入若干学生数据对数据进行处理调用del函数删除学生数据可进行连续删除调用analyze函数调用Switch函数结束分析函数,列出每分数段人数四程序清单:#includestdlib.h#includeconio.h#includestdio.h #define M 60#define A %d%s%f%f%f#define B %-5d %-20s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2fn#define C %d%s%f%f%f%f int n=3;struct student int num; char name10; float score3; float aver; float sum;sM;void nsort() int i,j; struct student a;for(j=1;jn;j+) for(i=1;isi+1.num) a=si;si=si+1;si+1=a; void menu() printf(n Main Menun); printf( 1.Data input 2.Date Outputn); printf( 3.Data sorted(By Average) 4.Date Find(By NO.)n); printf( 5.Data Inset 6.Date deln); printf( 7.Data Analyze(By Average) 0.EXITn); printf(n); printf(“ * write by qinlifu *”);printf(“n”);printf( Please input option(0-7):);void input() int i; float f1,f2,f3; printf(Please input data:n); printf( NO. Name English Math Computern); printf( n ); for(i=0;in;i+) printf(nPlease input NO.:); scanf(%d%*c,&si.num); printf(nPlease input name:); scanf(%s,); printf(nPlease input English score:); scanf(%f,&f1); printf(nPlease input Math score:); scanf(%f,&f2); printf(nPlease input Computer score:); scanf(%f,&f3); printf( nn); si.score0=f1; si.score1=f2; si.score2=f3; for(i=0;in;i+) si.sum=si.score0+si.score1+si.score2; si.aver=si.sum/3; printf(n);void output() int i; printf(nn NO. Name English Math Computer Aver sumn); printf( nn ); for(i=0;in;i+) printf(B,si.num,,si.score0,si.score1,si.score2,si.aver,si.sum); printf(n ); printf(b n); printf(n);void sort() int i,j; struct student a; printf(n The sorted data:n);for(j=1;jn;j+) for(i=0;isi+1.aver) a=si;si=si+1;si+1=a; printf(n);void find() /*调用函数*/ int low=0,top=n-1,mid,m,i; nsort(); /*查找任意学生的数据*/ printf( Please input the NO.:); scanf(%d,&m); while(low=top) mid=(low+top)/2; if(msmid.num)low=mid+1; else printf( NO. Name English Math Computer aver sumn); printf( n );printf(B,smid.num,,smid.score0,smid .score1,smid.score2,smid.aver); break; if(lowtop) printf(n NOT FOUND THIS NO. !n); printf(n);void inset() /*插入学生数据*/ int m,i; float f1,f2,f3; printf(Inset numbers ?:); scanf(%d,&m); printf(Please input data inset:n); for(n=0,i=0;im;i+) printf(nPlease input name:); gets(); printf(nPlease input English score:); scanf(%f,&f1); printf(nPlease input Math score:); scanf(%f,&f2); printf(nPlease input Computer score:); scanf(%f,&f3); printf( n); sn.score0=f1; sn.score1=f2; sn.score2=f3; sn.sum=sn.score0+sn.score1+sn.score2; sn.aver=sn.sum/3; n+; sort(); output(); printf(n);void del() int m,i,j,t,p; printf(Please input how many numbers to ndel:); scanf(%d,&t); for(p=0;pt;p+) printf(Please input NO.del:); scanf(%d,&m); for(i=0;in) printf(This NO.is not exist !n); if(in) for(j=i;jn-1;j+) sj=sj+1; n-; printf(n);void analyze() int m,i,a5=0; for(i=0;in;i+) m=(int)si.aver/10; switch(m) case 0: case 1: case 2: case 3: case 4: case 5: a0=a0+1; break; case 6: a1=a1+1; break; case 7: a2=a2+1; break; case 8: a3=a3+1; break; case 9: a4=a4+1; break; case 10:a5=a5+1; break; printf( Average Score Bracketsnn); printf( nn); printf( Brackets 0-59 60-69 70-79 80-89 90-100nn); printf( numbers %d %5d %5d %5d %5dnn,a0,a1,a2,a3,a4); printf( nn); printf(nn); void main() /*主函数*/ int m=1; clrscr(); menu(); while(m!=0) scanf(%d,&m); switch(m) case 1: input(); clrscr(); output(); menu(); break; case 2: clrscr(); output(); menu(); break; case 3: clrscr(); sort(); output(); menu(); break; case 4: clrscr(); find(); menu(); break; case 5: clrscr(); inset(); menu(); break; case 6: clrscr(); del(); output(); menu(); break; case 7: clrscr(); analyze(); menu(); break; 五 主要问题及解决方法排序问题: 主要运用了for语句,依照每个学生的平均成绩用比较的方法进行名次排序。调用函数: 在此程序中多次使用“调用函数”的方法将结果有序的以较美观的格式输出所有学生的数据。 1、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论