c语言课程设计3学生成绩管理系统Word文件下载.docx

上传人:b****5 文档编号:15691292 上传时间:2022-11-15 格式:DOCX 页数:21 大小:557.01KB
下载 相关 举报
c语言课程设计3学生成绩管理系统Word文件下载.docx_第1页
第1页 / 共21页
c语言课程设计3学生成绩管理系统Word文件下载.docx_第2页
第2页 / 共21页
c语言课程设计3学生成绩管理系统Word文件下载.docx_第3页
第3页 / 共21页
c语言课程设计3学生成绩管理系统Word文件下载.docx_第4页
第4页 / 共21页
c语言课程设计3学生成绩管理系统Word文件下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

c语言课程设计3学生成绩管理系统Word文件下载.docx

《c语言课程设计3学生成绩管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《c语言课程设计3学生成绩管理系统Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。

c语言课程设计3学生成绩管理系统Word文件下载.docx

读取文件

●可以按照默认名字或指定名字将记录文件读入内存;

●读取成功返回0,否则返回-1;

●可以将指定或默认文件追加到现有记录并更新记录的尾部;

●可以将文件连续追加到现有记录并更新记录的名词;

删除记录

●可以按“学好”、“姓名”、“名词”方式删除记录;

●给出将删除记录的信息,经确认后在删除;

●如果已经是空表,删除时给出提示信息并返回菜单;

●如果没有要删除的信息,输出没有找到的信息;

●应该更新其他记录的名词;

●删除操作权限于内存,只有执行存记录时,才能覆盖原记录;

修改记录

●可以按“学号”、“姓名”、“名次”方式修改记录内容;

●给出将修改记录的信息,经确认后进行修改;

●如果已经是空表,应给出提示信息并返回主菜单;

●如果没有找到需要要改的信息,输出提示信息;

●应该同时更新其他记录的名词;

●修改操作权限于内存,只有进行存储操作时,才能覆盖原记录;

查询记录

●能给出查询记录的信息;

●如果查询的信息不存在,输出提示信息;

对记录进行排序

●可以按学好进行升序或降序排序;

●可以按名称进行升序和降序排序;

●可以按名词进行升序或降序排序;

●如果属于选择错误,可以立即退出排序;

头文件

●使用条件编译定义头文件;

●函数原型声明;

●数据结构及包含文件;

测试程序

●应列出测试大纲对程序进行测试;

●应保证测试用例测试到程序的各种边缘情况;

●以上是基本要求,希望通过对本章设计的理解,重新考虑如何进行设计。

2.总体设计

最初的整体规划只是说明它们的可行性,不要求制定函数的具体实现,甚至不需要考虑函数原型。

完成整体规划后,可以按照流程描述各个模块之间的接口功能。

本课程设计对模块设计的要求如下:

●要求使用对文件方式实现设计;

●要求在各个文件内实现结构化设计;

●每个模块作为一个单独的C文件,每个文件内的函数如表12—1所示,表中给出了各个函数的功能说明;

●宏和数据结构等放在头文件中,并使用条件编译。

本设计由5个C文件(17个函数)和一个头文件组成,每个C文件都代表着某种特定的功能,它们的关系如表12-1所示。

本章的设计将更加注意模块化,以便展示C语言的编程风格。

程序包含文件的存、取过程。

它的功能就是按输入顺序建立记录。

如果原来没有记录文件,可以重新建立一个文件;

如果已经有记录,可以先把文件内容读入,然后把新记录追加到原来记录的尾部;

也可以单独建立新文件,以后再使用读取文件的方法拼装。

由上述功能缝隙可以看到它的全貌。

因为它有并列选择,所以可以用选择菜单方面地实现。

这个菜单具有10个选择项,用switch语句可以实现这些选择。

可以用简洁的伪码对它们进行描述,因为并不复杂,所以不再赘述。

 

源文件

函数名或其他成分

功能

student.c

add_disp.c

main

总控函数

menu_select

菜单选择

handle_menu

菜单处理

newRecords

新建学生信息记录

quit

结束运行

que_remv_modi.c

showTable

打印表头

getIndex

按升序排序的位置

addRecord

在表尾追加信息

display

显示信息

save_load

removeRecord

删除指定的记录

findRecord

查找指定的记录

queryInfo

查询指定学生的信息

copyRecord

复制记录

modifyRecord

修改指定学生的信息

sort.c

sortInfo

排序

student.h

常数

提供常数

结构声明

学生成绩结构

库函数及函数原型声明

引用库函数及函数

3.函数设计

为一些函数设计两个返回值以区分其执行结果是否正确。

每个学生信息资料用一个StuInfo结构来保存,用StuInfo数组全局变脸records来保存一批学生的信息资料。

其中的宏定义表示数组初始大小。

测试示例

设计者制定详细的测试计划,然后根据测试计划设计测试用例,对程序进行彻底测试,程序设置的课程为

char*subject[]={”语文”、”数学”、”英语”、”物理”、”化学”};

可以修改课程名称和树木。

这里减少科目以加快测试,即通过语句

#defineNUM_SUMJECT2

选取两门课程。

由于跟踪测试的结果过多,这里只举几个例子,简介针对程序功能进行测试的方法

菜单项及空表和空文件测试

在没有产生文件之前,对需要用到的菜单进行选择,看它们是否满足要求。

*************************

*这是一个*

*学生成绩管理程序*

*可以对学生成绩进行管理*

*欢迎使用管理程序*

1.增加学生信息

2.修改学生信息

3.显示学生信息

4.查询学生信息

5.删除学生信息

6.对学生信息进行排序

7.保存学生信息至记录文件

2.源程序:

#include<

stdio.h>

string.h>

/*定义学生结构体*/

structStudent

{

charID[20];

charName[20];

floatMark1;

floatMark2;

floatMark3;

floatAverage;

};

/*声明学生数组及学生数量*/

structStudentstudents[1000];

intnum;

/*求平均值*/

floatAvg(structStudentstu)

return(stu.Mark1+stu.Mark2+stu.Mark3)/3;

}

/*通过学号返回数组下标*/

intStudent_SearchByIndex(charid[])

inti;

for(i=0;

i<

num;

i++)

{

if(strcmp(students[i].ID,id)==0)

returni;

}

return-1;

/*通过姓名返回数组下标*/

intStudent_SearchByName(charname[])

if(strcmp(students[i].Name,name)==0)

/*显示单条学生记录*/

voidStudent_DisplaySingle(intindex)

printf("

%10s%10s%8s%8s%8s%10s\n"

"

学号"

姓名"

语文"

数学"

英语"

平均成绩"

);

-------------------------------------------------------------\n"

%10s%10s%8.2f%8.2f%8.2f%10.2f\n"

students[index].ID,students[index].Name,

students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);

/*插入学生信息*/

voidStudent_Insert()

while

(1)

请输入学号:

"

scanf("

%s"

&

students[num].ID);

getchar();

请输入姓名:

students[num].Name);

语文:

%f"

students[num].Mark1);

数学:

students[num].Mark2);

英语:

students[num].Mark3);

students[num].Average=Avg(students[num]);

num++;

是否继续?

(y/n)"

if(getchar()=='

n'

break;

/*修改学生信息*/

voidStudent_Modify()

floatmark1,mark2,mark3;

charid[20];

intindex;

请输入要修改的学生的学号:

id);

index=Student_SearchByIndex(id);

if(index==-1)

学生不存在!

\n"

else

你要修改的学生信息为:

Student_DisplaySingle(index);

--请输入新值--\n"

students[index].ID);

students[index].Name);

students[index].Mark1);

students[index].Mark2);

getchar

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

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1