实验项目指导书Word文件下载.docx

上传人:b****6 文档编号:20877341 上传时间:2023-01-26 格式:DOCX 页数:19 大小:110.37KB
下载 相关 举报
实验项目指导书Word文件下载.docx_第1页
第1页 / 共19页
实验项目指导书Word文件下载.docx_第2页
第2页 / 共19页
实验项目指导书Word文件下载.docx_第3页
第3页 / 共19页
实验项目指导书Word文件下载.docx_第4页
第4页 / 共19页
实验项目指导书Word文件下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

实验项目指导书Word文件下载.docx

《实验项目指导书Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验项目指导书Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。

实验项目指导书Word文件下载.docx

(2)显示记录

(3)按学号排序记录

(4)输出统计信息:

总记录数、最高分、最低分及平均分

(5)从文件读取记录

(6)将记录写入文件

4.实验步骤

4.1分析问题

从题目要求可知,每个学生的记录包括下面3个属性:

学号、姓名和成绩。

每个属性需要用不同的数据类型表示,学号可以用整数表示,也可以用字符串表示,本题用字符串表示,姓名必须用字符串表示,成绩可用整数表示。

所以每个学生的记录可用一个结构体表示:

structstudent

{charnum[10];

charname[20];

intscore;

}

所有学生的记录用一个结构体数组表示。

从题目所要求的功能看,可编写六个函数分别完成相应的功能,如图1所示:

图1

根据以上分析,程序设计步骤如下:

(1)编写主函数,由主函数调用其它函数。

(2)编写输入记录的函数。

(3)编写显示记录的函数。

(4)编写记录排序的函数。

(5)编写统计数据函数。

(6)编写从文件读取记录函数。

(7)编写将记录写入文件函数。

4.2编写主函数

1.编写主函数main

为了使程序即能在TC2.0环境运行,又能在VC++6.0环境下运行,提示信息用英文表示。

主函数运行时,首先在屏幕上显示如下提示(菜单):

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

Students'

scoremanagementsystem

1.Inputrecords

2.Displayallrecords

3.Sortbynumber

4.Statistic

5.ReadfromaTextFile

6.WritetoaTextfile

0.Exit

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

Inputyourchoice(0-9):

程序根据用户输入的选择(0—9)调用相应的函数。

程序如下:

#include<

stdio.h>

stdlib.h>

string.h>

/*定义结构体类型STU*/

typedefstruct

/*学号*/

/*姓名*/

intscore;

/*成绩*/

}STU;

STUstu[80];

/*定义结构体数组*/

/*输入记录函数Input*/

/*显示记录函数Display*/

/*记录排序函数Sort_by_num*/

/*统计数据函数Statistic*/

/*从文件读记录函数Read_from_file*/

/*向文件写记录函数Write_to_file*/

voidmain()/*主函数*/

{intn=0;

/*存放记录个数*/

charc;

/*存放用户选择的数字字符*/

for(;

;

{do{

system("

cls"

);

/*清屏幕函数*/

printf("

*****************************************\n"

Students'

scoremanagementsystem\n"

1.Inputrecords\n"

2.Displayallrecords\n"

3.Sortbynumber\n"

4.Statistic\n"

5.ReadfromaTextFile\n"

6.WritetoaTextfile\n"

0.Exit\n"

"

c=getchar();

}while(c<

'

0'

||c>

9'

/*若输入的不是数字字符,则重新输入*/

switch(c)

{case'

1'

:

InputRecords\n"

/*输入若干条记录*/

/*调用输入记录函数*/

pause"

break;

case'

2'

DisplayAllRecords\n"

/*显示所有记录*/

/*调用显示记录函数*/

case'

3'

Sort\n"

/*调用排序函数*/

SortSucceeded!

\n"

4'

Statistic\n"

/*调用统计数据函数*/

5'

Readfromafile\n"

/*调用读文件函数*/

6'

WritetoaTextfile\n"

/*调用写文件函数*/

HaveaGoodLuck,Bye-bye!

/*结束程序*/

exit(0);

}

2.调试主函数

将上述程序在TC2.0环境下进行调试运行。

程序运行后,屏幕显示如图2所示的主菜单选项:

图2

输入1并按回车键后,屏幕显示如图3所示:

图3

按任意键后,回到主菜单,如图2所示。

输入2并按回车键后,屏幕显示如图4所示:

图4

输入3并按回车键后,屏幕显示如图5所示:

图5

输入4并按回车键后,屏幕显示如图6所示:

图6

输入5并按回车键后,屏幕显示如图7所示:

图7

输入6并按回车键后,屏幕显示如图8所示:

图8

输入0并按回车键后,屏幕显示如图9所示:

图9

按任意键后,退出程序。

4.3编写输入记录函数

1.编写输入记录函数Input

函数编写如下:

/*Input函数

功能:

输入若干个记录。

参数:

从结构体数组元素stu[n]开始输入,n表示原有记录个数。

返回值:

输入的记录个数。

*/

intInput(STUstu[],intn)

{inti=0;

/*统计输入记录的个数*/

charsign;

/*存放用户输入的选择Y/N*/

charx[10];

/*x[10]为清除多余的数据所用*/

while(sign!

='

n'

&

sign!

N'

{printf("

student'

snum:

scanf("

%s"

stu[n+i].num);

sname:

stu[n+i].name);

sscore:

%d"

&

stu[n+i].score);

gets(x);

/*清除多余的输入*/

anymorerecords?

(Y/N)"

/*选Y输入下一个记录,选N输入结束*/

%c"

sign);

i++;

return(n+i);

2.调试程序

(1)将输入记录函数Input插入到main函数前的注释部分

处。

(2)在main函数中的switch语句中的注释部分

/*调用输入记录函数*/

处插入语句

n=Input(stu,n);

(3)程序运行结果如图10所示。

图10

按任意键后,返回主菜单,如图2所示。

4.4编写显示记录函数

1.编写显示记录函数Display

/*Display函数

显示记录

从结构体数组元素stu[0]开始输出n个记录

voidDisplay(STUstu[],intn)

{inti;

%-15s%-15s%-15s\n"

"

number"

name"

score"

for(i=0;

i<

n;

i++)

%-15s%-15s%-15d\n"

stu[i].num,stu[i].name,stu[i].score);

if(i>

0&

i%20==0)system("

/*每输出20个记录暂停*/

(1)将显示记录函数Display插入到main函数前的注释部分

/*调用显示记录函数*/

Display(stu,n);

(3)程序运行后,按图10所示输入3个记录,按任意键后,返回主菜单。

当输入2后,屏幕显示结果如图11所示。

图11

4.5编写排序函数

1.编写排序函数Sort_by_num

/*Sort_by_num函数

按学号排序

对结构体数组stu的前n个元素排序

voidSort_by_num(STU*stu,intn)

{inti,j;

STUtemp;

n-1;

i++)/*冒泡法排序*/

for(j=0;

j<

n-1-i;

j++)

if(strcmp(stu[j].num,stu[j+1].num)>

0)

{temp=stu[j];

stu[j]=stu[j+1];

stu[j+1]=temp;

(1)将排序函数Sort_by_num插入到main函数前的注释部分

/*调用排序函数*/

Sort_by_num(stu,n);

当输入3后,屏幕显示结果如图12所示。

图12

再输入2,屏幕显示如图13所示。

图13

4.6编写统计数据函数

1.编写统计数据函数Statistic

/*Statistic函数

输出统计信息:

统计结构体数组stu的前n个记录

voidStatistic(STUstu[],intn)

{inti,j=0,k=0,sum=0;

floataver;

i++)

{sum+=stu[i].score;

if(stu[j].score>

stu[i].score)j=i;

if(stu[k].score<

stu[i].score)k=i;

aver=1.0*sum/n;

thereare%drecords.\n"

n);

/*总记录数*/

thehignestscore:

/*最高分*/

number:

%sname:

%sscore:

%d\n"

stu[k].num,stu[k].name,stu[k].score);

thelowestscore:

/*最低分*/

stu[j].num,stu[j].name,stu[j].score);

theaveragescoreis%5.2f\n"

aver);

/*平均分*/

(1)将统计数据函数Statistic插入到main函数前的注释部分

/*调用统计数据函数*/

Statistic(stu,n);

当输入4后,屏幕显示结果如图14所示。

图14

4.7编写向文件中写记录函数

1.编写向文件中写记录函数Write_to_file

/*Write_to_file函数

将记录写入文件

将数组stu的前n个记录写入文件

voidWrite_to_file(STUstu[],intn)

FILE*fp;

/*定义文件指针*/

charfilename[20];

/*定义文件名*/

WriteRecordstoaTextFile\n"

/*输入文件名*/

Inputthefilename:

filename);

if((fp=fopen(filename,"

w"

))==NULL)/*打开文件*/

cann'

topenthefile\n"

return;

fprintf(fp,"

/*写入记录个数*/

while(i<

n)

{fprintf(fp,"

%-16s%-15s%d\n"

fclose(fp);

/*关闭文件*/

Successed!

/*返回成功信息*/

(1)将向文件中写记录函数Write_to_file插入到main函数前的注释部分

/*调用写文件函数*/

Write_to_file(stu,n);

当输入6后,屏幕提示输入存放数据的文件名,如输入student,并按回车,屏幕显示结果如图15所示。

图15

4.8编写从文件中读记录函数

1.编写从文件中读记录函数Read_from_file

/*Read_from_file函数

从文件中读取数据

从数组元素stu[n]开始输入

记录个数

intRead_from_file(STUstu[],intn)

{inti=0,num;

/*定义文件指针*/

/*定义文件名*/

/*输入文件名*/

r"

))==NULL)/*打开文件*/

/*打开失败信息*/

system("

return(n);

}

fscanf(fp,"

num);

/*读入总的记录个数*/

num)

{fscanf(fp,"

%s%s%d"

stu[n+i].num,stu[n+i].name,&

n+=num;

/*关闭文件*/

(1)将从文件中读记录函数Read_from_file插入到main函数前的注释部分

/*调用读文件函数*/

n=Read_from_file(stu,n);

(3)程序运行后,出现主菜单。

当输入5后,屏幕出现提示信息:

输入文件名,如输入文件名student,并按回车后,屏幕显示结果如图16所示。

图16

至此,整个程序输入并调试完毕。

5.功能扩充

同学们可在上述实验的基础上进行修改和功能扩充。

例如:

(1)编写函数,其功能是删除用户指定的记录。

(2)编写函数,其功能是查找某记录。

(3)编写函数,其功能是按成绩排序。

以及其它功能。

本例采用静态结构体数组存放学生记录,其优点是程序设计简单,思路清楚,容易实现,缺点是数组的大小是在程序中固定的,要想改变大小,就要改写程序。

如果用链表存放学生记录,则灵活性较大,通用性强,学生可尝试用动态链表方式编写学生成绩管理程序。

6.撰写实验报告

学生做完该实验后要撰写实验报告,其格式如下:

计算机程序设计基础(C)实验报告

实验名称

一个小型软件的设计与实现

学院

专业班级

姓名

学号

任课教师

实验时间

一、实验目的

二、实验内容

三、设计方法

四、源程序

五、测试数据

六、实验心得

七、教师评语

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

当前位置:首页 > 小学教育 > 语文

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

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