学生成绩统计c语言

合集下载

C语言课程设计--学生成绩管理系统

C语言课程设计--学生成绩管理系统

*题目七:学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。

主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单要求:使用二进制文件方式存储数据,系统以菜单方式工作源代码:#include<stdio.h>#include<ctype.h>#include<stdlib.h>#include<string.h>struct Student{int cls;char nam[10];char num[10];int chinese;int english;int computer;int math;}stud1[100],stud2[100];{char a;while(a>'7'||a<'0'){system("cls");printf(" 欢迎使用学生成绩管理系统\n");printf(" 制作人:章建\n");printf("********************** 学生成绩管理系统************************\n");printf(" 1.输入学生成绩\n");printf(" 2.输出学生成绩\n");printf(" 3.查找并显示学生成绩\n");printf(" 4.按姓名查找,修改学生资料\n");printf(" 5.显示所有学生名单\n");printf(" 6.查找并删除学生信息\n");printf(" 7.从文件读取数据\n");printf(" 0.储存学生资料并退出系统\n");printf("********************************************************************* *\n");printf("请选择(0-7)\n");a=getchar();}return(a-'0');}/******************************************************************************int Input(Student stud[],int n) //输入数据(第一学期)。

c语言输入10个同学的成绩总分和平均值

c语言输入10个同学的成绩总分和平均值

c语言输入10个同学的成绩总分和平均值C语言输入10个同学的成绩总分和平均值一、前言在学习编程语言的过程中,C语言是一个非常基础且重要的语言。

在C 语言中,输入输出是非常基础的内容之一,学会如何输入和处理数据是我们学习编程的第一步。

本文将以输入10个同学的成绩总分和平均值为题,深入探讨C语言中的输入输出操作,并共享我对这个主题的个人理解。

二、基本概念在C语言中,我们可以通过scanf()函数来实现数据的输入。

scanf()函数是一个输入函数,可以将用户输入的数据存储到指定的变量中。

在本题中,我们需要输入10个同学的成绩,分别存储到不同的变量中。

三、具体操作在C语言中,我们可以使用循环来反复输入数据,以实现输入10个同学的成绩。

我们需要定义一个数组来存储这10个同学的成绩,然后通过循环依次输入每个同学的成绩。

我们可以使用循环再次遍历数组,求得这10个同学的成绩总和。

通过平均值公式,我们可以求得这10个同学的成绩平均值。

四、代码示例```c#include <stdio.h>int main() {int scores[10];int sum = 0;double average = 0.0;// 输入10个同学的成绩for (int i = 0; i < 10; i++) {printf("请输入第%d个同学的成绩:", i + 1);scanf("%d", &scores[i]);}// 计算成绩总和for (int i = 0; i < 10; i++) {sum += scores[i];}// 计算平均值average = (double) sum / 10;// 输出成绩总和和平均值printf("这10个同学的成绩总和为:%d\n", sum);printf("这10个同学的成绩平均值为:%.2f\n", average);return 0;}```五、总结回顾通过以上的代码示例,我们了解了如何在C语言中输入10个同学的成绩总分和平均值。

学生成绩查询c语言程序

学生成绩查询c语言程序

填写说明:1、同一名教师在不同教学班教授的同一门课程只须填写一份教学日历;由不同教师教授的同一门课程每人填写一份教学日历。

2、“作业、实验”栏中的作业,是指教师计划布置的,应该批改的作业。

3、法定假日不安排教学内容,其课次顺延安排.系统开发语言作业现有一个班级,共10人,本学期共学习三门课程,设计一个学生成绩管理系统,要求如下:1、完成三门课程成绩输入;或单门课程录入、或同时录入三门课.2、完成成绩排序:按单科成绩排序、按平均分排序;3、完成成绩统计:按单科分段统计人数、按平均分分段统计(60分以下,60—79分,80以上);4、用结构体完成学生姓名和成绩的输入:5、完成成绩查询:单科查询、平均分查询、按姓名查询、分段查询等;6、完成奖学金统计:三门课均高于90分,一等奖学金;三门课均高于80分,二等奖学金,统计获奖学金人数7、完成成绩输出:按单科输出、输出所有成绩、按平均分由高到低输出,输出奖学金名单等;.作业要求第1、2、3周、完成成绩录入、排序和统计第4、5、6周、完成菜单和函数编制第2、8、9周、完成成绩查询和统计第10、11周、完成查询输出第12、13周、讲程序进行函数化、模块化第14、15周、应用指针、指针函数以及函数指针等第16周,完善程序、验收。

最后打印出完整代码清单代码如下:#include<stdio.h〉struct student{float math;float Chinese;float English;float average;char name[5];};void inputgread(struct student stu)//输入成绩{int a=0;scanf(”%s”,);printf("按顺序输入数学成绩,语文成绩,英语成绩");scanf("%f%f%f”,&stu。

math,&stu.Chinese,&stu。

学生成绩管理系统c语言课程设计报告

学生成绩管理系统c语言课程设计报告

学生成绩管理系统c语言课程设计报告一、引言学生成绩管理系统是一个为学校或教育机构提供学生学业成绩管理的重要工具。

通过该系统,可以方便地记录和查询学生的各项成绩,帮助教师和学生了解学生的学业表现,及时作出教学和学习的调整和改进。

本文将介绍一个基于C语言的学生成绩管理系统的设计与实现。

二、需求分析1. 学生信息管理:包括学生基本信息的录入、修改和删除。

2. 成绩信息管理:包括成绩的录入、修改和删除。

3. 成绩查询与统计:可以按照学生学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。

4. 数据存储与备份:能够将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。

三、系统设计1. 学生信息管理模块:设计一个结构体来存储学生的基本信息,包括学号、姓名、性别、年龄等。

通过菜单选择,可以实现学生信息的录入、修改和删除功能。

2. 成绩信息管理模块:设计一个结构体来存储学生的成绩信息,包括科目名称和成绩。

通过菜单选择,可以实现成绩信息的录入、修改和删除功能。

3. 成绩查询与统计模块:通过学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。

4. 数据存储与备份模块:设计文件操作函数,将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。

四、系统实现1. 使用C语言编写程序代码,通过结构体和数组等数据结构实现学生信息和成绩信息的存储。

2. 利用文件操作函数实现数据的读取和存储,包括学生信息和成绩信息的存储和备份。

3. 设计菜单界面,通过用户选择来实现各个功能模块的调用。

五、系统测试与优化1. 针对各个功能模块进行测试,验证系统的正确性和稳定性。

2. 根据测试结果优化程序代码,提高系统性能和用户体验。

3. 完善系统功能,考虑异常情况的处理,提高系统的容错性和健壮性。

六、总结与展望通过本次课程设计,我们成功实现了一个基于C语言的学生成绩管理系统。

该系统能够方便地记录和查询学生的成绩信息,帮助教师和学生进行教学和学习的分析和改进。

学生成绩管理系统C语言源程序

学生成绩管理系统C语言源程序
{
for(p=head->next;p!=NULL&&strcmp(p->name,tem);p=p->next);
if (!p)
{
printf("\n\n找不到你要查询的姓名,请重新输入,输入0表\
示结束:");
scanf("%s",tem);
}
else if (!strcmp(p->name,tem))
n=0;
head=(Student *)malloc(LEN);
p2=head;
printf("\n请输入第%d名学生的学号,学号为0表示结束输入:",n+1);
scanf("%d",&flag);
while(getchar()!='\n');
for(;flag;)
{
n++;
p1=(Student *)malloc(LEN);
char xueqi[20];
int score[4];
int sum;
struct student *next;
}Student;
int n;
Student *cin(void);
Student *sort_1(Student *head,int);
void sort_2(Student *head);
max_3=min_3=p->score[2];max_2=min_2=p->score[3];
max_sum=min_sum=p->sum;
for(;p;p=p->next)
{
if (max_1<p->score[0]) max_1=p->score[0];

C语言课程设计 200行代码 -学生成绩查询系统.doc

C语言课程设计 200行代码 -学生成绩查询系统.doc

功能:查询修改统计成绩。

#include <stdio.h>struct student /*成绩表的结构声明*/{int num;char name[15];char sex;float WuLi;float ShuXue;float YingYu;float KuaiJi;float totle;};/*定义6个学生的信息:*/#define STU_NUMBER 6 /*宏定义学生数为6*/struct student Stu[STU_NUMBER]={{101,"yuchen", 'F', 98,85,96,89,0},{102,"xiaotong", 'F', 99,91,90,93,0},{103,"likanglong",'M', 76,83,74,82,0},{104,"yinger", 'F', 88,76,89,77,0},{105,"fengjiao", 'F', 97,100,94,96,0},{106,"sunyao", 'M', 87,89,66,84,0} };int SelectMainMenu(); /*显示并选择主菜单。

返回:被选择的菜单项*//*所有的函数声明:*/void Show(); /*成绩查询模块*/void Modify(); /*成绩修改模块*/void Stat(); /*成绩统计模块*/void StatAve(float *AveWuLi,float *AveShuXue,float *AveYingYu,float *AveKuaiJi);/*统计平均分*/int FindStudent(int num); /*根据学号查找某一学生*/void SetAllTotle(); /*计算所有学生总分*/void SetTotle(int No); /*计算第No个学生总分*/void ShowAllStudent(); /*显示所有成绩*/void ShowTitle(); /*显示表头信息*/void ShowStudent(int No); /*显示第No个的学生信息*/void main(){int isend=0,password=0; /*程序结束标志量,0表示不结束,1表示结束*/SetAllTotle(); /*计算所有学生总分*/while(password!=666){printf("qing shu ru mi ma:\n");scanf("%d",&password);}{switch(SelectMainMenu()) /*显示并选择主菜单*/{case 1: /*成绩查询*/Show(); /*调用成绩查询函数*/break;case 2: /*成绩修改*/Modify(); /*调用成绩修改函数*/break;case 3: /*成绩统计*/Stat(); /*调用成绩统计函数*/break;case 4: /*退出系统*/printf("\nxie xie nin de shi yong,zai jian!\n\n");isend = 1; /*设置程序结束标志*/break;}if(isend) break; /*程序结束*/}}int SelectMainMenu() /*显示并选择主菜单。

C语言程序:按成绩从高到低的顺序输出学生信息

C语言程序:按成绩从高到低的顺序输出学生信息

按成绩从高到低顺序输出学生信息程序描述:输入并保存10个学生的信息,计算并输出平均分,再按照从低分到高分的顺序输出他们的信息;样例输入:1 啊102 吧93 才84 的75 额 66 飞 57 个 48 好 39 就 210 看 1样例输出:出题人:我们一起的痕迹程序代码int score;};struct student stud[10];int main(void){int i,j,index,sum=0;struct student temp;printf("\nInput the student's number,name and score:\n");for(i=0;i<10;i++){printf("No %d:",i+1);scanf("%d%s%d",&stud[i].num,stud[i].name,&stud[i].score);sum=sum+stud[i].score;}for(i=0;i<9;i++){index=i;for(j=i+1;j<10;j++)if(stud[j].score<stud[index].score)index=i;temp=stud[index];stud[index]=stud[i];stud[i]=temp;}printf("The average:%d\n",sum/10);printf("The student score:\n");for(i=9;i>=0;i--)printf("%d %s %d\n",stud[i].num,stud[i].name,stud[i].score); system("pause"); (提交代码这行需删去)return 0;}我们一起的痕迹。

c语言学生成绩管理系统代码

c语言学生成绩管理系统代码

include<stdio.h>include<string.h>include<stdlib.h>define MAXN 100 //一个班最多的人数define MAXM 2 //成绩的课程门数int R;void input; //1.学生成绩新建void sort; //2.学生成绩插入void load; //3.学生成绩修改void print; //4.学生成绩删除void total; //5.学生成绩统计void search; //6.学生成绩查询void save; //7.学生成绩保存void end; //8.结束struct student{char name20; //保存全班姓名char num12; //保存全班学号float scoreMAXM; //保存全班所有课程成绩float sum; //保存全班每个人的总成绩float avg; //保存每个人的平均成绩};struct student sMAXN;struct http{char subject20; //保存全班所有课程};struct http cMAXM;void main //欢迎首界面{int select;l;system"color fC";printf"\n";printf"\n";printf"\n";printf"\n";printf" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n";printf" \n";printf" \n";printf" 欢迎进入终极一班学生管理系统\n";printf" \n";printf" ︻┳═一 cf ... \n";printf" ┈━═☆甘总管的多塔生活∝╬══→ \n";printf" \n";printf" 凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸凸^-^凸 \n";printf" ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥\n";printf" ╭v╮ ╔══╗╔╗ ╔╗╔╗╭'''╮\n";printf" ^o^╚╗╔╝║║╔═╦╦╦═╗║╚╝╠═╦╦╗~ : ~\n";printf" ~ : ~╔╝╚╗║╚╣║║║║╠╣╚╗╔╣║║║║~v ~\n";printf" ╚══╝╚═╩═╩═╩═╝╚╝╚═╩═╝ \n";printf"\n";printf"\n";printf" 请按任意键进入下一界面\n";printf"------------------------------------------------------------------\n";system"pause";system"color f2";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color f5";system"color f9";system"color f6";system"color fD";system"pause";system"color fC";system"cls"; //上面是第一个界面while1{system"cls";printf" 欢迎进入终极一班学生管理系统\n";printf" \n";printf" ∝╬══→ 1.学生成绩新建囧rz 欢\n";printf" ::======>> 2.学生成绩插入迎\n";printf" ┈━═☆ 3.学生成绩修改来\n";printf" ∝╬══→ 4.学生成绩删除到\n";printf" ∝╬══→ 5.学生成绩统计英\n";printf" ∝╬══→ 6.学生成绩查询雄\n";printf" ▄︻┻═┳ 7.学生成绩保存联\n";printf" ∝╬══→ 8.退出/撒拉嘿盟\n";printf" ⊙_⊙⊙_⊙⊙_⊙⊙_⊙⊙_⊙⊙_⊙ \n"; printf" \n";printf"\n"; printf"\n 请输入您的选择编号;回车键继续:\n";printf" ---------------------------------------------------------------------------\n";scanf"%d";&select;do{ifselect<1||select>8{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&select;}l=select;}whilel<1||l>8;switchselect{case 1:input;break; //1.学生成绩新建case 2:sort; break; //2.学生成绩插入case 3:load; break; //3.学生成绩修改case 4:print; break; //4.学生成绩删除case 5:total;break; //5.学生成绩统计case 6:search;break; //6.学生成绩查询case 7:save;break; //7.学生成绩保存case 8: end;break; //8.结束default:printf" 请按相应数学选择系统功能:";}}}void input //1学生成绩输入成绩模块{int i;j;b;float a=0;printf" 请输入该班同学的人数:\n";printf" 班同学的人数在1~%d之间:\n";MAXN;scanf"%d";&R;do{ifR<1||R>100{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&R;}b=R;}whileb<1||b>100;fori=0;i<MAXM;i++{printf" 请输入该班同学的第%d门课程名称为:\n";i+1;scanf"%s"; &ci.subject;}fori=0;i<R;i++{printf" 请输入第%d个同学的姓名:\n";i+1;scanf"%s";&;printf" 请输入第%d个同学的学号:\n";i+1;scanf"%s";&si.num;printf" 请依次输入%d门学科的成绩:\n";MAXM;forj=0;j<MAXM;j++{printf" 请输入课程%s的成绩为:\n";cj.subject;scanf"%f";&si.scorej;a=a+si.scorej;}si.sum=a;si.avg=si.sum/MAXM;a=0;}}void sort //2学生成绩插入成绩模块{int i;j;k;b;float a=0;printf" 请输入要插入的学生的位置1~%d号:\n";R;printf" 第几个学生的位置之后:\n";scanf"%d";&k;do{ifk<1||k>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&k;}b=k;}whileb<1||b>R;R=R+1;fori=R;i>k;i--{;;strcpysi.num;si-1.num;si.sum=si-1.sum;si.avg=si-1.avg;forj=0;j<MAXM;j++{si.scorej=si-1.scorej;}}printf" 请输入第%d个同学的姓名:\n";k+1;scanf"%s";&;printf" 请输入第%d个同学的学号:\n";k+1;scanf"%s";&sk.num;printf" 请依次输入%d门学科的成绩:\n";MAXM;forj=0;j<MAXM;j++printf" 请输入课程%s的成绩为:\n";&cj.subject;scanf"%f"; &sk.scorej;a=a+sk.scorej;}sk.sum=a;sk.avg=sk.sum/MAXM;}void load //3学生成绩修改{float a=0;hMAXM;int i;j;b;printf" 请输入修改学生的位置1~%d 号: \n";R;scanf"%d";&i;do{ifi<1||i>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&i;}b=i;}whileb<1||b>R;printf" 请输入%d号的新学号: \n";i;scanf"%s";&;printf" 请输入%d号的新姓名: \n";i;scanf"%s";&si-1.num;forj=0;j<MAXM;j++{printf" 请输入课程%s的成绩为:\n";&cj.subject;scanf"%f";&hj;si-1.scorej =hj;a=a+si-1.scorej;si-1.sum=a;si-1.avg=si-1.sum/MAXM;}void print //4学生成绩删除{int i;j;k;b;printf" 请输入删除学生的位置1~%d 号:\n";R;scanf"%d";&k;do{ifk<1||k>R{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&k;}b=k;}whileb<1||b>R;i=k-1;fori;i<R;i++{;si+;strcpysi.num;si+1.num;si.sum=si+1.sum;si.avg=si+1.avg;forj=0;j<MAXM;j++{si.scorej=si+1.scorej;}}R=R-1;printf"删除成功 \n";}void total //5.学生成绩统计{int i;j;float aMAXM;b=0;printf"学号:姓名:课程%s的分数:课程%s的分数: 总成绩:平均成绩:\n";c0.subject;c1.subject;fori=0;i<R;i++{printf"%s%10.2s%16.2f%16.2f%16.2f%16.2f\n";si.num;;si.score0 ;si.score1;si.sum;si.avg;}fori=0;i<MAXM;i++{forj=0;j<R;j++{b=b+sj.scorei;}ai=b/R;b=0;}fori=0;i<MAXM;i++{printf" 全班课程%s的平均分为:%f\n";ci.subject;ai;}printf"排序完毕.\n";system"pause";}void search //6查询成绩模块{int search1;int search2;int select;index;b;while1{printf" \n";printf" 1.按学号查询\n";printf" 2.按姓名查询\n";printf" 0.返回\n";printf" 请输入您的选择编号:\n";printf" \n";scanf"%d";&select;do{ifselect<0||select>2{printf" 您输入有误;请重新输入;谢谢\n";scanf"%d";&select;}b=select;}whileb<0||b>2;switchselect{case 1:index=search1; break;case 2:index=search2;break;case 0:return;}ifindex=-1{int i;printf" \n";printf" 学号:%s \n"; sindex.num;printf" 姓名:%s \n"; ;printf" 总成绩:%f \n"; sindex.sum;printf" 平均成绩:%f \n"; sindex.avg;fori=0;i<MAXM;i++printf" 课程%s的成绩为:%f \n"; ci.subject;sindex.scorei;printf" \n";}else printf"没有这个同学..\n";}}int search1 //按学号查询模块{int i;char s_num12;printf" 请输入要查询的学号:";scanf"%s";&s_num;fori=0;i<MAXN;i++ifstrcmpsi.num;s_num==0break;ifi<MAXNreturn i;else return -1;}int search2 //按姓名查询模块{int i;char s_name10;printf" 请输入要查询的姓名:";scanf"%s";&s_name;fori=0;i<MAXN;i++;s_name==0break;ifi<MAXNreturn i;else return -1;}void save//7保存成绩模块{FILE fp;int i;j;k=0;char filename20;printf"请输入文件名请以 .txt 结束: ";scanf"%s";filename;iffp=fopenfilename; "w"==NULL{printf"打开文件失败.\n";return;}fprintffp; "该班学生数和所修课程数分别为:%d;%d\n\n";R;MAXM; fprintffp; "该班所修的课程有:\n";forj=0;j<MAXM;j++fprintffp; "课程%d:%s\n";1+j;cj.subject;fprintffp; "下面是该班学生信息:\n\n";fori=0;i<R;i++{fprintffp; "学号:%s 姓名:%s\n";si.num;;forj=0;j<MAXM;j++{fprintffp; "%s:%5.2f\n";cj.subject;sk.scorej;}fprintffp; "学生总成绩:%5.2f\n学生平均成绩:%5.2f\n\n";si.sum;si.avg;k++;}fclosefp;printf"\n\n 保存成功\n\n\n\n";fclosefp;printf"保存完毕.\n";}void end //8.结束{system"cls";system"color f4";printf"\n";printf"\n";printf"\n";printf" █◣◢█◣◢█◣◢█▁▁\n";printf"█████████████\\//\n";printf"\n";printf"◢█████████████◣//\\\n";printf"\n";printf"◢███████████████◣ ̄▌ ̄\n";printf"\n";printf" ██●███●██▌ \n";printf"\n";printf" ██◣◢███◣◢██▌\n";printf"\n";printf" ◥█████◤^◥█████◤▌\n";printf"\n";printf" ◥████◣/\◢████◤◢██\n";printf"\n";printf"◢█████████████◢██◤\n";printf"\n";printf"◢████████████████ \n";printf"\n";printf" ██◤◢███◤◥███◣\n";printf"\n";printf" ◢███◤◥███◣\n";printf"\n";printf" ████████ \n";printf"\n";printf"\n";printf"\n\n 谢谢您的使用..BYE\n\n\n\n\n\n\n\n";system"color f2";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color fE";system"color fB";system"color f5";system"color f9";system"color f6";system"color f1";system"color f3";system"color f5";system"color f9";system"color f6";exit0;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模式4:按照弹窗提示操作。
模式5:直接弹出所有学生的成绩,按排名高低输出。
输出文件名:“stu.dat”
1.总体流程图
程序清单:
/*****************************************************************************
程序清单
ห้องสมุดไป่ตู้****************************************************************************/
C语言课程设计报告
一、C语言课程设计的目的:
进一步消化和巩固已学过的C语言程序设计基础理论,学习和实践程序设计的各种技能,利用C语言来设计各种应用程序和管理系统,为社会提供各种现代化的管理工具。根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。在许多常规学科的日常教学中,我们不难发现这样一个现象,不少学生的思维常常处于混乱的状态。写起作文来前言不搭后语,解起数学题来步骤混乱,这些都是缺乏思维训练的结果。程序设计是公认的、最能直接有效地训练学生的创新思维,培养分析问题、解决问题能力的学科之一。即使一个简单的程序,从任务分析、确定算法、界面布局、编写代码到调试运行,整个过程学生都需要有条理地构思,这中间有猜测设想、判断推理的抽象思维训练,也有分析问题、解决问题、预测目标等能力的培养。
stu[i-1].avr=(float)(sum/5.0);
if((fp=fopen("stud.dat","rb+"))==NULL)//写入数据
{
printf("cannot open file\n");
return 0;
}
fseek(fp,(i-1)*sizeof(struct student),0);
Stu.clanguage:学生C语言成绩;
Stu.moral:学生德育成绩;
Stu.ave:学生平均成绩;
模式1:将会弹出对话“Stu.num:”,输入学号,回车,以此类推。
模式2:将会询问你需要修改哪一位的数据,按照弹窗提示操作。
模式3:将会询问你需要删除哪一位的数据,按照弹窗提示操作。
模式4:按照弹窗提示操作。
printf("\n");
printf("\n");
failstuprintf();//不及格学生输出
save();
}
else if(mode==2)//修改模式
{
FILE *fp;//文件声明
static int m,sum;//声明定义变量
extern i;//调取外部变量
if((fp=fopen("stud.dat","rb"))==NULL)//读出数据
{
printf("cannot open file\n");
return 0;
}
for(m=0;m<N-1;m++)
{
fread(&stu[m],sizeof(struct student),1,fp);
【提示】
模式(mode)1:新建一个工程;
模式(mode)2:修改;
模式(mode)3:删除;
模式(mode)4:插入;
模式(mode)5:查看。
Stu.num :学生学号;
:学生名字(注:拼音);
Stu.math:学生数学成绩;
Stu.physics:学生物理成绩;
Stu.english:学生英语成绩;
{ char num[6];
char name[8];
int math;
int english;
int physical;
int clanguage;
int moral;
float avr;
}exchange;
int i,n=0;
int main(void)
{
void save(void);//保存文件函数声明
fwrite(&stu[i-1],sizeof(struct student),1,fp);
fclose(fp);
}
else if(mode==3)//删除模式
{
FILE *fp;
static int m,sum;
extern i;
if((fp=fopen("stud.dat","rb"))==NULL)//读出数据
}
printf("whose record do you want to modify?\nPlease press 1~30!");
scanf("%d",&i);
press();
sum=stu[i-1].math+stu[i-1].english+stu[i-1].physical+stu[i-1].clanguage+stu[i-1].moral;
Stu.ave:学生平均成绩;
************************************************************/
模式1:将会弹出对话“Stu.num:”,输入学号,回车,以此类推。
模式2:将会询问你需要修改哪一位的数据,按照弹窗提示操作。
模式3:将会询问你需要删除哪一位的数据,按照弹窗提示操作。
scanf("%d",&mode);
if(mode==1)//新建程序模式
{
int sum=0;
for(i=1;i<N;i++)
{
press();//输入
failstudent();//不及格学生筛选
sum=stu[i-1].math+stu[i-1].english+stu[i-1].physical+stu[i-1].clanguage+stu[i-1].moral; //总分
这是一个学生成绩统计程序。该程序仅以10人为例,可通过修改宏定义N来指定人数新建程序。在VC++6.0运行。
/************************************************************
模式(mode)1:新建一个工程;
模式(mode)2:修改;
模式(mode)3:删除;
通过该课程设计的锻炼,加深学生对这些知识的掌握以及理解。
在该程序中,我将会运用结构体来分别创建学生成绩表,不及格学生成绩表以及中间值成绩表,通过结构体的运用,我能更加快速以及有规律地调用,分配各个变量,达到简洁的目的。
在循环语句中,我将利用指针来达到好的定位效果,定位准确才能够有的放矢地进行各个环节,而不用通过繁杂的排序以及重复语句。
该程序我还运用了文件修改,程序运行过后将会保存于stu.dat中,同时也能读取该文件。该程序有5个模式,所以必须运用文件管理。当然,当你并没有创建文件时,你却读取文件,系统找不到自然就报错。
通过本次课程设计,我更加理解C语言的灵活多变,结构体的便捷,指针的灵活,文件应用的严谨。使我对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。
课程设计
课程名称____C语言课程设计___
题目名称____学生成绩统计_____
学生学院______物理学院_______
专业班级____电子科学与技术___
学 号_____3110008570______
学生姓名______胡健___________
指导教师_______刘力斌________
2012 年10月17日
/***************************************************************************
技术文档/帮助清单
***************************************************************************/
将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面:
1输入成绩到文件中
2输出成绩
3输出不及格学生名单
4成绩排序
5修改记录
6删除记录
7插入记录等
主函数中对3个功能选择(菜单),调用对应的函数完成。
【测试数据】
自定模拟数据
题目的分析(需求分析):
该题目主要是锻炼学生对于运用C语言结构体,指针以及文件修改的能力,C语言最难的部分就在于指针,所以,能用最简洁的语句写出一个合理的程序,老师的目的就达到了。
#include "stdio.h"
#include "string.h"
#define N 11
struct student //学生结构体
{
char num[6];
char name[8];
int math;
int english;
int physical;
int clanguage;
int moral;
{
printf("cannot open file\n");
return 0;
}
for(m=0;m<N-1;m++)//读出文件
{
fread(&stu[m],sizeof(struct student),1,fp);
相关文档
最新文档