十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
创新互联网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了成都做网站、成都网站建设、成都外贸网站建设,成都网站设计,1元广告,成都做网站选创新互联,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。
#include string.h
#include ctype.h
#include stdlib.h
#define STU_NUM 40 /* 最多的学生人数 */
#define COURSE_NUM 10 /* 最多的考试科目 */
struct student
{
int number; /* 每个学生的学号 */
char name[10]; /* 每个学生的姓名 */
int score[COURSE_NUM]; /* 每个学生M门功课的成绩 */
int sum; /* 每个学生的总成绩 */
float average; /* 每个学生的平均成绩 */
};
typedef struct student STU;
/* 函数功能: 向链表的末尾添加从键盘输入学生的学号、姓名和成绩等信息
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量n,表示学生人数
整型变量m,表示考试科目
函数返回值: 无
*/
void AppendScore(STU *head, int n, int m)
{
int j;
STU *p;
for (p=head; phead+n; p++)
{
printf("\nInput number:");
scanf("%d", p-number);
printf("Input name:");
scanf("%s", p-name);
for (j=0; jm; j++)
{
printf("Input score%d:", j+1);
scanf("%d", p-score+j);
}
}
}
/* 函数功能: 打印n个学生的学号、姓名和成绩等信息
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量n,表示学生人数
整型变量m,表示考试科目
函数返回值: 无
*/
void PrintScore(STU *head, int n, int m)
{
STU *p;
int i;
char str[100] = {'\0'}, temp[3];
strcat(str, "Number Name ");
for (i=1; i=m; i++)
{
strcat(str, "Score");
itoa(i,temp, 10);
strcat(str, temp);
strcat(str, " ");
}
strcat(str," sum average");
printf("%s", str); /* 打印表头 */
for (p=head; phead+n; p++) /* 打印n个学生的信息 */
{
printf("\nNo.%3d%8s", p-number, p-name);
for (i=0; im; i++)
{
printf("%7d", p-score[i]);
}
printf("%11d%9.2f\n", p-sum, p-average);
}
}
/* 函数功能: 计算每个学生的m门功课的总成绩和平均成绩
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量n,表示学生人数
整型变量m,表示考试科目
函数返回值: 无
*/
void TotalScore(STU *head, int n, int m)
{
STU *p;
int i;
for (p=head; phead+n; p++)
{
p-sum = 0;
for (i=0; im; i++)
{
p-sum = p-sum + p-score[i];
}
p-average = (float)p-sum / m;
}
}
/* 函数功能: 用选择法按总成绩由高到低排序
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量n,表示学生人数
函数返回值: 无
*/
void SortScore(STU *head, int n)
{
int i, j, k;
STU temp;
for (i=0; in-1; i++)
{
k = i;
for (j=i; jn; j++)
{
if ((head+j)-sum (head+k)-sum)
{
k = j;
}
}
if (k != i)
{
temp = *(head+k);
*(head+k) = *(head+i);
*(head+i) = temp;
}
}
}
/* 函数功能: 查找学生的学号
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量num,表示要查找的学号
整型变量n,表示学生人数
函数返回值: 如果找到学号,则返回它在结构体数组中的位置,否则返回-1
*/
int SearchNum(STU *head, int num, int n)
{
int i;
for (i=0; in; i++)
{
if ((head+i)-number == num) return i;
}
return -1;
}
/* 函数功能: 按学号查找学生成绩并显示查找结果
函数参数: 结构体指针head,指向存储学生信息的结构体数组的首地址
整型变量n,表示学生人数
整型变量m,表示考试科目
函数返回值: 无
*/
void SearchScore(STU *head, int n, int m)
{
int number, findNo;
printf("Please Input the number you want to search:");
scanf("%d", number);
findNo = SearchNum(head, number, n);
if (findNo == -1)
{
printf("\nNot found!\n");
}
else
{
PrintScore(head+findNo, 1, m);
}
}
/* 函数功能: 显示菜单并获得用户键盘输入的选项
函数参数: 无
函数返回值: 用户输入的选项
*/
char Menu(void)
{
char ch;
printf("\nManagement for Students' scores\n");
printf(" 1.Append record\n");
printf(" 2.List record\n");
printf(" 3.Search record\n");
printf(" 4.Sort record\n");
printf(" 0.Exit\n");
printf("Please Input your choice:");
scanf(" %c", ch); /*在%c前面加一个空格,将存于缓冲区中的回车符读入*/
return ch;
}
int main()
{
char ch;
int m, n;
STU stu[STU_NUM];
printf("Input student number and course number(student number40,course number10):");
scanf("%d,%d", n, m);
while (1)
{
ch = Menu(); /* 显示菜单,并读取用户输入 */
switch (ch)
{
case'1':AppendScore(stu, n, m);/* 调用成绩添加模块 */
TotalScore(stu, n, m);
break;
case'2':PrintScore(stu, n, m); /* 调用成绩显示模块 */
break;
case'3':SearchScore(stu, n, m);/* 调用按学号查找模块 */
break;
case'4':SortScore(stu, n); /* 调用成绩排序模块 */
printf("\nSorted result\n");
PrintScore(stu, n, m); /* 显示成绩排序结果 */
break;
case'0':exit(0); /* 退出程序 */
printf("End of program!");
break;
default:printf("Input error!");
break;
}
}
}
#include"stdio.h"
#include"string.h"
#define N 1000
void menu();
int password();
int dedao();
int uninque(struct STUDENT shu[],int len,int xuehao);
void shuchu(struct STUDENT shu[],int len);
void send(struct STUDENT shu[],int len);
int readFromFile(struct STUDENT shu[]);
void chaxun(struct STUDENT shu[],int len);
void paixu(struct STUDENT shu[],int len);
struct STUDENT
{
int num;
char name[10];
int score;
} shu[N];
main()
{ int len=0,key,choice;
do {
key=password();
}while(key==0);
while(1)
{ menu();
printf("请输入选项1,2,3,4,5,6,7\n");
scanf("%d",choice);
switch(choice)
{
case 1:printf("输入信息函数\n"); len=dedao(shu,len); break;
case 2:printf("输出函数被调用\n"); shuchu(shu,len); break;
case 3:printf("保存到文件函数被调用\n"); send(shu,len); break;
case 4:printf("从文件读函数被调用\n"); len=readFromFile( shu); break;
case 5:printf("按学号查询函数被调用\n"); chaxun(shu,len); break;
case 6:printf("按成绩排序函数被调用\n"); paixu(shu,len); break ;
case 7:exit(0);break;
}
}
}
void menu()
{
printf("\n");
printf(" *******************************************\n");
printf(" * 学生成绩管理系统2.0 *\n");
printf(" * 1.输入信息 *\n");
printf(" * 2.输出信息 *\n");
printf(" * 3.保存到文件 *\n");
printf(" * 4.从文件读 *\n");
printf(" * 5.按学号查询 *\n");
printf(" * 6.按成绩排序(由大到小) *\n");
printf(" * 7.程序结束 *\n");
printf(" *******************************************\n");
}
int password()
{
char a[100];
char key[]="asd";
printf("请输入密码\n");
scanf("%s",a);
if(strcmp(a,key)==0)
return 1;
else
return 0;
}
int dedao(struct STUDENT shu[],int len)
{ int i=len;
int flag=0;
int xuehao,bank,chengji;
while(iN)
{
while(1)
{
printf("学号");
scanf("%d",xuehao);
if(xuehao==0)
{ flag=1;
break;
}
bank=uninque(shu,i,xuehao);
if(bank==0)
{ shu[i].num=xuehao;
break;}
}
if(flag==1)
break;
printf("姓名");
scanf("%s",shu[i].name);
while (1)
{
printf("成绩");
if(scanf("%d",chengji)==1)
{break;}
printf("输入格式错误,请重新输入!");
while(getchar()!='\n')
continue;
}
while(getchar()!='\n')
continue;
shu[i].score=chengji;
i++;
}
return i;
}
int uninque(struct STUDENT shu[],int len,int xuehao)
{ int i;
int bank=0;
for (i=0;ilen;i++)
{
if(xuehao==shu[i].num)
bank=1;
}
return bank;
}
void shuchu(struct STUDENT shu[],int len)
{
int i;
printf("%-4s %-10s %-3s","学号","姓名","成绩\n\n");
for(i=0;ilen;i++)
{
printf("%-4d %-10s %-3d",shu[i].num,shu[i].name,shu[i].score);
printf("\n");
}
printf("\n\n");
}
void send(struct STUDENT shu[],int len)
{
int i;
FILE *fp;
fp=fopen("d:\\chegnji.txt","wb");
if(fp==NULL)
{
printf("打开文件出错!\n");
exit(0);
}
for(i=0;ilen;i++)
fwrite(shu+i,sizeof(struct STUDENT),1,fp);
fclose(fp);
}
int readFromFile(struct STUDENT shu[])
{
FILE *fp=NULL;
int i=0;
fp=fopen("d:\\chegnji.txt","rb");
if(fp!=NULL)
{
printf("%-4s %-10s %-3s","学号","姓名","成绩\n\n");
while(!feof(fp))
{
if(i=N)
break;
if(fread(shu+i,sizeof(struct STUDENT),1,fp))
printf("%-4d %-10s %-3d",shu[i].num,shu[i].name,shu[i].score);
printf("\n");
i++;
}
fclose(fp);
}
i=i-1;
return i;
}
void chaxun(struct STUDENT shu[],int len)
{
int i,nue,b=0;
while(1)
{printf("input the student number (input'0' close) ");
scanf("%d",nue);
b=0;
if(nue==0)
break;
for (i=0;ilen;i++)
{
if(nue==shu[i].num)
{ printf("%-4s %-10s %-3s","学号","姓名","成绩\n\n");
printf("%-4d %-10s %-3d\n",shu[i].num,shu[i].name,shu[i].score);
b=1;
}
}
if(b==0)
printf("The number is not exist!\n");
}
}
void paixu(struct STUDENT shu[],int len)
{
int i,j;
struct STUDENT temp;
printf("%-4s %-10s %-3s","学号","姓名","成绩\n\n");
for(i=0;ilen;i++)
{
for(j=i;jlen;j++)
{
if(shu[j].scoreshu[i].score)
{
temp=shu[j];
shu[j]=shu[i];
shu[i]=temp;
}
}
printf("%-4d %-10s %-3d\n",shu[i].num,shu[i].name,shu[i].score);
}
}
#include "conio.h"
struct student
{
char name [15];
int score;
};
int find (struct student s[]);void main()
{
int i=0;
struct student stu[5];
for(i=0;i5;i++)
{
printf("输入第%d个学生的姓名:",i+1);
scanf("%s",stu[i].name);
printf("输入第%d个学生的成绩:",i+1);
scanf("%d",stu[i].score);
}
int nIndex=find(stu);
if(nIndex!=-1)
printf("找到该同学信息,该同学位于第%d个位置(数组下标)",nIndex);
getch();
}int find(struct student s[])
{
char name[15];
int i=0;
int nIndex=-1;
printf("输入要查询学生的姓名:");
scanf("%s",name);
for(i=0;i5;i++)
{
if(strcmp(s[i].name,name)==0)
{
nIndex=i;
break;
}
}
return nIndex;
}
现在一般使用的都是易查分系统哦,将制作好的excel表格上传至易查分,3分钟即可搭建好一个查分网站
#includestdlib.h
#includestdio.h
#includestring.h
#includeconio.h
#define N 10
/*****定义结构体*****/
typedef struct students /*标记为students*/
{
char num[10]; /*学生学号*/
char name[10]; /*学生姓名*/
int age; /*年龄*/
char sex[10]; /*性别*/
float cyy; /*C语言成绩*/
float computer; /*计算机成绩*/
float english; /*英语成绩*/
float pj; /*平均成绩*/
}STU;
STU temp;
void sort(STU students[],int n); //排序
void save(STU students[] ,int n);//导出
int Locate(STU students[],int n);//查询
/*--------------显示菜单--------------------*/
char displaymenu()
{
char k;
system("cls");
printf(" 学生成绩管理 \n");
printf("-----------------------------------应用菜单-------------------------------------\n");
printf(" 1 输入学生成绩\n\n");
printf(" 2 输出学生成绩\n\n");
printf(" 3 查询学生成绩\n\n");
printf(" 4 修改学生成绩\n\n");
printf(" 5 查看成绩排序\n\n");
printf(" 6 查看成绩统计\n\n");
printf(" 7 保存数据\n\n");
printf(" 8 读取数据\n\n");
printf(" 9 退出系统\n\n");
printf(" 请选择你想进行的操作:");
k=getchar();
return k;
}
/*****定义输出函数*****/
void printheader() /*格式化输出表头*/
{
printf("\n\n************************学生成绩管理系统****************************\n\n\n");
printf("| 学号 | 姓名 | 年龄 | 性别 | C语言成绩 |计算机成绩 | 英语成绩| 平均成绩 | \n");
}
void printdata(STU pp) /*格式化输出表中数据*/
{
STU* p;
p=pp;
printf("| %-5s| %-5s | %-4d| %-4s| %-6.0f| %-6.0f| %-5.0f| %-6.0f|\n",p-num,p-name,p-age,p-sex,p-cyy,p-computer,p-english,p-pj);
}
/*****添加学生信息*****/
int add(STU students[] ,int *n)
{
int i=0;
system("cls");
printf(" \n");
printf(" 请输入学生信息 \n");
printf(" 退出请在学生号处输入:0 \n");
printf("请输入学生学号:\n ");
scanf("%s",students[i].num);
while(strcmp(students[i].num,"0") )//当输入的学号为0时结束输入
{
printf("请输入学生姓名:\n ");
scanf("%s",students[i].name);
printf("****************\n\n\n");
printf("请输入学生年龄:\n ");
scanf("%d",students[i].age);
printf("****************\n\n\n");
printf("请输入学生性别:\n");
scanf("%s",students[i].sex);
printf("****************\n\n\n");
printf("请输入C语言成绩:\n ");
scanf("%f",students[i].cyy);
printf("****************\n\n\n");
printf("请输入计算机成绩:\n ");
scanf("%f",students[i].computer);
printf("****************\n\n\n");
printf("请输入英语成绩:\n ");
scanf("%f",students[i].english);
printf("****************\n\n\n");
students[i].pj=(students[i].cyy+students[i].computer+students[i].english)/3;
printf("学生平均成绩: %-8.0f\n",students[i].pj);
i++;
printf("****************\n\n\n");
printf("请输入学生学号:\n ");
scanf("%s",students[i].num);
}
*n=i;
save(students ,i);
return i;
}
/*****查询学生信息函数*****/
int Locate(STU students[],int n)
{
int k,m=-1;
char num[10],name[20];
int i=0;
system("cls");
printf(" 退出请输入:0 \n");
printf("请选择以什么方式查询:1).按学生学号查询 2).按学生姓名查询 \n");
scanf("%d",k);
if(k==1)
{
printf("请输入你要查询的学生学号:\n");
scanf("%s",num);
while(in)
{
if(strcmp(students[i].num,num)==0) /*若找到学号*/
{
printf("学生学号:%s\n*学生姓名:%s\n*学生年龄:%d\n*学生性别:%s\nC语言成绩:%-8.0f\n计算机成绩:%-8.0f\n英语成绩:%-8.0f\n平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i=n)
printf("没有所找学生信息\n");
getchar();
}
else if(k==2)
{
printf("请输入你要查询的学生姓名:\n");
scanf("%s",name);
while(in)
{
if(strcmp(students[i].name,name)==0) /*若找到姓名*/
{ printf("学生学号:%s\n学生姓名:%s\n学生年龄:%d\n学生性别:%s\n学生C语言成绩:%-8.0f\n计算机成绩:%-8.0f\n英语成绩:%-8.0f\n平均成绩:%-8.0f\n",students[i].num,students[i].name,students[i].age,students[i].sex,students[i].cyy,students[i].computer,students[i].english,students[i].pj);
m=i;
getchar();
break;
}
i++;
}
if(i=n)
printf("没有所找学生信息\n");
}
return m;/*返回一个根m便于修改学生信息*/
getchar();
}
/*****显示函数*****/
void input(STU students[],int n)
{
int i;
system("cls"); //清屏
if(n==0) /*表示没有学生信息记录*/
{
printf("\n没有学生记录!\n");
}
printf("\n\n");
printheader(); /*输出表格头部*/
i=0;
while(in) /*逐条输出数组中存储的学生信息*/
{
printdata(students[i]);
i++;
}
getchar();
}
/*****修改子程序*****/
void Modify(STU students[],int n)
{
int i;
if(n=0)
{
system("cls");
printf(" \n退出请输入:0 \n");
printf("\n----------not found!----------\n");
getchar();
return ;
}
system("cls");
printf("修改学生信息");
input(students,n);
i=Locate(students,n); /*查询到该数组元素,并返回下标值*/
if(i!=-1) /*若i!=-1,表明已经找到该数组元素*/
{
printf("请输入新的学生信息: \n");
printf(" 学号: ");
scanf("%s",students[i].num);
printf(" 姓名: ");
scanf("%s",students[i].name);
printf(" 年龄: ");
scanf("%d",students[i].age);
printf(" 性别: ");
scanf("%s",students[i].sex);
printf(" C语言: ");
scanf("%f",students[i].cyy);
printf(" 英语: ");
scanf("%f",students[i].english);
printf(" 计算机: ");
scanf("%f",students[i].computer);
students[i].pj=(students[i].cyy+students[i].english+students[i].computer)/3;
printf("平均成绩: %-9.0f\n",students[i].pj);
save(students ,n);
printf("\n-------------修改成功!-------------\n");
}
else
printf("not found!\n");
getchar();
}
/*****学生成绩排序子程序*****/
void sort(STU students[],int n)
{
int i,j,a,b,c,d,e,f,k;
float p;
printf(" \n退出请输入:0 \n");
printf("成绩排序方式选择: 1.按C语言 2.按英语 3.按平均 \n ");
scanf("%d",k);
if(k==1) /*用选择法对C语言排序*/
{
for(i=0; in; i++)
for(j=0;jn-1;j++)
{
if(students[i].englishstudents[j+1].english)
{
temp=students[i];
students[i]=students[j+1];
students[j+1]=temp;
}
}
}
else if(k==2)/*英语用冒泡法*/
{
for(a=0; an-1; a++)
{
c=a;
//未完待续
#includestdio.h
#includestdlib.h
#includestring.hstruct record
{
char xuehao[10];//学号
char name[20]; //姓名
char sex[3];//性别
int ke1;//数学
int ke2 ;//语文
int ke3;//英语
int pin;
}stu[50];
int k=1,n,m;void readfile();
void seek();
void insert();
void del();
void save();
void menu();
void seek()
{int i,j,item,flag;brchar s1[20];brprintf("------------------\n");brprintf("1.按学号查询\n");brprintf("2.退出本菜单\n");brprintf("------------------\n");brwhile(1)br{ printf("请选择子菜单编号:");brscanf("%d",item);brflag=0;brswitch(item)br{brcase 1:brprintf("请输入要查询的学生的学号:\n");brscanf("%s",s1);brfor(i=0;in;i++)brif(strcmp(stu[i].xuehao,s1)==0)br{ flag=1;brprintf("该学生学号,姓名,性别,数学,语文,英语 分别为:\n");brprintf(" %s %s %s %d %d %d",stu[i].xuehao,stu[i].name,brstu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3);br}
if(flag==0)
printf("该学号不存在!\n"); break;
case 2:return;
default:printf("请在1-2之间选择\n");
}
}
}
void insert()
{ int i=n,j,flag;
printf("请输入待增加的学生数:\n");
scanf("%d",m);
do
{ flag=1;
while(flag)
{ flag=0;
printf("请输入第 %d 个学生的学号:\n",i+1);
scanf("%s",stu[i].xuehao);
for(j=0;ji;j++)
if(strcmp(stu[i].xuehao,stu[j].xuehao)==0)
{ printf("已有该学号,请检查后重新录入!\n");
flag=1;
break;
}
}
printf("请输入第 %d 个学生的姓名:",i+1);
scanf("%s",stu[i].name);
printf("\n请输入第 %d 个学生的性别:",i+1);
scanf("%s",stu[i].sex);
printf("\n请输入第 %d 个学生的数学成绩:",i+1);
scanf("%d",stu[i].ke1);
printf("\n请输入第 %d 个学生的语文成绩:",i+1);
scanf("%d",stu[i].ke2);
printf("\n请输入第 %d 个学生的英语成绩:",i+1);
scanf("%d",stu[i].ke3);if(flag==0)
{ i=i;
i++;
}
}while(in+m);
n+=m;
printf("录入完毕!\n\n");
}void del()
{ int i,j,flag=0;
char s1[20];
printf("请输入要删除学生的学号:\n");
scanf("%s",s1);
for(i=0;in;i++)
if(strcmp(stu[i].xuehao,s1)==0)
{ flag=1;
for(j=i;jn-1;j++)
stu[j]=stu[j+1];
}
if(flag==0)
printf("该学号不存在!\n");
if(flag==1)
{ printf("删除成功,显示结果请选择菜单6\n");
n--;
}
}
void readfile()
{
char buf[80],*p="student.dat";
FILE *fp;
int i=0;
if ((fp=fopen("student.dat","r"))==NULL)
{ printf("Open file %s error! Strike any key to exit!",p);
system("pause");
exit(0);
}
while(fscanf(fp,"%s%s%s%d%d%d",stu[i].xuehao,stu[i].name,
stu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3)==6)
{ i++;
i=i;
}
fclose(fp);
n=i;
printf("录入完毕!\n");
}void save()
{ int i,j,k,flag=0;
FILE *fp;
fp=fopen("student.dat","w");
for(i=0;im;i++)
{
fprintf(fp,"%s%s%d%d%d",stu[i].xuehao,stu[i].name,stu[i].sex,stu[i].ke1,
stu[i].ke2,stu[i].ke3);
fclose(fp);
printf("已储存");
}
}
void paixu()
{
int i,j,k,t;
for(i=0;im;i++)
{
stu[i].pin=(stu[i].ke1+stu[i].ke2+stu[i].ke3)/3;
}
for(i=0;i=m-2;i++)
{
k=i;
for(j=i+1;j=m-1;j++)
if(stu[j].pinstu[k].pin)
k=j;
if(k!=i)
{
t=stu[k].pin;
stu[k].pin=stu[i].pin;
stu[i].pin=t;
}
}
for(i=0;im;i++)
{printf("第 %d 个学生的姓名%s:",i+1,stu[i].name);br printf("\n第 %d 个学生的性别:%s",i+1,stu[i].sex);br printf("\n第 %d 个学生的数学成绩:%d",i+1,stu[i].ke1);br printf("\n第 %d 个学生的语文成绩:%d",i+1,stu[i].ke2);br printf("\n第 %d 个学生的英语成绩:%d",i+1,stu[i].ke3);br printf("\n第 %d 个学生的平均成绩:%d",i+1,stu[i].pin);br }
}
void menu()
{ int nub;
printf(" \n\n学生成绩管理系统\n\n");
printf("*****系统功能菜单*****\n");
printf("----------------------\n");
printf("1.输入学生信息\n");
printf("2.查询学生信息\n");
printf("3.按学号删除信息\n");
printf("4.读入学生信息\n");
printf("5.保存信息(要把修改保存到文件,退出程序前必须执行本项)\n");
printf("6.查询学生平均成绩信息\n");
printf("0.退出系统\n");
printf("----------------------\n");
printf("请选择菜单编号:");
scanf("%d",nub);
switch(nub)
{
case 1:insert();break;
case 2:seek();break;
case 3:del();break;
case 4:readfile();break;
case 5:save();break;
case 6:paixu();break;
case 0:k=0;break;
default:printf("请在0-6之间选择\n");
}}
void main()
{
while(k)
menu();
}
//平均数是排序后,输出的,如果你不想直接输入,那就不要对每个学生进行选择排序了