学生成绩管理系统C语言(附完整源代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生成绩管理系统C语言(附完整源代码)课程设计报告
学生成绩管理系统
院系: 专业: 班级: 完成日期: 2009年1月03日
设计题目:学生成绩管理系统
目录
1、题目描述
2、算法设计/设计思想
3、结构框图、各模块的功能描述
4、主体思想:
5、程序的,,,流程图
6、源代码
1.题目描述
设计一个简单的学生成绩管理系统,要求有简单的界面,程序段要分清模块,该程序应该:
(1)输入学生成绩,求总分,平均分,以及排序。
(2)查询学生单科成绩,总分和平均成绩;
(3)添加、修改学生成绩具有下列功能:
(4)实现保存与查看功能
2.算法设计/设计思想
利用二维数组——定义stu[][]存储学生学号、各科成绩,总分,平均分,名次,利用文件来存
储,读取数据。
具体分工是:
: 负责inputx(),print1(),input();
:负责文件的存储和读取,main(),System(),Idea()以及各调用函数之间的连;
: 负责find1(),find2(),find3(),find31(),Find();
: 负责del(),add(),change1(),Change();
后期调试由小组共同负责。
3. 结构框图、各模块的功能描述
3.1 创建成绩表
3.1.1 input()功能是输入学生的信息,便于以后的查询、浏览。 3.2 添加
3.2.1 add( )功能是向inputy()添加新的内容。
3.3.2 chance( )对单科成绩进行修改。
3.3 查询
3.3.1 可根据学号,科目,名次,进行查询。
3.3.2 查询内容包括:该学生的各课成绩、、平均分。
3.4 删除
3.4.1可以输入学号删除一名学生的一课成绩。。
3.5 浏览成绩单
3.5.1 通过此print1()可以查看所有学生的各课成绩、总分、平均分和名次。
3.6 文件()
3.6.1 保存以上所输入的信息以达到既是关闭窗口信息也不会丢失信息的目的。 3.6.2 随时打开,修改文件。
3.7.退出功能是退出
主菜单
退出系意见评述功能菜单统
输入添加及改查找功能退出功能菜单成绩功能
查输排查找学学添修某某生生加改段生成成成某成成绩绩科绩绩绩成绩
按按按名学科次号目查查查找找找
四、主体思想:
1、考虑到此程序量大代码多,所以用函数调用,分几个人去完成。
2、在输入学生成绩的时候,想到学生人数不固定,所以在程序开头定义一个符号常量代表学生人数,可以随时更改。
3、考虑到查找模块和添加修改模块要用到输出成绩模块所以要建文件进行保存并能被其
他模块调用所以要用指针。
4、要反复回到主菜单,所以用到GOTO功能,壁景的好看用到了CONIO.H 函数。
5、在成绩输入和排序时,要用FOR循环,甚至,,,的三重嵌套。
6、为了给读者带来方便,所以关于提示语全用中文。
五、程序的,,,流程图
1、学生成绩的求和求平均,及名次
定义 i ,j, t, k, m
For i=0 to stu-1
a[i][6]=0
For j=1to 5
a[i][6]+=a[i][j]
a[i][7]=a[i][6]/5
For i=0 to stu-1
K=I a[i][8]=i+1
For j=i+1 to stu
If a[j][6]>a[k][6] k=j
For m=0 to 7
t=a[k][m] a[k][m]=a[i][m] a[i][m]=t 输出学生成绩
2、删除学生成绩
定义 i j m
读写文件
输入要删的学号m
For i=0 to stu-1
If a[i][0]=m
For j=0;j<9;j++
a[i][j]=0 调用print1
输出成绩表
3添加学生成绩
定义n, i
读写文件
输入添加人数n
For i=stu to stu+n
For j=o to 6
输入添加的各科成绩a[i][j]
J++
I++
调用print1
重新输入人数stu
重新输出成绩
4 修改学生某科成绩
定义m,b,c,
输入要修改的学号m
输入要修改的科目b For i=0 to stu-1
if (m!=a[i][0]) n++ Else {n++;break}
a[n][b+1]=c
调用print1输出学生成绩5查询成绩
按名次查询
定义 n,I,j
输入名次:n
i=0
i n==a[i][8] no yes i++ For J=0 to 7 输出a[i][j] J++ 按学号查询 定义:i j n 输入学号:&n i=0 i n==a[i][0] 否是 i++ j=0 j<8 六源代码 /****头文件*****/ #include #include #include /**************变量的定义**************/ int b,c,i,j,k,m,n,t,w,z,stu,a[100][10]; long num; int *p; char ch,filename[10]; FILE *fp,*fp1; /******************函数的声明*******************/ main(); /*主函数*/ System(); /*功能菜单*/ Input(); /*函数的输入*/ inputx(); /*成绩的输入*/ Find(); /*成绩的查询*/