C语言程序设计原理和实践书中例子

C语言程序设计原理和实践书中例子,第1张

你的错误类型是:vc.cpp(1)

:

error

C2018:

unknown

character

'0xa1'derror

C2006:

#include

expected

a

filename,

found

'identifier'd:\cvc.cpp(5)

:

error

C2065:

'cout'

:

undeclared

identifierd:\c\vc.cpp(5)

:

error

C2297:

'<<'

:

illegal,

right

operand

has

type

'char

[52]'d:

error

C2297:

'<<'

:

illegal,

right

operand

has

type

'char

error

C2146:

syntax

error

:

missing

''

before

identifier

'first_name'd分别把他们复制到百度里收索一下,然后看看翻译和别人的问题,然后把自己的程序分析一下,会不会有同样的问题,有的话就解决了…,我平时出错都是这么解决的。

c程序设计方法包括三个基本步骤:

第一步二分析问题.

第二步画出程序的基本轮廓.

第三步:实现该程序.(1)编写程序(2)测试和调试程序(3)提供数据打印结果.

这个也不是很全,但是大体功能有了,你改进一下嘛,我运行过的可以!

希望对你有所帮助!

#include <stdio.h>

#include <stdlib.h>

#define SIZE 10 /*定义常量SIZE便于以后的修改*/

struct student /*定义一个结构体数组存放学生的信息*/

{

int number/*学号*/

char name[20]/*名字*/

float score[3]/*分数*/

float average/*平均分*/

}stu[SIZE]

void menu()/*调用菜单函数*/

void write()/*读入信息*/

void save()/*保存stud.dat文件函数*/

void open()/*检查是否正确保存*/

void inturn (struct student c[])/*用于对学生的信息按平均分排序的函数*/

void save2()/*将排序后的信息存入studsort.dat文件中*/

void read()/*读取studsort.dat文件文件中第2 4 6 8 10个学生的信息*/

void main()

{

int choice/*用户选择变量*/

printf("*******************************************************************************\n")

printf("* *\n")

printf("* Hwadee&学生成绩文件管理& Hwadee *\n")

printf("* *\n")

printf("*******************************************************************************\n\n\n")

printf("******************************●●欢迎使用●●*********************************")

system("pause")

while (1)

{

menu()/*调用菜单函数形成 *** 作界面*/

printf("请选择:\t")

scanf("%d", &choice)

if ( choice == 0 )

{

system("cls")

printf("\n\n\t\t\t\t谢谢使用!!!\n\n\t\t\t\t\t\t\t\t指导老师: 梁凯\n\n\t\t\t\t\t\t\t\t 学生:万超\n")

break

}

switch(choice) /*多重选择实现功能不同的功能*/

{

case 1:

write()

break

case 2:

system("cls")

save()

break

case 3:

system("pause")

system("cls")

open()

break

case 4:

system("cls")

printf("排序前的学生信息:\n")

open()

inturn(stu)

save2()

break

case 5:

system("cls")

read()

break

default:

printf("\n无此项功能!\n请重新输入\n")

}

}

}

void menu()

{

printf("\n1*****输入学生信息\t\t2*****将信息存入文件stud.dat中\n")

printf("3*****检查文件数据\t\t4*****将学生信息排序并存入文件studsort.dat中\n")

printf("5*****读取文件studsort.dat中的第 2 4 6 8 10个学生的信息\n")

printf("0*****退出系统\n\n\n")

}

/**********************************************************************\

函数名称:

write

功能描述:

完成将学生信息写入

函数参数:

i stu

返回值:

模块历史:

\*********************************************************************/

void write()

{

int i/*计数变量*/

stu[i].average = 0/*初始化结构体成员 average*/

printf("请你输入学生的信息\n")

printf("学号\t姓名\t语文\t数学\t英语\t\n")

for (i=0i<SIZEi++)

{

scanf("%d\t",&stu[i].number)

if (stu[i].number == 0)/*不需输入信息时输入0即可*/

break

scanf("%s\t%f\t%f\t%f",&stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2])

stu[i].average = (stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3/*计算平均成绩*/

}

}

/**********************************************************************\

函数名称:

save

功能描述:

将写入的信息读入文件中

函数参数:

FILE *fp i

返回值:

模块历史:

\*********************************************************************/

void save()

{

FILE *fp/*定义文件指针用于向文件读入数据*/

int i

if ((fp=fopen("stud.dat","wb")) == NULL)

{

printf("cannot open file\n")

return

}

for (i=0i<SIZEi++)

if (fwrite(&stu[i],sizeof(struct student),1,fp) != 1)

printf("file write error\n")

fclose(fp)

printf("\n信息保存成功!恭喜!!\n\n")

}

/**********************************************************************\

函数名称:

open

功能描述:

用于检查读入文件的数据是否正确

函数参数:

FILE *cp i

返回值:

模块历史:

\*********************************************************************/

void open()

{

int i

FILE *cp

cp = fopen ("stud.dat","rb")

printf("保存在stud.dat文件中的信息:\n\n")

printf("学号\t姓名\t数学\t语文\t英语\t平均分\n\n")

for (i=0i<SIZEi++)

{

fread(&stu[i],sizeof(struct student),1,cp)

printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n\n\n",stu[i].number, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].average )

}

fclose (cp)

}

/**********************************************************************\

函数名称:

inturn

功能描述:

用于对结构体数组中的元素排序

函数参数:

into i,j,k

struct student temp

返回值:

模块历史:

\*********************************************************************/

void inturn(struct student m[])

{

int i,j,k/*计数变量*/

struct student temp/*中间变量 类型为结构体*/

for(i=0i<SIZE-1i++) /*运用冒泡排序对结构体数组进行排序*/

for (j=i+1j<SIZEj++)

{

if( m[i].average <m[j].average )

{

temp = m[i]

m[i] = m[j]

m[j] = temp

}

}

printf("\n排序后的学生信息:\n\n")

printf(" 学号\t姓名\t数学\t语文\t英语\t平均分\n")

for (i=0i<SIZEi++)

{

printf("第%d名 %d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n\n\n",i+1, stu[i].number, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].average )

}/*输出排序后的学生信息*/

}

/**********************************************************************\

函数名称:

save2

功能描述:

将排序后的学生信息读入到另外的文件中

函数参数:

FILE *mp

i

返回值:

模块历史:

\*********************************************************************/

void save2()

{

FILE *mp

int i

if ((mp=fopen("studsort.dat","wb"))==NULL)

{

printf("cannot open file\n")

return

}

for (i=0i<SIZEi++)

if (fwrite(&stu[i], sizeof(struct student), 1, mp) != 1)

printf("file write error\n")

fclose(mp)/*读取完毕关闭文件*/

}

/**********************************************************************\

函数名称:

read

功能描述:

读出另外文件中的信息

函数参数:

FILE *tp

i

返回值:

模块历史:

\*********************************************************************/

void read()

{

int i=1

FILE *tp

tp = fopen ("studsort.dat", "rb" )

printf("studsort.dat文件中偶数号码学生的信息如下:\n\n")

printf("学号\t姓名\t数学\t语文\t英语\t平均分\n\n")

for (i = 1i<SIZEi += 2)

{

fseek(tp,i*sizeof(struct student),0)/*fseek函数可以根据用户所需对文件开头的偏移量来读取文件的数据。

k*sizeof(struct student)是指将位置指针移到当前位置k个字节处*/

fread(&stu[i],sizeof(struct student),1,tp)

/*注意:必须使用fseek函数定位后才能根据自己所需读出数据,但是只用fseek函数不用fread,

只是把数据打印到屏幕上而并没有从文件中读取。这是一个常见性问题*/

printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\n", stu[i].number, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].average )

}

fclose (tp)/*读取完毕关闭文件*/

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11076480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存