C语言程序设计报告_学生成绩管理系统

  • 格式:pdf
  • 大小:491.80 KB
  • 文档页数:25

下载文档原格式

  / 25
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4
2 设计思想
学生成绩管理系统
1.在设计时考虑以下几个方面: 操作简单。因为使用者多为非计算机专业人员,所以该系统要求设计的界面美观, 操作方便。要充分考软件界面友好和操作方便,便愈使用人员快速上手。 易于维护。一个软件的好坏,关键在于产品的可靠,稳定,便于维护。
2.开发语言的选择
针对世界上流行的大量软件和开发工具,经过认真分析其优缺点,结合目前的软硬
printf("file write error\n"); fclose(fp); }
以上代码将数据存入文件中,操作起来避免了直接对内存进行操作,可对文件进行操作。
2. for(i=0;i<SIZE;i++)
7
学生成绩管理系统
for(j=0;j<SIZE-i;j++) { if(stu[i].math>stu[i+1].math)
void save()
/*将数据储存于文件*/
{
FILE *fp;
int j;
if((fp=fopen("stu_list","wb"))==NULL)
8
学生成绩管理系统
{
printf("cannot open file\n");
return;
}
for(j=0;j<SIZE;j++)
if(fwrite(&stu[j],sizeof(struct student),1,fp)!=1)
5
学生成绩管理系统
学生成绩管理系统对学校加强学生基本情况及学生成绩管理有着重要的作用。为了 能使该系统具有更为广泛的功能:应该将该系统细分为学生操作系统、教师操作系统、 教务处操作系统,以满足不同身份的人的需求。总体来说,该系统应分为输入模块、维 护模块、查询模块以及统计模块。
由于本软件为学校中多个身份的人的定制开发的。我们经过反复论证,最终确定了 学生成绩管理系统的设计方案,主要流程图如下所示:
绩%4.1f\n",stu[j].num,stu[j].nam,stu[j].clas,stu[j].math,stu[j].english,stu[j].computer);
stu[j].num=0;
stu[j].nam[20]=0;
stu[j].clas[20]=0;
stu[j].math=0;
printf("file write error\n");
fclose(fp);
}
search(int n) /*查询学号函数*/
{ int j;
for(j=0;j<SIZE;j++)
if(n==stu[j].num)
return j;
/*将 j 的值返回,通过 search 带回调用处*/
if(j>SIZE)
3. 查询记录。根据班级、学号、科目等查询学生的成绩。如果查询时学生 数据并没有读入到结构体数组或者链表中,则应该先从文件中读出数据并存储 在结构体数组或者链表中,然后在结构体数组或者链表中查询满足条件的数 据。
4. 统计记录。完成对各门功课最高分和不及格人数的统计。
1.2 设计要求
①各级菜单及功能间必须建立必要的联系,要定义参照完整性规则。 ②使用二进制文件方式存储数据。 ③要求有菜单界面,结果显示时应达到界面友好。 ④将完成的全部内容连编成一个.exe 文件。
return -1;
}
void function1()
/*添加记录*/
{
void xt2();
int i;
char k;
printf("
**************************** 添 加 学 生 信 息
********************************\n");
for(i=0;i<SIZE;i++)
件开发环境,选用微软 WINDOWS 平台下的 Visual C++作为软件开发工具。选用工具有几
下几方面优点:
1
C 语言简洁、紧凑、使用方便、灵活。有 32 个关键字。C 语言程序比其他许多高
级语言简练,源程序短,因此输入程序时工作量小。
2
运算符丰富。
3
数据类型丰富,具有现代语言的各种数据结构。
4
6.1 程序代码-------------------------------------------------8 6.2 系统使用-------------------------------------------------21 6.3 运行效果说明---------------------------------------------21
stu[j].english=0;
stu[j].computer=0;
printf("删除结果为\n");
printf(" 学 号 %d, 姓 名 %s, 班 级 %s, 数 学 成 绩 %4.1f, 英 语 成 绩 %4.1f, 计 算 机 成
绩%4.1f\n",stu[j].num,stu[j].nam,stu[j].clas,stu[j].math,stu[j].english,stu[j].computer);
prin百度文库f("输入 0 退出\n");
for(j=0;j<SIZE;j++)
{
if(j==-1)
goto loop;
else break;
}
}
else
{for(i=0;i<SIZE;i++)
{printf("原数据为:\n");
10
学生成绩管理系统
printf(" 学 号 %d, 姓 名 %s, 班 级 %s, 数 学 成 绩 %4.1f, 英 语 成 绩 %4.1f, 计 算 机 成
系统主菜单
学生操作
教师操作
教务处操作
















































































6
学生成绩管理系统
通过系统主菜单,可以使学校中不同身份的人选择不同的操作系统,从而合理的使用
不同的功能。
索引关键字
关键词:源程序代码,学生成绩管理,流程框图
2
学生成绩管理系统
内容目录
1 题目要求------------------------------------4
1.1 内容要求--------------------------------------------------4 1.2 设计要求--------------------------------------------------4
1. void save() {
FILE *fp; int j; if((fp=fopen("stu_list","wb"))==NULL) {
printf("cannot open file\n"); return; } for(j=0;j<SIZE;j++) if(fwrite(&stu[j],sizeof(struct student),1,fp)!=1)
2 设计思想------------------------------------5 3 功能模块及流程图----------------------------5 4 数据结构------------------------------------7 5 中心算法代码说明----------------------------7 6 系统实现------------------------------------8
{
printf("请输入该生学号:\n");
scanf("%d",&stu[i].num);
printf("请输入该生姓名:\n");
scanf("%s",&stu[i].nam);
printf("请输入该生所在班级:\n");
scanf("%s",&stu[i].clas);
printf("请输入该生数学成绩:\n");
学生成绩管理系统
《c 语言课程设计》
程序设计说明书
院 系: 专业班级: 学 号: 学生姓名: 指导教师:
信息系 计算机二班 140713041 董丁锐 刘红梅
1
学生成绩管理系统
内容摘要
摘要:本次课程设计的课题是学生成绩管理系统,本文介绍课程设计课题的
选题意义,说明了本系统提供的主要功能,对设计思路、功能模块、流程图、 功能模块、中心算法进行了详细的说明,并画出流程框图。本文提供了完整的 源程序代码,并展示了系统使用和运行效果。最后给出了在小学期高级语言程 序设计过程中的总结,其中包含本程序独特设计,作者的设计收获、设计中遇 到的困难和问题,以及作者对设计题目及功能的改进意见,查阅的参考文献等 方面的内容。
7 总结---------------------------------------24 8 致谢词-------------------------------------25 9 参考文献-----------------------------------25
3
.正文
1 题目要求
学生成绩管理系统
{ t=stu[i].math; stu[i].math=stu[i+1].math; stu[i+1].math=t;
} } for(j=0,i=0;i<SIZE;i++)
{ if(stu[i].math<60) j=j+1;
}
统计函数中使用起泡法排序再统计的方法
6.系统实现
6.1 程序代码
代码如下:
}
void function3()
/*修改*/
{ char name[20],phy[10];
#include <stdio.h>
#include <string.h>
#define SIZE 34
struct student
{
int num;
char nam[20];
char clas[20];
float math;
float english;
float computer;
}stu[SIZE];
save();
printf("完成本次操作!!!\n");
k=getchar();
if(k=='y')
continue;
/*判断*/
else
break;}
}
printf("是否返回主菜单 y/n:\n");
scanf("%c",&a);
if(a=='y')
xt2();
else
function2();
scanf("%f",&stu[i].math);
printf("请输入该生英语成绩:\n");
scanf("%f",&stu[i].english);
9
学生成绩管理系统
printf("请输入该生计算机成绩:\n");
scanf("%f",&stu[i].computer);
getchar();
printf("完成本次操作!!!\n");
printf("是否返回上一菜单?y/n:\n");
k=getchar();
if(k=='n')
continue;
/*判断*/
else
break;
}
save();
xt2();
}
void function2()
/*删除学生记录*/
{
void xt2();
int i,j;
char a,k;
printf("
**************************** 删 除 学 生 信 息
******************************\n");
printf("请输入要删除学生的学号:\n");
scanf("%d",&i);
j=search(i);
if(j==-1)
{loop:printf("该学生不存在,请重新输入!\n");
C 语言是完全模块化和结构化的语言。用函数作为程序的模块单位,便于实现程
序的模块化。
5
语法限制不太严格,程序设计自由度大。
6
生成目标代码质量高,程序执行效率高。
7
用 C 语言编写的程序可移植性好。
综上所述,Visual C++可以满足学生成绩管理的要求,所以用来开发学生成绩管理
系统是非常合适的。
3 功能模块及流程图
1.1 内容要求
要求能够实现输入记录、查询记录、更新记录、统计记录、输出记录等功 能。
1. 输入记录。对每个学生的学号、姓名、班级、数学、英语、计算机成绩 进行输入并存储,在程序的运行过程中,数据的存储可以采用结构体数组或者 链表,但是最终应该存储在文件中。
2. 维护记录。能够实现添加、删除、修改学生记录,但是一定要将最终数 据存储到文件中。
4 数据结构
结构体 :
程序设计中用到的结构体类型: 学生信息结构体类型:
struct student {
int num; char nam[20]; char clas[20]; float math; float english; float computer; }stu[SIZE];
5 中心算法代码说明说明