c语言打印成绩单

合集下载

c语言打印语句格式

c语言打印语句格式

c语言打印语句格式C语言打印语句格式C语言是一种为了编写操作系统和驱动程序等高效性软件而设计的程序语言。

在C语言中,打印语句是常见而重要的表达方式,用于向用户显示信息、调试代码或记录程序的运行状态。

打印语句可以将变量的值、程序的输出或者调试信息输出到控制台或其他设备上。

在本文中,我们将一步一步地解析C语言中打印语句的格式和使用方法。

1. 使用printf函数在C语言中,我们使用printf函数来输出打印语句。

printf函数是C标准库中的一个函数,其定义在stdio.h头文件中。

该函数的基本语法如下:cint printf(const char* format, ...);printf函数以一个字符串作为参数,该字符串称为格式化字符串。

格式化字符串中可以包含普通字符串和转换说明符。

普通字符串将直接输出,而转换说明符用于指定要输出的变量类型及其格式。

常用的转换说明符有:- d:用于输出十进制整数。

- f:用于输出浮点数。

- s:用于输出字符串。

- c:用于输出字符。

下面是一个例子,演示了如何使用printf函数输出不同类型的变量:c#include <stdio.h>int main() {int age = 20;float weight = 68.5;char name[] = "John";printf("Name: s\n", name);printf("Age: d\n", age);printf("Weight: .1f\n", weight);return 0;}上述程序中,我们首先定义了一个整数变量age,一个浮点数变量weight 和一个字符数组变量name。

然后,我们使用printf函数分别输出了这些变量的值。

注意到,我们在格式化字符串中使用了相应的转换说明符来指定输出的格式。

2. 格式化输出在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) //输入数据(第一学期)。

成绩处理程序实验报告

成绩处理程序实验报告

一、实验目的1. 熟悉C语言编程环境,掌握C语言的基本语法和编程技巧。

2. 学习使用循环、条件语句等控制结构编写程序。

3. 熟悉数据结构,掌握数组的运用。

4. 实现一个成绩处理程序,能够实现输入、输出、排序、查询等功能。

二、实验内容1. 设计一个成绩处理程序,实现以下功能:(1)输入学生信息,包括姓名、学号、成绩。

(2)输出所有学生信息。

(3)按照成绩从高到低排序。

(4)查询学生信息。

2. 实验要求:(1)使用C语言编写程序。

(2)程序结构清晰,代码规范。

(3)实现功能完整,无错误。

三、实验步骤1. 定义学生结构体,包含姓名、学号、成绩等属性。

2. 创建一个数组用于存储学生信息。

3. 编写函数实现以下功能:(1)输入学生信息:通过循环让用户输入学生信息,并存储到数组中。

(2)输出所有学生信息:遍历数组,输出每个学生的信息。

(3)排序:使用冒泡排序算法对数组进行排序,按照成绩从高到低排序。

(4)查询学生信息:通过学号或姓名查询学生信息,并输出结果。

4. 编写主函数,调用上述函数实现成绩处理程序。

四、实验代码```c#include <stdio.h>#include <string.h>#define MAX_STUDENTS 100typedef struct {char name[50];int id;float score;} Student;void inputStudents(Student students[], int count);void outputStudents(const Student students[], int count); void sortStudents(Student students[], int count);void queryStudent(const Student students[], int count); int main() {Student students[MAX_STUDENTS];int count = 0;inputStudents(students, &count);outputStudents(students, count);sortStudents(students, count);queryStudent(students, count);return 0;}void inputStudents(Student students[], int count) {printf("Enter the number of students: ");scanf("%d", count);for (int i = 0; i < count; i++) {printf("Enter information for student %d:\n", i + 1);printf("Name: ");scanf("%s", students[i].name);printf("ID: ");scanf("%d", &students[i].id);printf("Score: ");scanf("%f", &students[i].score);}}void outputStudents(const Student students[], int count) {printf("\nList of students:\n");for (int i = 0; i < count; i++) {printf("Name: %s, ID: %d, Score: %.2f\n", students[i].name, students[i].id, students[i].score);}}void sortStudents(Student students[], int count) {for (int i = 0; i < count - 1; i++) {for (int j = 0; j < count - i - 1; j++) {if (students[j].score < students[j + 1].score) {Student temp = students[j];students[j] = students[j + 1];students[j + 1] = temp;}}}}void queryStudent(const Student students[], int count) {int id;char name[50];int found = 0;printf("Enter student ID or name to query: ");scanf("%s", name);if (strlen(name) > 0) {for (int i = 0; i < count; i++) {if (strcmp(students[i].name, name) == 0) {printf("Name: %s, ID: %d, Score: %.2f\n", students[i].name, students[i].id, students[i].score);found = 1;break;}}} else {printf("Enter student ID: ");scanf("%d", &id);for (int i = 0; i < count; i++) {if (students[i].id == id) {printf("Name: %s, ID: %d, Score: %.2f\n", students[i].name, students[i].id, students[i].score);found = 1;break;}}}if (!found) {printf("Student not found.\n");}}```五、实验结果1. 输入学生信息:```Enter the number of students: 3Enter information for student 1:Name: Zhang SanID: 1001Score: 90.0Enter information for student 2: Name: Li SiID: 1002Score: 85.0Enter information for student 3: Name: Wang WuID: 1003Score: 95.0```2. 输出所有学生信息:```List of students:Name: Zhang San, ID: 1001, Score: 90.00 Name: Li Si, ID: 1002, Score: 85.00 Name: Wang Wu, ID: 1003, Score: 95.00 ```3. 按成绩排序:```List of students:Name: Wang Wu, ID: 1003, Score: 95.00 Name: Zhang San, ID: 1001, Score: 90.00 Name: Li Si, ID: 1002, Score: 85.00```4. 查询学生信息:```Enter student ID or name to query: Zhang SanName: Zhang San, ID: 1001, Score: 90.00```六、实验总结本次实验通过实现一个成绩处理程序,学习了C语言的基本语法和编程技巧,掌握了数据结构、数组的运用,以及冒泡排序算法。

C++输入函数和成绩显示函数,并计算每位同学的总分和平均分,对成绩排名输出等

C++输入函数和成绩显示函数,并计算每位同学的总分和平均分,对成绩排名输出等

C++程序设计Luozhengchun编写C++程序完成某班学生考试成绩的统计管理,包括成绩的输入函数和成绩显示函数,并计算每位同学的总分和平均分,对成绩排名输出。

#include <stdio.h> /*标准输入、输出函数库*/#include <string.h> /*字符串处理函数库*/#include <stdlib.h> /*整数和字符串的转换函数*/#define N 10 /*宏定义,设定班里学生的个数*/void main_mun(); /*输入学生的成绩*/void input(); /*显示学生的成绩*/void output(); /*计算学生的平均成绩*/void average(); /*计算学生的总成绩*/void sum_score(); /*对学生的成绩进行排名*/void sort();char student[N+1][12]={"王非","李丽","刘红","张伟","陈雷","赵丹","罗冰","钱惠云","孙杨","周正","差无此人"}; /*用来记录学生的姓名*/float score[N][4]; /*用来记录学生的各门成绩(数学、语文、英语、政治)*/float aver[N]; /*用来记录学生的平均成绩*/float sum_sc[N]; /*用来记录学生的总成绩*/int sor[N]; /*用来记录每个学生排名情况*/int main(){int in; /*输入的选择转换成整数*/int i,j; /*程序循环所用变量*/char select[6]; /*用于主菜单选择的字符*/for (i=0; i<N; i++) /*对学生成绩进行初始化*/for (j=0; j<4; j++)score[i][j]=0.00;printf("学生考试成绩的统计管理\n");main_mun();gets(select);while ((strcmp(select,"q")!=0)&&(strcmp(select,"Q")!=0)){in=atoi(select); /*将输入的字符串转换成整数*/if( in != 0){switch (in){case 1:{input();break;}case 2:{output();break;}case 3:{average();break;}case 4:{sum_score();break;}case 5:{sort();break;}default:printf("输入的选择有错,请重输!\n"); }main_mun();}gets(select);}printf("管理系统结束!!\n");return 0;}/*学生考试成绩的统计管理主菜单*/ void main_mun(){printf("1: 输入学生的成绩\n");printf("2: 显示学生的成绩\n");printf("3: 计算学生的平均成绩\n"); printf("4: 计算学生的总成绩\n");printf("5: 根据学生成绩排名次\n");printf("请输入你的选择:(q(Q)退出)\n");}/*输入学生的成绩*/void input(){float sc[4]; /*输入成绩的中间变量*/int number; /*表示学号*/int flag=0; /*输入成绩是否有误的标志*/int i;printf("输入学号:\n"); /*循环控制变量*/ printf("输入学生的成绩:\n");scanf("%d",&number);while((number<0)||(number>N)){printf("输入学号有误.\n");return;}printf("输入学生%s的成绩\n",student[number]);printf("数学、语文、英语、政治\n");scanf("%f%f%f%f",&sc[0],&sc[1],&sc[2],&sc[3]);getchar();/*判断成绩输入是否越界*/for (i=0; i<4; i++)if ((sc[i]>100.00)||(sc[i]<0.00)){flag=1;printf("输入成绩有误!!\n");return;}/*成绩未越界后,进行赋值*/for (i=0; i<4; i++)score[number][i]=sc[i];}/*显示学生的成绩*/void output(){int i; /*循环控制变量*/for(i=0;i<N;i++){printf("输出%s各门成绩:\n数学、语文、英语、政治\n",student[i]);printf("%.2f %.2f %.2f %.2f\n\n",score[i][0],score[i][1],score[i][2],score[i][3]); }}/*计算学生的平均成绩*/void average(){float sc=0.00; /*中间变量*/int i,j; /*循环控制变量*/for (j=0; j<N; j++){sc=0.0;for (i=0; i<4; i++)sc+=score[j][i];aver[j]=sc/4;printf("学生%s的平均成绩是:%.2f\n",student[j],aver[j]);}}/*计算学生的总成绩*/void sum_score(){int i,j; /*循环控制变量*/printf("输出学生的总成绩:\n");for (j=0; j<N; j++){sum_sc[j]=0;for (i=0; i<4; i++)sum_sc[j]+=score[j][i];printf("学生%s的总成绩是:%.2f\n",student[j],sum_sc[j]);}}/*对学生的成绩进行排名,以平均成绩为例*/void sort(){int i,j,temp,location; /*循环控制变量*/float max,sc; /*比较用中间变量*/float aver[N];int flag; /*排序是否交换的标志*/int sor[N]; /*记录排序的位置*/for (j=0; j<N; j++){sor[j]=j;sc=0.0;for (i=0; i<4; i++)sc+=score[j][i];aver[j]=sc/4;}for (i=0; i<N; i++) /*对学生平均成绩进行排序*/ {flag=0;max=aver[i];location=i;for (j=i+1; j<N; j++){if (aver[j]>max){max=aver[j];flag=1;location=j;}}if(flag==1){aver[location]=aver[i];aver[i]=max;temp=sor[i];sor[i]=sor[location];sor[location]=temp;}}printf("排序后的结果是:\n");for(i=0;i<N;i++){printf("第%d名学号%d 姓名%s",(i+1),sor[i],student[sor[i]]);printf("%f\n",aver[i]);}}结果如下:例如、输入学号为1的学生:显示成绩:平均成绩:总成绩:成绩排名:其他的结果按照相关提示操作可得出相应的结果,在此不再列出。

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语言课程设计学生成绩管理系统可自行修改

学生成绩管理系统课程设计报告目录一、系统软件环境 (3)二、课程设计题目 (3)三、课程设计的基本要求 (3)四、数据结构设计描述 (4)五、各变量的定义和作用 (4)六、系统各函数的功能、相互调用关系 (4)七、N-S流程图 (5)八、课程设计过程中遇到的问题及解决过程 (6)(6)九、心得与体会(6) (6)十、附页源程序清单 卜一、参考文献附录学生成绩管理系统课程设计一•系统软件环境:本程序主要运行在:Visual C++ 6.0 Turbo C/C++ 3.0Turbo C 2.0二•课程设计题目:(一)用梯形法求定积分(数值求解算法)2用梯形法编程求函数 f (x )=x 2+2X +1的定积分° f (x )dx 的值。

提示:把积分区间[a , b ]等分为n 等分(a,b ,n 的值由程序输入。

),可得到若干个小梯 形,积分面积就近似为这些小梯形面积之和。

(二)综合训练学生成绩管理程序说明:有 N 个学生,每个学生的数据包含学号(不重复) 、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单学生成绩管理系统1、 成绩录入2、 成绩查询3、 成绩统计4、 退出(2)各菜单项功能①成绩录入:输入学生的学号、姓名及三门课的成绩;②成绩查询:按学号查询学生记录。

③绩统计:计算学生的平均分;OK 根据学生的平均分高低,对学生的数据进行排序后输出;OK④退出系统:退出整个系统(即主菜单)。

三.课程设计的基本要求设计步骤的规范不但可以培养学生科学的工作方法和作风,而且还能有效地减少错误,提高工作效率。

因此必须严格执行良好的实验步骤规范(包括上级操作规范)。

本课程设计的基本步骤与要求是:1、问题分析及解决方案框架确定充分地分析和理解问题本身,弄清要求做什么。

在确定解决方案框架过程中,考虑怎样使程序结构清晰、合理、简单和易于调试,并确定每个函数的简单功能,以及函数之间的调用关系。

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。

《C语言高级程序》课程作业——学生成绩管理系统报告

《C语言高级程序》课程作业——学生成绩管理系统报告

为达到题目说的参加考试的学生人数不超过 30 人,故在程序开
头采用宏定义“#define N 30”已达到系统控制人数的目的。 为保证每次输入的数据的有效性,在输入考生人数和选项的地方
采用防御式编程,减少由于输入错误造成的系统终止。
三、程序代码
#include <stdio.h>
#include <string.h>
姓名查询信息函数、统计各学科各类别的学生人数及所占百分比函数
及输出所有考生信息的函数。
为减少程序长度,单独建立一个供输出单个学生学号、姓名、数
学成绩、英语成绩、物理成绩、总分、平均分的函数。有结构体数组
做函数参数,具体如下:
void menu(struct student stu[]); // 选择菜单
}stu[N]; // 全局变量
3
int num,select;
struct student t;
float math_sum=0.0 0english_aver,
physics_sum=0.0, physics_aver;
// 函数声明
void menu();
一、题目分析 (一)作业题目
学生成绩管理系统 某班有最多不超过 30 人(由键盘输入)参加考试。考试科目为 数学、英语和物理,定义结构体类型,用结构体数组做函数参数,实 现以下可供用户选择的菜单项。 (0)exit; (1)录入每个学生的学号、姓名和各科考试成绩; (2)计算每门课程的总分和平均分; (3)计算每个学生的总分和平均分; (4)按每个学生的总分由高到低排出名次表; (5)按每个学生的总分由低到高排出名次表; (6)按学号由小到大排出成绩表; (7)按姓名的字典顺序排出成绩表; (8)按学号查询学生排名及其考试成绩; (9)按姓名查询学生排名及其考试成绩; (10)按优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、 不及格(0~59)五个类别。对每门课程分别统计每个类别的人数以及 所占的百分比; (11)输出每个学生的学号、姓名、各科考试成绩,以及每门课 程的总分和平均分。 (二)题目分析 1、程序要能做什么 根据题意,本系统要能做到手动输入学生人数以及考生相关信息 (学号、姓名、三科成绩),并能对输入的考生信息进行相应的分析 并显示结果,能根据要求进行查找相关数据信息。 2、程序处理什么 对输入的考生的三科成绩进行各自求和、取平均值; 对数学、英语、物理三科进行分析即求其各自平均值、统计各类 别的学生人数及所占百分比; 分别按学号顺序、姓名、考生总分高低对考生进行排序并输出; 根据提示,分别按给定学号和姓名进行查找并输出。 二、编程思想

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

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

C语言课程设计报告:学生成绩管理系统系统需求一、当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息。

二、学生成绩查询: 输入一个学号,在文件中查找此学生, 若找到则输出此学生的全部信息和成绩;若找不到则输出查找失败的信息。

同时也可以全部把各科的平均成绩,最高和最低分输出.三、新生插入:通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来.四、输出全部学生信息和全部学生成绩。

五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。

总体设计一、仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。

2、查询模块:可用stu *lookdata(stu *p1)来实现。

找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。

3、插入模块:可用insert( )函数来实现。

其中通过学号的大小来比较的,并且以此来排序.4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。

5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。

二、系统主模块结构图:详细设计一、界面设计此系统界面采用图形和数字化菜单设计。

主界面设计如下:学生成绩管理系统请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、数据结构设计:程序设计中用到的结构体类型:学生信息结构体类型:typedef struct student{char name[MAX];int num[MAX];char sex[MAX];int chinese;int mathematic;int english;int computer;struct student *next;}程序代码://原始密码是123456#include"stdio.h”#include"stddef.h"#include"stddef。

C语言 学生成绩管理系统实验报告

C语言 学生成绩管理系统实验报告

HUNAN UNIVERSITY程序设计训练报告题目学生成绩管理系统学生姓名学生学号专业班级指导老师湖南大学程序设计训练报告目录一程序功能简介…………………………………………………………………………….。

.。

.3二本人完成的主要工作……………………………………………………………………..。

3三设计方案……………………………………………………………………………。

...。

.。

3 1)设计分析……………………………………………………………………………。

.。

.。

.。

32)模块的功能及程序分析…………………………………………………………....。

43)核心算法流程图……………………………………………………………………。

...。

74) 核心源程序模块………………………………………………………………………。

.85)操作方法简介………………………………………………………………………….。

86)实验结果……………………………………………………………………………。

.。

.。

.。

.98)设计体会…………………………………………………………………………….。

11四附录……………………………………………………………………………。

..。

.。

12 一、程序功能简介;本程序作为一个学生成绩管理系统,用户可以首先使用管理员模式初始化该系统.初始化完成之后,用户可以选择使用成绩记录人模式进入系统,对学生成绩进行记录。

系统自动储存所记录的学生成绩,然后用户可根据不同需要来选择不同的功能来使用程序,其中包括成绩查询与增减,成绩排序,成绩分析等功能. 二、本人完成的主要工作;程序设计分析,绘制程序流程图,写出大体结构算法以及各个核心算法模块,写出核心源程序,对源程序进行算法优化,对源代码进行多次试验验证其正确性,完成源代码的测试以及代码书写规范检测。

三、设计方案;1)设计分析;首先拿到这个题目,我就开始思考如何将这个看似简单的系统做的较为完善,而不是简简单单的学生成绩管理系统,学生管理系统自然是这个题目的核心,从中发散思维,我想到了几个比较细小的地方。

学生成绩查询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.English); }void Chinesecompositor(struct student stu[]) //按语文排序{int num=0,num2=0;struct student p;for(num2;num2<9;num2++){for(num;num<9;num++)if(stu[num].Chinese<stu[num+1].Chinese){p=stu[num];stu[num]=stu[num+1];stu[num+1]=p;}}}for(num=0;num<10;num++){printf("%c:%f",stu[num].name,stu[num].Chinese); }}void mathcompositor(struct student stu[]) //按数学排序{int num=0,num2=0;struct student p;for(num2;num2<9;num2++){for(num;num<9;num++)if(stu[num].math<stu[num+1].math){p=stu[num];stu[num]=stu[num+1];stu[num+1]=p;}}}for(num=0;num<10;num++){printf("%c:%f",stu[num].name,stu[num].math);}}void Englishcompositor(struct student stu[]) //按英语排序{int num=0,num2=0;struct student p;for(num2;num2<9;num2++){for(num;num<9;num++)if(stu[num].English<stu[num+1].English){p=stu[num];stu[num]=stu[num+1];stu[num+1]=p;}}}for(num=0;num<10;num++){printf("%c:%f",stu[num].name,stu[num].English); }}void Average(struct student stu) //平均分{int num=0;stu.average=(stu.Chinese+stu.English+stu.math)/3; }void Averagecompositor(struct student stu[])//按平均分排序{int num=0,num2=0;struct student p;for(num2;num2<9;num2++){for(num;num<9;num++){if(stu[num].average<stu[num+1].average){p=stu[num];stu[num]=stu[num+1];stu[num+1]=p;}}}for(num=0;num<10;num++){printf("%c:%f",stu[num].name,stu[num].average);}}void namecheck(struct student stu[],char *na) //按姓名查询{int num=0;for(num;num<10;num++){if (na==stu[num].name){printf("姓名:%s 数学:%f 语文:%f 英语:%f",stu[num].name,stu[num].math,stu[num].English);}}}void scholarship(struct student stu[]) //奖学金{int num=0,count=0;printf("一等奖学金名单:\n");for(num;num<10;num++){if(stu[num].Chinese>=90&&stu[num].English>=90&&stu[n um].math>=90){printf("%s ",stu[num].name);count++;}}printf("\n二等奖学金名单:\n");for(num;num<10;num++){if(stu[num].Chinese>=80&&stu[num].English>=80&&stu[n um].math>=80){printf("%s ",stu[num].name);count++;}}printf("奖学金人数:%d",count);}void scorecut(struct student stu[],int n)//分数段{int num=0,count=0;switch(n){case 1:{printf("语文成绩分数段:\n");printf("90分以上:\n");for(num;num<10;num++){if(stu[num].Chinese>=90){printf("%s\n",stu[num].name);}}printf("80---90: \n");for(num=0;num<10;num++){if(stu[num].Chinese>=80&&stu[num].Chinese<90) {printf("%s\n",stu[num].name);}}printf("70--80: \n");for(num=0;num<10;num++){if(stu[num].Chinese>=70&&stu[num].Chinese<80) {printf("%s\n",stu[num].name);}}printf("60--70: \n");for(num=0;num<10;num++){if(stu[num].Chinese>=60&&stu[num].Chinese<70) {printf("%s\n",stu[num].name);}}printf("不及格: \n");for(num=0;num<10;num++){if(stu[num].Chinese<60){printf("%s\n",stu[num].name);}}}case 2:{printf("平均分成绩分段:\n");printf("90分以上:\n");for(num;num<10;num++){if(stu[num].average>=90){printf("%s\n",stu[num].name);}}printf("80---90: \n");for(num=0;num<10;num++){if(stu[num].average>=80&&stu[num].average<90) {printf("%s\n",stu[num].name);}}printf("70--80: \n");for(num=0;num<10;num++){if(stu[num].average>=70&&stu[num].average<80) {printf("%s\n",stu[num].name);}}printf("60--70: \n");for(num=0;num<10;num++){if(stu[num].average>=60&&stu[num].average<70) {printf("%s\n",stu[num].name);}}printf("不及格: \n");for(num=0;num<10;num++){if(stu[num].average<60){printf("%s\n",stu[num].name);}}}}}void menu(){printf(" 1.成绩录入\n");printf(" 2.成绩查询\n");printf(" 3.分数段查询\n");printf(" 4.奖学金查询\n");printf(" 5.成绩排序\n");}main(){struct student stu[10];int num=0,n;char *na;while(1){menu();scanf("%d",&n);switch(n){case 1:for(num;num<10;num++){printf("输入第%d个学生姓名",num+1);inputgread(stu[num]);Average(stu[num]);}break;case 2:{printf(" 1.按姓名查询\n");printf(" 2.查询平均分\n");printf(" 3.退出查询\n");scanf("%d",&n);switch(n){case 1:{printf("输入学生姓名:");scanf("%s",&na);namecheck(stu,na);}case 2:{for(num=0;num<10;num++){printf("3科平均分:\n");printf("%c:%f\n",stu[num].name,stu[num].average);}}case 3: break;}}case 3:{}case 4:{printf(" 1.语文单科成绩分段\n");printf(" 2.平均分分段\n");scanf("%d",&n);switch(n){case 1:scorecut(stu,n);case 2:scorecut(stu,n);case 3:break;}}case 5:{printf("按数学成绩排序:\n");mathcompositor(stu);printf("按语文成绩排序: \n");Chinesecompositor(stu);printf("按英语成绩排序: \n");Englishcompositor(stu);printf("按平均分排序: \n");Averagecompositor(stu);}}}}。

C语言成绩查询系统

C语言成绩查询系统

C语言大作业目录一.目的 (3)二.题目描述和要求 (3)三.报告内容 (5)3.1需求分析 (5)3.2 概要设计 (5)3.3 详细设计 (7)3.4 主要源程序代码 (8)3.5 测试分析 (15)3.6 设计结果 (16)四.结论与心得 (21)一.目的1.1、通过本次大作业,锻炼我们应用C语言的语法规则和已经掌握的算法,自己解决一个较简单的课题,初步积累编程经验。

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

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

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

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

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

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

按班级查询学生成绩。

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

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

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

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

计算每位学生的平均分。

成绩排序。

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

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

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

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

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

3.2 概要设计1.系统结构图(功能模块图)和数据变量说明2.系统总体流程图3.3 详细设计3.4 主要源程序代码#include<stdio.h>#include<string.h>#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 (stu.scor_eng+stu.scor_math+stu.scor_phy)/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%8.2f%8.2f%8.2f%10.2f\n",students[index].ID,students[index].Name, students[index].scor_eng,students[index].scor_math,students[index].scor_phy,students[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%8.2f%8.2f%8.2f%10.2f\n",students[i].ID,students[i].Name,students[i].scor_eng,students[i].scor_math,students[i].scor_phy,students[i].Average);}}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);}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);}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;}}}3.5 测试分析C语言是上学期的学习内容,现在生疏了很多,以致程序运行过程中有许多bug,测试也有很多想不到的错误。

C语言排序学生成绩

C语言排序学生成绩
4.1.1 一维数组
以下对一维整型数组a的正确定义的是: A、int a(10) B、int n=10, a[n] C、int n; int a[n]; D、#define SIZE 10
scanf(“%d”,%n); int a[SIZE];
•C语言排序学生成绩
任务1 输入/输出多个学生一门 课程的成绩
4.1.2 一维数组的引用
C语言规定只能逐个引用数组元素而不能一次引 用整个数组。
数组名[下标表达式];
Example
int n=5,a[20];
若一个数组长度为n,其 下标值范围是0~(n-1)
a[1] a[n] a[3*n]
表示引用数组a中的第2个元素 表示引用数组a中的第6个元素 •C语表言排示序引学用生成数绩组a中的第16个元素
•C语言排序学生成绩
任务2 排序学生成绩
任务1中已经输入了50个同学的成 绩到数组中,现在需要确定如何对学 生成绩从低到高进行排序。
•C语言排序学生成绩
任务2 排序学生成绩
711111
155533
5 6
_
6 7
_
6 3
_
3 6
_
5 6
_
5 5
937776
两层循环结构
外层循环每次
399999
把操作范围内
设 系统为其余元素赋0
•C语言排序学生成绩
任务1 输入/输出多个学生一门 课程的成绩
4.1.3 一维数组的初始化
(3)当初值的个数多于数组元素的个数时, 编译出错
Example
int a[5]={1,2,3,4,5,6,7};
•C语言排序学生成绩
任务1 输入/输出多个学生一门 课程的成绩

学生成绩管理系统C语言

学生成绩管理系统C语言

【学生成绩管理系统】计算机程序编程课程设计实验报告实验地点:第一教学楼502室实验平台:Windows XP Microsoft Visual C++ 6.0实验用时:2013.8。

27——2013.8.30实验题目学生成绩管理系统一.实验目的使用标准C或C++实现一般管理系统的基本功能。

进一步巩固C语言的学习,培养一定的综合编程能力。

二.实验设计要求(一)需要处理的基础数据学生基本信息包括:➢学号(如2010级14班6号写作20101406)➢姓➢名➢性别➢出生年月日➢课程对应的考试成绩(外语SCORE[0]、高数SCORE[1]、C语言SCORE[2]、马哲SCORE[3])➢平均成绩和总成绩(二)系统功能1.学生基本情况录入.要求对输入的性别、出生年月日的合理性进行判断(如0代表“女”,1代表“男",输入其他值非法,年龄不能为负,月份不能大于13等)。

2.允许对已经录入的数据进行显示。

3.允许进行数据的插入。

4.删除基本数据的相关信息。

5.基于姓名的查询。

如:姓张的所有同学。

6.基于各种基本数据的统计计算。

如:①统计每个学生各门功课的平均成绩,并按平均成绩从高到低的次序排名输出每个学生各门功课的综合成绩和平均成绩(名次、学号、姓名、平均成绩、各门功课的考试成绩)。

②列出90分及以上、80分及以上、70分及以上、60分及以上、不及格学生清单(学号、姓名、不及格的课程和成绩)。

③统计并输出各门功课的平均成绩和总平均成绩。

④按班级统计并输出总成绩(需对学号进行解析).(三)数据结构说明typedef struct St1{ char IDNumber[16]; /*学号*/char FamilyName[16];/*姓*/char GivenName[16]; /*名*/int sex;/*性别(0代表“女”,1代表“男”)*/int BirthYear;/*出生年*/int BirthMonth;/*出生月*/int BirthDay;/*出生日*/float score[4]; /*成绩*/float sum; /*总分*/float average;/*平均分*/struct St1 *next;}StudentNode;(四)菜单的样板模式为:1。

详解C语言输出打印

详解C语言输出打印

详解C语⾔输出打印《C语⾔printf函数的⾼级⽤法》头⽂件printf 来⾃C语⾔头⽂件 stdio.h(标准IO),是C语⾔常⽤来打印⽇志的API。

#include <stdio.h>cout 则来⾃ C++ 头⽂件 iostream#include <iostream>格式化参数使⽤ printf 的⼀个难点就是掌握格式化参数。

通常来说,格式化参数所表⽰的类型与变量的实际类型⼀致,才能打印出正确的结果。

,⽐如声明⼀个 int 变量,就⽤ %d 来格式化该变量的值。

声明⼀个 unsigned int 变量,就⽤ %u 来格式化该变量的值。

以下测试环境为Windows 操作系统Visual StudioWin32 项⽬1. 打印字符串(常⽤)在C语⾔中,我们常⽤ char数组表⽰字符串:#include <stdio.h>int main() {char str[] = "Hello";printf("%s\n", str);return 0;}2. 打印整数(常⽤)《C语⾔的整数类型》%d ⼗进制有符号整数%u ⼗进制⽆符号整数C语⾔中,带符号的标准整数类型有 char,short,int,long,long long。

1、⽤%d格式化范围内的正整数:char c = 97;short s = 128;int i = 1024;long l = 65500;long long ll = 131070;printf("%d\n", c); // 输出97printf("%u\n", c); // 输出97printf("%d\n", s); // 输出128printf("%u\n", s); // 输出128printf("%d\n", i); // 输出1024printf("%u\n", i); // 输出1024printf("%d\n", l); // 输出65500printf("%u\n", l); // 输出65500printf("%d\n", ll); // 输出131070printf("%u\n", ll); // 输出1310702、⽤%d格式化超出范围的正整数:char c = 128; // char范围是 -128~127short s = 32768; // short范围是 -32768~32767int i = 2147483648; // int范围是 -2147483648~2147483647long l = 2147483648;// long范围是 -2147483648~2147483647long long ll = 9223372036854775808; // long long 范围 -9223372036854775808~9223372036854775807printf("%d\n", c); // 输出-128printf("%u\n", c); // 输出4294967168printf("%d\n", s); // 输出-32768printf("%u\n", s); // 输出4294934528printf("%d\n", i); // 输出-2147483648printf("%u\n", i); // 输出2147483648printf("%d\n", l); // 输出-2147483648printf("%u\n", l); // 输出2147483648printf("%d\n", ll); // 输出0printf("%u\n", ll); // 输出0char的长度为1个字节,128 ⽤1个字节表⽰等于 0x80,被解释为有符号⼗进制整数 -128,因此 %d 格式化后输出 -128;short的长度为2个字节,32768 ⽤2个字节表⽰等于 0x8000,被解释为有符号⼗进制整数 -32768,因此 %d 格式化后输出 -32768;int和long的长度为4个字节,2147483648 ⽤4个字节表⽰等于 0x80000000,被解释为有符号⼗进制整数 -2147483648,因此 %d 格式化后输出 -2147483648;上述的⼏种情况,我们在定义的时候,可以采⽤⽆符号数来声明整型变量:unsigned char c = 128; // char范围是 -128~127unsigned short s = 32768; // short范围是 -32768~32767unsigned int i = 2147483648; // int范围是 -2147483648~2147483647unsigned long l = 2147483648;// long范围是 -2147483648~2147483647printf("%d\n", c); // 输出128printf("%u\n", c); // 输出128printf("%d\n", s); // 输出32768printf("%u\n", s); // 输出32768printf("%d\n", i); // 输出-2147483648printf("%u\n", i); // 输出2147483648printf("%d\n", l); // 输出-2147483648printf("%u\n", l); // 输出2147483648我们发现int和long在格式化为%d和%u时还是有所不同。

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

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

C语言课程设计报告院系:机械与电子信息学院姓名:王鹏飞班号:07310126学号:20101003558指导教师:龚文引日期:2011年7月学生成绩管理系统一、题目要求设计一个学生成绩管理程序,对在校某班学生几门课程的考试成绩进行统一管理。

每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为序存放。

(1)一个文件按以班为单位存储学生记录.(2)将允许的操作分为四种,以A、B、C、D、E、F为标志(若设置菜单操作更佳):A:插入一个新的学生记录(录入学生信息);B:修改学生记录;C:删除一个学生记录;D:登记成绩;E:修改成绩;F:浏览全班成绩。

(3)计算学生的总成绩。

(4)按学号排序输出全班成绩表。

二、需求分析根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要浏览学生的信息,应提供添加、修改、删除、排序等操作;另外还应提供键盘式选择菜单实现功能选择。

三、总体设计根据上面的需求分析,可以将这个系统的设计分为8个模块,数据输入,添加数据,修改数据,删除数据,修改成绩,学号排序,浏览成绩,退出模块。

四。

详细设计1、主函数【分析】将各个功能模块设置为菜单选项,方便调用,且执行完每部分功能模块后能够方便返回到系统界面.【流程图】:【程序代码】:menu() /*主界面*/{int w1;char n; /*。

变量n保存选择菜单数字,w1判断输入的数字是否在功能菜单对应数字范围内*/do{puts(”\t\t***************菜单****************\n\n”);puts(”\t\t\t\tA。

录入学生信息”);puts(”\t\t\t\tB.修改学生记录”);puts(”\t\t\t\tC。

删除一个学生记录”);puts(”\t\t\t\tD.登记成绩”);puts("\t\t\t\tE。

修改成绩");puts("\t\t\t\tF。

学生成绩管理系统c语言代码(供参考)

学生成绩管理系统c语言代码(供参考)

C程序学生管理系统以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#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。

实现学生的基本信息和成绩的输入和平均值的输出C++源代码

实现学生的基本信息和成绩的输入和平均值的输出C++源代码
cout<<"那么第"<<k+1<<"个学生的学号是"<<sno[k]<<",姓名是"<<sname[k]<<",五科平均成绩是"<<savg[k]<<endl;
}
cout<<"*********************"<<endl;
return 0;
};
cout<<"请输入学生数:";
int snum;
cin>>snum;
while(snum>100||snum<0){
cout<<"请核实正确的学生数!重新输入"<<endl;
cin>>snum;
}
double a[5];
string sno[100];
string sname[100];
double savg[100];
cout<<"请输入学生的五科成绩:"<<endl;
for(int j=0;j<5;j++){
cout<<"请输入第"<<j+1<<"科成绩:";
cin>>a[j];
}
cout<<"*********************"<<endl;
savg[i]=AVG(a);
}
for(int k=0;k<snum;k++){
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

提问者采纳
#include "stdio.h"
#include "string.h"
#define M 2 //班级总人数
#define L 20 //姓名长度
#define N 4 //课程总数
//定义结构体类型
typedef struct student{
int num; //姓名
char *name; //学号
float score[N]; //各科成绩
}stuType;
//函数声明
void initial(); //初始化
void staOfStudent(); //个人统计
void staOfClass(); //班级统计
void addStudent(); //增加一名学生的信息
void outStuInformation(char str[L]); //输出一名学生的信息void search(); //查找某个学生
//全局变量声明
stuType stu[M];
int curStuCount=0; //当前学生人数
//主函数
void main(){
initial(); //初始化
printf("\n");
staOfStudent(); //个人统计
printf("\n");
staOfClass(); //班级统计
printf("\n");
search(); //查找某个学生
}
//函数定义
void initial(){ //初始化
int i;
printf("该班级共%d人,\n",M);
for(i=0;i<M;i++)
addStudent(); //增加一名学生的信息
}
void staOfStudent(){ //个人统计
int i,j;
float ave[N]={0.0}; //存放每个学生的平均成绩
float sum[N]={0.0}; //存放每个学生的总成绩
for(i=0;i<M;i++){ //每个学生
for(j=0;j<N;j++)
sum[i]+=stu[i].score[j];
ave[i]=sum[i]/N;
printf("学生%s的总分为:%.2f,平均分
为:%.2f\n",stu[i].name,sum[i],ave[i]);
}
}
void staOfClass(){ //班级统计
int i,j;
float ave[N]={0.0};
float sum[N]={0.0};
for(i=0;i<N;i++){ //每门课程
for(j=0;j<M;j++)
sum[i]+=stu[j].score[i];
ave[i]=sum[i]/M;
printf("该班级第%门课程的平均分为:%.2f\n",i+1,ave[i]);
}
}
void addStudent(){ //增加一名学生的信息
int k;
printf("\n请输入第%d名学生的学号,姓名:\n",curStuCount+1);
scanf("%d,%s",&stu[curStuCount].num,&stu[curStuCount].name);//注意输入时学号与姓名用“,”隔开
for(k=0;k<N;k++){
printf("第%d门课程成绩:",k+1);
scanf("%f",&stu[curStuCount].score[k]);
}
curStuCount++; //计数器+1
}
void outStuInformation(char str[L]){ //输出一名学生的信息
int i,j;
for(i=0;i<M;i++)
if(strcmp(str,stu[i].name)==0){
printf("该学生信息如下:\n");
printf("学号:%3d 姓
名:%6s\n",stu[i].num,stu[i].name);
printf("成绩:");
for(j=0;j<N;j++)
printf("%.2f",stu[i].score[j]);
printf("\n");
break;
}
if(i>=M)
printf("没有找到该学生的信息.\n");
}
void search(){ //查找某个学生
char tmpStr[L];
printf("请输入要查找的学生姓名:");
scanf("%s",tmpStr);
outStuInformation(tmpStr); //调用outStuInformation函数}。

相关文档
最新文档