C语言成绩查询系统

合集下载

c语言学生成绩查询

c语言学生成绩查询

#include<stdio.h>struct student(int num;char name[20];char sex[10];int age;float computer;float math;float English;float sum_score;};int max(struct student a[]Jnt n)(int kJ;float m;m=a[0].sum_score;k=0;for(i=l;i<3;i++){if(m<a[i].sum_score){k=i;m=a[i].sum_score;)}return k;)void paixiul(struct student a[]Jnt n)(int i,j;for(i=0;i<n-l;i++){for(j=i+l;j<n-l;j++){if(a[i].sum_score>a[j].sum-score){a[n]=a[i];a[i]=aUl;aU]=a[n];)void paixiu2(struct student a[],int n)(int i,j;for(i=0;i<n-l;i++){for(j=i+l;j<n-l;j++){if(a[i].computer>a[j].computer) {a[n]=a[i];a[i]=aUl;aU]=a[n];))})void paixiu3(struct student a[],int n)(int i,j;for(i=0;i<n-l;i++){for(j=i+l;j<n-l;j++){if(a[i].math>a[j].math){a[n]=a[i];a[i]=aUl;aU]=a[n];))})void paixiu4(struct student a[],int n)(int i,j;for(i=0;i<n-l;i++){for(j=i+l;j<n-l;j++){if(a[i].English>a[j].English){a[n]=a[i];a[i]=aUl;a[j]=a[n];)〃学生成绩管理系统的设计与实现〃学生信息:〃学号num〃姓名name〃性别sex〃年龄age〃计算机成绩computer〃数学成绩math〃英语成绩English〃总成绩sum_score〃要求:void main()(int i/n/mJ/t=3/a[100]={100}/k=l;float max_sum;struct student stu[100]={{1001;,zhangsan";'g",21,98,75,SeiJlOOZ/'lisi'V'b",20,78,63/92}/{1003;'wangwu"/"g",2 1,90,88,70}};printf("请选择:1:输出2:求学生总分3:求总分最高分学生的基本信息4:按总分排序5:按计算机成绩排序6战数学成绩排序7:按英语成绩排序8:按学号查找某位同学9:从键盘输入某位学生信息,插入到数组中10:从键盘输入学号,删除该学号的学生信息0:退出:\n");scanf(“%d”,&m);for(i=0;i<t;i++)stu[i].sum_score=stu[i].computer+stu[i].math+stu[i].English;while(m!=0){switch(m){case 1:{for(j=0;j<t;j++)(if(j!=a[k-l])printf("%d %s %s%d %f %f %f %f\n",stu[j].num,stu[j].name z stu[j].sex,stu[j].age z stu[j].compu ter,stu[j].math z stu[j].English/stu[j].sum_score);)}break;case 2:for(j=0;j<t;j++)if(j!=a[k-l])printf(H%s %f\n,,/stu[j].name/stuO].sum_score);)}break;case 3:{n=max(stu,t);printf("%d %s %s %d %f %f %f %f\n"/stu[n].num/stu[n].name/stu[n].sex/stu[n].age/stu[n].co mputeostu[n].math/stu[n].English/stu[n].sum_score);}break;case 4:{paixiul(stu z t+l);for(j=0;j<t;j++)(if(j!=a[k-l])printf("%d %s %s%d %f %f %f %f\n",stu[j].num/stu[j].name/stu[j].sex/stu[j].age/stu[j].compu ter/stu[j].math/stu[j].English/stu[j].sum_score);)}break;case 5:{paixiu2(stu z t+l);for(j=0;j<t;j++)(if(j!=a[k-l])printf("%d %s %s%d %f %f %f %f\n",stu[j].num/stu[j].name/stu[j].sex/stu[j].age/stu[j].compu ter/stu[j].math/stu[j].English/stu[j].sum_score);)}break;case 6:{paixiu3(stu z t+l);for(j=0;j<t;j++)(printf("%d %s %s %d %f %f %f %f\n,,/stuO].num/stu[j].name/stuO].sex/stuO].age/stu[j].computer/stu[j].math/stu[j].English/stu[j].sum_score);)}break;case 7:{paixiu4(stu,t+l);for(j=0;j<t;j++)(if(j!=a[k-l])printf("%d %s %s%d %f %f %f %f\n"/stu[j].num/stu[j].name/stu[j].sex z stu[j].age/stu[j].computer/stu[j].math/stu[j].English/stu[j].sum_score);)}break;case 8:{printf(“请输入学号\n“);scanf("%d”,&n);for(i=0;i<t;i++)(if(n==stu[i].num) break;)if(i!=t)printf("%d %s %s %d %f %f %f %f\n',/stu[ij.num/stu[i].name/stu[i].sex/stu[i].age/stu[i].compu ter/stu[i].math z stu[i].English/stu[i].sum_score);elseprintf("查无此人\n");}break;case 9:{t++;printf("请输入学生信息\n”);scanf(H%d %s %s %d %f %f %f,,,&stu[t-l].num/stu[t-l].name/stu[t-l].sex,&stu[t-l].age/&stu[t -l].computer,&stu[t-l].math,&stu[t-l].English);stu[t-l].sum_score=stu[t-l].computer+stu[t-l].math+stu[t-l].English;for(j=0;j<t;j++)(if(stu[t-l].num!=stu[j].num)(for(j=0;j<t;j++)if(j!=a[k-l])printf("%d %s %s%d %f %f %f %f\n"/stu[j].num/stu[j].name/stu[j].sex/stu|j].age/stu[j].compu ter,stu[j].math,stu[j].English,stu[j].sum_score);})elseprintf("学号重合,有误\n");break;)}break;case 10:{printf ("请输入学号\n”);scanf("%d",&n);for(i=0;i<t;i++)(if(n==stu[i].num)break;)a[k]=i;if(a[k]!=t)(for(j=0;j<t;j++)(if(j!=a[k])printf("%d %s %s%d %f %f %f %f\n"/stu[j].num/stu[j].name/stu[j].sex,stu|j].age/stu[j].compu ter,stu[j].math,stu[j].English,stu[j].sum_score);))else(printf("查无此人\n");for(j=0;j<t;j++)printf("%d %s %s%d %f %f %f %f\n"/stu[j].num/stu[j].name/stu[j].sex,stu|j].age/stu[j].compu ter,stu[j].math,stu[j].English,stu[j].sum_score);)k++;}break;}printf("请选择:1:输出2:求学生总分3:求总分最高分学生的基本信息全按总分排序5:按计算机成绩排序6:按数学成绩排序7:按英语成绩排序8:按学号查找某位同学9:从键盘输入某位学生信息,插入到数组中10:从键盘输入学号,删除该学号的学生信息0:退出:\n");scanf("%d",&m);})〃⑴定义结构体数组,并初始化学生信息(总成绩不需要输入)〃(2)输出学生基本信息〃⑶求每位同学的总分〃⑷求总分最高分学生的基本信息〃⑸按总分排序〃⑹按某一个科成绩排序〃⑺按学号查找某位同学〃⑻从键盘输入某位学生信息,插入到数组中〃⑼从键盘输入学号,删除该学号的学生信息〃要求使用菜单完成。

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语言课程设计---班级成绩管理系统

C语言课程设计---班级成绩管理系统

课程设计报告课程名称C语言程序设计课题名称班级成绩管理系统专业班级学号姓名指导教师年月日湖南工程学院课程设计任务书课程名称C语言程序设计课题班级成绩管理系统专业班级学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日目录一、引言 (1)二、总体设计 (2)三、详细设计 (4)四、问题分析及总结 (13)五、参考文献 (15)六、附件 (15)一、设计内容与设计要求1. 设计内容:班级成绩管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。

熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。

③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。

④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。

⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。

2.设计要求:1)用C语言实现系统;利用结构体数组实现班级成绩的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。

2) 建立一个班级学生成绩数据库,文件名为bjcjk.txt,并从该文件中读取数据;3) 班级成绩管理系统应能提供以下功能:(1)主菜单界面设计。

通过提示用户输入一个数字选项,调用相应的功能函数。

(2)学生成绩显示:完成班级全部学生成绩的显示,显示时按表格的形式,且应有表头;(3)学生成绩追加:完成新增一个(或多个)学生的成绩记录,要求在追加过程中有相应的提示信息,完成追加后能重新计算学生平均成绩并显示;(4)学生成绩修改:要求能按学号和按姓名两种定位方式,且可以按用户要求修改记录中除学号和姓名以外的指定内容,并重新计算学生的平均成绩;(5)学生成绩信息的查询;要示系统能按学号、按姓名查询以及能查总分在某一指定范围内的学生信息,且能显示符合条件的所的记录,若所需查询的信息不存在时应有相应的提示信息。

学生成绩管理系统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语言代码(供参考)

C程序学生管理系统以下是用C语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h"#include”stdlib。

h"#include"string。

h”typedefstruct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedefstruct unit//定义接点{studentdate;struct unit*next;}unit;unit大build()//建立链表并返回指针{unit*p;if((p=(unit*)malloc(sizeof(unit)))==NULL){printf("二>初始化失败!”);return0;}else{p—>next=NULL;p-〉date.number=O;//头结点存放学生人数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。

学生绩点计算系统C语言(附完整源代码)

学生绩点计算系统C语言(附完整源代码)

学生绩点计算系统C语言(附完整源代码)本文档提供了一个用于计算学生绩点的C语言程序的完整源代码。

程序简介该程序是一个学生绩点计算系统,它可以读取学生的课程成绩和学分信息,并计算出每门课程的绩点以及整个学期的绩点。

该程序可以帮助学生快速准确地计算自己的绩点,以便了解自己在学业上的表现。

源代码以下是该程序的完整源代码:include <stdio.h>int main() {int numCourses;float totalCredits = 0;float totalGradePoints = 0;printf("请输入您的课程数量:");scanf("%d", &numCourses);for (int i = 0; i < numCourses; i++) {int credits;float grade;printf("请输入第%d门课的学分:", i + 1); scanf("%d", &credits);printf("请输入第%d门课的成绩:", i + 1); scanf("%f", &grade);totalCredits += credits; totalGradePoints += credits * grade;}float gpa = totalGradePoints / totalCredits;printf("\n您的绩点为:%.2f\n", gpa);return 0;}该程序首先会要求用户输入课程数量,然后逐一询问每门课程的学分和成绩。

程序会根据用户输入的数据计算出总学分和总绩点,并最终计算出绩点(GPA),并将结果输出。

使用方法1. 运行该程序;2. 按照提示输入课程数量;3. 按照提示逐一输入每门课程的学分和成绩;4. 程序将会输出您的绩点(GPA)。

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

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

#include ”stdio.h”#include ”string.h”#include "stdlib.h"#include "conio.h"#include ”string.h”#include "fcntl。

h"typedef struct student{int num;char grade[10];char classroom[10];char name[10];float score_math;float score_chinese;float score_english;float average;float sum;}STU;typedef struct Node{STU data;struct Node *next;}*linklist;void menu();char *loginpassword(char password[],int n);//登录验证密码函数声明//linklist createstulist(linklist head);//创建学生链表即学生信息录入函数声明// void printstulist(linklist head);//学生信息输出函数声明//void searchstu_namelist(linklist head);//学生信息查询函数声明(按姓名)// void searchstu_numlist(linklist head);//学生信息查询函数声明(按学号) linklist modifystulist(linklist head);//学生信息修改函数声明//linklist delatestulist(linklist head);//学生信息删除函数声明//void savestulist(linklist head);//学生信息保存到文件函数声明// linklist loadstulist();//从文件中读取学生信息函数声明// void sortstulist(linklist head); //成绩排名函数(按年级)声明//void sort(STU stu[],int flag); //学生分班函数声明//void sortstuclass(linklist head); //成绩排名函数(按班级)声明////*************************************//void main(){char admin[]=”zhangqiong";char password[]=”123456";char person[20];char password1[10];int i;printf(”********************************************************************************\n”);printf("\t\t **********欢迎来到学生成绩管理系统**********\n\n");printf(”********************************************************************************\n\n”);printf(”\t\t\t\t用户登录\n\n\n\n");for(i=0;i<3;i++){printf("用户名:”);gets(person);fflush(stdin);printf(”\n\n\n”);loginpassword(password1,10);printf("\n\n\n”);if(strcmp(admin,person)==0&&strcmp(password,password1)==0){printf(”\t\t\t\t成功登录,亲!\n”);printf("\n\n”);printf(”按任意键继续!”);getch();menu();break;}elseprintf("\t用户名或者密码输入错误\n”);}if(i==3)printf("\t对不起,您今天输入次数太多,已被强制退出!\n”);}//**********************************************************////**********************************************************//char *loginpassword(char password[],int n)//登录密码函数,隐藏密码可见//{int i=0;int m=0;char ch;printf("用户密码:”);while((ch=getch())!='\r’&&m〈n){password[i++]=ch;printf(”*");}password[i]='\0';return password;}//***************************************************// void menu()//主界面函数//{system("cls");linklist L;L=(linklist)malloc(sizeof(Node));L—>next=NULL;int ch;do{printf(”\t -——-----—-******——--——--—---******—————-————-******-—-—-—-—-—\n\n");printf("\t\t\t**********学生成绩管理系统***********\n\n”);printf("\t ——----——--******-—-——------—******—---———--—-******—---———-——\n\n\n\n\n");printf("\t1。

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

C语言大作业目录一.目的 ........................... 错误!未定义书签。

二.题目描述和要求 ................. 错误!未定义书签。

三.报告内容 ....................... 错误!未定义书签。

需求分析..................... 错误!未定义书签。

概要设计.................... 错误!未定义书签。

详细设计.................... 错误!未定义书签。

主要源程序代码.............. 错误!未定义书签。

测试分析.................... 错误!未定义书签。

设计结果.................... 错误!未定义书签。

四.结论与心得 ..................... 错误!未定义书签。

一.目的1.1、通过本次大作业,锻炼我们应用C语言的语法规则和已经掌握的算法,自己解决一个较简单的课题,初步积累编程经验。

、通过学习掌握程序设计的方法与编程技术,学会良好的程序设计风格,为计算机在不同领域的应用打下坚实的基础。

、要求我们能利用计算机解决实际问题。

从分析问题入手,设计可行的算法,进而编出相应的C程序。

强调上机实践过程,从实际应用出发,注重程序的实际应用。

二.题目描述和要求题目:学生成绩管理系统应用链表及外部文件,独立设计上述应用系统,并编程实现以下功能:信息录入录入学生信息(包括姓名、学号、各科成绩)。

信息查询输入学号,查询与学号相对应的信息(包括成绩),并按可选的自定义规则进行排序。

按班级查询学生成绩。

按班级统计学科总分、平均分等。

信息删除与修改输入学号,删除该学号对应的成绩信息。

输入学号,查询并显示出该学号信息,并在此基础上进行修改。

计算学生成绩计算每位学生的总分。

计算每位学生的平均分。

成绩排序。

信息保存将学生信息保存在文件中。

根据以上功能需求,定义通讯录信息结构,并采用链表结构对数据进行存储。

提供友好的用户界面,方便用户操作。

三.报告内容需求分析随着当今社会发展,信息化水平逐步提高,对教务管理有了新的要求,因此,编写一个信息管理系统是十分有必要的。

该软件主要是实现对学生信息进行系统化的管理,首先可以对学生基本信息进行输入和读取,其次查找并显示特定学生的相关信息,然后可以插入学生的相关信息,还有就是可按学生相关信息排序,以求达到简易操作的目的。

概要设计1.系统结构图(功能模块图)和数据变量说明2.系统总体流程图详细设计主要源程序代码#include<>#include<>#include <cstdlib>struct Student{char ID[20];char Name[20];float scor_eng;float scor_math;float scor_phy;float Average;};struct Student students[1000]; int num=0;float Avg(struct Student stu){return ++/3;}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%8s%8s%10s\n","学号","姓名","英语成绩","数学成绩","物理成绩","平均成绩");printf("-------------------------------------------------------------\n"); printf("%10s%10s%%%%\n",students[index].ID,students[index].Name,students[index].scor_eng,students[index].scor_math,students[index].scor_phy,stud ents[index].Average);}void Student_Insert(){while(1){printf("请输入学号:");scanf("%s",&students[num].ID);getchar();printf("请输入姓名:");scanf("%s",&students[num].Name);getchar();printf("请输入英语成绩:");scanf("%f",&students[num].scor_eng);getchar();printf("请输入数学成绩:");scanf("%f",&students[num].scor_math);getchar();printf("请输入物理成绩:");scanf("%f",&students[num].scor_phy);getchar();students[num].Average=Avg(students[num]); num++;printf("是否继续?(y/n)");if (getchar()=='n'){break;}}}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("请输入英语成绩:");scanf("%f",&students[index].scor_eng);getchar();printf("请输入数学成绩:");scanf("%f",&students[index].scor_math);getchar();printf("请输入物理成绩:");scanf("%f",&students[index].scor_phy);getchar();students[index].Average=Avg(students[index]); }printf("是否继续?(y/n)");if (getchar()=='n'){break;}}}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("是否继续?(y/n)");if (getchar()=='n'){break;}}}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)");if (getchar()=='n'){break;}}}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].Average<students[j].Average){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}void Student_Display(){int i;printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","英语成绩","数学成绩","物理成绩","平均成绩");printf("-------------------------------------------------------------\n"); for (i=0;i<num;i++){printf("%10s%10s%%%%\n",students[i].ID,students[i].Name,students[i].scor_eng,students[i].scor_math,students[i].scor_phy,students[i].Aver age);}}void IO_ReadInfo(){FILE *fp;int i;if ((fp=fopen("","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);}void IO_WriteInfo(){FILE *fp;int i;if ((fp=fopen("","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);}int main(){int choice;IO_ReadInfo();while(1){printf("\n------ 学生成绩管理系统------\n");printf("1. 增加学生记录\n");printf("2. 修改学生记录\n");printf("3. 删除学生记录\n");printf("4. 按姓名查询学生记录\n"); printf("5. 按平均成绩排序\n");printf("6. 保存文件\n");printf("7. 退出\n");printf("请选择(1-7):");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:IO_WriteInfo();break;case 7:exit(0);break;}}}测试分析C语言是上学期的学习内容,现在生疏了很多,以致程序运行过程中有许多bug,测试也有很多想不到的错误。

相关文档
最新文档