大作业样例学生成绩管理系统源代码_第1页
大作业样例学生成绩管理系统源代码_第2页
大作业样例学生成绩管理系统源代码_第3页
大作业样例学生成绩管理系统源代码_第4页
大作业样例学生成绩管理系统源代码_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、一、大作业内容对学生信息( 包括学号、数学、英语、计算机、平均分) 进行管理 , 包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出. 每个教师都将各自班学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩员。假设,教师现收集到了一个班学生的所有成绩信息,要求用 C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。二、大作业的要求与数据1、用CS言实现系统;对学生信息(包括学号、数学、英语、C语言、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出。要求设计的管理

2、系统能够完成以下功能:(1) 、每一条记录包括一个学生的学号、姓名、3门课成绩(2) 、 成绩信息录入功能:( 成绩信息用文件保存,可以一次完成若干条记录的输入。)(3) 、成绩信息显示浏览功能:完成全部学生记录的显示。(4) 、查询功能:完成按姓名查找学生记录,并显示。(5) 、成绩信息的删除: 按学号进行删除某学生的成绩.(6) 、排序功能:按学生平均成绩进行排序。(7) 、应提供一个界面来调用各个功能, 调用界面和各个功能的操作界面应尽可能清晰美观!三、总体设计(包含几大功能模块)1、成绩录入功能2 、成绩输出功能3 、成绩查询功能4 、删除模块5 、排序功能6 、统计功能7 、退出系统

3、四、详细设计(各功能模块的具体实现算法流程图)4.1 各函数的功能和实现1、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等相关信息;可用函数void input(STUDENT *data, int *len) 来实现此操作。2、 成绩输出模块:输出学生的信息以及成绩void output(STUDENT*data, int len) :通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage() 、maverage() 、 eaverage() 和 comaverage() 来输出成绩的平均分数、最高和最低分数。3、成绩查询模块:可用void find(STU

4、DENT *data, int len) 来实现。找到就输出此学生全部信息。4、 删除 模块:用函数void delete_item(STUDENT *data, int *len) 来实现5、排序模块:用函数void sort(STUDENT *data, int len) 来实现6、 统计功能 能:用函数void stat(STUDENT *data, int len) 来实现7、退出系统:可用一个函数exit ()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。五、 调试分析(包含各模块的测试用例,及测试结果)5.1 源程序#include <stdlib.h

5、>#include <stdio.h>#include <string.h>#define MAXN 35#define MAX_NAME 256typedef struct student /学生信息int no;char nameMAX_NAME;double english;double math;double Programming;double mark_ave;double mark_tot; STUDENT;/* 输入信息子程序*/void input(STUDENT *data, int *len)int no;putchar('n'

6、;);printf("%sn", " 请输入新的记录,如果需要退出当前菜单请输入-1.");printf("%sn", " 格式: n 学号 n");printf("%sn", " 姓名 英语 数学 C 语言 ");putchar('n');printf(" 如 :n");printf("5n");printf(" 黄宏业 100 100 100n");scanf("%d", &a

7、mp;no);while(no != -1) data*len.no = no;scanf("%s %lf %lf %lf", data*, &data*len.english, &data*len.math,&data*len.Programming);data*len.mark_ave=(data*len.english+data*len.math+data*len.Progr amming)/3.0;data*len.mark_tot=data*len.english+data*len.math+data*len.Progra

8、mming;(*len)+;scanf("%d", &no);/* 输出信息子程序*/void output(STUDENT *data, int len)int i;system("cls");printf("%8s", "学号");printf("%8s", "姓名");printf("%8s", "英语");printf("%8s", "数学");printf("%10s&

9、quot;, "C 语言 ");printf("%12s", " 平均分 ");printf("%10s", " 总分 ");putchar('n');for (i =0; i < 80; i+)putchar('=');putchar('n');for (i = 0; i< len; i+)printf("%8d", datai.no);printf("%8s", );pri

10、ntf("%8.1lf", datai.english);printf("%8.1lf", datai.math);printf("%10.1lf", datai.Programming);printf("%12.1lf", datai.mark_ave);printf("%10.1lf", datai.mark_tot);putchar('n');for (i =0; i < 80; i+)putchar('=');putchar('n')

11、;printf(" 按回车键继续.");getchar();getchar();/* 排序子程序*/void sort(STUDENT *data, int len)int i,j,k;STUDENT temp;for (i=0; i<len-1; i+) for (k=i, j=i+1; j<len; j+)if (datak.mark_ave > dataj.mark_ave) k=j;if (k != i) temp = datai;datai = datak;datak = temp;/* 搜索子程序*/void find(STUDENT *dat

12、a, int len)int find_no, result ;int i;lab: result=0;printf("%sn", " 请输入需要查找的学生的学号,退出当前菜单请输入scanf("%d", &find_no);if (find_no = -1) return; /*exit the fine sub program*/ while( dataresult.no != find_no && result < len) result +;if (result >= len ) printf(&qu

13、ot;%sn", " 未查询到相关信息");goto lab;else system("cls");printf("%sn", " 查询信息如下:");for (i =0; i < 80; i+)putchar('=');putchar('n');printf("%8s", "学号");printf("%8s", "姓名");printf("%8s", "英语

14、");printf("%8s", "数学");printf("%10s", "C 语言 ");printf("%12s", " 平均分 ");printf("%10s", " 总分 ");putchar('n');printf("%8d", dataresult.no);printf("%8s", );printf("%8.1lf&

15、quot;, dataresult.english);printf("%8.1lf", dataresult.math);printf("%10.1lf", dataresult.Programming);printf("%12.1lf", dataresult.mark_ave);printf("%10.1lf", dataresult.mark_tot);putchar('n');for (i =0; i < 80; i+)putchar('=');putchar('

16、;n');goto lab;/* 插入子程序*/void insert(STUDENT *data, int *len)int no, pos;double english, math, Programming, mark_ave, mark_tot;int i;char nameMAX_NAME;lab: printf("%sn", " 输入新的记录,退出当前菜单请输入-1.");printf("%sn", " 格式:学号");printf("%sn", "姓名 英语 数学

17、C 语言 ");scanf("%d", &no);if (no = -1) return;data*len.no = no;scanf("%s %lf %lf %lf", name, &english, &math, &Programming);mark_ave=(english+math+Programming)/3.0;mark_tot=english+math+Programming;pos = 0;while (datapos.mark_ave < mark_ave) && (pos

18、 < *len) )pos +;for (i = *len-1; i >= pos; i-)datai+1 = datai;datapos.no = no;strcpy(, name);datapos.english = english;datapos.math = math;datapos.Programming = Programming;datapos.mark_ave = mark_ave;datapos.mark_tot = mark_tot;(*len)+;goto lab;/* 删除子程序*/void delete_item(STUDENT *

19、data, int *len)int no, i, pos;lab: pos=0;printf("%sn", " 输入需要删除的学生的学号,退出当前菜单请输入scanf("%d", &no);if (no = -1) return;while( (datapos.no != no) && (pos < *len) ) pos = pos +1;if (pos >= *len) printf("%sn", " 未找到需要删除的学生");goto lab;else for

20、(i = pos+1;i < *len; i+)datai-1 = datai;*len = *len -1;if (*len = 0) printf("%sn", " 没有任何记录,请按回车键返回.");getchar();getchar();return;goto lab;/* 统计子程序*/void stat(STUDENT *data, int len)int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0;int i;for (i = 0;i < len; i+) if (datai.mar

21、k_ave <=59) no_59+;else if (datai.mark_ave <=69) no_69+;else if (datai.mark_ave <=79) no_79+;else if (datai.mark_ave <= 89) no_89+;else no_100+;system("cls");for (i =0; i < 80; i+)putchar('=');putchar('n');printf("%10s", " 分数 ");printf(&qu

22、ot;%10s", "0-59");printf("%10s", "60-69");printf("%10s", "70-79");printf("%10s", "80-89");printf("%10s", "90-100");putchar('n');putchar('n');printf("%10s", " 学生 ");print

23、f("%10d", no_59);printf("%10d", no_69);printf("%10d", no_79);printf("%10d", no_89);printf("%10d", no_100);putchar('n');for (i =0; i < 80; i+)putchar('=');putchar('n');printf(" 按回车键返回");getchar();getchar();/* 显示信息子

24、程序*/void paint()int i;system("cls");printf("%55sn", " 广东工业大学华立学院学生管理系统n");printf("制作者 : 广东工业大学华立学院09级计算机 (2) 班 吴洲洋n");for (i = 0; i < 80; i+)putchar('=');putchar('n');输入信息2按平均分排序4插入6按平均分输出统计信息8退出 n");输出信息按学号查找按学号删除保存到文件printf(" 1n&

25、quot;);printf("3n");printf("5n");printf("7n");printf("0for (i = 0; i<= 79; i+)putchar('=');putchar('n');printf("%sn", " 请输入各操作对应的序号:");void save(STUDENT *data, int len)/ 将数据保存到文件int i;FILE *fp;fp=fopen(" 成绩统计表.txt",&

26、quot;w");fprintf(fp,"%8s", " 学号 ");fprintf(fp,"%8s", "姓名");fprintf(fp,"%8s", "英语");fprintf(fp,"%8s", "数学");fprintf(fp,"%10s", "C 语言 ");fprintf(fp,"%12s", " 平均分 ");fprintf(fp,&

27、quot;%10sn", " 总分 ");fprintf(fp,"= =n");putchar('n');for (i = 0; i< len; i+)fprintf(fp,"%8d", datai.no);fprintf(fp,"%8s", );fprintf(fp,"%8.1lf", datai.english);fprintf(fp,"%8.1lf", datai.math);fprintf(fp,"%10.

28、1lf", datai.Programming);fprintf(fp,"%12.1lf", datai.mark_ave);fprintf(fp,"%10.1lfn", datai.mark_tot);fprintf(fp,"= =n");fclose(fp);printf(" 文件已保存到"成绩统计表.txt"");getchar();getchar();*/* 主程序void main()STUDENT dataMAXN;int len = 0;char ctrl_ch;pain

29、t();scanf("%c”, &ctrl_ch);while (ctrl_ch != '0') switch(ctrl_ch) case '1':input(data, &len);break;case '2':output(data, len);break;case '3':sort(data, len);break;case '4':find(data, len);break;case '5':insert(data, &len);break;case 

30、9;6':delete_item(data, &len); break;case '7':stat(data, len);break;case '8':save(data, len);break;default:输入错误!”);if (ctrl_ch != 'n') printf("%sn",break;if (ctrl_ch != 'n') paint(); scanf("%c”, &ctrl_ch);.5.2主要程序运行结果 运行开始S3 "*C:Program FilesMierosoft Visual StudtoMvProjectsjojoDebug4,exe*口I *|广东工业大学华立学院学生管理系统制作者,广东工业大学华立学院羽级计算机班 吴洲洋找除件 毒

温馨提示

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

评论

0/150

提交评论