计算机软件及应用课程设计论文模板.docx
《计算机软件及应用课程设计论文模板.docx》由会员分享,可在线阅读,更多相关《计算机软件及应用课程设计论文模板.docx(40页珍藏版)》请在冰豆网上搜索。
计算机软件及应用课程设计论文模板
课程名称:
高级语言程序设计
湖南涉外经济学院
本科学生课程设计(论文)
题目学生成绩管理系统
姓名朱璐娜、黎丹、李想、刘外交、刘宏亮
学部计算机科学与技术学院
专业、年级计科1102班
指导教师罗明亮
2011年12月
前言
随着网络经济的到来,用户需求要求:
能够在任何时候、任何地方、利用任何工具都可以获得网络上的信息,并享受网络通信所带来的快乐。
.NET战略就是为着实现这样的目标而设立的。
学生成绩管理系统可以更快的使学生的成绩相加并且排名,方便进行查询与修改。
这对老师来说也是好的,减少了很大的工作量。
对于多人多课的考试很有用,只要知道学生所处学院和基本信息,输入电脑就可以在几秒内就可以查询到成绩,求出总分和平均成绩,并知道某学生在学校的排名。
学生成绩管理系统的功能有添加学生信息、添加课程信息、添加成绩信息、查询成绩信息、统计学生成绩、修改学生成绩、删除学生成绩等。
通过本课程设计,使自己更加系统地理解和掌握数据结构的基本概念;能自如的根据实际要求,设计相应的数据结构,并运用C或C++语言实现设计的数法,编写较大的数法,分析和解决和实际应用问题,进一步加深、巩固所学专业课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。
第二章系统功能分析
做三个简单的文件系统。
第一个文件包括的信息有学生的姓名、性别、学号、专业、班级、所在系部。
能够对学生信息进行储存、添加。
第二个文件包括学号、课程名和成绩。
能够对学生的成绩进行存储、查询、修改、添加和恢复。
在查找里面能够以学生的学号进行学生成绩的查找。
在学生成绩的修改里面不能对学生的学号和课程名进行修改。
能够随时对学生的成绩进行添加。
且不会覆盖以前的学生记录。
第三个文件包括课程的代码和课程名称。
能够对课程的信息进行储存。
编写7个函数分别实现添加学生信息、添加课程信息、添加成绩信息、查询成绩信息、统计学生成绩信息、修改学生成绩、删除学生成绩
结构体1(课程信息)
字符串变量(课程代码)最大长度为10
字符串变量(课程名)最大长度为10
结构体2(学生信息)
整型变量(学号)四个字节
字符串变量(姓名)最大长度为11
字符型变量(性别)一个字节
字符串变量(专业)最大长度为12
字符串变量(班级)最大长度为12
字符串变量(系部)最大长度为12
结构体3(学生成绩信息)
字符型变量(姓名)十个字节
整型变量(学号)四个字节
字符串变量(课程名)最大长度为10
实型变量(成绩)四个字节
运用的文件:
Student.dat
Score.dat
Course.dat
第三章总体设计
1:
添加学生信息
本模块主要是负责对学生信息文件”student.dat”进行添加,也能实现对学生记录的追加。
在添加记录的时候,能通过一个输出函数。
屏幕会主动提示。
用户可以根据提示通过一个输入函数,输入要添加的学生记录的数目来定量的对学生记录进行添加。
然后对照屏幕上的格式,依次对每一条记录进行录入。
每一条记录录入完了后,用回车键结束本条记录的输入工作。
接着对下一条记录进行输入。
直到输入的记录和定量输入的学生记录数相同。
程序自动跳出。
2:
添加课程信息
本模块主要是负责对课程信息文件“course.dat”添加,也能实现对课程记录的追加。
加入记录的时候,能通过一个输出函数。
屏幕会主动提示。
用户可以根据提示通过一个输入函数,输入要添加的课程记录的数目来定量的对课程记录进行添加。
然后对照屏幕上的格式,依次对每一条记录进行录入。
每一条记录录入完了后,用回车键结束本条记录的输入工作。
接着对下一条记录进行输入。
直到输入的记录和定量输入的课程记录数相同。
程序自动跳出。
3:
添加成绩信息
本模块主要是负责对学生成绩信息文件“score.dat”进行添加,也能实现对学生成绩记录的追加。
加入记录的时候,能通过一个输出函数。
屏幕会主动提示。
用户可以根据提示通过一个输入函数,输入要添加的学生成绩记录的数目来定量的对学生成绩记录进行添加。
然后对照屏幕上的格式,依次对每一条记录进行录入。
每一条记录录入完了后,用回车键结束本条记录的输入工作。
接着对下一条记录进行输入。
直到输入的记录和定量输入的学生成绩记录数相同。
程序自动跳出。
4:
查询成绩信息
因为对一个比较大的学生成绩进行管理,如果没有查找功能,那就不能方便的对学生成绩进行各种处理。
查找功能能够对学生成绩高速定位。
能对有相同属性的学生进行查看。
很快速定位和对相同属性的学生进行分类能查看更好的满足用户对程序要求。
同样。
用户只要根据提示,输入学生的姓名就能定位到要查找的学生的成绩。
程序再通过输出函数,把要查找的信息显示到屏幕上。
5:
统计学生成绩
按照提示,通过输入学生的学号、班级、课程,实现对学生个人平均成绩,对班级某门课程的平均分及排名的统计功能。
6:
修改学生成绩
本模块实现对已有的学生成绩的修改,因为学生的信息中学号和课程一般是不会变的,在修改的过程中,出于对事实的考虑,以学生的学号和课程对学生成绩进行定点查询修改.和模块2添加记录一样,在修改之前,程序会主动提示要进行修改的内容。
用户可以根据程序的提示。
通过输入学生的学号、课程名,再按程序提示的格式依次对学生的成绩进行修改。
修改完闭以后程序会自动跳出。
以便进行其它工作。
7:
删除学生成绩
本模块可以实现对已有学生成绩的删除,程序会主动提示要进行删除的内容。
用户可以根据程序的提示。
通过输入学生的学号,再按程序提示进行删除操作。
以便进行其它工作。
8:
退出
在需要进行的操作都完成后,调用模块0退出本程序。
第四章、算法设计
1.主函数的算法
A.用system("cls");实现清屏;
B.用printf("请输入对应操作的数字进行您要进行的操作:
\n");提示要进行的操作;
C.printf("1、添加学生信息\n");
printf("2、添加课程信息\n");
printf("3、添加成绩信息\n");
printf("4、查询成绩信息\n");
printf("5、统计学生成绩信息\n");
printf("6、修改学生成绩\n");
printf("7、删除学生成绩\n");
printf("8、恢复删除成绩\n");
printf("0、退出\n");
printf("请选择:
");函数提供选项,提示用户进行下一步的操作
D.定义变量ch;
E.输入一个ch的值;
F.用switch()进行条件跳转;实行相映的操作;即调用从函数;
2.添加记录函数
A:
添加学生信息函数:
开始
FILE*fp;
if((fp=fopen("_student.dat","ab"))==NULL)
Inti;
是
`
否
printf("cannotopenfile\n");
用for循环
追加记录
Fclose(fp);
结束
B、添加课程信息函数:
开始
FILE*fp;
if((fp=fopen("course.dat","ab"))==NULL)
Inti;
是
`
否
printf("cannotopenfile\n");
用for循环
追加记录
Fclose(fp);
结束
3、添加学生成绩的函数:
开始
FILE*fp;
if((fp=fopen("score.dat","ab"))==NULL)
Inti;
是
`
否
printf("cannotopenfile\n");
用for循环
追加记录
Fclose(fp);
结束
4.查询成绩函数
A:
个人成绩函数
开始
FILE*fp1*fp2;
SCOst2;
CORst1;
Longnum;
if((fp1=fopen("student.dat","rb"))==NULL)
if((fp2=fopen("score.dat","rb"))==NULL)
shortfg=1,fg1;
是
`
否
printf("cannotopenfile\n");
输入num的值
fg1=0;
While(!
feof(fp1))
fread(&stu2,sizeof(STU)1,fp);
if(st2.number==number)
是
否
`
Fg1=1;
printf("姓名:
%s\n",st1.name);
Break;
While(!
feof(fp2))
fread(&st2,sizeof(SCO),1,fp2);
if(st2.number==num&&st2.flag=='')
否
printf("%s:
%.2f\n",st2.
if(getch()!
=’y’)
course,st2.score);
Break;
是
否
Fclose(fp1);
Fclose(fp2);
fg=0;
Fg==0;
结束
B:
班级成绩函数
开始
FILE*fp1*fp2;
SCOst2;
CORst1;
Longnum;
charclas[10];
if((fp1=fopen("student.dat","rb"))==NULL)
if((fp2=fopen("score.dat","rb"))==NULL)
shortfg=1,fg1;
是
`
否
printf("cannotopenfile\n");
输入num的值;
输入一门课程course的值
fg1=0;
While(!
feof(fp1))
fread(&stu1,sizeof(STU)1,fp);
if(strcmp(st1.clas,clas)==0)
是
否
否
While(!
feof(fp2))
continue
if(st1.number==st2.numbe
r&&strcmp(st2.course,course)==0&&st2.flag==''))
fread(&stu2,sizeof(SCO),1,fp);
是
否
Fg1=1;
printf("%d-----%s:
%.2f\n",
st1.number,st2.course,st2.score);
if(getch()!
='y'))
Continue;
是
否
Fclose(fp1);
Fclose(fp2);
fg=0;
Fg==0;
结束
5、统计学生成绩
A、个人平均分函数
开始
FILE*fp1*fp2;
SCOst2;
CORst1;
Longnum;
Floatave;
if((fp1=fopen("student.dat","rb"))==NULL)
if((fp2=fopen("score.dat","rb"))==NULL)
shortfg=1,fg1,i;
是
`
否
printf("cannotopenfile\n");
输入num的值;
fg1=0;i=1;ave=0;
While(!
feof(fp1))
fread(&stu1,sizeof(STU)1,fp);
if(st1.number==num)
是
否
fg1=1;
printf("%d---%s的平均分