[计算机软件及应用]课程设计论文模板.doc

上传人:sccc 文档编号:4561951 上传时间:2023-04-27 格式:DOC 页数:38 大小:406.77KB
返回 下载 相关 举报
[计算机软件及应用]课程设计论文模板.doc_第1页
第1页 / 共38页
[计算机软件及应用]课程设计论文模板.doc_第2页
第2页 / 共38页
[计算机软件及应用]课程设计论文模板.doc_第3页
第3页 / 共38页
[计算机软件及应用]课程设计论文模板.doc_第4页
第4页 / 共38页
[计算机软件及应用]课程设计论文模板.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《[计算机软件及应用]课程设计论文模板.doc》由会员分享,可在线阅读,更多相关《[计算机软件及应用]课程设计论文模板.doc(38页珍藏版)》请在三一办公上搜索。

1、 课程名称:高级语言程序设计 湖南涉外经济学院本科学生课程设计(论文)题 目 学生成绩管理系统 姓 名 朱璐娜、黎丹、李想、刘外交、刘宏亮 学 部 计算机科学与技术学院 专业、年级 计科1102班 指 导 教 师 罗明亮 2011 年 12 月 第一章 前 言目录目录0前 言2第二章 系统功能分析1第三章 总体设计11:添加学生信息12:添加课程信息23:添加成绩信息24:查询成绩信息25:统计学生成绩26:修改学生成绩27:删除学生成绩38:退出3第四章、算法设计31.主函数的算法32. 添加记录函数43、添加学生成绩的函数:44.查询成绩函数55、统计学生成绩76 根据学号修改学生成绩10

2、7.删除记录11第五章 详细设计:12第六章程序实现:261 首页信息:262添加学生信息:273 添加课程信息274.添加成绩信息:285查询成绩信息:296、统计学生成绩信息:307、修改学生成绩:31第七章 结 论33一用户使用说明33二总结与体会33参考文献33 前 言 随着网络经济的到来,用户需求要求:能够在任何时候、任何地方、利用任何工具都可以获得网络上的信息,并享受网络通信所带来的快乐。.NET战略就是为着实现这样的目标而设立的。学生成绩管理系统可以更快的使学生的成绩相加并且排名,方便进行查询与修改。这对老师来说也是好的,减少了很大的工作量。对于多人多课的考试很有用,只要知道学生

3、所处学院和基本信息,输入电脑就可以在几秒内就可以查询到成绩,求出总分和平均成绩,并知道某学生在学校的排名。学生成绩管理系统的功能有添加学生信息、添加课程信息、添加成绩信息、查询成绩信息、统计学生成绩、修改学生成绩、删除学生成绩等。通过本课程设计,使自己更加系统地理解和掌握数据结构的基本概念;能自如的根据实际要求,设计相应的数据结构,并运用C或C+语言实现设计的数法,编写较大的数法,分析和解决和实际应用问题,进一步加深、巩固所学专业课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。第 34页课程设计论文题名 第三章 总体设计第二章 系统功能分析做三个简单的文件系统。第

4、一个文件包括的信息有学生的姓名、性别、学号、专业、班级、所在系部。能够对学生信息进行储存、添加。第二个文件包括学号、课程名和成绩。能够对学生的成绩进行存储、查询、修改、添加和恢复。在查找里面能够以学生的学号进行学生成绩的查找。在学生成绩的修改里面不能对学生的学号和课程名进行修改。能够随时对学生的成绩进行添加。且不会覆盖以前的学生记录。第三个文件包括课程的代码和课程名称。能够对课程的信息进行储存。编写7个函数分别实现添加学生信息、添加课程信息、添加成绩信息、查询成绩信息、统计学生成绩信息、修改学生成绩、删除学生成绩结构体1(课程信息)字符串 变量(课程代码)最大长度为10字符串 变量(课程名)

5、最大长度为10结构体2(学生信息)整型 变量(学号) 四个字节字符串 变量(姓名) 最大长度为11字符型 变量(性别) 一个字节字符串 变量(专业) 最大长度为12字符串 变量(班级) 最大长度为12字符串 变量(系部) 最大长度为12结构体3(学生成绩信息)字符型 变量(姓名) 十个字节整型 变量(学号) 四个字节字符串 变量(课程名)最大长度为10实型 变量 (成绩) 四个字节运用的文件: Student.dat Score.dat Course.dat第三章 总体设计1:添加学生信息本模块主要是负责对学生信息文件”student.dat”进行添加,也能实现对学生记录的追加。在添加记录的时

6、候,能通过一个输出函数。屏幕会主动提示。用户可以根据提示通过一个输入函数,输入要添加的学生记录的数目来定量的对学生记录进行添加。然后对照屏幕上的格式,依次对每一条记录进行录入。每一条记录录入完了后,用回车键结束本条记录的输入工作。接着对下一条记录进行输入。直到输入的记录和定量输入的学生记录数相同。程序自动跳出。2:添加课程信息本模块主要是负责对课程信息文件“course.dat”添加,也能实现对课程记录的追加。加入记录的时候,能通过一个输出函数。屏幕会主动提示。用户可以根据提示通过一个输入函数,输入要添加的课程记录的数目来定量的对课程记录进行添加。然后对照屏幕上的格式,依次对每一条记录进行录入

7、。每一条记录录入完了后,用回车键结束本条记录的输入工作。接着对下一条记录进行输入。直到输入的记录和定量输入的课程记录数相同。程序自动跳出。3:添加成绩信息本模块主要是负责对学生成绩信息文件“score.dat”进行添加,也能实现对学生成绩记录的追加。加入记录的时候,能通过一个输出函数。屏幕会主动提示。用户可以根据提示通过一个输入函数,输入要添加的学生成绩记录的数目来定量的对学生成绩记录进行添加。然后对照屏幕上的格式,依次对每一条记录进行录入。每一条记录录入完了后,用回车键结束本条记录的输入工作。接着对下一条记录进行输入。直到输入的记录和定量输入的学生成绩记录数相同。程序自动跳出。4:查询成绩信

8、息因为对一个比较大的学生成绩进行管理,如果没有查找功能,那就不能方便的对学生成绩进行各种处理。查找功能能够对学生成绩高速定位。能对有相同属性的学生进行查看。很快速定位和对相同属性的学生进行分类能查看更好的满足用户对程序要求。同样。用户只要根据提示,输入学生的姓名就能定位到要查找的学生的成绩。程序再通过输出函数,把要查找的信息显示到屏幕上。5:统计学生成绩按照提示,通过输入学生的学号、班级、课程,实现对学生个人平均成绩,对班级某门课程的平均分及排名的统计功能。6:修改学生成绩本模块实现对已有的学生成绩的修改,因为学生的信息中学号和课程一般是不会变的,在修改的过程中,出于对事实的考虑,以学生的学号

9、和课程对学生成绩进行定点查询修改.和模块2添加记录一样,在修改之前,程序会主动提示要进行修改的内容。用户可以根据程序的提示。通过输入学生的学号、课程名,再按程序提示的格式依次对学生的成绩进行修改。修改完闭以后程序会自动跳出。以便进行其它工作。7:删除学生成绩本模块可以实现对已有学生成绩的删除,程序会主动提示要进行删除的内容。用户可以根据程序的提示。通过输入学生的学号,再按程序提示进行删除操作。以便进行其它工作。8:退出在需要进行的操作都完成后,调用模块0退出本程序。第四章、算法设计1.主函数的算法A用system(cls);实现清屏;B.用printf(请输入对应操作的数字进行您要进行的操作:

10、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(

11、fp=fopen(_student.dat,ab) = NULL)Int i;是否printf(cannot open filen);用for循环追加记录Fclose(fp);结束B、添加课程信息函数:开始FILE *fp;if(fp=fopen(course.dat,ab) = NULL)Int i;是否printf(cannot open filen);用for循环追加记录Fclose(fp);结束3、添加学生成绩的函数:开始FILE *fp;if(fp=fopen(score.dat,ab) = NULL)Int i;是否printf(cannot open filen);用for循环追

12、加记录Fclose(fp);结束4.查询成绩函数A:个人成绩函数开始FILE *fp1*fp2;SCO st2;COR st1;Long num;if(fp1 = fopen(student.dat,rb) )= NULL)if(fp2 = fopen(score.dat,rb) )= NULL)short fg=1,fg1;是否printf(cannot open filen);输入num的值fg1=0;While(!feof(fp1)fread(&stu2,sizeof(STU)1,fp);if(st2.number=number)是否Fg1=1;printf(姓名:%sn,st1.nam

13、e);Break;While(!feof(fp2)fread(&st2,sizeof(SCO),1,fp2);if(st2.number=num&st2.flag= )是否printf(%s:%.2fn,st2.if(getch()!= y)course,st2.score);Break;是否Fclose(fp1); Fclose(fp2);fg=0;Fg=0;结束B:班级成绩函数开始FILE *fp1*fp2;SCO st2;COR st1;Long num;char clas10;if(fp1 = fopen(student.dat,rb) )= NULL)if(fp2 = fopen(s

14、core.dat,rb) )= NULL)short fg=1,fg1;是否printf(cannot open filen);输入num的值;输入一门课程course的值fg1=0;While(!feof(fp1)fread(&stu1,sizeof(STU)1,fp);if(strcmp(st1.clas,clas)=0)是否否While(!feof(fp2)continueif(st1.number=st2.number&strcmp(st2.course,course)=0&st2.flag= )fread(&stu2,sizeof(SCO),1,fp);是否Fg1=1;printf(

15、%d-%s:%.2fn,st1.number, st2.course,st2.score);if(getch()!=y)Continue;是否Fclose(fp1); Fclose(fp2);fg=0;Fg=0;结束5、统计学生成绩 A、个人平均分函数开始FILE *fp1*fp2;SCO st2;COR st1;Long num;Float ave;if(fp1 = fopen(student.dat,rb) )= NULL)if(fp2 = fopen(score.dat,rb) )= NULL)short fg=1,fg1,i;是否printf(cannot open filen);输入

16、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的平均分为:,num,st1.name);continueWhile(!feof(fp2)if(st2.number=num)fread(&stu2,sizeof(SCO),1,fp);是否ave+=st2.score;i+;Continue;printf(%.2fn,ave/i); break;是if(getch()!=y)否Fclose(fp1); Fclose(fp2);fg

17、=0;Fg=0;结束B:班级某一门课程的平均分及排名开始FILE *fp1*fp2;SCO st2;COR st1; int i,k,j,b,a100=0;float ave,s100=0,t;char clas10,course10if(fp1 = fopen(student.dat,rb) )= NULL)if(fp2 = fopen(score.dat,rb) )= NULL)short fg=1,fg1;是否printf(cannot open filen);输入班级clas的值输入课程courese的值fg1=0;ave=0;i=0 ;While(!feof(fp1)fread(&s

18、tu2,sizeof(STU)1,fp);if(strcmp(clas,st1.clas)=0)是否是While(!feof(fp2)Continue;fread(&st2,sizeof(SCO),1,fp2);Fg1=1;if(strcmp(st2.course,course)=0)否ave+=st2.score;si=st2.score;ai=st2.number;i+;printf(班级%s 课程%s 的平均分为:%.2fn,clas,course,ave/i);Rewind(fp2);for(k=0;ki-1;k+) t=sk; sk=sj;sj=t;b=ak;ak=aj;aj=b;f

19、or(j=k+1;ji;j+是if(sksj)否t=sk;sk=sj;sj=t;b=ak; ak=aj;aj=b;Continue;for(k=0;ki;k+)while(!feof(fp2)fread(&st2,sizeof(SCO),1,fp2)是if(sk=st2.score&ak=st2.number)否printf(%d-%s:%.2fn,st2.number,st2.course,st2.score);Continue;是if(getch()!=y)否Fclose(fp1); Fclose(fp2);fg=0;Continue;Fg=0;结束6 根据学号修改学生成绩开始FILE *

20、fp;SCO st; long num; float s; short fg=1,fg1; char course10;if(fp1 = fopen(student.dat,rb) )= NULL)if(fp2 = fopen(score.dat,rb) )= NULL)是否printf(cannot open filen);i=0;iSIZE;if(studi.num = stu_number)i+;是否strcpy(studi.addr,stu_addr);studi.age = stu_age;strcpy(studi.name,name);直到iSIZEi+;Fclose(fp);结束

21、7.删除记录开始FILE *fp;SCO st;Long num; short fg=1;if(fp = fopen(score.dat,rb) )= NULL)是否printf(cannot open filen);请输入删除的学号numfread(&st,sizeof(SCO),1,fp);if(st.flag=&st.number=num)是否g1=1;printf(%dn,st.number);printf(%sn,st.course);printf(%.2fn,st.score);printf(是删除该成绩吗?(y/n);是if(getch()=y)否seek(fp,-(long)(

22、sizeof(SCO),SEEK_CUR);fputc(*,fp);是if(getch()!=y)否Fg=0;Fclose(fp1);Continue;Fg=0结束第五章 详细设计:#include #include #include #include typedef struct char number10; /课程标号 char course10; /课程名 COU; typedef struct int number; /学号 char name11; /姓名 char sex3; /性别 char major12; /专业 char clas12; /班级 char xi12; /系

23、STU; typedef struct char name10; /姓名 int number; /学号 char course10; /课程名 float score; /分数 SCO; int main(int argc ,char*argv) char ch; void Addstuden(); void Addcours(); void Addscor(); void Querystuden(); void Querycount(); void Updatestudent(); void Deletestudent(); while(1) system(cls); printf(学生成

24、绩管理系统n); printf(1、添加学生信息n); printf(2、添加课程信息n); printf(3、添加成绩信息n); printf(4、查询成绩信息n); printf(5、统计学生成绩信息n); printf(6、修改学生成绩 n); printf(7、删除学生成绩n); printf(0、退出n); printf(=n); printf(请选择:); ch=getch(); printf(%cn,ch); switch(ch) case1:Addstuden();break; case2:Addcours();break; case3:Addscor();break; cas

25、e4:Querystuden();break; case5:Querycount();break; case6:Updatestudent();break; case7: Deletestudent();break; case0:exit(0); void Addstuden() FILE *fp; STU str; int t=1; fp=fopen(student.txt,a); while(t) system(cls); printf(请输入添加学生信息:n); printf(-n); printf(学号:); scanf(%d,&str.number); printf(姓名:); sc

26、anf(%s,str.name); printf(性别:); scanf(%s,str.sex); printf(专业:); scanf(%s,str.major); printf(班级:); scanf(%s,str.clas); printf(系部或二级学院:); scanf(%s,str.xi); fwrite(&str,sizeof(STU),1,fp); printf(是否继续添加学生(Y/N):); if(getch()!=Y) t=0; fclose(fp); void Addcours() FILE *fp; COU str; int t=1; fp=fopen(courst.

27、txt,a); while(t) system(cls); printf(请输入添加课程信息:n); printf(-n); printf(输入课程名称:); scanf(%s,str.course); printf(输入课程代码:); scanf(%s,str.number); fwrite(&str,sizeof(COU),1,fp); printf(是否继续添加课程信息:(Y/N):); if(getch()!=Y) t=0; fclose(fp); void Addscor() SCO str; FILE *fp; int t=1; fp=fopen(score.txt,a); whi

28、le(t)system(cls); printf(请输入添加成绩信息n); printf(-n);printf(学号:); scanf(%d,&str.number); printf(姓名:); scanf(%s,str.name);printf(课程名称:); scanf(%s,str.course);printf(分数:); scanf(%f,&str.score);fwrite(&str,sizeof(SCO),1,fp);printf(是否继续添加成绩信息:(Y/N):); if(getch()!=Y) t=0; fclose(fp); void Deletestudent()/删除学

29、生成绩 SCO st; long num; FILE *fp; short fg=1,fg1; if(fp=fopen(score.txt,r+)=NULL) printf(文件打不开!n); getch(); return; while(fg) system(cls); printf(删除学生成绩n); printf(请输入删除学生学号:); scanf(%d,&num); rewind(fp);fg1=0; while(!feof(fp) fread(&st,sizeof(SCO),1,fp); if(st.number=num) fg1=1; printf(%dn,st.number);

30、 printf(%sn,st.course); printf(%.2fn,st.score); printf(是删除该成绩吗?(y/n); if(getch()=y) fseek(fp,-(long)(sizeof(SCO),SEEK_CUR); fputc(*,fp); break; if(fg1=0) printf(该学号不存在。n); printf(n继续删除吗?(y/n); if(getch()!=y) fclose(fp); fg=0; void Querystuden()/查询成绩信息 char ch; void a(); void b(); printf(1、个人成绩n); pr

31、intf(2、班级成绩n); printf(0 退出n); printf(=n); printf(请选择:); ch=getch(); printf(%cn,ch); switch(ch) case1:a();break; case2:b();break; case0:exit(0); void b() /输出班级成绩 STU st1; SCO st2; long num; char clas12,course12; FILE *fp1,*fp2; short t=1,t1; if(fp1=fopen(student.txt,r)=NULL) printf(文件不存在!); getch();

32、return; if(fp2=fopen(score.txt,r)=NULL) printf(文件不存在!); getch(); return; while(t) system(cls); printf(查询学生成绩n); printf(请输入查询学号:); scanf(%d,&num); printf(输入班级: ); scanf(%s,clas); printf(输入一名课程: ); scanf(%s,course); rewind(fp1); rewind(fp2); t1=0; printf(%s 的 %s 的分数为:n,clas,course); while(!feof(fp1) i

33、f(fread(&st1,sizeof(STU),1,fp1)=0)break; if(strcmp(st1.clas,clas)=0) while(!feof(fp2) if(fread(&st2,sizeof(SCO),1,fp2)=0)break; if(st1.number=st2.number&strcmp(st2.course,course)=0) t1=1; printf(%d-%s:%.2fn,st1.number, st2.course,st2.score); rewind(fp2); if(t1=0) printf(该学生号不存在。n); printf(继续查询吗?(y/n

34、); if(getch()!=y) fclose(fp1); fclose(fp2); t=0; void a()/输出个人成绩 STU st1; SCO st2; long num; FILE *fp1,*fp2; short t=1,t1; if(fp1=fopen(student.txt,r)=NULL) printf(文件不存在!); getch(); return; if(fp2=fopen(score.txt,r )=NULL) printf(文件不存在!); getch(); return; while(t) system(cls); printf(查询学生成绩n); printf(请输入查询学号:); scanf(%d,&num); rewind(fp1); rewind(fp2); t1=0; while(!feof(fp1)&t1=0) if(fread(&st1,sizeof(STU),1,fp1)=1) if(st1.number=num) t1=1; printf(姓名:%sn,st1.name); else break; if(t1) while(!feof(fp2) if(fread(&st2,sizeof(SCO),1,fp2)=0)break; if(st2.number=num) print

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号