南京工程学院C语言课程设计学生管理系统报告模板及代码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
设计任务
1
系统设计方案
2
程序主要代码分析
3
程序调试中出现的问题及其解决方法
4
改进意见与收获体会
5
主要参考资料
6
一、任务(根据各课题自己用文字叙述,以下内容只作参考)
编写一个学生成绩管理的程序。由键盘输入(最好要考虑输入数据输入的格式及
输入数据的有效性),然后进行以下的功能实现。程序要求主函数是一个功能选择菜单,
其它各功能都用各自的函数实现。
要求至少有 10 个学生的原始数据。原始数据如下:
学号 姓名 C 程序设计 高等数学 英源自文库 线性代数
1 王..
80
80
80 80
2 张..
90
90
90 90
…
功能要求如下:
1、数据的输入
2、计算每位同学的平均分
3、计算每门课程的平均分
4、计算各分数段(90-100、80-89、60-79、60 以下)的人数
基本要求:500-1000 字,可以更多字(此内容删除)
五、改进意见与收获体会 基本要求:400-700 字,可以更多字(此内容删除)
六、主要参考资料 《C 语言程序设计实验教程》,廖雷主编,高等教育出版社,2005 年。 《C 语言程序设计教程》,黄维通编著,清华大学出版社,2003。 《C 程序设计》(第二版),谭浩强编著,清华大学出版社,2000。
2
printf("\n***** 2 ***成 绩 查 询***********\n"); printf("\n***** 3 ***个 人 均 分***********\n"); printf("\n***** 4 ***各 科 均 分***********\n"); printf("\n***** 5 ***各 科 分 数 段 *******\n"); printf("\n*********************************\n"); scanf("%d",&x); switch(x) { case 1:input(s,2);break; case 2:output(s,2);break; case 3:avg(s,2);break; case 4:avg1(s,2);break; case 5:num(s,2);break; } printf("\n1--返回主菜单 2--退出\n"); scanf("%d",&z); y=z; } printf("\nOVER\n"); return(0); }
1
if(s[i].cxsj<=89&&s[i].cxsj>=80) b[0]+=1; if(s[i].cxsj>=60&&s[i].cxsj<=79) c[0]+=1; if(s[i].cxsj<60) d[0]+=1; if(s[i].gs>=90) a[1]+=1; if(s[i].gs<=89&&s[i].gs>=80) b[1]+=1; if(s[i].gs>=60&&s[i].gs<=79) c[1]+=1; if(s[i].gs<60) d[1]+=1; if(s[i].yy>=90) a[2]+=1; if(s[i].yy<=89&&s[i].yy>=80) b[2]+=1; if(s[i].yy>=60&&s[i].yy<=79) c[2]+=1; if(s[i].yy<60) d[2]+=1; if(s[i].xxds>=90) a[3]+=1; if(s[i].xxds<=89&&s[i].xxds>=80) b[3]+=1; if(s[i].xxds>=60&&s[i].xxds<=79) c[3]+=1; if(s[i].xxds<60) d[3]+=1; } printf("\n90-100 %d %d %d %d\n",a[0],a[1],a[2],a[3]); printf("\n80-89 %d %d %d %d\n",b[0],b[1],b[2],b[3]); printf("\n60-79 %d %d %d %d\n",c[0],c[1],c[2],c[3]); printf("\n60以下 %d %d %d %d\n",d[0],d[1],d[2],d[3]); } void f() { int n=0; while(n<N) { printf("\n"); ++n; } } main() { STU s[40]; int z,x,y=1; f(); while(y!=2) { printf("\n*********************************\n"); printf("\n***** 1 ***成 绩 输 入***********\n");
3
有注释。(此内容删除)
#include<stdio.h> main() { int i,j;
for(i=1;i<=9;i++) { for (j=1; j<=i;j++)
printf("%d×%d=%d printf("\n");
",i,j,i*j);
}
} (此内容删除)
四、程序调试中出现的问题及其解决方法
5、对这 10 位同学的成绩按平均分排序,给出名次。
6、对数据可以进行增、删、改的编辑操作。
7、对数据可进行查询操作。
8、最后输出结果如下:
学号 姓名 C 程序设计 高等数学 英语 线性代数 平均分 名次
1 王..
80
80
80 80
80
2
2 张..
90
90
90 90
90
1
…
1
各科平均分 85
85
85 85
成绩
南京工程学院
课程设计说明书(论文)
题目
学生成绩管理系统
或 图书借阅管理系统 或 职工工资管理系统
课程名称
C/C++程序设计 I
院(系、部、中心) 计算机工程学院
专
业 电子信息科学与技术
班
级
电科技 121
学生姓名
学
号
设计地点
图书信息大楼 401
指导教师
解芳
设计起止时间:2013 年 2 月 25 日至 2013 年 2 月 29 日
还可以自己加一些参考书(此内容删除)
2
#include<stdio.h> #include<stdlib.h> #define N 5 typedef struct student { char no[10]; char name[10]; int cxsj,gs,yy,xxds; float average;//个人平均分 //float cxsj1,gs1,yy1,xxds1;//课程平均分 }STU; void input(STU s[],int len) { int i; printf("\n 学号 姓名 c 程序设计 高数 英语 线性代数\n"); for(i=0;i<len;i++) scanf("%s%s%d%d%d%d",s[i].no,s[i].name,&s[i].cxsj,&s[i].gs,&s[i].yy,&s[i].xxds); } void output(STU s[],int len) { int i; printf("\n 学号 姓名 c 程序设计 高数 英语 线性代数\n"); for(i=0;i<len;i++) printf("%s %s %d %d %d %d\n",s[i].no,s[i].name,s[i].cxsj,s[i].gs,s[i].yy,s[i].xxds); } void avg(STU s[],int len) { int i; printf("学号 平均分\n"); for(i=0;i<len;i++) printf("\n%s %f\n",s[i].no,s[i].average=(s[i].cxsj+s[i].gs+s[i].xxds+s[i].yy)/4); } void avg1(STU s[],int len) { int i; float a=0,b=0,c=0,d=0; printf("\nc 程序设计 高数 英语 线性代数\n"); for(i=0;i<len;i++) {a+=s[i].cxsj;b+=s[i].gs;c+=s[i].yy;d+=s[i].xxds;} a/=len; b/=len; c/=len; d/=len; printf("\n%.2f %.2f %.2f %.2f\n",a,b,c,d); } void num(STU s[],int len) { int i; int a[4]={0,0,0,0},b[4]={0,0,0,0},c[4]={0,0,0,0},d[4]={0,0,0,0}; printf(" \n c 程序设计 高数 英语 线性代数\n"); for(i=0;i<len;i++) { if(s[i].cxsj>=90) a[0]+=1;
85
90-100
1
1
1
1
1
80-89
1
1
1
1
1
60-69
0
0
0
0
0
60 以下
0
0
0
0
0
二、系统设计方案
可以有以下内容:功能分析、功能模块图、各模块功能;数据结构的选定、对选
用恰当的数据结构类型进行说明、对自定义类型及典型变量进行说明。
三、程序主要代码分析
对典型程序段最好画出流程图。
只要主要代码,不必把所有代码附上。有重复相同的就取一段即可。代码最好要