学生信息管理系统C++

合集下载

c语言学生管理系统代码

c语言学生管理系统代码

C语言学生管理系统代码
简介
学生管理系统是一个用于管理学生信息的简单程序,它可以实现添加学生信息、显示学生信息、修改学生信息和删除学生信息等功能。

通过这个系统,学校或机构可以更方便地管理和维护学生的相关数据。

功能
1.添加学生信息:通过输入学生的姓名、学号、年龄和性别等信息,将
学生信息存储在系统中。

每个学生信息包括学号、姓名、年龄和性别等关键信息。

2.显示学生信息:可以显示系统中所有学生的信息,包括学号、姓名、
年龄和性别。

3.修改学生信息:通过输入学生的学号,可以修改该学生的姓名、年龄
和性别等信息。

4.删除学生信息:通过输入学生的学号,可以删除该学生的信息。

实现
下面是一个简单的C语言学生管理系统代码示例:
```c #include <stdio.h> #include <string.h>
#define MAX_STUDENTS 100
// 定义学生结构体 struct Student { int id; char name[100]; int age; char
gender[10]; };
// 定义全局变量,用于存储学生信息和统计学生数量 struct Student
students[MAX_STUDENTS]; int num_students = 0;
// 添加学生 void addStudent() { if (num_students >= MAX_STUDENTS) { printf(。

学生信息管理系统c语言代码

学生信息管理系统c语言代码

#include<stdio.h>#include<stdlib.h>#include<string.h>#define LEN 15#define N 100struct record //定义结构体{char code[LEN];char name[LEN];int age;char sex[3];char time[LEN];char add[30];char tel[LEN];char mail[30];}stu[N];int k=1,n,m; //引用void readfile();void seek();void modify();void insert();void del();void display();void save();void menu();int main(){while(k)menu();system("pause");return 0;}void help(){printf("\n0.欢迎使用系统帮助!\n");printf("\n1.进入系统后,先刷新学生信息,再查询;\n");printf("\n2.按照菜单提示键入数字代号;\n");printf("\n3.增加学生信息后,切记保存按;\n");printf("\n4.谢谢您的使用!\n");}void readfile()//建立信息{char *p="student.txt";FILE *fp;int i=0;if ((fp=fopen("C:\\Users\\86139\\Desktop\\student.txt","r+"))==NULL){printf("Open file %s error! Strike any key to exit!",p);system("pause");//暂停的意思,等待用户信号exit(0);}while(fscanf(fp,"%s %s %d %s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,s tu[i].add,stu[i].tel,stu[i].mail)==8){i++;i=i;}fclose(fp);n=i;printf("录入完毕!\n");}void seek() //查找信息{int i,item,flag;char s1[21];printf("------------------\n");printf("-----1.按学号查询-----\n");printf("-----2.按姓名查询-----\n");printf("-----3.退出本菜单-----\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item){case 1:printf("请输入要查询的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0)//{flag=1;printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,st u[i].time,stu[i].add,stu[i].tel,stu[i].mail);if(flag==0){printf("该学号不存在!\n");}}break;case 2:printf("请输入要查询的学生的姓名:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].name,s1)==0){flag=1;printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");printf("%6s %7s %6d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,st u[i].time,stu[i].add,stu[i].tel,stu[i].mail);}if(flag==0)printf("该姓名不存在!\n"); break;case 3:return;default:printf("请在1-3之间选择\n");}}}void modify() //修改信息{int i,item,num;char sex1[3],s1[LEN],s2[LEN];printf("请输入要要修改的学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){num=i;printf("------------------\n");printf("1.修改姓名\n");printf("2.修改年龄\n");printf("3.修改性别\n");printf("4.修改出生年月\n");printf("5.修改地址\n");printf("6.修改电话号码\n");printf("7.修改E-mail地址\n");printf("8.退出本菜单\n");printf("------------------\n");}while(1){printf("请选择子菜单编号:");scanf("%d",&item);switch(item){case 1:printf("请输入新的姓名:\n");scanf("%s",s2);strcpy(stu[num].name,s2); break;case 2:printf("请输入新的年龄:\n");scanf("%d",&stu[num].age);break;case 3:printf("请输入新的性别:\n");scanf("%s",sex1);strcpy(stu[num].sex,sex1); break;case 4:printf("请输入新的出生年月:\n");scanf("%s",s2);strcpy(stu[num].time,s2); break;case 5:printf("请输入新的地址:\n");scanf("%s",s2);strcpy(stu[num].add,s2); break;case 6:printf("请输入新的电话号码:\n");scanf("%s",s2);strcpy(stu[num].tel,s2); break;case 7:printf("请输入新的E-mail地址:\n");scanf("%s",s2);strcpy(stu[num].mail,s2); break;case 8:return;default:printf("请在1-8之间选择\n");}}}void sort()//排序{int i,j,*p,*q,s;char temp[10];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--)if(strcmp(stu[j-1].code,stu[j].code)>0)//比较学号的大小{strcpy(temp,stu[j-1].code); //交换学号以及以下的信息(冒泡排序)strcpy(stu[j-1].code,stu[j].code);strcpy(stu[j].code,temp);strcpy(temp,stu[j-1].name);strcpy(stu[j-1].name,stu[j].name);strcpy(stu[j].name,temp);strcpy(temp,stu[j-1].sex);strcpy(stu[j-1].sex,stu[j].sex);strcpy(stu[j].sex,temp);strcpy(temp,stu[j-1].time);strcpy(stu[j-1].time,stu[j].time);strcpy(stu[j].time,temp);strcpy(temp,stu[j-1].add);strcpy(stu[j-1].add,stu[j].add);strcpy(stu[j].add,temp);strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel);strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].mail);strcpy(stu[j-1].mail,stu[j].mail);strcpy(stu[j].mail,temp);p=&stu[j-1].age;q=&stu[j].age;s=*q;*q=*p;*p=s;}}}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].code);for(j=0;j<i;j++)if(strcmp(stu[i].code,stu[j].code)==0){printf("已有该学号,请检查后重新录入!\n");flag=1;break;}}printf("请输入第%d 个学生的姓名:\n",i+1);scanf("%s",stu[i].name);printf("请输入第%d 个学生的年龄:\n",i+1);scanf("%d",&stu[i].age);printf("请输入第%d 个学生的性别:\n",i+1);scanf("%s",stu[i].sex);printf("请输入第%d 个学生的出生年月:(格式:年.月)\n",i+1);scanf("%s",stu[i].time);printf("请输入第%d 个学生的地址:\n",i+1);scanf("%s",stu[i].add);printf("请输入第%d 个学生的电话:\n",i+1);scanf("%s",stu[i].tel);printf("请输入第%d 个学生的E-mail:\n",i+1);scanf("%s",stu[i].mail);if(flag==0){i=i;i++;}}while(i<n+m);n+=m;printf("录入完毕!\n\n");sort();}void del()//删除信息{int i,j,flag=0;char s1[LEN+1];printf("请输入要删除学生的学号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].code,s1)==0){flag=1;for(j=i;j<n-1;j++)stu[j]=stu[j+1];}if(flag==0)printf("该学号不存在!\n");if(flag==1){printf("删除成功,显示结果请选择菜单\n");n--;}}void display() //浏览信息{int i;printf("所有学生的信息为:\n");printf("学生学号学生姓名年龄性别出生年月地址电话E-mail\n");printf("--------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%6s %7s %5d %5s %9s %8s %10s %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].ti me,stu[i].add,stu[i].tel,stu[i].mail);}}void save() // 保存{int i;FILE *fp;fp=fopen("C:\\Users\\86139\\Desktop\\student.txt","a");for(i=0;i<n;i++){fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i]. add,stu[i].tel,stu[i].mail);}fclose(fp);}void menu()//菜单{int num;printf(" \n\n 学生信息管理系统\n\n");printf("*********************系统功能菜单************************ \n");printf("友情提示:查询前请先刷新系统!\n");printf(" ---------------------- ---------------------- \n");printf(" ********************************************* \n");printf(" * 0.系统帮助及说明* * 1.刷新学生信息* \n");printf(" ********************************************* \n");printf(" * 2.查询学生信息* * 3.修改学生信息* \n");printf(" ********************************************* \n");printf(" * 4.增加学生信息* * 5.按学号删除信息* \n");printf(" ********************************************* \n");printf(" * 6.显示当前信息* * 7.保存当前学生信息* \n");printf(" ********************** ********************** \n");printf(" * 8.退出系统* \n");printf(" ********************** \n");printf(" ---------------------- ---------------------- \n");printf("请选择菜单编号:");scanf("%d",&num);switch(num){case 0:help();break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:display();break;case 7:save();break;case 8:k=0;break;default:printf("请在0-8之间选择\n");} }。

学生管理系统c语言源代码

学生管理系统c语言源代码

int main()
{
initLinkTable(&head);//初始化表头
readStu();//读入源文件
while (1)
{
menu();
system("cls");
}
}
void initLinkTable(studentLinkPoint *p)
int sum(studentLinkPoint);//求和
void avg(studentLinkPoint);//求平均分
void disAvgSum(studentLinkPoint);//显示总分和平均分
char *inputNumber();//专门用来输入一个学生的学号,返回该字符串的指针
char name[20];
char number[18];
int i;
if(temp==0)
{
error("input");
return 0;
}
else
{
temp->student=(studentPint)malloc(sizeof(studentNod));
break;
case 0:
del(head,end);
break;
}
if(c==0)
exit(1);
}
void del(studentLinkPoint p,studentLinkPoint End)
{
studentLinkPoint q;
if(end==head)
printf(" %3.1f %3.1f\n",p->student->sum,p->student->avg);

C语言学籍管理系统(内含源代码)

C语言学籍管理系统(内含源代码)

学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。

2、能根据输入的学号查询学生,进行信息的修改。

3、能根据输入的学号从结构体数组中删除学生的记录。

4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。

5、能在屏幕上以列表的方式输出所有学生的信息。

三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。

系统功能机构图如下:2、重要数据的数据结构设计学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday 分另U代表学生的学号、专业、年级、性另U和出生日期,其中birthday 类型为自定义的结构体类型Date.Struct stumessage {Char stuno[11]: // 学号Char name[9]: // 姓名Char spec[2]: // 专业Char grade: // 年级Char sex : // 性别Stuct date birthday: // 出生日期};日期类型date包括三个属性,分别代表年、月、日Struct date{int year : // 年Int month: //Int day: // H};3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h 头文件和3个C源文件组成。

程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。

以下是这些函数原型及功能设计。

(1) void sysinfo(void)函数功能:在屏幕上输入系统及信息并等待用户响应。

c语言学生信息管理系统设计报告

c语言学生信息管理系统设计报告

c语言学生信息管理系统设计报告随着教学质量和教学管理的要求不断提高,校园管理系统对于诸多困难领域的改善服务开始发挥着重要作用,而学生信息技术系统设计是实现校园管理质量提升的重要手段之一。

实施学生信息管理系统可以提高人力资源管理的效率,降低办理各项业务的成本,将学校管理变得更加规范和有效。

本报告旨在设计一套C语言学生信息管理系统,用于学校信息管理与市场营销管理,实现数据的及时收集、存储和处理,同时,改善学校的教学管理,提高教学质量,提升学生的学习体验。

首先,系统设计将涉及到C语言的语法和结构,以便理解和实现学生信息的管理。

其次,关于系统的功能,可以从学生信息管理、任课管理、教学管理、学术科研、职位设置、绩效考核等方面进行完善。

针对关键管理系统,为了实现系统的可靠性和安全性,将采用多种数据库技术,包括SQL Server、Oracle、MySQL等数据库技术,以及主流计算机语言C++、Java等,实现数据库的操作、学生信息管理系统的开发、学习管理系统的开发等技术需求。

此外,本报告还将对相关技术以及软件测试等内容进行分析,以保证学生信息管理系统的可靠性和稳定性。

本报告的完成,必须充分考虑C语言的基本知识,以及C语言学生信息管理系统在实施过程中的可能风险。

在实施过程中,应该通过计算机技术的应用、软件测试、数据库技术的改进等多方面分析,以保证系统在实施过程中的高效稳定性。

综上所述,本报告将实施C语言学生信息管理系统,实现学校信息管理与市场营销管理,旨在收集、存储和处理数据,同时提高教学管理的质量,提升学生的学习体验,实现学校的管理变得更加规范和有效。

此外,本报告还将深入探讨如何利用计算机技术、数据库技术、软件测试等相关技术,保证学生信息管理系统的可靠性和安全性。

学生管理系统c语言简单版

学生管理系统c语言简单版

学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。

本文将介绍如何使用C语言编写一个简单的学生管理系统。

功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。

我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。

用C语言编写的一个学生信息管理系统

用C语言编写的一个学生信息管理系统

用C语言实现线性表的基本操作,能创建一个基于学生信息管理的链表,至少包含数据输入、数据输出、数据处理等操作。

在主函数里能实现以下功能。

运行后出现一个选择提示。

可选择的功能有1)创建新的学生信息链表2)增加一个新的学生信息3)按学号删除某个学生信息4)按学号查找某个学生信息5)可以按照学生成绩对链表排序6)退出系统#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"jiemian();struct student{char name[50];char sex[5];int age;char num[50];float score1;float score2;float score3;float sum;float ave;}stu[50],del;void gn1(){int i=0;char num1;for(i=0;i<50;i++){printf("请输入要添加的学生资料:\n");printf("学号:");scanf("%s",stu[i].num);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",&stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续添加:y/n\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n'){system("cls");jiemian();}}}void gn2(){int i;char num[50];printf("请输入要查找的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(stu[i].num,num)==0){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);break;}if(i==50)printf("查找不到!请重新输入!\n");getch();system("cls");jiemian();}void gn3(){char num1,i=0;printf("请输入要修改的学生学号:\n");scanf("%s",stu[i].num);printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);printf("姓名:");scanf("%s",stu[i].name);printf("性别:");scanf("%s",stu[i].sex);printf("年龄:");scanf("%d",&stu[i].age);printf("请输入学生的三门成绩:\n");printf("语文:");scanf("%f",&stu[i].score1);printf("数学:");scanf("%f",&stu[i].score2);printf("英语:");scanf("%f",&stu[i].score3);printf("是否继续修改:y/n?\n");scanf("%c",&num1);scanf("%c",&num1);if(num1=='N' || num1=='n')system("cls");jiemian();}void gn4(){int i;char num[50];printf("请输入要删除的学生学号:\n");scanf("%s",num);for(i=0;i<50;i++)if(strcmp(num,stu[i].num)==0){printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);stu[i]=del;printf("信息已删除,按任意键返回..\n");break;}if(i==50)printf("您输入的信息不存在!\n");getch();system("cls");jiemian();}void gn5(){int i=0;stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;printf("学号\t姓名\t性别\t年龄\t语文\t数学\t英语\t总成绩\t 平均成绩\n"); for(i=0;i<50;i++){if(stu[i].age==0)break;printf("%s\t%s\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f:\n",stu[i].num,stu[i].name,stu[i].sex,stu[i] .age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].sum,stu[i].ave);}printf("按任意键返回...");getch();system("cls");jiemian();}void gn6(){FILE *fp;int i;char filename[50];printf("\n");printf("\n");printf("请输入要保存的文件名:");scanf("%s",filename);if((fp=fopen(filename,"wb"))==NULL)printf("文件名为空,不能保存!\n");for(i=0;i<50;i++){if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("文件保存失败!\n");}fclose(fp);printf("文件已保存!\n");printf("按任意键返回...\n");getch();system("cls");jiemian();}void gn7(){FILE *fp;int i=0; //打开文件流char filename[50];printf("请输入文件名:");scanf("%s",filename); //输入要载入的文件名if((fp=fopen(filename,"rb"))==0) //如果当前目录下不存在相对应的文件,输出文件不存在,退出系统。

c语言--学生信息管理系统代码

c语言--学生信息管理系统代码

#include <stdio.h>#include <stdlib.h>#include <string.h>#define FUNC_NEW 1 /* 建立新的班级学生数据*/#define FUNC_SA VE 2 /*把数据写入文件并保存*/#define FUNC_OPEN 3 /*打开文件并从里读入数据*/#define FUNC_INSERT 4 /*插入一个学生的信息*/#define FUNC_SEARCH 5 /*查找学生的信息*/#define FUNC_CHANGE 6 /*修改学生的信息*/#define FUNC_DELETE 7 /*删除学生的信息*/#define FUNC_DISPLAY 8 /*展示学生的信息*/#define FUNC_CENSUS 9 /*分段统计学生总分人数并打印*/ #define FUNG_EXIT 10/*结束程序*/#define FUNC_CLOSE 10#define MAX_NUM 45#define MAX_NAME_STRLEN 30void DoSave();void DoOpen();void DoNew();void DoInsert();void DoDisplay();void DoDelete();void DoSearch();void DoChange();void Docensus();void DoExit();//用户定义的类型声明struct _student{int id;char name[MAX_NAME_STRLEN];int Math;int English;int Chinese;int Physics;int Chemistry;float averScore;int sum;};typedef struct _student STUD;struct _studTb{STUD stud[MAX_NUM];int length;};//全局变量的定义struct _studTb si;char strClassId[15];int main(){int iUserSelect;int MainMenu();system("color 20");for(;;){iUserSelect = MainMenu();if(FUNC_CLOSE == iUserSelect)break;switch(iUserSelect){case FUNC_NEW:DoNew();break;case FUNC_OPEN:DoSave();break;case FUNC_SA VE:DoOpen();break;case FUNC_INSERT:DoInsert();break;case FUNC_SEARCH:DoSearch();break;case FUNC_CHANGE:DoChange();break;case FUNC_DELETE:DoDelete();break;case FUNC_DISPLAY:DoDisplay();break;case FUNC_CENSUS:Docensus();break;case FUNC_CLOSE :DoExit();break;default:break;}}}int MainMenu(){int iUserSelect;system("cls");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(" | ****** 8> 展示学生信息的成绩排名****** | \n");printf(" | ****** 9> 分段统计学生信息****** | \n");printf(" | ****** 10> 退出学生系统****** | \n");printf(" | *****Please select a function id(1..9) to execute:***** | \n");printf(" --------------------------------------------------------------------- \n");scanf("%d",&iUserSelect);if(iUserSelect<1&&iUserSelect>9)printf("请正确输入指令\n");elsereturn iUserSelect;}void DoNew(){int number,i;system("cls");printf("\t\tFUNCION: 新建一个班级:\n");printf("\t\t请输入班级序号(string):");scanf("%s",strClassId);printf("\t\t请输入这个班有多少人:");scanf("%d",&number);for (i = 0; i < number; i++){printf("\t\t请输入学生学号:");scanf("%d",&si.stud[i].id);printf("\t\t请输入学生姓名:");scanf("%s",si.stud[i].name);printf("\t\t请输入学生成绩:\n");printf("\t\tMath English Chinese Physics Chemistry\n");scanf("%4d %4d %4d %4d %4d",\& si.stud[i].Math,& si.stud[i].English,& si.stud[i].Chinese,& si.stud[i].Physics,& si.stud[i].Chemistry);}si.length = number;}//保存学生信息void DoSave(){FILE *fp;int i;system("cls");if((fp=fopen("stu-list.txt","wb"))==NULL){printf("打开文件失败\n");return;}for(i=0;i<si.length;i++){if(fwrite(&si.stud[i],sizeof(si),1,fp)==1)printf("保存成功\n");}fclose(fp);}//开文件读取学生信息void DoOpen(){FILE *fp;int i=0;system("cls");if((fp=fopen("stu-list.txt","ab+"))==NULL){printf("打开文件失败\n");return;}while(!feof(fp)){if(fread(&si.stud[i],sizeof(si),1,fp)==1)i++;}fclose(fp);for(i=0;i<si.length;i++)printf("学号:%d 姓名:%s 数学:%d 英语:%d 语文:%d 物理:%d 化学:%d\n",si.stud[i].id,si.stud[i].name,si.stud[i].Math,si.stud[i].English,si.stud[i].Chinese,si.stud[i].Physics,si.stud[i].Chemistry);}//插入学生信息void DoInsert(){FILE *fp;int j,INid,sid;int m=0,i=0,k=0;system("cls");if((fp=fopen("stu-list.txt","ab+"))==NULL){ printf("\t文件打开失败!");getchar();return;}while(!feof(fp)){if(fread(&si.stud[i],sizeof(si),1,fp)==1)m++;i++;}/*if(m==0){printf("没有学生记录!");fclose(fp);return;}*/printf("\t请输入要插入信息在那个学号之后:\n");scanf("%d",&INid);for(i=0;i<m;i++)if(INid==si.stud[i].id)break;for(j=m-1;j>i;j--)si.stud[j+1]=si.stud[j];stare1:printf("\t请输入要插入的学生的信息:\n");printf("\t请输入要插入的学号");scanf("%d",&sid);while(k<m){if(si.stud[k].id==sid){printf("\t 该学号已经存在,不允许重复插入!\n");goto stare1;}k++;}si.stud[i+1].id=sid;printf("\t请输入你想输入的姓名");scanf("%s",si.stud[i+1].name);printf(" Math English Chinese Physics Chemistry\n");scanf("%d %d %d %d %d",& si.stud[i+1].Math,& si.stud[i+1].English,& si.stud[i+1].Chinese,& si.stud[i+1].Physics,& si.stud[i+1].Chemistry);si.length=si.length+1;DoSave();}//在文件中查找学生信息,支持姓名学号查找void DoSearch(){int i=0,choice,Sid;char sname[MAX_NAME_STRLEN];int flag=0;system("cls");DoOpen();printf("\n1按姓名查找:\n2按学号查找:");scanf("%d",&choice);switch(choice){case 1: printf("请你输入要查找的姓名");scanf("%s",sname);while(i<si.length){if(strcmp(si.stud[i].name,sname)==0){flag=1;printf("学号:%d 姓名:%s 数学成绩:%d 英语成绩:%d 语文成绩:%d 物理成绩:%d 化学成绩:%d\n",si.stud[i].id,si.stud[i].name ,si.stud[i].Math,si.stud[i].English,si.stud[i].Chinese,si.stud[i].Physics,si.stud[i].Chemistry);}i++;}if(flag==0)printf("你输入的姓名不存在,请确认后再输入");break;case 2: printf("请你输入要查找的学号");scanf("%d",&Sid);while(i<si.length){if(Sid==si.stud[i].id){flag=1;printf("学号:%d 姓名:%s 数学成绩:%d 英语成绩:%d 语文成绩:%d 物理成绩:%d 化学成绩:%d\n",si.stud[i].id,si.stud[i].name ,si.stud[i].Math,si.stud[i].English,si.stud[i].Chinese,si.stud[i].Physics,si.stud[i].Chemistry);}i++;}if(flag==0)printf("你输入的学号不存在,请确认后再输入");break;}printf(" Please input a number to continue!");scanf("%d",&i);return;}//对学生信息进行修改void DoChange(){int choice1;int i=0;int onum;char choice2;system("cls");DoOpen();printf("你想对那个学生进行操作,请输入学号\n");scanf("%d",&onum);while(onum!=si.stud[i].id)i++;if(onum==si.stud[i].id){printf("\n你要修改哪一项");printf("1学号\n2姓名\n3数学成绩\n4英语成绩\n5语文成绩\n6物理成绩\n7化学成绩");printf("请选择");scanf("%d",&choice1);switch(choice1){case 1: printf("\n请输入修改后的学号");scanf("%d",&si.stud[i].id);break;case 2: printf("\n输入你要修改的姓名");scanf("%s",&si.stud[i].name);break;case 3: printf("\n请输入要修改的成绩");scanf("%d",&si.stud[i].Math);break;case 4: printf("\n请输入要修改的成绩");scanf("%d",&si.stud[i].English);break;case 5: printf("\n请输入要修改的成绩");scanf("%d",&si.stud[i].Chinese);break;case 6: printf("\n请输入要修改的成绩");scanf("%d",&si.stud[i].Physics);break;case 7: printf("\n请输入要修改的成绩");scanf("%d",&si.stud[i].Chemistry);break; }}elseprintf("没有该同学信息");printf(" Please input a number(0..9) to continue!");scanf("%d",&i);}//删除学生信息void DoDelete(){int i,id;char fname[MAX_NAME_STRLEN];system("cls");DoOpen();printf("请输入学生学号");scanf("%d",&id);i=0;while(si.stud[i].id!=id)i++;if(si.stud[i].id==id){while(i<si.length-1){si.stud[i]=si.stud[i+1];i++;}si.length=si.length-1;for(i=0;i<si.length;i++)printf("学号:%d 姓名:%s 数学:%d 英语:%d 语文:%d 物理:%d 化学:%d \n",si.stud[i].id,si.stud[i].name,si.stud[i].Math,si.stud[i].English,si.stud[i].Chinese,si.stud[i].Physics,si.stud[i].Chemistry);}elseprintf("没有该同学信息");printf(" Please input a number(0..9) to continue!");scanf("%d",&i);}//展示学生信息void DoDisplay(){struct _studTb m;int i,j,n;system("cls");DoOpen();printf("请选择\n1.数学排名2.英语排名3.语文排名 4.物理排名 5.化学排名 6.学生总分并排序7.学生平均分并排序\n");scanf("%d",&n);if(n==1){for(j=0;j<si.length-1;j++){for(i=0;i<si.length-j-1;i++)if(si.stud[i].Math<si.stud[i+1].Math){m.stud[1]=si.stud[i];si.stud[i]=si.stud[i+1];si.stud[i+1]=m.stud[1];}}for(i=0;i<si.length;i++)printf("学号:%d 姓名:%s 数学成绩排名:%d\n", si.stud[i].id, si.stud[i].name ,si.stud[i].Math);}else if(n==2){for(j=0;j<si.length-1;j++){for(i=0;i<si.length-j;i++)if(si.stud[i].English<si.stud[i+1].English){m.stud[1]=si.stud[i];si.stud[i]=si.stud[i+1];si.stud[i+1]=m.stud[1];}}for(i=0;i<si.length;i++)printf("学号:%d 姓名:%s 英语成绩排名:%d\n", si.stud[i].id, si.stud[i].name ,si.stud[i].English);}else if(n==3){for(j=0;j<si.length-1;j++){for(i=0;i<si.length-j;i++)if(si.stud[i].Chinese<si.stud[i+1].Chinese){m.stud[1]=si.stud[i];si.stud[i]=si.stud[i+1];si.stud[i+1]=m.stud[1];}}for(i=0;i<si.length;i++)printf("学号:%d 姓名:%s 语文成绩排名:%d\n", si.stud[i].id, si.stud[i].name, si.stud[i].Chinese);}else if(n==4){for(j=0;j<si.length-1;j++){for(i=0;i<si.length-j;i++)if(si.stud[i].Physics<si.stud[i+1].Physics){m.stud[1]=si.stud[i];si.stud[i]=si.stud[i+1];si.stud[i+1]=m.stud[1];}}for(i=0;i<si.length;i++)printf("学号:%d 姓名:%s OS成绩排名:%d\n", si.stud[i].id, si.stud[i].name, si.stud[i].Physics);}else if(n==5){for(j=0;j<si.length-1;j++){for(i=0;i<si.length-j;i++)if(si.stud[i].Chemistry<si.stud[i+1].Chemistry){m.stud[1]=si.stud[i];si.stud[i]=si.stud[i+1];si.stud[i+1]=m.stud[1];}}for(i=0;i<si.length;i++)printf("学号:%d 姓名:%s C语言成绩排名:%d\n", si.stud[i].id, si.stud[i].name,si.stud[i].Chemistry);}else if(n==6){for(i=0;i<si.length;i++)si.stud[i].sum=si.stud[i].Math+si.stud[i].English+si.stud[i].Chinese+si.stud[i].Physics+si.stud [i].Chemistry;for(j=0;j<si.length-1;j++){for(i=0;i<si.length-j;i++)if(si.stud[i].sum<si.stud[i+1].sum){m.stud[1]=si.stud[i];si.stud[i]=si.stud[i+1];si.stud[i+1]=m.stud[1];}}for(i=0;i<si.length;i++)printf("学号:%d 姓名:%s 总分成绩排名:%f\n", si.stud[i].id, si.stud[i].name, si.stud[i].sum);}else if(n==7){for(i=0;i<si.length;i++){si.stud[i].sum=si.stud[i].Math+si.stud[i].English+si.stud[i].Chinese+si.stud[i].Physics+si.stud [i].Chemistry;si.stud[i].averScore=(float)si.stud[i].sum/si.length;}for(j=0;j<si.length-1;j++){for(i=0;i<si.length-j;i++)if(si.stud[i].averScore<si.stud[i+1].averScore){m.stud[1]=si.stud[i];si.stud[i]=si.stud[i+1];si.stud[i+1]=m.stud[1];}}for(i=0;i<si.length;i++)printf("学号:%d 姓名:%s 平均成绩排名:%f\n", si.stud[i].id, si.stud[i].name, si.stud[i].averScore);}printf(" Please input a number(0..9) to continue!");scanf("%d",&i);}//统计学生信息void Docensus(){struct _studTb sen;int mark;int sum=0;int i=0;system("cls");DoOpen();printf("请输入要统计多少分以上的学生信息");scanf("%d",&mark);while(i<si.length){ if(si.stud[i].Math>mark){sen.stud[sum]=si.stud[i];sum++;}i++;}printf("一共有:%d人\n",sum);for(i=0;i<sum;i++)printf("他的学号%4d姓名%s数学成绩%4d英语成绩%4d 语文成绩%4d 物理成绩%4d 化学成绩%4d\n ",sen.stud[i].id,sen.stud[i].name,sen.stud[i].Math,sen.stud[i].English,sen.stud[i].Chinese,sen.stud[i].Physics,sen.stud[i].Chemistry);printf(" Please input a number(0..9) to continue:");scanf("%d",&i);}void DoExit(){printf("\t\t 谢谢使用!\n");printf("\t\t");system("pause");exit(0);}。

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

C++语言课程设计报告(2011—— 2012 年度第2学期)题目学生信息管理系统设计院系专业年级指导教师组员2012年 3月 12日目录一、课程设计的目的与要求 (4)1.1设计目的 (4)1.2 设计要求 (4)二、总体设计 (5)2.1 程序组成框图 (5)2.2 程序流程图 (6)三、详细设计 (7)3.1 功能设计 (7)3.2 系统运行环境 (20)3.3 数据编码设计 (20)3.4 输入输出设计 (20)四、程序清单和执行结果 (20)4.1 菜单函数 (20)4.2 录入函数 (22)4.3 浏览函数 (24)4.4 查询函数 (25)4.5 排序函数 (27)4.6 求平均分函数 (31)4.7 输出不及格科目与学生函数 (33)4.8 求和函数 (33)4.9 存储函数 (34)4.10 读取函数 (35)五、调试与测试 (44)六、程序设计总结和结论 (45)七、参考文献 (46)八、小组成员分工说明 (46)《学生信息管理系统设计》一、课程设计的目的与要求1.1 设计目的在期末之际,为了巩固所学的C++程序知识,曾强我们的动手实践能力,并完成该科目的课程设计,我小组进过多次商讨决定通过C++语言的开发方法开发出一个高效、精确、简便的学生信息管理系统。

1.2 设计要求该程序已C++语言为编写语言,尽量在使用上达到方便、易懂易用、精确无误的标准。

在功能上最终可以实现对学生信息的录入、浏览、查询、排序、信息修改、信息删除等各项功能。

二、总体设计(程序设计组成框图、流程图)注:本程序的流程如分为两大部分,第一部分是程序组成框图。

第二部分为程序各个功能模块的流程图2.1 程序的组成框图2.2 程序流程图三、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)3.1功能设计3.1-1 菜单函数菜单函数主要完成的是菜单的输出和菜单的选择执行功能,它是与用户的交互界面,但是不执行功能,各项功能在后续的自定义函数中完成。

菜单函数流程图:N3.1-2 录入函数录入函数是一个自定义函数,它所执行的功能是以数组的形式存储我们输入的信息,其中信息的种类种类很多,所以数组定义时也要按需而定。

录入函数流程图:3.1-3 浏览函数浏览函数同样作为一个自定义函数,它所执行的功能是在录入函数执行后输出之前所录入的学生的信息。

该功能所的重点是在于输出格式上的位置对齐。

要在功能执行正常的情况下尽量使得界面整齐美观。

浏览函数流程图:N3.1-4查询函数该函数首先要求输入某学生的姓名,最终要完成输出该同学成绩的功能,其函数原理是利用strcmp函数循环做输入值和name[i]的对比,然后输出对应的字段名称“科目”和对比符合值“成绩”。

查询函数流程图:NNN3.1-5排序函数排序函数分为两个部分,其功能略同,但是函数算法一直,都是利用冒泡法排序,并用strcpy 函数完成对其他字段值的排序。

对成绩的排序:对学号的排序:3.1-6求平均分函数求平均分功能相对简单,拿求每个学生平均成绩举例,就是用for循环体求出每个学生的成绩总和,然后把成绩总和除以人数就得到了平均成绩,求每门科目的平均成绩算法与此例类似。

求每个学生的平均成绩求每门科目的平均成绩3.1-7输出不及格的科目和学生名单函数做此项功能主要是做判断函数,先用for循环体做if(score[i][j]<60)语句,对于符合算法的值给予输出,对于不符合的值不输出,以此来完成成绩没有达到60分以上的学生名单和科目的输出。

`3.1-8求总成绩函数此项功能为调用for循环求的成绩总和算法,该功能及其简单,在此不做过多解释N3.1-9 数据存储函数此函数调用头文件fstream 将文件输出到文件要用输出文件流fout 中,从而同时输出文件流与文件jan.txt 相关联。

N3.1-10数据读取函数此函数调用ifstream fin("jan.txt"),利用输出文件流fin将数据从关联文件jan.txt中输出到数组中,然后调用显示算法进行显示。

N3.2系统运行环境与数据库设计系统环境:windows 7软件环境:Microsoft Visual C++ 6.0 3.3数据编码设计double score[11][7];char km[7][14]={"C语言","ACCESS","管理信息系统","体育","英语","平均分","总成绩"};char name[11][7]={"王建","瞿正卿","崔云鹏","陈正一","张缇","赵书阅","纳斯里","小法","托雷斯","贝尔","平均分"};char xuehao[10][9];四、源程序清单和执行结果:清单中应有足够的注释(一)程序清单4.1-1菜单函数[void select()]void select(){int n;system("cls");cout<<"\t\t-----------------欢迎进入学生成绩管理系统-------------------|\n";cout<<"\t\t------------------------------------------------------------|\n";cout<<"\t\t| |\n";cout<<"\t\t|☆☆☆☆☆主菜单☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆ 1. 成绩录入☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆ 2. 成绩浏览☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆ 3. 求每个同学的平均分☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆ 4. 求每门课的平均分☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆ 5. 学生姓名查询☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆ 6. 学号查询☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆7. 学生的平均分排序☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆8. 学号排序☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆9. 输出成绩不及格的科目和姓名☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆10. 求学生的总成绩☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆11. 存入数据☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆12. 读取数据☆☆☆☆☆|\n";cout<<"\t\t|☆☆☆☆☆13. 退出程序☆☆☆☆☆|\n";cout<<"\t\t-------------------------------------------------------------\n";cout<<"\t\t请输入你的选择:";pp: cin>>n;getchar();if(!(n>=1&&n<=13)){cout<<"请你重新输入你的选择:";goto pp;}switch(n){case 1:input();select();break;case 2:scan();select();break;case 3:average1();select();break;case 4:average2();select();break;case 5:chaxun1();select();break;case 6:chaxun2();select();break;case 7:order1();select();break;case 8:order2();select();break;case 9:output();select();break;case 10:total();select();break;case 11:cunchu();select();break;case 12:duqu();select();break;case 13:exit(0);break;}}4.1-2录入函数[void input();]void input(){int i;char ch;system("cls");cout<<"\t\t欢迎进入成绩录入功能!\n\n"<<endl;for(i=0;i<=9;i++){ff: cout<<"\n\t是否要进行下一个同学的成绩的录入[是(Y)/否(N)]:";ch=getchar();getchar();if(ch=='Y'||ch=='y'){cout<<"请输入同学的学号(学号是8位) :"<<endl;cin>>xuehao[i];cout<<"请输入"<<name[i]<<"同学的所有成绩\n";cout<<km[0];cin>>score[i][0];cout<<km[1];cin>>score[i][1];cout<<km[2];cin>>score[i][2];cout<<km[3];cin>>score[i][3];cout<<km[4];cin>>score[i][4];getchar();}else if(ch=='N'||ch=='n')break;else{cout<<"\n输入有误,请重新输入!\n";goto ff;}}}4.1-3浏览函数[void scan();]void scan(){int i;system("cls");cout<<"\t\t欢迎进入成绩浏览功能!"<<endl<<endl;cout<<setiosflags(ios::left);cout<<setw(9)<<"学号";cout<<setw(8)<<"姓名";cout<<setw(6)<<km[0];cout<<setw(8)<<km[1];cout<<setw(13)<<km[2];cout<<setw(7)<<km[3];cout<<setw(7)<<km[4];cout<<setw(7)<<km[5];cout<<setw(7)<<km[6];cout<<endl;for(i=0;i<=10;i++){cout<<setiosflags(ios::left);cout<<setiosflags(ios::fixed)<<setprecision(1);cout<<setw(9)<<xuehao[i];cout<<setw(8)<<name[i];cout<<setw(6)<<score[i][0];cout<<setw(8)<<score[i][1];cout<<setw(13)<<score[i][2];cout<<setw(7)<<score[i][3];cout<<setw(7)<<score[i][4];cout<<setw(7)<<score[i][5];cout<<setw(7)<<score[i][6];cout<<endl;}system("pause");}4.1-4查询函数[void chaxn1();void chaxun2()]void chaxun1(){char ch1[7];int i;system("cls");cout<<"请你输入学生的姓名:";cin>>ch1;for(i=0;i<=9;i++){if(strcmp(ch1,name[i])==0){cout<<setiosflags(ios::left);cout<<setw(9)<<"学号";cout<<setw(8)<<"姓名";cout<<setw(6)<<km[0];cout<<setw(8)<<km[1];cout<<setw(13)<<km[2];cout<<setw(7)<<km[3];cout<<setw(7)<<km[4];cout<<setw(7)<<km[5];cout<<setw(7)<<km[6];cout<<endl;cout<<setw(9)<<xuehao[i];cout<<setw(8)<<name[i];cout<<setw(6)<<score[i][0];cout<<setw(8)<<score[i][1];cout<<setw(13)<<score[i][2];cout<<setw(7)<<score[i][3];cout<<setw(7)<<score[i][4];cout<<setw(7)<<score[i][5];cout<<endl<<endl<<endl;}}cout<<"\t\t功能完成!";system("pause");}void chaxun2(){char ch2[9];int i;system("cls");cout<<"请你输入学生的学号:";cin>>ch2;for(i=0;i<=9;i++){if(strcmp(ch2,xuehao[i])==0){cout<<setiosflags(ios::left);cout<<setw(9)<<"学号";cout<<setw(8)<<"姓名";cout<<setw(6)<<km[0];cout<<setw(8)<<km[1];cout<<setw(13)<<km[2];cout<<setw(7)<<km[3];cout<<setw(7)<<km[4];cout<<setw(7)<<km[5];cout<<setw(7)<<km[6];cout<<endl;cout<<setw(9)<<xuehao[i];cout<<setw(8)<<name[i];cout<<setw(6)<<score[i][0];cout<<setw(8)<<score[i][1];cout<<setw(13)<<score[i][2];cout<<setw(7)<<score[i][3];cout<<setw(7)<<score[i][4];cout<<setw(7)<<score[i][5];cout<<endl<<endl<<endl;}}cout<<"\t\t功能完成!\n\n";system("pause");}4.1-5排序函数[void order1();void order2()]void order1(){int i,j;double max1,max2,max3,max4,max5,max6,max7;char nn[100];system("cls");for(j=8;j>=0;j=j-1){for(i=0;i<=j;i++){if(score[i][5]>score[i+1][5]){max1=score[i][6];score[i][6]=score[i+1][6];score[i+1][6]=max1;max2=score[i][5];score[i][5]=score[i+1][5];score[i+1][5]=max2;max3=score[i][4];score[i][4]=score[i+1][4];score[i+1][4]=max3;max4=score[i][3];score[i][3]=score[i+1][3];score[i+1][3]=max4;max5=score[i][2];score[i][2]=score[i+1][2];score[i+1][2]=max5;max6=score[i][1];score[i][1]=score[i+1][1];score[i+1][1]=max6;max7=score[i][0];score[i][0]=score[i+1][0];score[i+1][0]=max7;strcpy(nn,name[i]);strcpy(name[i],name[i+1]);strcpy(name[i+1],nn);strcpy(nn,xuehao[i]);strcpy(xuehao[i],xuehao[i+1]);strcpy(xuehao[i+1],nn);}}}cout<<"\t\t功能完成!\n\n";system("pause");}void order2(){int j,i;double t1,t2,t3,t4,t5,t6,t7;char nn[100];system("cls");for(j=8;j>=0;j--){for(i=0;i<=j;i++){if(xuehao[i][9]>xuehao[i+1][9]){t1=score[i][6];score[i][6]=score[i+1][6];score[i+1][6]=t1;t2=score[i][5]; score[i][5]=score[i+1][5];score[i+1][5]=t2;t3=score[i][4]; score[i][4]=score[i+1][4];score[i+1][4]=t3;t4=score[i][3]; score[i][3]=score[i+1][3];score[i+1][3]=t4;t5=score[i][2]; score[i][2]=score[i+1][2];score[i+1][2]=t5;t6=score[i][1]; score[i][1]=score[i+1][1];score[i+1][1]=t6;t7=score[i][0]; score[i][0]=score[i+1][0];score[i+1][0]=t7;strcpy(nn,xuehao[i]);strcpy(xuehao[i],xuehao[i+1]); strcpy(xuehao[i+1],nn);strcpy(nn,xuehao[i]);strcpy(xuehao[i],xuehao[i+1]); strcpy(xuehao[i+1],nn);}}}cout<<"\t\t功能完成!\n\n";system("pause");}4.1-6求平均分函数[void average1();void average2()]void average1(){double s;int j,i;system("cls");cout<<"\t\t进入求每个同学的平均分功能函数\n\n";for(i=0;i<=9;i++){s=0;for(j=0;j<=4;j++){s=s+score[i][j];}score[i][5]=s/5;}cout<<"\t\t功能完成!\n\n";system("pause");}void average2(){double s;int j,i;system("cls");cout<<"\t\t进入球每门课的平均分功能函数\n\n";for(j=0;j<=4;j++){s=0;for(i=0;i<=9;i++){s=s+score[i][j];}score[10][j]=s/10;}cout<<"\t\t功能完成!\n\n";system("pause");}4.1-7输出不及格的学生和科目[void output();]void output(){int i,j;system("cls");for(i=0;i<=9;i++)for(j=0;j<=4;j++){if(score[i][j]<60){cout<<setiosflags(ios::left);cout<<setw(7)<<km[j];cout<<setw(8)<<name[i];}}cout<<"\n";system("pause");}4.1-8求和函数[void total()]void total(){double s;int j,i;system("cls");cout<<"\t\t进入球每个同学的总成绩功能函数\n\n";for(i=0;i<=9;i++){s=0;for(j=0;j<=4;j++)s=s+score[i][j];score[i][6]=s;}cout<<"\t\t功能完成!\n\n";system("pause");}4.1-9存储函数[void cunchu()]void cunchu(){int i=0;system("cls");ofstream fout("jan.txt");if(! fout){cout<<"文件打开失败\n";}else{for(i=0;i<=10;i++){fout<<xuehao[i]<<" ";fout<<score[i][0]<<" ";fout<<score[i][1]<<" ";fout<<score[i][2]<<" ";fout<<score[i][3]<<" ";fout<<score[i][4]<<" ";fout<<score[i][5]<<" ";fout<<score[i][6]<<" ";}fout.close();cout<<"\t\t功能完成!\n\n";system("pause");}}4.1-10读取函数[void duqu()]void duqu(){int i,j;system("cls");ifstream fin("jan.txt");if(! fin){cout<<"文件打开失败!\n";}for(i=0;i<=10;i++){fin>>xuehao[i];fin>>score[i][0];fin>>score[i][1];fin>>score[i][2];fin>>score[i][3];fin>>score[i][4];fin>>score[i][5];fin>>score[i][6];}cout<<setiosflags(ios::fixed)<<setprecision(1)<<setiosflags(ios::left);cout<<setw(9)<<"学号";cout<<setw(8)<<"姓名";cout<<setw(6)<<km[0];cout<<setw(8)<<km[1];cout<<setw(13)<<km[2];cout<<setw(7)<<km[3];cout<<setw(7)<<km[4];cout<<setw(7)<<km[5];cout<<setw(7)<<km[6];cout<<endl;for(j=0;j<=10;j++){cout<<setw(9)<<xuehao[j];cout<<setw(8)<<name[j];cout<<setw(6)<<score[j][0];cout<<setw(8)<<score[j][1];cout<<setw(13)<<score[j][2];cout<<setw(7)<<score[j][3];cout<<setw(7)<<score[j][4];cout<<setw(7)<<score[j][5];cout<<setw(7)<<score[j][6]<<endl;}fin.close();system("pause");}(二)运行截图主菜单2 成绩录入功能3成绩浏览功能4求每个人平均分功能5求每门课平均分功能6学号姓名查询7学号查询8按平均分排序9按学号排序10输出成绩不合格的同学成绩名单11学生总成绩13存储数据程序13读取数据程序14退出程序五、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施5.1错误提示‘strcmp’:underclared identifier错误原因:没有定义#include<string.h>解决办法:在主程序前定义#include<string.h>5.2错误提示:illegal else without matching if错误原因:在else if(ch=='N'||ch=='n')没有添加break解决办法:添加上break5.3错误提示:成绩平均分运行结果出现错误错误原因:score[i][5]=s/6解决方法:score[i][5]=s/55.4错误提示:运行程序存储时显示文件打开失败错误原因:无须“fout.open("jan.txt");”这行代码,也就是说无须验证文件是否打开。

相关文档
最新文档