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

合集下载

score_manage

score_manage

《C语言程序设计》课程设计报告题目:学生成绩管理系统专业:数学与应用数学学号:0809401*04姓名:谭镜指导教师:李又良成绩:二〇〇九年六月八日课程设计报告——学生成绩管理系统1、研究背景及意义由于现今的学生成绩管理非常繁琐,管理人员付出大量的工作时间,得到的效率很低。

因此为提高工作效率,为了减轻轻学校人工对学生成绩进行登记,查找,求平均成绩等繁杂的工作,进而设计出一个功能更完善,合理,先进的学生成绩管理系统来管理。

开发此学生成绩管理系统软件,以供教学人员及操作者进行学生管理,方便操作者随时添加、查询、修改学生成绩。

2、问题描述和功能要求问题描叙对学生各科成绩信息进行管理,学生各科成绩信息包括数学分析、C语言、大学物理、大学英语、高等代数、大学体育、马克思主义政治经济学。

学生成绩管理是指学生成绩信息的输入、显示、排序、查找、插入、修改、删除、保存,退出。

系统功能1)、每一条记录包括一个学生的学号、姓名、7门成绩、平均成绩、总成绩。

2)、输入功能:可以一次完成无数条记录的输入。

3)、显示功能:完成全部学生记录的显示。

4)、查找功能:完成按姓名查找学生记录,并显示。

5)、排序功能:按学生平均成绩进行排序。

6)、插入功能:插入一组新的学生成绩记录。

7)、修改功能:能将以前输入并保存的数据进行修改。

8)、保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\score。

9)、读取功能:将保存在文件中的学生记录读取出来。

10)、有一个清晰美观界面来调用各个功能功能模块分工:刘冰负责:输入功能李健负责:显示功能田琴负责:排序功能刘智丽负责:插入功能唐丹霞负责:保存功能3、课程设计报告内容3.1学生管理系统的理论依据及算法主要数据结构:typedef struct/*定义数据结构*/{char class_0[20]; /*班级*/int number; /*学号*/char name[20]; /*姓名*/float mathematicaianalysis; /*数学分析*/float c_program; /*C++语言成绩*/float physics; /*大学物理成绩*/float english; /*大学英语成绩*/float math; /*高等代数成绩*/float sport; /*体育成绩*/float polity; /*马克思主义政治经济学*/float summary; /*总分*/float average; /*平均分*/}Student;各函数的功能和实现整个系统除了主函数外,另外还有10个函数,实现九大功能:输入功能、显示功能、查找功能、排序功能、插入功能、修改功能、删除功能、保存功能、读取功能。

学生成绩管理系统C++程序设计(共5篇)

学生成绩管理系统C++程序设计(共5篇)

学生成绩管理系统C++程序设计(共5篇)第一篇:学生成绩管理系统C++程序设计项目设计题目(学生成绩管理系统)学号:姓名:自评成绩:成绩:1.选题意义、依据学生成绩系统的设计从学生的应用中而来,学生了解该系统的组成和运行过程,它贴近学生的生活能使学生更加方便的使用各个语句、函数、结构体等。

依据学生期末成绩表的格式。

2.系统功能设计与分析(功能模块说明)系统主要用于从一个文件夹读入学生信息(101 张三78 87 102 李斯103 王红79 87 104 赵子龙 72 75 76李洪磊 88 98 89),包括学生学号、姓名、成绩(数学、英语、数据库),程序中引用了八个函数void Cscore(int);void Rank(int ave);void Listnumber(int i);void Listscore(int i);void Lookup(int);void Alter(int);void Dele(int &i);void Insert(int &i);系统主要实现的功能有:查询、修改、删除、插入、成绩单(以学号排名)和成绩单(以名次排名)。

Cscore 函数主要是对学生进行排名。

具有相同总分的学生具有相同的名次,例如:第三名和第四名具有相同的总分则在表中不会出现第四名,将出现两个第三名紧接着出现第五名学生的情况。

Rank 函数主要用于按平均分对学生进行备注。

把学生分为四个等级:>90分为excellent,80—90分为medium,60—80分为qualified,<60分为disqualified。

Listnumber 函数主要用于把学生的信息(学号姓名数学英语数据库总分平均分名次备注)以学号排名的顺序用表的形式输出,方便学生查看。

Listnumber 函数中还调用了Cscore 和Rank 函数。

Listscore 函数是把学生的信息以总成绩排名的形式输出。

c语言学生成绩管理系统总结

c语言学生成绩管理系统总结

c语言学生成绩管理系统总结
C语言学生成绩管理系统是一种使用C语言编写的学生成绩管理系统,用于管理学生信息和成绩信息。

在本文中,我们将对C语言学生成绩管理系统进行总结,并探讨其优点和不足之处。

## C语言学生成绩管理系统总结
C语言学生成绩管理系统具有以下优点:
1. 简单易用:C语言学生成绩管理系统的代码简洁易懂,容易学习和维护。

2. 高性能:C语言学生成绩管理系统使用了一些高级技术,如指针和内存管理,能够有效地提高系统的性能。

3. 可扩展性:C语言学生成绩管理系统具有良好的可扩展性,可以根据需要添加或删除新的功能和模块。

4. 跨平台性:C语言学生成绩管理系统可以在各种操作系统上运行,包括Windows、Linux和Mac OS。

## C语言学生成绩管理系统的不足之处
虽然C语言学生成绩管理系统有许多优点,但是也存在一些不足之处:
1. 代码复杂:C语言学生成绩管理系统的代码可能比较复杂,需要花费一定的时间和精力来维护和调试。

2. 安全性问题:C语言学生成绩管理系统可能会存在一些安全性问题,如数据泄露和黑客攻击等。

3. 数据完整性问题:C语言学生成绩管理系统可能会存在数据完整性问题,如成绩数据缺失或错误等。

## 总结
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语言课程设计 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语言高级程序》课程作业——学生成绩管理系统报告

为达到题目说的参加考试的学生人数不超过 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语言下实现的学生成绩管理,是一个简单的课程设计,但是功能齐全,增减删除,指针排序等等,是基础学习的一个好实践材料.全部代码2000多行.共26页.主要实现功能如下:一、学生菜单1、查看个人成绩2、按学号排序查看班级成绩3、按学生总成绩排序查看成绩4、查看不及格学生的成绩5、给管理员留言6、更改登录密码二、管理员菜单1、按班级查询学生信息2、按姓名查询学生信息3、按学号查询学生信息4、插入学生信息删除学生信息5、更改学生信息6、添加班级信息7、查看学生留言8、更改登录密码#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <conio.h>#include <string.h>static int newcount=0;char obj[4][10]={"英语","数理","语言","微分"};struct student{long num;char classes[20];char name[20];char sex[2];long birthday;float score[4];float total;struct student *next;};struct student *create(int n) /*手动插入班级文件*/{struct student *head=NULL,*p1,*p2;int i,j;for(i=1;i<=n;i++){float total=0;p1=(struct student *)malloc(sizeof(struct student));printf("请输入第%d个学生的:\n",i);printf("学号:");scanf("%ld",&p1->num);printf("班级:");scanf("%s",p1->classes);printf("姓名:");scanf("%s",p1->name);printf("性别:");scanf("%s",p1->sex);printf("生日:");scanf("%ld",&p1->birthday);for(j=0;j<4;j++){printf("%s分数:",obj[j]);scanf("%f",&p1->score[j]);total=total+(p1->score[j]);}p1->total=total;p1->next=NULL;if(i==1)head=p1;elsep2->next=p1;p2=p1;}return(head);}void clrscr() //空行{int t;for(t=0;t<=40;t++)printf("\n");}void print(struct student *head) //显示文件{struct student *p=head;printf("学号\t 班级\t姓名\t性别\t生日\t英语语言数理微分总分\n\n");while(p!=NULL&&p->total!=0){printf("%-10ld%5s\t%-7s\t%s %-8ld %.1f %.1f %.1f %.1f %.1f\n\n",p->num,p-> classes,p->name,p->sex,p->birthday,p->score[0],p->score[1],p->score[2],p->score[3],p->total);p=p->next;}}struct student *save(struct student *head,char *inputclasses) //存入班级文件{FILE *fp;struct student *p;p=head;fp=fopen(inputclasses,"ab");while(p!=NULL){fwrite(p,sizeof(struct student),1,fp);p=p->next;}fclose(fp);}struct student *load(char *inputclasses) //读取班级文件{FILE *fp;int j=1;struct student *head,*p1,*p2;fp=fopen(inputclasses,"rb");p1=(struct student *)malloc(sizeof(struct student));while(!feof(fp)){fread(p1,sizeof(struct student),1,fp);p1->next=(struct student *)malloc(sizeof(struct student));if(j==1)head=p1;p2=p1;p1=p1->next;j++;}return(head);fclose(fp);}int mainmenu() //主目录{int m;printf("\t\t*********************************************\n");printf("\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t\t 主菜单\n");printf("\n");printf("\t\t*********************************************\n");printf("\n");printf("\t\t\t\t(1)、管理员模式!\n");printf("\n");printf("\t\t\t\t(2)、学生模式!\n");printf("\n");printf("\t\t\t\t(3)、退出!\n");printf("\n");printf("\t\t*********************************************\n");printf("\t\t\t请选择1、2、3,您的选择是:");scanf("%d",&m);printf("\n");return m;}int studentmenu() //学生菜单{int k;printf("\t\t*********************************************\n");printf("\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t\t 学生菜单\n");printf("\n");printf("\t\t\t\t(1)、查看个人成绩\n");printf("\n");printf("\t\t\t\t(2)、按学号排序查看班级成绩\n");printf("\n");printf("\t\t\t\t(3)、按学生总成绩排序查看成绩\n");printf("\n");printf("\t\t\t\t(4)、查看不及格学生的成绩\n");printf("\n");printf("\t\t\t\t(5)、给管理员留言\n");printf("\n");printf("\t\t\t\t(6)、更改登录密码\n");printf("\n");printf("\t\t\t\t(7)、退回到主菜单\n");printf("\n");printf("\t\t\t\t(8)、退出\n");printf("\n");printf("\t\t*********************************************\n");printf("\t\t你的选择是:");scanf("%d",&k);return k;}int adminmenu() //管理员菜单{int k;printf("\t*****************************************************************\n");printf("\n\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t\t 管理员菜单\n");printf("\n\n");printf("\t(1)、按班级查询学生信息\t\t(2)、按姓名查询学生信息");printf("\n\n");printf("\t(3)、按学号查询学生信息\t\t(4)、插入学生信息");printf("\n\n");printf("\t(5)、删除学生信息\t\t(6)、更改学生信息");printf("\n\n");printf("\t(7)、添加班级信息\t\t(8)、查看学生留言");printf("\n\n");printf("\t(9)、更改登录密码\t\t(10)、退回到主菜单");printf("\n\n");printf("\t(11)、退出");printf("\n\n");printf("\t******************************************************************\n");printf("\t\t\t\t你的选择是:");scanf("%d",&k);return k;}int checkcode(int n,char *inputname,char *inputcode) //密码验证{FILE *fp;int i;char code[20],code2[20],name[20];if(n==1){fp=fopen("admincode.txt","r");if(fp==NULL){printf("\n\t\t*********************************************");printf("\n");printf("\t\t\t密码还没有设置,请设置密码!\n\n");codesign: printf("\n请设置登录名:");scanf("%s",name);printf("\n\t\t*********************************************");printf("\n\t\t\t请设置登录密码:");scanf("%s",code);printf("\n\t\t*********************************************");printf("\n\t\t\t请再次输入密码:");scanf("%s",code2);fp=fopen("admincode.txt","w");if(strcmp(code,code2)==0){fprintf(fp,"%s\n",name);fprintf(fp,"%s",code);}else{printf("\t\t\t两次密码不一致,请再输入一次!\n\n");goto codesign;}fclose(fp);return 1;}else{fscanf(fp,"%s\n",name);fscanf(fp,"%s",code);if(strcmp(name,inputname)==0&&strcmp(code,inputcode)==0)return 1;else return 0;fclose(fp);}}if(n==2){fp=fopen("stucode.txt","rw");if(fp==NULL){printf("\n\t\t*********************************************");printf("\n");printf("\t\t\t密码还没有设置,请设置密码!\n\n");codesign2: printf("\n请设置登录名:");scanf("%s",name);printf("\n\t\t*********************************************");printf("\n\t\t\t请设置登录密码:");scanf("%s",code);printf("\n\t\t*********************************************");printf("\n\t\t\t请再次输入密码:");scanf("%s",code2);fp=fopen("stucode.txt","w");if(strcmp(code,code2)==0){fprintf(fp,"%s\n",name);fprintf(fp,"%s",code);}else{printf("\t\t\t两次密码不一致,请再输入一次!\n\n");goto codesign2;}fclose(fp);return 1;}else{fscanf(fp,"%s",name);fscanf(fp,"%s",code);if(strcmp(name,inputname)==0&&strcmp(code,inputcode)==0)return 1;else return 0;fclose(fp);}}}void classescheck() //查看班级情况{struct student *head;char inclasses[20],*inputclasses;printf("\t*****************************************************************\n");printf("\n\t\t\t请输入你要查询的班级:");scanf("%s",inclasses);printf("\t*****************************************************************\n");if(checkclasses(inclasses)){inputclasses=strcat(inclasses,".txt");head=load(inputclasses);print(head);}else printf("\n\t\t\t你输入的班级不存在,任意键继续!");}void printp(struct student *p) //显示符合条件的个人信息{printf("\t\t**************************************************************\n");printf("学号\t 班级\t姓名\t性别\t生日\t英语语言数理微分总分\n\n");printf("%-12ld%5s\t%-7s\t%s %-8ld %.1f %.1f %.1f %.1f %.1f\n",p->num,p->classes, p->name,p->sex,p->birthday,p->score[0],p->score[1],p->score[2],p->score[3],p->total);}int checkclasses(char *inputclasses) //检查班级的存在{FILE *fp;int i=0,j;int sign=0;char classes[100][20];fp=fopen("classes.txt","r");while(!feof(fp)){fscanf(fp,"%s",classes[i]);i++;}for(j=0;j<i;j++)if(strcmp(classes[j],inputclasses)==0)sign=1;return sign;}void namecheck() //按姓名查看{char inputname[20],*name,inputclasses[20];struct student *head,*p1,*p2;printf("\t\t*********************************************\n");printf("\t\t\t 请输入该同学的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){name=strcat(inputclasses,".txt");head=load(name);printf("\n\t\t\t 请输入学生姓名:");scanf("%s",inputname);p1=head;while(strcmp(p1->name,inputname)!=0&&p1->next!=NULL){p2=p1;p1=p1->next;}if(strcmp(p1->name,inputname)==0)printp(p1);else{printf("\t\t**************************************************\n");printf("\t\t\t不存在这个同学!");}}else{printf("\t\t*********************************************\n");printf("\t\t\t请确认所在班级!\n");}}void numcheck() //按学号查看{char *name,inputclasses[20];long inputnum;struct student *head,*p1,*p2;printf("\t\t*********************************************\n");printf("\t\t\t 请输入该同学的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){name=strcat(inputclasses,".txt");head=load(name);printf("\n\t\t\t 请输入学生姓名:");scanf("%ld",&inputnum);p1=head;while(p1->num!=inputnum&&p1->next!=NULL){p2=p1;p1=p1->next;}if(p1->num==inputnum){printp(p1);}else{printf("\t\t**************************************************\n");printf("\t\t\t不存在这个学号!");}}else{printf("\t\t*********************************************\n");printf("\t\t\t请确认所在班级!\n");}}void addclasses() //添加班级{struct student *head;FILE *fp1,*fp2;int n;char addclasses[20],*addclasses2;printf("\n************************************************************\n");printf("\t\t\t请输入你要加入的班级:");scanf("%s",addclasses);if(checkclasses(addclasses)){printf("\n************************************************************\n");printf("你输入的班级已经存在!");printf("\n************************************************************\n");}else{printf("\n\t\t************************************************************\n");printf("请输入班级人数:");scanf("%d",&n);fp1=fopen("classes.txt","a");fprintf(fp1,"%s\n",addclasses);fclose(fp1);head=create(n);addclasses2=strcat(addclasses,".txt");save(head,addclasses);printf("\n\t\t************************************************************\n");printf("以下是你加入的信息:\n");head=load(addclasses);print(head);printf("\n\t\t************************************************************\n"); }}int classesnum(struct student *head,long n) //检查学号是否存在{struct student *p1,*p2;int sign=0;p1=head;while(p1->next!=NULL&&p1->num!=n){p2=p1;p1=p1->next;}if(p1->num==n)sign=1;return sign;}void modifynews() //更改学生信息{struct student *head,*p1,*p2,*p;char inputclasses[20];char modifyclasses[20],modifyname[20];char *classes;long inputnum;int j;float total=0;p=(struct student *)malloc(sizeof(struct student));clrscr();printf("\t*****************************************************************\n");printf("\t\t\t请输入你要修改的学生的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){classes=strcat(inputclasses,".txt");head=load(classes);printf("\n\n\t\t\t请输入要修改学生的学号:");scanf("%ld",&inputnum);if(classesnum(head,inputnum)==0){printf("\t\t\t该学生并不存在不能修改!");}else{clrscr();printf("\t************************************************************");p1=head;while(p1->num!=inputnum){p2=p1;p1=p1->next;}printp(p1);printf("\n\n\n\t\t\t请修改学号为%ld的学生的信息:\n",inputnum);p->num=inputnum;printf("\n\t\t\t班级:");scanf("%s",p->classes);printf("\n\t\t\t姓名:");scanf("%s",p->name);printf("\n\t\t\t性别:");scanf("%s",p->sex);printf("\n\t\t\t生日:");scanf("%ld",&p->birthday);for(j=0;j<4;j++){printf("\n\t\t\t%s分数:",obj[j]);scanf("%f",&p->score[j]);total=total+(p->score[j]);}p->total=total;if(p1==head){p->next=head->next;head=p;}else if(p1->next==NULL){p2->next=p;p->next=NULL;}else{p2->next=p;p->next=p1->next;}save(head,classes);print(head);}}}void insert() //插入学生信息{struct student *head,*p1,*p2,*p;char inputclasses[20];char insertclasses[20],insertname[20];char *classes;long inputnum;int j;float total=0;p=(struct student *)malloc(sizeof(struct student));clrscr();printf("\t*****************************************************************\n");printf("\t\t\t请输入你要插入的学生的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){classes=strcat(inputclasses,".txt");head=load(classes);printf("\n\n\t\t\t请输入要插入学生的学号:");scanf("%ld",&inputnum);if(classesnum(head,inputnum)==1){printf("\t\t\t该学生已经存在!");}else{printf("\t********************************************************\n\n");p1=head;while(p1->num<inputnum&&p1->next!=NULL&&p1->total!=0){p2=p1;p1=p1->next;}printp(p1);printf("\n\n\n\t\t\t请插入学号为%ld的学生的信息:\n",inputnum);p->num=inputnum;printf("\n\t\t\t班级:");scanf("%s",p->classes);printf("\n\t\t\t姓名:");scanf("%s",p->name);printf("\n\t\t\t性别:");scanf("%s",p->sex);printf("\n\t\t\t生日:");scanf("%ld",&p->birthday);for(j=0;j<4;j++){printf("\n\t\t\t%s分数:",obj[j]);scanf("%f",&p->score[j]);total=total+(p->score[j]);}p->total=total;if(inputnum<head->num){p->next=head->next;head=p;}else if(p1->next==NULL){p1->next=p;p->next=NULL;}else{p2->next=p;p->next=p1;}save(head,classes);print(head);}}}int classesname(struct student *head,char *inputname) //检查学生姓名是否存在{struct student *p1,*p2;int sign=0;p1=head;while(p1->next!=NULL&&strcmp(p1->name,inputname)!=0){p2=p1;p1=p1->next;}if(strcmp(p1->name,inputname)==0)sign=1;return sign;}void delet() //删除信息{struct student *head,*p1,*p2;char inputclasses[20],*classes;long inputnum;char inputname[20];printf("\n\t\t*********************************************************\n");printf("\t\t\t请输入要删除的学生的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){printf("\n\n\t\t\t请输入要删除学生的学号:");scanf("%ld",&inputnum);printf("\n\n\t\t\t请输入要删除学生的姓名:");scanf("%s",inputname);classes=strcat(inputclasses,".txt");head=load(classes);if(classesnum(head,inputnum)&&classesname(head,inputname)){p1=head;while(p1->num!=inputnum&&strcmp(p1->name,inputname)!=0){p2=p1;p1=p1->next;}if(p1->num==inputnum&&strcmp(p1->name,inputname)==0){p2->next=p1->next;save(head,classes);print(head);}}else{printf("\n\n\t\t****************************************************");printf("\n\n\t\t\t你输入的学生不存在");}}else{printf("\n\n\t\t****************************************************");printf("你输入的班级不存在");}}void newsckeck() //查看留言{FILE *fp1,*fp2;int i=1,j=0,t=1;char news[10][200],name[50][20],num1[2],*num2;fp1=fopen("留言.txt","rw");while(!feof(fp1)){fscanf(fp1,"%s",name[t]);t++;}for(i=1;i<t-1;i++){fscanf(fp1,"%s",name[i]);printf("\n\n\t\t\t第%d为学生:",i);puts(name[i]);}fclose(fp1);i--;while(i>0){printf("\n\n\t\t\t请输入编号查看留言:");scanf("%s",num1);printf("\n\n\t\t\t编号为%s的留言内容是:\n");num2=strcat(num1,".txt");fp2=fopen(num2,"r");while(fgets(news[j],200,fp2)!=NULL){puts(news[j]);}i--;}printf("\n\n\t\t************************************");printf("\n\n\t\t\t你暂时没有留言!!!!!\n\n");fp1=fopen("留言.txt","w");fclose(fp1);}void sentnews() //给管理员留言{FILE *fp1,*fp2;static int j=0;char inputnews[200],inputname[20];char name[3],*name2;printf("\n\n\t\t***********************************************");printf("\n\n\t\t\t输入你的姓名:");scanf("%s",inputname);fp1=fopen("留言.txt","a");fprintf(fp1,"%s\n",inputname);newcount=newcount+1;j++;fclose(fp1);itoa(j,name,10);name2=strcat(name,".txt");printf("\n\n\t\t\t请输入你的留言:\n\n\n");scanf("%s",inputnews);fp2=fopen(name2,"w");fputs(inputnews,fp2);fclose(fp2);printf("\n\n\n\t\t************************************************");printf("\n\n\t\t\t\t留言成功!!!!!!!!");}void admodifycode() //管理员修改密码{char inputname[20],code[20],mdname[20],mdcode[20],mdcode2[20];FILE *fp;printf("\n\n\t\t\t请输入你用户名:");scanf("%s",inputname);printf("\n\n\t\t\t请输入你的密码:");scanf("%s",code);if(checkcode(1,inputname,code)){fp=fopen("admincode.txt","w");printf("\n\t\t*********************************************");codesign3: printf("\n\t\t\t请设置登录名:");scanf("%s",mdname);printf("\n\t\t*********************************************");printf("\n\t\t\t请设置登录密码:");scanf("%s",mdcode);printf("\n\t\t*********************************************");printf("\n\t\t\t请再次输入密码:");scanf("%s",mdcode2);fp=fopen("admincode.txt","w");if(strcmp(mdcode,mdcode2)==0){fprintf(fp,"%s\n",mdname);fprintf(fp,"%s",mdcode);}else{printf("\t\t\t两次密码不一致,请再输入一次!\n\n");goto codesign3;}fclose(fp);}else{printf("\n\t\t*****************************************************");printf("\n\n\t\t\t密码错误!!!!!!!!!!!");}}void stumodifycode(){char inputname[20],code[20],mdname[20],mdcode[20],mdcode2[20];FILE *fp;printf("\n\n\t\t\t请输入你用户名:");scanf("%s",inputname);printf("\n\n\t\t\t请输入你的密码:");scanf("%s",code);if(checkcode(2,inputname,code)){fp=fopen("stucode.txt","w");printf("\n\t\t*********************************************");codesign4: printf("\n\t\t\t请设置登录名:");scanf("%s",mdname);printf("\n\t\t*********************************************");printf("\n\t\t\t请设置登录密码:");scanf("%s",mdcode);printf("\n\t\t*********************************************");printf("\n\t\t\t请再次输入密码:");scanf("%s",mdcode2);fp=fopen("stucode.txt","w");if(strcmp(mdcode,mdcode2)==0){fprintf(fp,"%s\n",mdname);fprintf(fp,"%s",mdcode);}else{printf("\t\t\t两次密码不一致,请再输入一次!\n\n");goto codesign4;}fclose(fp);}else{printf("\n\t\t*****************************************************");printf("\n\n\t\t\t密码错误!!!!!!!!!!!");}}void sstudent(){struct student *head,*p1,*p2;char inputclasses[20],*inputclasses2,inputname[20];long inputnum;printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t请输入你的班级:");scanf("%s",inputclasses);if(checkclasses(inputclasses)){inputclasses2=strcat(inputclasses,".txt");head=load(inputclasses2);p1=head;printf("\n\n\t\t\t请输入你的学号:");scanf("%ld",&inputnum);printf("\n\n\t\t\t请输入你的姓名:");scanf("%s",inputname);if(classesnum(head,inputnum)&&classesname(head,inputname)){while(p1->num!=inputnum&&strcmp(p1->name,inputname)!=0&&p1->next!=NULL){p2=p1;p1=p1->next;}if(p1->num==inputnum&&strcmp(p1->name,inputname)==0)printp(p1);}else{printf("\n\n\t\t**************************************************");printf("\n\n\t\t你输入学生不存在!!!!!!!!!!!!");}}else{printf("\n\n\t\t**************************************************");printf("\n\n\t\t你输入的班级不存在!!!!!!!!!!!!");}}void badstudent(){struct student *head,*p1,*p2,*p3,*p4,*p5;char inputclasses[20],*inputclasses2;printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t请输入你的班级:");scanf("%s",inputclasses);printf("\n\n\t\t***************************************************\n");if(checkclasses(inputclasses)){inputclasses2=strcat(inputclasses,".txt");head=load(inputclasses2);p1=head;p3=head;p4=head;p5=head;print(head);printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t英语不及格的同学情况:");printf("\n\n\t\t\t姓名\t分数");while(p1->next!=NULL&&p1->total!=0){p2=p1;p1=p1->next;if(p1->score[0]<60)printf("\n\n\t\t\t%s\t%.1f",p1->name,p1->score[0]);}printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t数理不及格的同学情况:");printf("\n\n\t\t\t姓名\t分数");while(p3->next!=NULL&&p3->total!=0){p2=p3;p3=p3->next;if(p3->score[1]<60)printf("\n\n\t\t\t%s\t%.1f",p3->name,p3->score[1]);}printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t语言不及格的同学情况:");printf("\n\n\t\t\t姓名\t分数");while(p4->next!=NULL&&p4->total!=0){p2=p4;p4=p4->next;if(p4->score[2]<60)printf("\n\n\t\t\t%s\t%.1f",p4->name,p4->score[2]);}printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t微分不及格的同学情况:");printf("\n\n\t\t\t姓名\t分数");while(p5->next!=NULL&&p5->total!=0){p2=p5;p5=p5->next;if(p5->score[3]<60)printf("\n\n\t\t\t%s\t%.1f",p5->name,p5->score[3]);}}}void sortstudent(){FILE *fp;struct student *head,*p1,*p2,*p3,stu[100];int i=0,j,k,t;char inputclasses[20],*inputclasses2;printf("\n\n\t\t***************************************************");printf("\n\n\t\t\t请输入你的班级:");scanf("%s",inputclasses);printf("\n\n\t\t***************************************************\n");if(checkclasses(inputclasses)){inputclasses2=strcat(inputclasses,".txt");head=load(inputclasses2);p1=head;print(head);while(p1->next!=NULL&&p1->total!=0){p2=p1;p1=p1->next;i++;}p1=head;p2=head;for(j=0;j<i;j++){for(k=0;k<i-1;k++){t=k;while(t>0){p3=p2;p2=p2->next;t--;}t=k+1;while(t>0){p1=p2->next;t--;}if(p2->total<p1->total){if(p1==head){head=p1;p2->next=head->next;head->next=p2;}else{p3->next=p1;p2->next=p1->next;p1->next=p2;}}p2=head;p1=head;}p2=head;p1=head;}}print(head);int admcode(){FILE *fp;char inputname[20], inputcode[20],c;int flag=0,j;char code[20],code2[20],name[20];printf("\t\t*********************************************\n");printf("\n");printf("\t\t\t 请输入你的用户名:");scanf("%s",inputname);printf("\n\t\t*********************************************\n");printf("\n\n");printf("\t\t\t 请输入密码:");c=getch();if(c!='\r')printf("*");while(c!='\r'){ inputcode[j++]=c;c=getch();if(c!='\r')printf("*");else inputcode[j]='\0';}printf("\n");fp=fopen("admincode.txt","r");fscanf(fp,"%s\n",name);fscanf(fp,"%s",code);fclose(fp);if(strcmp(name,inputname)==0&&strcmp(code,inputcode)==0)flag=1;return flag;}int stucode(){FILE *fp;char inputname[20], inputcode[20],c;int flag=0,j;char code[20],code2[20],name[20];printf("\t\t*********************************************\n");printf("\n");printf("\t\t\t 请输入你的用户名:");scanf("%s",inputname);printf("\n\t\t*********************************************\n");printf("\n\n");printf("\t\t\t 请输入密码:");c=getch();if(c!='\r')printf("*");while(c!='\r'){ inputcode[j++]=c;c=getch();if(c!='\r')printf("*");else inputcode[j]='\0';}printf("\n");fp=fopen("stucode.txt","r");fscanf(fp,"%s\n",name);fscanf(fp,"%s",code);fclose(fp);if(strcmp(name,inputname)==0&&strcmp(code,inputcode)==0)flag=1;return flag;}int main(){struct student *head;int maininput,sign,j=0;mainlabe:while(1){maininput=mainmenu();switch(maininput){case 1:{sign=admcode();if(sign==1){while(1)。

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

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

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

.。

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

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

...。

.。

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

.。

.。

.。

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

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

...。

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

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

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

.。

.。

.。

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

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

..。

.。

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

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

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

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

C语言程序课程设计--学生成绩管理系统
学生成绩管理系统是一种利用计算机程序来储存、处理和管理学生成绩信息的系统。

它可以收集、整理学生的相关成绩信息,如学生的学号、姓名、年级及其对应的期末考试
成绩,实现对这些成绩的存储、修改、查询和汇总统计等功能。

它可以不仅可以查询当前
成绩,还可以查询学生在不同学期的前若干学期的成绩状况,方便学校管理者和老师快速
了解到学生的学习状况。

首先,学生成绩管理系统需要建立学生信息数据库,储存学生的基本信息,以及课程、考试成绩的数据表,用以储存和查询学生的考试成绩。

比如有学生信息表:学号,姓名,
班级、学科成绩表:报考科目,期末考试成绩,考试时间等等。

接着,学生成绩管理系统需要实现一些基本功能用于操作这些数据表。

根据学校成绩
管理的需要,系统可以实现新增学生、新增科目成绩、查询学生成绩、修改学生成绩等功能,为学校提供必要的成绩管理支持。

其次,学生成绩管理系统还可以进行学生成绩的统计分析。

可以对学生在各科考试中
的情况进行统计分析,分析学生的表现,以便学校更方便、更全面地了解学生的学习状况。

最后,学生成绩管理系统为管理者和老师提供更便捷、高效的管理效率,减少管理者
管理工作时间,节约学校的人力资源,有助于改善学子的学习水平。

综上所述,学生成绩管理系统对于教育管理者而言,无疑是一个非常重要的系统,为
学校管理者和老师提供了快速准确的学生成绩信息,帮助他们更好地了解学生的成绩状况,进而提高教育管理的精准性和质量。

相关文档
最新文档