学生成绩管理系统程序设计学生成绩管理系统_第1页
学生成绩管理系统程序设计学生成绩管理系统_第2页
学生成绩管理系统程序设计学生成绩管理系统_第3页
学生成绩管理系统程序设计学生成绩管理系统_第4页
学生成绩管理系统程序设计学生成绩管理系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计报告书学生成绩管理系统班级学号:姓名:指导老师:20 / 19目录1 题目要求 12 设计思想 33 系统完成功能及框图 34 界面设计 45 核心算法及说明 76 结论 167 参考资料 168 后记 16摘要:学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加,修改,删除 ,查询,留言等操作,同时一样的方面学生对自己各科成绩查询 ,学习的交流.随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识 ,它已进入人类社会的各个领域并发挥着越来越重要的作用.作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比

2、拟的优点 .1 、 题目要求题目七:学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩( 语文、数学、英语和计算机) 等。主要功能:( 1) 能按学期、按班级完成对学生成绩的录入、修改( 2) 能按班级统计学生的成绩,求学生的总分及平均分( 3) 能查询学生成绩,不及格科目及学生名单( 4) 能按班级输出学生的成绩单要求:使用二进制文件方式存储数据,系统以菜单方式工作2、设计思想我们设计的学生成绩管理系统共有7 个功能, 所涉及到的函数有按回车返回主菜单、查询、保存、输入、修改、输出、统计等等。这是一个关于学生成绩的管理系统,所以就会涉及到一系列问题,例如:去各科成绩的

3、总和、平均值、不几个学生的科目及对应的成绩。这个程序的整个思路就是按照要求写出相应的程序并使之能够运行。首先,写出所有能够用到的库函数,并设计出能够显示主菜单的程序。其次按照主菜单设计出所有的有关程序。再次,由于这个程序会用到结构体所以会涉及到“将数据从结构体数组保存到文件中” 、“将数据从文件读到结构体数组中”这两个程序。为了使程序更完美还涉及了主函数的显示。最后,就可以按照主菜单进行一系列的操作。其实,这些程序的设计都是根据以前学过的只是进行的简单的程序的叠加。没有什么可以害怕或是担心的。3、系统完成功能及框图成绩统计查询不及格同学按班级查询成绩修改学生记录输入学生记录查看所有同学信息退出

4、程序4、界面设计学生成绩管理系统* * * *0退出*1查看所有学生信息,2输入学生记录*3 修改学生记录*4 查询C班0D*5 查询t不及格记录)*0成蛾统计单请输入功或号s-/:*主菜单:、C;JBSOFTCTuTaiil)innt eap. exc请箍入功能号10-团;1破毁 学期 姓名京 *学生成筋营展系统而¥退出*查看所有学生信息 *输入学生记录*修改学生记录常苴词班皴*宜询(不及格记录* 成矮线计收*- TJ TJ TJ J 1J 0rl23456t'+i*.;1,11京1*1+.1 4 i*fifufc寺|c学号 语文 数学 英语 计算机3WO22T6065.0

5、T8.0阻。4bu34TS056 0T6099.0鱼包车键返回主案单.运行1后界面八 C: JBSOFTCYuYaxil)iiiTTt ea.p. ex e*蜕*算*4c*京京京*加求*4:*#猿常*率*!*jK*学生成缠营理系堤布不*0退出*1存着所有学生信息*团输入学生记录*3修改学生记录*查询(班叙)*5直询【不及格记录)*成建统计*4cj*c*卡:* 本* *淳宓4*4:* 巾* 巾#*宓4uK4oKt时功能号卬-叼:4请输入要置询成豉的田级0班破 学期 姓名 学号 语文 数学 英语 计篁机23,。2278 0C5.070.0 弗口按回车键返回主菜单运行4后界面兼*申窠卓*京*京:*尤

6、*笨*率*本*:!(窠京*京*班第*中常才学生成能管理系线*魄率流01退出*洋m查看所有学生信息事胃U喻入学生记录*31修改学生记录*国查询(班皴】*5J鱼网C不及格记录)*6成统统计*濯*覃*尊*:窠*章*胃*事*京*享京* *:*%*(京请输入功能号【口-81二5 请输入所要查询的班级:3 请输入所要查询的学期:4 姓名:卜山字号:31的不及格科目有:数学阚 按回车隆返回主菜单一.运行5后界面5、核心算法及说明#include <stdio . h>#include <io . h>#include <stdlib . h>#include <st

7、ring . h>#define MAX 300 struct student charcla10;/ 班级charterm10;/ 学期char name10;/ 姓名char no10;/ 学号float ch;/ 语文float ma;/ 数学float en;/ 英语float com; / 计算机;struct dataint count;/ 当前学生数组中学生的个数struct student stuMAX; / 学生数组 dd;/ 显示主菜单void menu()system("cls" );printf("n" );printf(&

8、quot;ttt*n");printf("ttt*n");printf("ttt*学生成绩管理系统*n");printf("ttt*n");printf("ttt*0退出*n");printf("ttt*1查看所有学生信息*n");printf("ttt*2输入学生记录*n");printf("ttt*3修改学生记录*n");printf("ttt*4查询(班级)*n");printf("ttt*5查询(不及格记录)

9、 *n");printf("ttt*6成绩统计*n");printf("ttt*n");printf( "ttt*n");/ 等待用户按回车后回到主菜单void to_menu()char c1,c2;printf("nnn 按回车键返回主菜单." );scanf("%c%c", &c1, &c2);menu();/ 查看所有学生信息void view_data()int i;printf( "班级 t 学期 t 姓名 t 学号 t 语文 t 数学 t 英语

10、t 计算机 ");printf( "nn");for (i =0;i <dd. count;i +)printf( "%st%st%st%st%.1ft%.1ft%.1ft%.1fn" ,dd . stui . cla,dd . stui . term,dd . stui . name,dd. stui . no,dd . stui . ch,dd . stui . ma,d d. stui . en,dd . stui . com);/ 将数据从结构体数组保存到文件中void save_data()FILE *fp;int i,k;k

11、=dd. count;fp =fopen( "c:/dada.txt" , "w");fwrite( &k, sizeof ( int ),1,fp);for (i =0;i <k;i +)fwrite( &dd. stui, sizeof ( struct student),1,fp);fclose(fp);/ 输入学生记录(按班级和学期)void add_data()struct student st;int b;int i,k,j;char term10,cla10;printf( "请输入所要录入的学生的班级: &

12、quot;);scanf( "%s",cla);printf( "请输入所要录入的学期: ");scanf( "%s",term);while (1)j =0;printf( "n 请输入学生信息 :" );printf( "n 姓名 t 学号 t 语文 t 数学 t 英语 t 计算机 ");printf( "nn");scanf( "%s%s%f%f%f%f,"st . name,st . no, &st . ch, &st . ma,&

13、amp;st . en, &st . com);for (i =0;i <dd. count;i +)if (strcmp(dd . stui . no,st . no) =0&&strcmp(dd . stui . term,term) =0)if (strcmp(dd . stui . no,st . no) =0)printf( "n 信息已存在,请重新输入!n" );j =1;break;if (j =1)continue ;if (j =0)k = dd . count;strcpy(dd . stuk . cla,cla);strc

14、py(dd . stuk . term,term);strcpy(dd. stuk. name,st. name);strcpy(dd. stuk. no,st . no);dd. stuk. ch=st .ch;dd. stuk. ma=st .ma;dd. stuk. en=st .en;dd. stuk. com=st. com;dd. count +;printf( "nn 继续添加学生信息1-yes 0-no:");scanf("%d", &b);if (b =0) break;save_data();/ 将数据从文件读到结构体数组中v

15、oid read_data()FILE *fp;int i,k;struct student st;k=0;if (access( "c:/dada.txt" ,0) =-1) / 如果文件不存在fp =fopen( "c:/dada.txt" , "w");fwrite( &k, sizeof ( int ),1,fp);fclose(fp);fp =fopen( "c:/dada.txt" , "r" );fread( &k, sizeof ( int ),1,fp);dd.

16、 count =k;for (i =0;i <k;i +)fread( &st, sizeof ( struct student),1,fp);strcpy(dd. stui. cla,st .cla);strcpy(dd. stui. term,st. term);strcpy(dd .stui. name,);strcpy(dd .stui. no,st . no);dd. stui .ch=st .ch;dd. stui. ma=st .ma;dd. stui. en=st .en;dd. stui. com=st. com;fclose(fp);/ 修改学生

17、成绩记录(按班级和学期)void edit_data()char cla10,term10;int i; float ch,ma,en,com;printf("请输入所要修改记录的班级:");scanf("%s",cla);printf("请输入所要修改记录的学期:");scanf("%s",term);for (i =0;i <dd. count;i +)if (strcmp(dd . stui . cla,cla) =0&&strcmp(dd . stui . term,term) =0

18、)printf("n 姓名:s,学号: %s",dd . stui . name,dd. stui . no);printf( "n 请修改学生数据:" );printf("n 语文成绩:" );scanf("%f" , &ch);dd. stui . ch=ch;printf("n数学成绩:" );scanf("%f", &ma);dd. stui . ma=ma;printf("n英语成绩:" );scanf("%f"

19、;, &en);dd. stui . en=en;printf("n 计算机成绩:");scanf("%f" , &com);dd. stui . com=com;printf( "nn 编辑学生记录成功 !" ); save_data();/ 按班级输出成绩单void query_data_cla()int i;char cla10;printf( "n 请输入要查询成绩的班级:" );scanf( "%s",cla);for (i =0;i <dd. count;i +

20、)if (strcmp(dd . stui . cla,cla) =0)数学 t 英语 t 计算机,dd . stui . cla,dd . ch,dd . stui . ma,dprintf( "班级 t 学期 t 姓名 t 学号 t 语文 t ");printf( "nn");printf( "%st%st%st%st%.1ft%.1ft%.1ft%.1fn"stui . term,dd . stui . name,dd. stui . no,dd . stui d. stui . en,dd . stui . com);/ 查询

21、不及格科目的学生名单void query_data_pass()int i,s =0;char cla10,term10;printf("请输入所要查询的班级:");scanf("%s",cla);printf("请输入所要查询的学期:");scanf("%s",term);for (i =0;i <dd. count;i +) if (strcmp(dd . stui . term,term) =0&&strcmp(dd . stui . cla,cla) =0)printf("n

22、姓名:%§学号:s的不及格科目有:,dd . stui . name,dd. stui . no);" 语文 t" );s +; " 数学 t" );s +; " 英语 t" );s +; " 计算机 t" );s +; if (dd . stui . ch<60) printf( s=0;if (dd . stui . ma<60) printf( s=0;if (dd . stui . en<60) printf( s=0;if (dd . stui . com<60) pri

23、ntf( s=0;if (s =0)printf( "0 科" );/ 成绩统计 ( 按班级和学期 ) 求总分和平均分 void count_data()char cla10,term10;int i,k =0; float sum4 = 0.0 ,average4;printf("请输入所要统计记录的班级:");scanf("%s",cla);printf("请输入所要统计记录的学期:");scanf("%s",term);for (i =0;i <dd. count;i +)if (s

24、trcmp(dd . stui. cla,cla) =0&&strcmp(dd . stui . term,term) =0)k +;sum0+=dd. stui.ch;sum1+=dd. stui.ma;sum2+=dd. stui.en;sum3+=dd. ;average0=sum0 /k;average1=sum1 /k;average2=sum2 /k;average3=sum3 /k;printf( "n所查询SH级学期的各科总分为:n" ,cla,term);printf( "语文 t 数学 t 英语 t 计算机 &q

25、uot;);printf( "nn");printf( "%.1ft%.1ft%.1ft%.1ft",sum0,sum1,sum2,sum3);printf( "n所查询SH级学期的各科平均分为:n" ,cla,term);printf( "语文 t 数学 t 英语 t 计算机 ");printf( "nn");printf( "%.1ft%.1ft%.1ft%.1ft" ,average0,average1,average2, average3);/ 主函数void mai

26、n()int fun;read_data();menu();while (1)printf( "请输入功能号0-8:" , &fun);scanf( "%d", &fun);switch (fun)case 0:/ 退出break;case 1: / 查看所有学生信息view_data(); break;case 2: / 按班级和学期输入学生记录add_data(); break;case 3: / 按班级和学期修改学生记录edit_data(); break;case 4: / 查询(按班级)query_data_cla(); break;case 5: / 查询不及格学生及科目(按照班级和学期)query_data_pass();break;case 6: / 成绩统计 ( 按班级和学期求平均分和总分)count_data();break;if (fun =0) break ;to_menu();相关程序分

温馨提示

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

评论

0/150

提交评论