问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...modify实现对学生成绩记录的删除、添加和修改。程序的开头如下...

发布网友 发布时间:2024-04-08 23:52

我来回答

3个回答

热心网友 时间:2024-04-25 06:56

#include <time.h>

#include<stdio.h>

#include<conio.h>

#include <stdlib.h>

#include<string.h>

#define MAX 80

void input();

void sort();

void display();

void insert();

void del();

void average();

void find();

void save();

void read()();

void del_file();

void average();

void modify();

int now_no=0;

struct student

{

int no;

char name[20];

char sex[4];

float score1;

float score2;

float score3;

float sort;

float ave;

float sum;

};

struct student stu[MAX],*p;

main()/*主函数*/

{

int as;

start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n");

/*一下为功能选择模块*/

do

{

printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.修改学员信息\n\t\t\t\t7.查询学员信息\n\t\t\t\t8.从文件读入学员信息\n\t\t\t\t9.删除文件中学员信息\n\t\t\t\t10.保存学员信息\n\t\t\t\t11.退出\n");

printf("\t\t\t\t选择功能选项:");

fflush(stdin);

scanf("%d",&as);

switch(as)

{

case 1:system("cls");input();break;

case 2:system("cls");display();break;

case 3:system("cls");sort();break;

case 4:system("cls");insert();break;

case 5:system("cls");del();break;

case 6:system("cls");modify();break;

case 7:system("cls");find();break;

case 8:system("cls");read();break;

case 9:system("cls");del_file();break;

case 10:system("cls");save();break;

case 11:system("exit");exit(0);

default:system("cls");goto start;

}

}while(1);

/*至此功能选择结束*/

void del(void)

{

FILE *fp;

char a[10];

char ch;

int i,j,k;

system("cls");

printf("请输入要删除的学生姓名:");

scanf("%s",a);

system("cls");

fp=fopen("F:\\x.txt","r");

for(i=0;i<count;i++)//找到删除人所在的位置

{

fscanf(fp,"%s %d %d %d %d\n",s[i].name,&s[i].no,&s[i].score1,&s[i].score2,&s[i].score3);

if(!strcmp(s[i].name ,a))

{

printf("\t\t姓名 %s 学号 %d 成绩1 %d 成绩2 %d 成绩3 %d\n",s[i].name ,s[i].no ,s[i].score1 ,s[i].score2 ,s[i].score3 );

printf(" \t\t\t该同学的信息已成功删除!\n");

printf("\n");

break;

}

}

fclose(fp);

if(i==count)

{

printf("\t\t很抱歉,没有您所要查找的同学记录!\n");

printf("\n");

}

else

{

for(j=i;j<count-1;j++)

{

for(k=0;k<10;k++)

{

s[j].name[k]=s[j+1].name[k];

}

s[j].no=s[j+1].no;

s[j].score1=s[j+1].score1;s[j].score2=s[j+1].score2;s[j].score3=s[j+1].score3;

}

fp=fopen("F:\\x.txt","w");

fclose(fp);

fp=fopen("F:\\x.txt","a");

for(j=0;j<2;j++)

{

fprintf(fp,"%s %d %d %d %d\n",s[j].name,s[j].no,s[j].score1,s[j].score2,s[j].score3);

}

fclose(fp);

}

count=count-1;

}

扩展资料:

在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。 

C++提供了许多种基本的数据类型(如int、float、double、char等)供用户使用。但是由于程序需要处理的问题往往比较复杂,而且呈多样化,已有的数据类型显得不能满足使用要求。因此C++允许用户根据需要自己声明一些类型,用户可以自己声明的类型还有结构体类型(structure)、共用体类型(union)、枚举类型(enumeration)、类类型(class )等,这些统称为用户自定义类型(user-defined type,UDT)。

参考资料来源:百度百科-结构体类型

热心网友 时间:2024-04-25 06:56

有邮箱吗?,代码有点长,我整个程序发给你吧..

热心网友 时间:2024-04-25 06:57

#include <time.h>
#include<stdio.h>
#include<conio.h>
#include <stdlib.h>
#include<string.h>
#define MAX 80
void input();
void sort();
void display();
void insert();
void del();
void average();
void find();
void save();
void read();
void del_file();
void average();
void modify();
int now_no=0;
struct student
{
int no;
char name[20];
char sex[4];
float score1;
float score2;
float score3;
float sort;
float ave;
float sum;
};
struct student stu[MAX],*p;
main()/*主函数*/
{
int as;
start: printf("\n\t\t\t欢迎使用学生成绩管理系统\n");
/*一下为功能选择模块*/
do
{
printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.添加学员信息\n\t\t\t\t5.删除学员信息\n\t\t\t\t6.修改学员信息\n\t\t\t\t7.查询学员信息\n\t\t\t\t8.从文件读入学员信息\n\t\t\t\t9.删除文件中学员信息\n\t\t\t\t10.保存学员信息\n\t\t\t\t11.退出\n");
printf("\t\t\t\t选择功能选项:");
fflush(stdin);
scanf("%d",&as);
switch(as)
{
case 1:system("cls");input();break;
case 2:system("cls");display();break;
case 3:system("cls");sort();break;
case 4:system("cls");insert();break;
case 5:system("cls");del();break;
case 6:system("cls");modify();break;
case 7:system("cls");find();break;
case 8:system("cls");read();break;
case 9:system("cls");del_file();break;
case 10:system("cls");save();break;
case 11:system("exit");exit(0);
default:system("cls");goto start;
}
}while(1);
/*至此功能选择结束*/
}
void input()/*原始数据录入模块*/
{
int i=0;
char ch;
do
{
printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);
printf("\n输入学生编号:");
scanf("%d",&stu[i].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[i].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
i++;
now_no=i;
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
system("cls");
}
void sort()/*排序数据函数*/
{
struct student temp;
int i,j;
average();
for(i=1;i<now_no;i++)
{
for(j=1;j<=now_no-i;j++)
{
if(stu[j-1].ave<stu[j].ave)
{
temp=stu[j];
stu[j]=stu[j-1];
stu[j-1]=temp;
}
}
}
}
void display()/*显示数据函数*/
{
int i;
char as;
average();
do
{
printf("\t\t\t班级学员信息列表\n");
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
for(i=0;i<now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void insert()/*插入数据函数*/
{
char ch;
do
{
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
scanf("%d",&stu[now_no].no);
fflush(stdin);
printf("\n输入学员姓名:");
fflush(stdin);
gets(stu[now_no].name);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[now_no].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[now_no].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[now_no].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[now_no].score3);
printf("\n\n");
now_no=now_no+1;
sort();
printf("是否继续输入?(Y/N)");
fflush(stdin);
ch=getch();
system("cls");
}
while(ch!='n'&&ch!='N');
}
void del()/*删除数据函数*/
{
int inum,i,j;
printf("输入要删除学员的编号:");
fflush(stdin);
scanf("%d",&inum);
for(i=0;i<now_no;i++)
{
if(stu[i].no==inum)
{
if(i==now_no)now_no-=1;
else
{
stu[i]=stu[now_no-1];
now_no-=1;
}
sort();
break;
}
}
system("cls");
}
void save()/*保存数据函数*/
{
FILE *fp;
int i;
char filepath[20];
printf("输入要保存的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"w"))==NULL)
{
printf("\n保存失败!");
exit(0);
}
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
fprintf(fp,"\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
fclose(fp);
printf("学生信息已保存在%s中!\n",filepath);
system("pause");
system("cls");
}
void find()/*查询函数*/
{
int i;
char str[20],as;
do
{
printf("输入要查询的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");
printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);
}
printf("\t\t按任意键返回主菜单.");
fflush(stdin);
as=getch();
}
while(!as);
system("cls");
}
void average()/*求平均数*/
{
int i;
for(i=0;i<now_no;i++)
{
stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;
stu[i].ave=stu[i].sum/3;
}
}
void modify()/*修改数据函数*/
{
int i;
char str[20],as;
printf("输入要修改的学生姓名:");
fflush(stdin);
gets(str);
for(i=0;i<now_no;i++)
if(!strcmp(stu[i].name,str))
{
system("cls");
printf("\n\t\t输入新插入学员队信息\n");
printf("\n输入学生编号:");
fflush(stdin);
scanf("%d",&stu[i].no);
printf("\n输入学员性别:");
fflush(stdin);
gets(stu[i].sex);
printf("\n输入学员成绩1:");
fflush(stdin);
scanf("%f",&stu[i].score1);
printf("\n输入学员成绩2:");
fflush(stdin);
scanf("%f",&stu[i].score2);
printf("\n输入学员成绩3:");
fflush(stdin);
scanf("%f",&stu[i].score3);
printf("\n\n");
sort();
break;
}
system("cls");
}

void read()
{
FILE *fp;
int i;
char filepath[20];
printf("输入要读入的文件路径:");
fflush(stdin);
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("找不到%s文件!\n",filepath);
system("pause");
exit(0);
}
now_no=0;
for(i=0;i<MAX&&!feof(fp);i++)
{
fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu[i].no,stu[i].name,stu[i].sex,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].ave);
now_no++;
}
fclose(fp);
printf("保存的在文件%s中的所有信息已经读入!\n",filepath);
system("pause");
system("cls");
}

void del_file()
{
FILE *fp;
char filepath[20];
printf("输入要删除的文件路径:");
fflush(stdin);
gets(filepath);
fp=fopen(filepath,"w");
fclose(fp);
printf("保存的在文件%s中的所有信息已经删除!\n",filepath);
system("pause");
system("cls");
}

自己改改就好了 谢谢 给分哦
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
沈阳到哪需要四个火小时呢?辽宁本省内 安全员能上正在搭设的外架吗 壁挂炉取暖的日费用是多少? 用壁挂炉取暖一天需要多少钱 海淀民政局周六日休息吗 漳州荔枝海公园内有近3万株荔枝树,枝繁叶茂、翠绿欲滴,有乌叶、兰竹... 永茂荔枝花园楼盘概况 外甥女的生日红包应该多少合适? 挂车爆胎轮胎放外面轮毂放里面为什么? 刷完白球鞋晒干上面有黄色的“污渍”,怎样才能不出现这种情况 船舶怎么读船舶如何读 VB6如何判断两个字符串是否一致? vb字符串判断程序,如果相同则输出结果,否则判断下一个字符串是否相同... 演员陈数拒绝影视剧拍摄邀约,是自毁前程吗?来听听她自己如何说 住在上海绕城高速附近吵不吵 离高速120米吵吗 肥胖程度怎么分辨呢? 判断汽车机油质量好坏的方法 怎么分辨机油好坏 如何辨别机油的质量 如何判断机油的好坏 月经正常5干净后,却还有微量血丝 苏州幼师工资一般一个月多少钱? 俞万春的《荡寇志》对梁山好汉的态度究竟是恶意诋毁还是明贬实褒? 华为手机接电话为什么老是黑屏呢? 有凹凸不平的玻璃做成的镜子照起来奇形怪状引人发笑这种镜子叫什么_百 ... ...换一个角度是一个图,换一个角度又是另一个图,上面凹凸不平... 追问,我点痣后痂掉了两天了,那现在这样脸可以用洗面奶或者清水好好的... 苹果怎么设置屏幕时间位置 苹果手机屏幕上显示时间的位置怎么调整? 名侦探柯南里柯南生病和工藤有希子出现的是哪一集 高中化学的无机计算题 计算时一般有哪些技巧,或者怎样才能不怕它们... 宁阳县东城紫郡属于哪个社区 天鹅飞去鸟不归,回峰山中我独醉,良辰美景斜眼看,孤独寂寞深深埋,日夜花 ... 电影频道年初几放《画皮〉? 今年电影频道初二演啥 电影频道正月初一、初二、初三、初四、初五晚各有那些电影上映? 请问电影频道大年初一至十五晚上七点三十五分会放那些电影? 九十年代还是两千年初的时候电影频道播过一个电影,这个家里省的一直... 吃羊肉拉肚子怎么回事 吃羊肉拉肚子是什么原因引起的 关于华东石油大学? 东营 石油大学东,西,南,北门 各对着哪条路? 东营市石油大学北门有摄像头吗 请问中国石油大学(东营)附近的宾馆,招待所? 山东东营还有石油大学校区吗现在 山东中烟工业有限责任公司滕州卷烟厂电话是多少? 山东中烟工业公司在济南哪个区? 觉得一起很累,看不到未来。是我提的分手,分手后一个星期左右,我几乎每 ... 描述喜欢扎头发的女孩句子 南京江心洲人口收入 中州煤炭是什么期刊 手机喇叭是怎么工作的?