最新cdl学生成绩管理系统编码日记

合集下载

C语言-学生成绩管理系统报告及程序代码

C语言-学生成绩管理系统报告及程序代码

C语言课程设计:学生成绩管理系统学生包含以下信息项:学号、姓名、学院、班级、高数成绩、英语成绩、C 语言成绩,总分、平均分。

1. 创建学生成绩信息文件,根据提示输入学生的各项信息,计算出总分和平均语言成绩、总分、平均分。

系统的主要功能包括:然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。

2.增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息,要求:增加后的学生信息仍按学号排学序,并继续保存至原文件。

3.删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。

4. 修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。

5. 按不同条件对学生信息进行查询操作,输出满足条件的学生信息。

(1) 按学号查询,输入一个学号,输出对应的学生信息。

(2) 按姓名查询,包括精确查询(输入全名),模糊查询(输入姓)。

(3) 按学院查询,输入学院名称,输出该学院的全部学生的信息。

(4) 按班级查询,输入班级名称,输出该班级的全部学生的信息。

6. 按不同条件对学生成绩进行统计工作。

(1)按总分对学生信息进行排序(由高到低),输出排序后的信息,并将排序后的学生信息存放到一个新的二进制文件中。

(2) 按平均分统计各个分数段的学生人数(不及格,60-69,70-79,80-89,90-100)。

(3) 分别找出3门课程成绩最高的学生,并输出他们的信息。

(4) 分别统计出3门课程的不及格率,并输出。

3.详细设计说明主要模块描述:1)调用菜单函数形成操作界面:根据提示序号选择操作程序2)学生成绩写入及排序:输入学生成绩,系统将根据录入信息对信息计算出平均分和总分并对学生信息进行排序,输出排序后的信息存入student.dat文件中3)增加学生信息:输入需增加学生的信息,系统将新增加的学生信息与原信息进行排序后存入原文件中4)删除学生信息:输入需删除学生的学号,将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。

学习成绩管理系统周记

学习成绩管理系统周记

学习成绩管理系统周记
这一周,完成了老师安排的作业,用代码开发设计一个学生成绩信息管理系统。

该系统是基于结构体数组的学生学籍管理系统。

能够实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作。

首先构造框架:基于系统流程图和系统功能结构图,设计构建系统的整个框架。

先声明一个struct date类型,它代表“出生日期”,包括3个成员:month(月)day(日).year(年)。

然后在声明struct stumessage类型时,将成员birthday指定为struct Date类型。

已声明的类型struct Date与其他类型一样可以用来声明成员的类型。

然后定义结构体数组,构建main函数。

利用结构体数组,采用结构化程序设计的思想,设计多个函数,分别完成六大主攻能模板,从而实现系统的每项功能操作。

经过一个多星期的课程实训,完成了对学籍管理系统代码的设计,收获颜多。

也明白了自己在C语言上存在的一些问题,尤其在用C语言编程方面存在的缺点与不足。

经过课程实训使我明白做一个完整的系统要用到我们学到的很多方面的知识,一个完整的系统包含的C语言知识很多,要有好强的综合运用能力才能开发一个完整的系统。

在程序操作过程中要有耐心,更要细心。

同时,也体会到学软件专业要有好强的动手能力,而实训操作完成小系统锻炼了我的动手能力,今后,在动手操作方面要加强,毕竟熟能生巧,练
多了才能提高自己的编写程序的能力。

毕竟,对于软件专业的初学者来说,起初的编程还属于经验编程,靠自己的学习及动手操作获得经验,以便为今后开发出新的程序打下基础。

学生成绩管理系统代码(c语言编写)汇编

学生成绩管理系统代码(c语言编写)汇编

C程序学生管理系统/* Note:Your choice is C IDE */#include"stdio.h"#include"stdlib.h"#include"string.h"typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>初始化失败!");return 0;}else{p->next=NULL;p->date.number=0;//头结点存放学生人数 printf("初始化成功!\n");return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head->next;p=(unit*)malloc(sizeof(unit));printf("=>请输入新生姓名!\n");gets(p->);fflush(stdin);printf("=>请输入学号!\n");while(n==0){scanf("%d",&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q->date.number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head->next;break;}else{q=q->next;if(q==NULL) n=1;}}}p->date.number=m;printf("=>请输入性别!\n");gets(p->date.sex);fflush(stdin);printf("=>请输入数学成绩\n");scanf("%d",&m);fflush(stdin);p->date.math=m;printf("=>请输入英语成绩\n");scanf("%d",&m);fflush(stdin);p->date.eglish=m;printf("=>请输入c语言成绩\n");scanf("%d",&m);fflush(stdin);p->date.clanguge=m;p->date.average=(p->date.math+p->date.eglish+p->date.clanguge);q=head->next;head->next=p;p->next=q;head->date.number++;}void deletion(unit *head)//删除一名学生{unit *p=head->next,*q=head;char N[10];printf("=>请输入你想删除的学生姓名!\n");gets(N);fflush(stdin);if(p==NULL)printf("=>系统无学生可删除!\n");while(p){if(strcmp(p->,N)==0){q->next=p->next;head->date.number--;printf("=>删除%s成功!\n",p->);free(p);break;}else{p=p->next;q=q->next;if(p==NULL)printf("=>你要删除的学生不存在,删除失败!\n");}}}int display(unit *head)//显示学生信息{unit *p=head->next;int m,n=0;char N[10];if(p==NULL){printf("=>系统无学生!\n");return 0;}while(n==0){printf("********************************************************* *********************\n");printf("=>请选择你的操作!\n");printf("=>\t\t\t1.显示所有\t2.按姓名查找\n\t\t\t3.按学号查找\t4.返回主菜单\n");scanf("%d",&m);fflush(stdin);switch(m){case 1:printf("\n=>该系统拥有%d名学生!\n\n",head->date.number);p=head->next;printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n\n");while(p){printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.numb er,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);p=p->next;}break;case 2:printf("=>请输入查找姓名!\n");gets(N);fflush(stdin);p=head->next;while(p){if(strcmp(p->,N)==0){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t 综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.numb er,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!");}}break;case 3: printf("=>请输入查找学号!\n");scanf("%d",&m);fflush(stdin);p=head->next;while(p){if(p->date.number==m){printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t 综合\n");printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->,p->date.numb er,p->date.sex,p->date.math,p->date.eglish,p->date.clanguge,p->date.average);break;}else{p=p->next;if(p==NULL)printf("=>你要查的学生不存在!\n");}}break;case 4:n=1;break;}}return 1;}int range(unit *head)//排序{unit *p=head,*q=head->next;int n,i,m=head->date.number;printf("********************************************************* **********************\n");printf("\t\t\t1.按学号\t2.按成绩\n\n");printf("=>请选择操作!\n》");scanf("%d",&n);fflush(stdin);if(q==NULL){ printf("=>无学生可排序!\n");return 0;}switch(n){case 2:for(i=0;i<m;i++)//按总分排序{p=head;q=head->next;while(q->next){if((q->date.average)<(q->next->date.average)){p->next=q->next;p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next;}}}break;case 1:for(i=0;i<=m;i++)//按学号排序{p=head;q=head->next;while(q->next){if((q->date.number)>(q->next->date.number)){p->next=q->next;p=p->next;q->next=p->next;p->next=q;}else{p=p->next;q=q->next;}}}break;}printf("=>排序成功!\n");return 1;}void menu(){printf("\n********************************* 主菜单***************************************\n");printf("\t\t\t1.新建系统\t2.添加学生\n\t\t\t3.删除学生\t4.查看信息\n\t\t\t5.排列顺序\t6.读取信息\n\t\t\t7.保存信息\t8.退出系统\n");printf("=>请选择你的操作!\n");}int save(unit *head)//保存{FILE *fp;unit *p;p=head;if((fp=fopen("d:\\学生","wb+"))==NULL){printf("=>保存失败!");return 0;}while(p){fwrite(&(p->date),sizeof(student),1,fp);p=p->next;}printf("=>保存成功!");fclose(fp);return 1;}unit* read()//读入系统学生信息{int i;unit *p,*q,*head;FILE *fp;if((head=(unit*)malloc(sizeof(unit)))==NULL) { printf("=>开辟空间失败!");exit(1);}else{head->next=NULL;head->date.number=0;//头结点存放学生人数}q=head;if((fp=fopen("d:\\学生","rb"))==NULL){printf("=>系统无学生!\n");return 0;}fread(&(q->date),sizeof(student),1,fp);for(i=0;i<head->date.number;i++){if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>读值失败!");exit(1);}fread(&(p->date),sizeof(student),1,fp);p->next=q->next;q->next=p;}fclose(fp);return head;}void main(){int m=0,n, i;unit *head;printf("************************************************************* *******************\n\n");printf("\t\t\t* 欢迎使用学生成绩管理系统 * \n");printf("\n\t\t\t\t\t\t\t\t编译员:岳英明\n\n");printf("=>正在读取系统信息......\n");if((head=read())==0){printf("=>是否新建?\n");printf("\t\t\t是(1)\t\t否(2)\n");scanf("%d",&i);fflush(stdin);if(i==1)head=build();else if(i==2)exit(1);}elseprintf("=>信息导入成功!");while(m==0){menu();scanf("%d",&n);fflush(stdin);switch(n){case 1: head=build();break;case 2:add(head);break;case 3:deletion(head);break;case 4:display(head);break;case 5: range(head);break;case 6:head=read();if(head!=0) printf("=>读取存盘成功!\n");break;case 7:save(head);break;case 8:m=1;break;}} }。

C语言程序设计-学生成绩管理系统源码

C语言程序设计-学生成绩管理系统源码

#include〈stdio.h>#include<conio。

h>#include<malloc.h>#include<string.h>struct STUDENT{char studentNumber[10];/*学生学号*/char studentName[20];/*学生姓名*/char className[20];/*班级名称*/float mark1;/*第1门成绩*/float mark2;/*第2门成绩*/float mark3;/*第3门成绩*/struct STUDENT *next;};struct STUDENT *headLink;/*链表表头指针*//*以下是函数声明*/void ReadInfoFormFile(void);/*读入信息形成文件*/void DisplayMenu(void);void CreateHeadLink(void);struct STUDENT *MallocNode(void);void GetInformation(struct STUDENT *t);void OutputInformation(void);void DisplayInfoBystudentName(void);void DisplayInfoBystudentNumber(void);void DisplayOneNode(struct STUDENT *t);void InsertOneNode(struct STUDENT *t);void DeleteNodeBystudentNumber(void);void ChangeMarkByName(void);void ChangeMarkByNumber(void);void SaveLinkToFile(void);void DisplayMarkSegment(void);/*显示各分数段的学生成绩*/ void CompositorByTotalMark(void);/*按总成绩排序*/int choose;/*用于接受用户的选择*//*主函数*/int main(){CreateHeadLink();ReadInfoFormFile();DisplayMenu();return 0;}/************************************函数功能:从文件中读学生信息到链表中************************************/void ReadInfoFormFile(void){FILE *fp;STUDENT *p;fp=fopen(”student。

C#控制台学生成绩管理系统实训报告(含源代码)

C#控制台学生成绩管理系统实训报告(含源代码)

项目报告1设计题目:学生成绩管理系统。

2设计目的:1.巩固C#语言编程知识,提高面向对象编程能力,提高分析与解决实际问题的能力。

2.掌握循环、子程序等结构的程序设计方法。

3.掌握数组、结构体等数据结构的设计方法。

4.掌握排序检索等程序设计技术。

3项目实现的功能:1.学生类的实现;2.输入10个学生的学号、姓名、各门课程的成绩;3.计算学生的总成绩和平均成绩;4.按总成绩排序并显示;5.检索功能,可以按姓名、学号进行检索。

6.能够插入、修改和删除学生信息7.能够正常退出程序。

4设计原理:1.建立一个学生类,利用ArrayList动态数组存储学生的学号,姓名,数学成绩,英语成绩,C#成绩。

2.在学生类里面定义函数:operate()函数当做菜单,input()函数用来输入信息,insert()函数用来插入信息,index()函数用来检索并返回索引值,index_show()函数用来输出索引结果,index_remove()函数用来删除学索引处的生信息,move()函数用来排序,move_Sum()函数用来按总成绩排序,move_show()函数用来输出排序后的信息。

3.operate()函数中用swish语句选择应用选项,用goto Return返回主菜单;input()函数中用Add添加信息;insert()函数中用insert插入信息;index()函数中用IndexOf来检索并返回索引值;index_show()函数中用for循环来输出索引结果;index_remove()函数中用RemoveAt来删除学索引处的生信息;move()函数中用嵌套式双重for循环来排序;4.用Console.Clear();来清屏。

5程序流程图;6使用及调试说明;1.开始调试程序2.输入学生信息3.查看输入结果4.排序5.查询个人信息6.删除学生信息7.插入及修改学生信息7源程序代码;using System;using System.Collections;using System.Collections.Generic;using System.Text;namespace Student_score_management{public class Student//定义了一个学生类{ArrayList ID = new ArrayList(3); //把学生的学号,姓名,英语、数学、C#成绩分别放在动态数组中。

大连东软小学期C语言项目学生成绩管理系统代码

大连东软小学期C语言项目学生成绩管理系统代码
};
void showMenu( );
struct STUDENT* createList( );
void outputList(struct STUDENT * head);
void searchByName(struct STUDENT * head);
void deleteByName(struct STUDENT * head);
q = q->next; //q指针指向新的尾节点
printf("请输入姓名(输入‘none’表示输入结束):");
scanf("%s", name);
}
q->next = NULL; //标志链表的结束
return head;
}
/*输出链表中的所有记录清单*/
void outputList(struct STUDENT * head )
struct STUDENT * add(struct STUDENT * head);
int main( )
{
struct STUDENT *head = NULL;
int select;
while(1)
{
showMenu();
scanf("%d",&select);
switch(select)
{
scanf("%s",name);
for(p=head->next;p!=NULL;p=p->next)
{
if(strcmp(p->name,name)==0)
break;
}
if(p==NULL)
printf("没有找到!");

学生成绩管理系统C语言课程设计源代码

#include<stdio.h>#include<string.h>#include<math.h>#include<conio.h>#include<stdlib.h>struct chengji /* 成绩结构体*/ {int point;char subject[20];};struct student /* 学生结构体*/ { int w;char name[20];int number;struct chengji cheng[30];float sum;float average;}stu[40];void pjun(); /*按平均分排序*/void pfen(); /*按总分排序*/ void addnew(); /*录入学生成绩*/void pall(); /*显示所有成绩*/ void check(); /*查询菜单*/ void pnum(); /*按学号排序*/ void pjing(); /*精确查找*//****************************************************************************** *************************//*主菜单*/main(){char choose;while(1){printf("\n\t\t**************************************");printf("\n\t\t* 欢迎使用成绩管理系统*");printf("\n\t\t* *");printf("\n\t\t* 请选择*");printf("\n\t\t* 1. 录入学生成绩*");printf("\n\t\t* 2. 查询学生成绩*");printf("\n\t\t* 3. 清屏*");printf("\n\t\t* 0. 退出程序*");printf("\n\t\t* *");printf("\n\t\t**************************************");printf("\n\n");printf("请选择:");scanf("%c",&choose);getchar();switch(choose){ case '1': addnew(); break;case '2': check(); break;case '3': system("cls"); break;case '0': exit(0); break;default: printf("输入错误,请从新输入!\n\n");}}}/****************************************************************************** **********************//*录入学生成绩*/void addnew(){int n,m,i,p;float sum;float average;FILE *file;sum=0.00000;average=0.00000;if((file=fopen("c:\\student.dat","rb"))==NULL){file = fopen("c:\\student.dat", "wb+"); /* 创建一个文件*/}printf("请输入需要录入的学生人数: ");scanf("%d",&n);for(i=0;i<n;i++){printf("输入第%d个同学信息:\n",i+1);printf("姓名:");scanf("%s",&stu[i].name);printf("学号:");scanf("%d",&stu[i].number);printf("输入科目个数:");scanf("%d",&m);stu[i].w=m;printf("按科目(回车)成绩(回车)……的顺序输入:\n"); /* 录入成绩*/for(p=0;p<m;p++){scanf("%s",&stu[i].cheng[p].subject);scanf("%d",&stu[i].cheng[p].point);stu[i].sum=stu[i].sum+stu[i].cheng[p].point;stu[i].average=stu[i].sum/m;}/* printf("总分%f , 平均分%f\n ",stu[i].sum,stu[i].average);*/fwrite(&stu[i],sizeof(stu),1,file); /* 把stu写入文件*/}fclose(file); /* 关闭文件*/fflush(stdin);system("cls");}/****************************************************************************** **********************//*查询菜单*/void check(){while(1){ char choose;printf("\n\t\t**************************************");printf("\n\t\t* 查询菜单*");printf("\n\t\t* *");printf("\n\t\t* 请选择*");printf("\n\t\t* 1. 按学号排列*");printf("\n\t\t* 2. 按总分排列*");printf("\n\t\t* 3. 按平均分排列*");printf("\n\t\t* 4. 精确查询*");printf("\n\t\t* 5. 显示所有学生成绩*");printf("\n\t\t* 6. 清屏*");printf("\n\t\t* 0. 返回*");printf("\n\t\t**************************************");printf("\n\n");printf("请选择:");scanf("%c",&choose);getchar();switch(choose){ case '1': pnum(); break;case '2': pfen(); break;case '3': pjun(); break;case '4': pjing(); break;case '5': pall(); break;case '6': system("cls"); break;case '0': main(); break;}}}/****************************************************************************** **********************//*显示所有成绩*/void pall(){int i=0,m;FILE *file;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error!!\n");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0)/* 循环整个文件*/{ printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++)/*显示各科成绩*/{printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}i++;fread(&stu[i],sizeof(stu),1,file);}fclose(file);}/****************************************************************************** *************************//*按学号排序*/void pnum(){ FILE *file;int j;int i=0;int n=0;int m=0;struct student bm; /*创建一个‘中间’结构体,用于交换*/if((file=fopen("c:\\student.dat","rb"))==NULL) /* 打开文件*/ { printf("Open error");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){i++;fread(&stu[i],sizeof(stu),1,file);}n=i;for(j=n-1;j>0;j--){ for(i=0;i<j;i++){ if(stu[i].number>stu[i+1].number) /*对比学号,对换stu*/{ bm=stu[i]; /*交换位置*/stu[i]=stu[i+1];stu[i+1]=bm;}}}for(i=0;i<n;i++)/* 交换后从新排序*/{ printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}}fclose(file);fflush(stdin);}/****************************************************************************** *************************//*按总分排序*/void pfen(){ FILE *file;int j;int i=0;int n=0;int m;struct student bm;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){i++;fread(&stu[i],sizeof(stu),1,file);}n=i;for(j=n-1;j>0;j--){ for(i=0;i<j;i++){ if(stu[i].sum<stu[i+1].sum){ bm=stu[i];stu[i]=stu[i+1];stu[i+1]=bm;}}}for(i=0;i<n;i++){ printf("姓名----学号----总分----平均分\n"); /*显示到屏幕*/printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}}fclose(file);fflush(stdin);}/*******************************************************************************************************//*按平均分排序*/void pjun(){ FILE *file;int j;struct student bm;int i=0;int n=0;int m;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error");getch();exit(0);}fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){i++;fread(&stu[i],sizeof(stu),1,file);}n=i;for(j=n-1;j>0;j--){ for(i=0;i<j;i++){ if(stu[i].average<stu[i+1].average){ bm=stu[i];stu[i]=stu[i+1];stu[i+1]=bm;}}}for(i=0;i<n;i++){ printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}}fclose(file);fflush(stdin);}/****************************************************************************** *************************//*精确查找*/void pjing(){int n;int i=0;int m;FILE *file;if((file=fopen("c:\\student.dat","rb"))==NULL){ printf("Open error");getch();exit(0);}printf("请输入要查询的学生的学号:");scanf("%d",&n);getchar();fread(&stu[i],sizeof(stu),1,file);while(feof(file)==0){ if(n==stu[i].number) /*输出对应的学号的学生成绩*/{printf("姓名----学号----总分----平均分\n");printf("%s %5d %10.1f %8.1f\n",stu[i].name,stu[i].number,stu[i].sum,stu[i].average);printf(" 科目------成绩\n");for(m=0;m<stu[i].w;m++){printf("%40s %d \n",stu[i].cheng[m].subject,stu[i].cheng[m].point);}break;}i++;fread(&stu[i],sizeof(stu),1,file);}fclose(file);fflush(stdin);}/******************************************结束*******************************************************/。

学生成绩管理系统的设计与实现代码

学生成绩管理系统的设计与实现代码本系统有增加学生记录、修改学生记录、删除学生记录、按姓名查询学生记录、按C语言成绩对学生进行排序、退出系统6大功能。

能够对学生的姓名,学号,c语言成绩做相应的操作。

在检测到输入成绩大于55时,会自动加上5。

该管理系统设计功能模块图:下面是源代码:#include "stdio.h"#include "string.h"/*定义学生结构体*/struct Student{char ID[20]; //学号char Name[20]; //姓名float C_Mark; //C语言成绩};/*声明学生数组及学生数量*/struct Student students[1000];int num=0;/*通过学号返回数组下标*/int Student_SearchByIndex(char id[]) {int i;for (i=0;i<num;i++){if (strcmp(students[i].ID,id)==0) {return i;}}return -1;}/*通过姓名返回数组下标*/int Student_SearchByName(char name[]) {int i;for (i=0;i<num;i++){if (strcmp(students[i].Name,name)==0){return i;}}return -1;}/*显示单条学生记录*/void Student_DisplaySingle(int index){printf("%10s%10s%8s\n","学号","姓名","C语言成绩");printf("-------------------------------------------------------------\n");printf("%10s%10s%8.2f\n",students[index].ID,students[index] .Name,students[index].C_Mark);}/****1、增加学生记录*****/void Student_Insert(){while(1){printf("请输入学号:");scanf("%s",&students[num].ID);getchar();printf("请输入姓名:");scanf("%s",&students[num].Name);getchar();printf("请输入C语言成绩:");scanf("%f",&students[num].C_Mark);getchar();if (54<students[num].C_Mark && students[num].C_Mark< 60) //把55~59分之间的成绩都加上5分{students[num].C_Mark += 5;}num++;printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/******2、修改学生信息**********/void Student_Modify(){while(1){char id[20];int index;printf("请输入要修改的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if (index==-1){printf("该学生不存在!\n");}else{printf("你要修改的学生信息为:\n");Student_DisplaySingle(index);printf("-- 请输入新值--\n");printf("请输入学号:");scanf("%s",&students[index].ID);getchar();printf("请输入姓名:");scanf("%s",&students[index].Name);getchar();printf("请输入C语言成绩:");scanf("%f",&students[index].C_Mark);getchar();}printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/****3、删除学生信息****/void Student_Delete(){int i;while(1){char id[20];int index;printf("请输入要删除的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if (index==-1){printf("学生不存在!\n");}else{printf("你要删除的学生信息为:\n");Student_DisplaySingle(index);printf("是否真的要删除?(Y/N)");if (getchar()=='Y'){for (i=index;i<num-1;i++){students[i]=students[i+1];//把后边的对象都向前移动}num--;}getchar();printf("已删除\n");}printf("是否继续删除?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/****4、按姓名查询******/void Student_Select(){while(1){char name[20];int index;printf("请输入要查询的学生的姓名:");scanf("%s",&name);getchar();index=Student_SearchByName(name);if (index==-1){printf("学生不存在!\n");}else{printf("你要查询的学生信息为:\n");Student_DisplaySingle(index);}printf("是否继续?(Y/N),继续请按任意键,否则输入N:");if (getchar()=='N'){break;}}}/******5、按C语言成绩排序*******/void Student_SortByAverage(){int i,j;struct Student tmp;for (i=0;i<num;i++){for (j=1;j<num-i;j++){if (students[j-1].C_Mark<students[j].C_Mark){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}/*显示学生信息*/void Student_Display(){int i;printf("%10s%10s%8s\n","学号","姓名","成绩");printf("-------------------------------------------------------------\n");for (i=0;i<num;i++){printf("%10s%10s%8.2f\n",students[i].ID,students[i].Name ,students[i].C_Mark);}}/*将学生信息从文件(Database.txt)中读出*/void IO_ReadInfo(){FILE *fp;int i;if ((fp=fopen("Database.txt","rb"))==NULL){printf("不能打开文件!\n");return;}if (fread(&num,sizeof(int),1,fp)!=1){num=-1;}else{for(i=0;i<num;i++){fread(&students[i],sizeof(struct Student),1,fp);}}fclose(fp);}/*将学生信息写入文件(Database.txt)*/void IO_WriteInfo(){FILE *fp;int i;if ((fp=fopen("Database.txt","wb"))==NULL){printf("不能打开文件!\n");return;}if (fwrite(&num,sizeof(int),1,fp)!=1){printf("写入文件错误!\n");}for (i=0;i<num;i++){if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1){printf("写入文件错误!\n");}}fclose(fp);}/***********主程序*********/void main(){int choice;IO_ReadInfo(); //读取文件while(1){/*主菜单*/printf("\n------ 学生成绩管理系统------\n");printf("1. 增加学生记录\n");printf("2. 修改学生记录\n");printf("3. 删除学生记录\n");printf("4. 按姓名查询学生记录\n");printf("5. 按C语言成绩排序\n");printf("6. 退出\n");printf("请选择(1-6):");scanf("%d",&choice);getchar();switch(choice){case 1:Student_Insert();break;case 2:Student_Modify();break;case 3:Student_Delete();break;case 4:Student_Select();break;case 5:Student_SortByAverage();Student_Display();break;case 6:exit(0);break;}IO_WriteInfo();}}1234567891011121415161718192021222324252627282930313233343637383940414243444546474849505152535455565859606162636465666768697071727374757677788081828384858687888990919293949596979899 100102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320322323324325326327328329330331332333334335336337338运行结果:测试第一个功能,输入四个学生的成绩:测试第二个功能,修改学生记录:测试第三个功能,删除学生记录:测试第四个功能,按姓名查询学生记录:测试第五个功能,显示所有学生的成绩,按照C语言成绩由高到底排序:我们可以看到,各项功能的实现,在第2个步骤中,将赵的成绩改为80,而第3个步骤删除了李的成绩。

学生成绩管理系统(c语言编写)

C程序学生管理系统/* Note:Your choice is C IDE */#include"stdio.h”#include"stdlib.h”#include”string。

h"typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf(”=〉初始化失败!");return 0;}else{p—〉next=NULL;p—>date.number=0;//头结点存放学生人数 printf(”初始化成功!\n");return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head—〉next;p=(unit*)malloc(sizeof(unit));printf("=〉请输入新生姓名!\n”);gets(p->date。

name);fflush(stdin);printf(”=〉请输入学号!\n”);while(n==0){scanf("%d",&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q—〉date。

number==m){printf("=〉你输入的学号与已有同学的学号相同,请重新输入!\n");q=head->next;break;}else{q=q—〉next;if(q==NULL) n=1;}}}p—〉date。

完整代码+学生成绩管理系统

学生成绩管理系统完整版(C语言版能运行有截图)源程序代码#include<iostream.h>#include<stdlib.h>#include<ctype.h>#include<stdio.h>#include<string.h>typedef struct{char class_0[20];int number;char name[20];float electrics;float c_program;float multimedia;float english;float math;float sport;float polity;float summary;float average;}Student;Student stu[100];int menu(){char c;do{system("cls");cout<<"********************************学生成绩管理系统********************************"<<endl;cout<<"【1】输入数据"<<endl;cout<<"【2】显示所有数据"<<endl;cout<<"【3】按平均分降序排列"<<endl;cout<<"【4】查找并显示一组数据"<<endl;cout<<"【5】插入一组数据"<<endl;cout<<"【6】修改一组数据"<<endl;cout<<"【7】删除一组数据"<<endl;cout<<"【8】从文件中读入数据"<<endl;cout<<"【9】将所有记录写入文件"<<endl;cout<<"【0】退出本系统\n"<<endl;cout<<"**********************作者:孟强0611103班2011212423************************"<<endl;cout<<"请你选择操作(0-9):"<<endl;c=getchar();}while(c<'0'||c>'9');return(c-'0');}int Input(Student stud[],int n){int i=0;char sign,x[10];while(sign!='n'&&sign!='N'){cout<<"请输入学生的班级:";cin>>stud[n+i].class_0;cout<<"请输入学生的学号:";cin>>stud[n+i].number;cout<<"请输入学生的姓名:";cin>>stud[n+i].name;cout<<"请输入该学生『电子电路』的成绩:";cin>>stud[n+i].electrics;cout<<"请输入该学生『C语言程序设计』的成绩:";cin>>stud[n+i].c_program;cout<<"请输入该学生『多媒体技术』的成绩:";cin>>stud[n+i].multimedia;cout<<"请输入该学生『大学英语』的成绩:";cin>>stud[n+i].english;cout<<"请输入该学生『高等数学』的成绩:";cin>>stud[n+i].math;cout<<"请输入该学生『大学体育』的成绩:";cin>>stud[n+i].sport;cout<<"请输入该学生『马克思主义基本原理』的成绩:";cin>>stud[n+i].polity;stud[n+i].summary=stud[n+i].electrics+stud[n+i].c_program+stud[n+i].multimedia+stud[n+i].en glish+stud[n+i].math+stud[n+i].sport+stud[n+i].polity;stud[n+i].average=stud[n+i].summary/7;cout<<"该学生的总分为:"<<stud[n+i].summary<<"平均分为:"<<stud[n+i].average<<endl; gets(x);cout<<"=====>提示:继续写入成绩?(Y/N)";cin>>sign;i++;}return(n+i);}void Display(Student stud[],int n){int i;if(!stud)cout<<"没有记录";else{cout<<"--------------------------------------------------------------------------------"<<endl;cout<<"班级学号姓名电子C语言多媒体英语数学体育马克思总分平均分"<<endl;cout<<"--------------------------------------------------------------------------------"<<endl;for(i=1;i<n+1;i++){stud[i-1].summary=stud[i-1].electrics+stud[i-1].c_program+stud[i-1].multimedia+stud[i-1].engli sh+stud[i-1].math+stud[i-1].sport+stud[i-1].polity;stud[i-1].average=stud[i-1].summary/7;cout<<stud[i-1].class_0<<" "<<stud[i-1].number<<" "<<stud[i-1].name<<" "<<stud[i-1].electrics<<" "<<stud[i-1].c_program<<" "<<stud[i-1].multimedia<<" "<<stud[i-1].english<<" "<<stud[i-1].math<<" "<<stud[i-1].sport<<" "<<stud[i-1].polity<<" "<<stud[i-1].summary<<" "<<stud[i-1].average<<endl;}cout<<"\t\t\t"<<endl; }system("pause");}void Sort(Student stud[],int n){int i,j,k;float s;char t[20];for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(stud[j].average<stud[j+1].average){strcpy(t,stud[j+1].class_0);strcpy(stud[j+1].class_0,stud[j].class_0);strcpy(stud[j].class_0,t);k=stud[j+1].number;stud[j+1].number=stud[j].number;stud[j].number=k;strcpy(t,stud[j+1].name);strcpy(stud[j+1].name,stud[j].name);strcpy(stud[j].name,t);s=stud[j+1].electrics;stud[j+1].electrics=stud[j].electrics;stud[j].electrics=s;s=stud[j+1].c_program;stud[j+1].c_program=stud[j].c_program; stud[j].c_program=s;s=stud[j+1].multimedia;stud[j+1].multimedia=stud[j].multimedia; stud[j].multimedia=s;s=stud[j+1].english;stud[j+1].english=stud[j].english;stud[j].english=s;s=stud[j+1].math;stud[j+1].math=stud[j].math;stud[j].math=s;s=stud[j+1].sport;stud[j+1].sport=stud[j].sport;stud[j].sport=s;s=stud[j+1].polity;stud[j+1].polity=stud[j].polity;stud[j].polity=s;s=stud[j+1].summary;stud[j+1].summary=stud[j].summary; stud[j].summary=s;s=stud[j+1].average;stud[j+1].average=stud[j].average;stud[j].average=s;}cout<<"--------------------------------------------------------------------------------"<<endl;cout<<" 班级学号姓名电子C语言多媒体英语数学体育马克思总分平均分"<<endl;cout<<"--------------------------------------------------------------------------------"<<endl;for(i=1;i<n+1;i++){stud[i-1].summary=stud[i-1].electrics+stud[i-1].c_program+stud[i-1].multimedia+stud[i-1].engli sh+stud[i-1].math+stud[i-1].sport+stud[i-1].polity;stud[i-1].average=stud[i-1].summary/7;cout<<stud[i-1].class_0<<stud[i-1].number<<stud[i-1].name<<stud[i-1].electrics<<stud[i-1].c_p rogram<<stud[i-1].multimedia<<stud[i-1].english<<stud[i-1].math<<stud[i-1].sport<<stud[i-1].polity<<stud[i-1].summary<<stud[i-1].average<<endl ;}}int Insert(Student stud[],int n){char x[10];cout<<"请输入学生的班级:"<<endl;cin>>stud[n].class_0;cout<<"请输入学生的学号:";cin>>stud[n].number;cout<<"请输入学生的姓名:";cin>>stud[n].name;cout<<"请输入该学生『电子电路』的成绩:";cin>>stud[n].electrics;cout<<"请输入该学生『C语言程序设计』的成绩:";cin>>stud[n].c_program;cout<<"请输入该学生『多媒体技术』的成绩:";cin>>stud[n].multimedia;cout<<"请输入该学生『大学英语』的成绩:";cin>>stud[n].english;cout<<"请输入该学生『高等数学』的成绩:";cin>>stud[n].math;cout<<"请输入该学生『大学体育』的成绩:";cin>>stud[n].sport;cout<<"请输入该学生『马克思主义基本原理』的成绩:";cin>>stud[n].polity;stud[n].summary=stud[n].electrics+stud[n].c_program+stud[n].multimedia+stud[n].english+ stud[n].math+stud[n].sport+stud[n].polity;stud[n].average=stud[n].summary/7;gets(x);n++;Sort(stu,n);cout<<"=====>提示:插入成功!"<<endl;return(n);}int Delete(Student stud[],int n){int s;int i=0,j;cout<<"输入需要删除学生的学号:"<<endl;cin>>s;while((stud[i].number-s)!=0&&i<n) i++;if(i==n){cout<<"=====>提示:对不起,无法找到改学号……"<<endl;return(n);}for(j=i;j<n-1;j++){strcpy(stud[j].class_0,stud[j+1].class_0);stud[j].number=stud[j+1].number;strcpy(stud[j].name,stud[j+1].name);stud[j].electrics=stud[j+1].electrics;stud[j].c_program=stud[j+1].c_program;stud[j].multimedia=stud[j+1].multimedia;stud[j].english=stud[j+1].english;stud[j].math=stud[j+1].math;stud[j].sport=stud[j+1].sport;stud[j].polity=stud[j+1].polity;}cout<<"=====>提示:已成功删除!"<<endl;return(n-1);}void Search(Student stud[],int n){int s;int i=0;cout<<"输入需要查找学生的学号:"<<endl;cin>>s;while((stud[i].number-s)!=0&&i<n) i++;if(i==n){cout<<"=====>提示:对不起,无法找到该学生的信息!"<<endl; return;}cout<<"---------------------------"<<endl;cout<<"班级:"<<stud[i].class_0<<endl;cout<<"学号:"<<stud[i].number<<endl;cout<<"姓名:"<<stud[i].name<<endl;cout<<"电子电路:"<<stud[i].electrics<<endl;cout<<"C语言程序设计:"<<stud[i].c_program<<endl;cout<<"多媒体技术:"<<stud[i].multimedia<<endl;cout<<"大学英语:"<<stud[i].english<<endl;cout<<"高等数学:"<<stud[i].math<<endl;cout<<"大学体育:"<<stud[i].sport<<endl;cout<<"马克思主义基本原理:"<<stud[i].polity<<endl;cout<<"总分:"<<stud[i].summary<<endl;cout<<"平均分:"<<stud[i].average<<endl;}void Modify(Student stud[],int n){int s;int i=0;cout<<"输入需要修改成绩学生的学号:"<<endl;cin>>s;while((stud[i].number-s)!=0&&i<n) i++;if(i==n){cout<<"=====>提示:对不起,无该学生的成绩……"<<endl;return;}cout<<"-----------------------------------该学生的信息---------------------------------"<<endl;cout<<" 班级学号姓名电子C语言多媒体英语数学体育马克思总分平均分"<<endl;cout<<"--------------------------------------------------------------------------------"<<endl;stud[i].summary=stud[i].electrics+stud[i].c_program+stud[i].multimedia+stud[i].english+ stud[i].math+stud[i].sport+stud[i].polity;stud[i].average=stud[i].summary/7;cout<<stud[i-1].class_0<<stud[i-1].number<<stud[i-1].name<<stud[i-1].electrics<<stud[i-1].c_p rogram<<stud[i-1].multimedia<<stud[i-1].english<<stud[i-1].math<<stud[i-1].sport<<stud[i-1].polity<<stud[i-1].summary<<stud[i-1].average<<endl ;cout<<"请输入学生的班级:"<<endl;cin>>stud[n+i].class_0;cout<<"请输入学生的学号:"<<endl;cin>>stud[n+i].number;cout<<"请输入学生的姓名:"<<endl;cin>>stud[n+i].name;cout<<"请输入该学生『电子电路』的成绩:"<<endl;cin>>stud[n+i].electrics;cout<<"请输入该学生『C语言程序设计』的成绩:"<<endl;cin>>stud[n+i].c_program;cout<<"请输入该学生『多媒体技术』的成绩:"<<endl;cin>>stud[n+i].multimedia;cout<<"请输入该学生『大学英语』的成绩:"<<endl;cin>>stud[n+i].english;cout<<"请输入该学生『高等数学』的成绩:"<<endl;cin>>stud[n+i].math;cout<<"请输入该学生『大学体育』的成绩:"<<endl;cin>>stud[n+i].sport;cout<<"请输入该学生『马克思主义基本原理』的成绩:"<<endl;cin>>stud[n+i].polity;stud[i].summary=stud[i].electrics+stud[i].c_program+stud[i].multimedia+stud[i].english+stud[i]. math+stud[i].sport+stud[i].polity;stud[i].average=stud[i].summary/7;cout<<"该学生的总分为:"<<stud[i].summary<<"平均分为:"<<stud[i].average;}int Read(Student stud[],int n){int i=0,num;FILE *fp;char filename[20];cout<<"输入文件名:"<<endl;cin>>filename;if((fp=fopen(filename,"rb"))==NULL){cout<<"=====>提示:无法打开这个文件!"<<endl;cout<<"\t\t\t";system("pause");return(n);}fscanf(fp,"%d",&num);while(i<num){fscanf(fp,"%s%d%s%f%f%f%f%f%f%f%f%f",stud[n+i].class_0,&stud[n+i].number,stud[n+i].n ame,&stud[n+i].electrics,&stud[n+i].c_program,&stud[n+i].multimedia,&stud[n+i].english,&stu d[n+i].math,&stud[n+i].sport,&stud[n+i].polity,&stud[n+i].summary,&stud[n+i].average);i++;}n+=num;fclose(fp);cout<<"=====>提示:读入数据成功,可选择【显示所有成绩】查看"<<endl;cout<<"\t\t\t";system("pause");return(n);}void Save(Student stud[],int n){int i=0;FILE *fp;char filename[20];cout<<"输入文件名:";cin>>filename;if((fp=fopen(filename,"w"))==NULL){cout<<"=====>提示:无法打开这个文件!"<<endl;system("pause");return;}fprintf(fp,"%d\n",n);while(i<n){fprintf(fp,"%-8s%-8d%-6s%-6.1f%-7.1f%-7.1f%-6.1f%-6.1f%-6.1f%-7.1f%-8.1f%-6.2\n",stud[i ].class_0,stud[i].number,stud[i].name,stud[i].electrics,stud[i].c_program,stud[i].multimedia,stud[ i].english,stud[i].math,stud[i].sport,stud[i].polity,stud[i].summary,stud[i].average);i++;}fclose(fp);cout<<"=====>提示:已成功写入数据!"<<endl;}void main(){int n=0;for(;;){switch(menu()){case 1:cout<<endl<<"====>> 输入成绩<<===="<<endl;n=Input(stu,n);break;case 2:cout<<endl<<"====>> 显示所有记录<<===="<<endl;Display(stu,n);break;case 3:cout<<endl<<"====>> 按平均分降序排列<<===="<<endl; Sort(stu,n);cout<<"排序成功!"<<endl;cout<<"\t\t\t";system("pause");break;case 4:cout<<endl<<"====>> 查找并显示一组成绩<<===="<<endl; Search(stu,n);cout<<"\t\t\t";system("pause");break;case 5:cout<<endl<<"====>> 插入一组成绩<<===="<<endl;n=Insert(stu,n);cout<<"\t\t\t";system("pause");break;case 6:cout<<endl<<"====>> 修改一组成绩<<===="<<endl; Modify(stu,n);cout<<"\t\t\t";system("pause");break;case 7:cout<<endl<<"====>> 删除一组成绩<<===="<<endl;n=Delete(stu,n);cout<<"\t\t\t";system("pause");break;case 8:cout<<endl<<"====>> 从文件中读入数据<<===="<<endl;n=Read(stu,n);break;case 9:cout<<endl<<"====>> 将所有记录写入文件<<===="<<endl;Save(stu,n);cout<<"\t\t\t";system("pause");break;case 0:cout<<endl<<"====>> 谢谢您的使用!<<===="<<endl;cout<<"\t\t\t";system("pause");exit(0);}}}界面截图1、程序主菜单运行界面2、成绩录入界面3、成绩修改界面4、成绩数据删除界面5、插入数据界面6、将数据写入文件界面参考文献[1] 谭浩强,张基温.C语言程序设计教程(第3版)[M].北京:高等教育出版社,2006[2] 谭浩强,C程序设计题解与上机指导(第3版)[M]. 北京: 清华大学出版社,2006。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学习-----好资料 更多精品文档 2009届软件学院 软件工程+电子商务1班 程道雷 学号:2009 2110 110 119

第一阶段:选择课题的阶段,刚开始老师布置下来大作业,一下子感觉到500行那么多,

不知道写什么才能写到500行,尝试了多种程序的编写,但结果都不尽如人意,最后听到三班的张兄弟说要写一个图书馆的管理系统,我一下子就来了想法,想到写一个学生的成绩的管理系统。

第二阶段:我开始着手进行代码的编写,因为平时用的更多的是面向过程的程序,所以

刚开始写的时候就出现了好多问题目,比如说在继承的时候,有些调用就搞混了,这个时候我写了几个小类一个大类,小类是s_class , math, english,it,chinese 大类是 STUDENT ,下面具体把我的这一阶段的思路讲讲吧。这个时候我的程序一开始遇到一个难题: 1、就是怎么用类和对像来存储这么多的数据呢? 刚开始有尝试过对像数组之类的东西。但是写好一段较完整的代码后怎么编译都通不过,后来实现是没有办法,就重新拿起课本来看,看就看到上面有一首程序中是用类中的成员函数和数据成员的组合来实现这个存储的,我一下子恍然大悟,一下子就把输入的程序写了出来,但是编译的错误特别多,没有办法,只有一个一个地改了,把它给调试出来了。下面是这什么编译的比较重要的代码: class student:public s_class ,public math,public english,public it,public chinese{ public :////////数据都是从这个函数中输入的 char name[81][81]; double sum[81]; char number[81][20]; void getdata(int n) { double score; int banjii; char xb; for(int i=1;i<=n;i++) { sum[i]=0; cout<<"请输入第">banjii; s_class::getdata(banjii,i); /* void getdata(int bj,int i) {banji[i]=bj;} int display(int i) {return banji[i];} */ 学习-----好资料 更多精品文档 cout<<"请输入学生的学号:"; cin>>number[i];

cout<<"请输入学生的名字:"; cin>>name[i]; cout<<"请输入学生的性别(f/m): "; cin>>xb; people::getdata(xb,i); cout<<"请输入数学的分数: "; cin>>score; sum[i]+=score; math::getdata(score,i);

cout<<"请输入英语的分数: "; cin>>score; sum[i]+=score; english::getdata(score,i);

cout<<"请输入IT的分数: "; cin>>score; sum[i]+=score; it::getdata(score,i);

cout<<"请输入语文的分数: "; cin>>score; sum[i]+=score; chinese::getdata(score,i); } } void display1(int n) {///用来排序的(后来编译成功运行时,才知道这个根本实现不了排序) double a,b,c,d,f,e,g,h,k,w,su; int banj,banjii; char xh[20];// 学号 char xm[20]; //姓名 char se,se1;// 性别 for(int i=1;i<=n-1;i++) for(int j=i+1;j<=n;j++) { if(sum[i]>sum[j]) { su=sum[i]; sum[i]=sum[j]; 学习-----好资料 更多精品文档 sum[j]=su; /////change the sum;

strcpy(xm,name[i]); strcpy(name[i],name[j]); strcpy(name[j],xm); /////change the name strcpy(xh,number[i]); strcpy(number[i],number[j]); strcpy(number[j],xh); ///change the number a=math::display(i); b=math::display(j); math::getdata(b,i); math::getdata(a,j); ///change the score of math c=it::display(i); d=it::display(j); it::getdata(d,i); it::getdata(c,j); ////////change the score of it; e=english::display(i); f=english::display(j); english::getdata(f,i); english::getdata(e,j); /////change the score of english; g=chinese::display(i); h=chinese::display(j); chinese::getdata(h,i); chinese::getdata(g,j); /////change the score of chinese; se=people::display(i); se1=people::display(j); people::getdata(se1,j); people::getdata(se,i); ////change the sex; banj=s_class::display(i); banjii=s_class::display(j); s_class::getdata(banj,j); s_class::getdata(banjii,i); ///change the banji; } } } 学习-----好资料 更多精品文档 void display2(int n) {///这个函数是用来输出每个同学的信息的 cout<<"class:\tname:\tnumber:\tmath:\tenglish:\tIT:\tchinese:\tsum:"

/*char t=people::display(i); if(t=='f')cout<<"女"; else cout<<"男"; */ cout<<<"\t"<<<"\t"<<<"\t"<} }

}; int main() { student s; int num; cout<<"请输入学生的人数:"; cin>>num; cout<<"the NO. of the student is: "

} 第三阶段; 这个阶段,我对程序的功能方面进行了相当的完善,主要是想开始实现这个

小系统的部分功能了,这阶段主要是在查找,修改,和计算方面的做了一些查试。 1、还有个问题目就是有些功能的实现特别原始,就拿修改分数来说吧,这个时候我采用的还是把改后的某门分数和总分一起输进去。 后来解决我是在switch中设计了自动计算的代码,就达到了一定的智能化,也就是你只要输入哪门科目改为多少分,他们就会自己生成新的总分了。 2、上图就是这个阶段遇到的又一个错误,函数太多,弄的乱七八糟了,连参数个数都搞乱学习-----好资料 更多精品文档 了。

所以写到这里,今天就没再写下去了。 这一阶段重要代码如下:

void student::display3(char *s,int n) {/////////hunt for someone int i,t; for(i=1;i<=n;i++) { if(strcmp(name[i],s)==0) {t=i;break;} } cout<<"class:\tname:\tnumber:\tmath:\tenglish:\tIT:\tchinese:\tsum:"<

/* char tt=people::display(i); if(tt=='f')cout<<"女"; else cout<<"男"; *///对英文输入汉字输出作的改进 cout<<<"\t"<<<"\t"<<<"\t"<} void student::display4(char *s,double gaifen,int k,double d,int n)// {/////////change the score int i,t; for(i=1;i<=n;i++) { if(strcmp(name[i],s)==0) {t=i;break;} } switch(k)///主要是用于转为哪一科目 { case 1: math::getdata(gaifen,t);sum[t]=d;break;

相关文档
最新文档