c语言课程设计论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言课程设计论文
TPMK standardization office【 TPMK5AB- TPMK08- TPMK2C- TPMK18】
《C语言程序设计》
项目设计报告
项目名称:学生成绩信息管理系统
2016年 1月 13日
目录
1 项目分析 (1)
1.1 问题描述 (1)
1.2 功能需求分析 (1)
2 系统设计 (2)
2.1 数据结构设计 (2)
2.3部分功能设计 (2)
3 系统实现源程序 (4)
3.1 主函数设计 (4)
3.2 添加学生信息 (5)
3.3 姓名学号查询 (10)
3.4 成绩查询 (12)
3.5 删除学生成绩信息 (13)
3.6 修改学生成绩信息 (14)
4 功能测试 (16)
4.1 菜单测试 (16)
4.2 系统功能测试 (16)
5 系统设计遇到的问题及解决方法 (21)
6 项目设计总结 (22)
1 项目分析
1.1 问题描述
信息储存与查询是计算机处理数据的优势之一,目前,学生信息的管理系统已经完全走进了校园,其中成绩信息的储存是主要部分,本课题使用C语言实现学生成绩的储存,查询,修改,以及删除等操作。程序中涉及到数据块和文件指针的操作,包括结构体数据定义,使用及文件的读写,定位,修改等。
1.2 功能需求分析
学生成绩信息管理系统的主要功能如下:
①添加学生信息:录入学生的基本信息,如姓名,学号,成绩。
②显示所有学生成绩信息:直接显示已经全部录入学生的成绩信息。
③学号或姓名查询:可以根据学生的姓名和学号直接查询该名学生的成绩。
④成绩查询:可以根据一个特定的分数来查询学生的信息。
⑤删除学生成绩信息:可以直接根据学号确定是否删除对应学生的成绩信息。
⑥修改学生成绩信息:直接根据学生学号来修改学生的姓名,学号,成绩。
2 系统设计
2.1 数据结构设计
2.2 函数设计
表1 函数列表
2.3部分功能设计
1.删除学生的信息,输入学生的学号进行删除操作,如果没有此人,系统将会提示无此人,如果找到,系统将会确认你是否需要删除,流程图如1-2所示。
Yes
图1-2 删除学生信息流程图
2.输入学号进行查询对应同学的成绩,流程图如图1-3所示。
{
printf(" 5 ---------删除学生成绩信息\n\n");
printf(" 6 ---------修改学生成绩信息\n\n");
printf(" 0 ---------退出");
printf(" 请您选择:");
choice:
scanf("%d",&x);
switch(x)
{
case 1:add();break;
case 2:printall();break;
case 3:search();break;
case 4:jgsearch();break;
case 5:del();break;
case 6:modify();break;
case 0:break;
default:printf("\n 错误的选择,请重新选择:");goto choice;
}
}
while(x!=0);
system("cls");
printf("\n\n 欢迎再次使用学生成绩管理系统\n");
}
3.2 添加学生信息
/*学生成绩信息管理系统*/
#include
#include
#include
int c,j,t;
struct stu /*定义结构体类型*/
{
char name[10];
char num[10];
char score[10];
}
student[100],
newstudent[100];
/*添加学生个人信息*/
void addnew()
{int a,b,k;
FILE *fp,*fp1,*fp2; /*FILE类型指针变量的定义形式*/
for(a=0;a<200;a++)
{
system("cls");
printf(" 欢迎使用学生成绩管理系统\n\n\n");
printf(" 录入学生信息\n\n");
printf("输入学生姓名:");
scanf("%s",&student[a].name);
printf("输入学生学号:");
scanf("%s",&student[a].num);
printf("输入学生成绩:");
scanf("%s",&student[a].score);
printf("输入‘1’继续,‘0’结束\n"); /*判断输入是否结束*/ scanf("%d",&b);
if(b==0)
{
c=a;
system("cls");
break;
}
}
if((fp1=fopen("Ca1.txt","w"))==NULL) /*文件名,使用文件方式*/ {printf("信息写入失败");
exit(0);
}
if((fp2=fopen("Ca2.txt","w"))==NULL)
{printf("信息写入失败");
exit(0);
}
if((fp=fopen("Ca3.txt","w"))==NULL)
{printf("信息写入失败");
exit(0);
}
j=sizeof(struct stu);
for(a=0;a<=c;a++)
{if(fwrite(&student[a],j,1,fp)!=1)
printf("存入失败!");
}
for(a=0;a<=c;a++)
{if(strcmp(student[a].score,"80")==0)
{fwrite(&student[a],j,1,fp1);