学生信息管理系统C语言编写-编辑学生信息如何写
- 格式:doc
- 大小:144.00 KB
- 文档页数:11
c语言学生成绩管理系统设计报告C语言是计算机领域最为重要的编程语言之一,用于许多应用系统的开发。
这里我将围绕C语言学生成绩管理系统的设计报告,分步骤阐述该系统的设计与实现。
第一步:需求分析在进行设计之前,必须先进行需求分析,明确系统所需的功能和性能。
针对学生成绩管理系统,我们需要实现以下功能:1. 学生信息管理:包括学生姓名,学号等信息。
2. 成绩信息管理:包括课程分数,总分、平均分等信息。
3. 数据录入和修改:教师可以输入学生的成绩信息,并对已有的信息进行修改。
4. 成绩查询功能:学生可以查询自己的成绩情况。
第二步:系统设计根据需求分析,我们可以对系统进行具体设计。
该系统主要分为以下模块:1. 学生信息管理模块:用于录入和管理学生的信息。
2. 成绩信息管理模块:用于录入和管理学生的成绩信息。
3. 数据操作模块:用于操作学生和成绩信息的增删改查。
4. 用户管理模块:用于管理系统用户,包括学生和教师。
第三步:系统实现在进行系统实现时,我们需要注意以下几个方面:1. 界面设计:尽量简洁明了,易于使用。
2. 数据库设计:需要对数据进行分类储存,便于操作。
3. 数据库连接:需要通过C语言的数据库API来连接数据库。
4. 代码编写:需要根据设计要求进行代码编写,并进行测试调整,确保系统的稳定性和性能。
第四步:系统测试完成系统的设计和实现后,就需要对系统进行测试。
测试主要包括以下几个方面:1. 单元测试:对系统各个功能模块进行单独测试,确保每个模块的运行效果。
2. 集成测试:对系统各个模块进行集成测试,确保各个模块之间的相互交互正常。
3. 用户测试:邀请用户来测试系统,听取他们的反馈和建议,进行调整和改进。
总结:本文围绕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语言的学生信息管理系统的设计与实现目录1结论 (2)2关键技术 (3)2.1C#技术 (3)2.2SQ1server (3)2.3Visua1Studio (3)3系统分析 (4)3.1可行性分析 (4)3.1.1技术可行性 (4)3.1.2经济可行性 (4)3.1.3操作可行性 (4)3.1.4时间可行性 (4)3.2系统性能分析 (5)3.3系统用例分析 (5)4系统设计 (6)4.1系统结构设计 (6)4.2系统顺序图 (7)4.2.1登录模块顺序图 (7)4.2.2添加课程信息模块顺序图 (8)4.2.3添加学生信息模块顺序图 (8)424修改密码模块顺序图 (9)4.3数据库设计 (9)4.3.1数据库E-R图设计 (9)4.3.2数据库表设计 (10)5系统的实现 (12)5.1管理员模块实现 (12)5.1.1登录界面 (12)5.1.2后台管理主界面 (13)5.1.3管理员管理界面 (13)5.1.4学生管理界面 (14)5.1.5课程管理界面 (14)5.2用户模块实现 (15)5.2.1选择课程界面 (15)5.2.2课表信息界面 (15)5.2.3我的成绩单界面 (16)6系统测试 (16)6.1测试方法 (16)6.2测试目的 (17)6.3测试策略 (17)6.4测试分析 (18)6.4.1用户登录模块测试用例 (19)6.4.2修改密码模块测试用例 (19)6.4.3学生管理模块测试用例 (20)6.4.4课程管理模块测试用例 (20)6.5测试总、结 (21)总结 (21)参考文献 (22)1绪论自从人类迈入信息社会以来,各种电子科学技术飞速发展,人们得以应用的电子产品越来越多,也对电子科技产生了依赖性。
在人们的日常生活中,手机和电脑已经成为了必不可少的电子产品。
而人们对手机和电脑的依赖,是因为通过手机以及电脑,能够运用各种各样的系统,通过虚拟网络完成一系列的事项,十分省时且快捷口在如今这个电子科技发达的时代,构建一个学生信息管理系统,不仅让信息得到良好的储存条件,还更方便系统使用用户的操作,直接通过电脑,使用键盘就可以输入信息、保存信息、快速查找信息以及删除不必要的信息。
学生信息管理系统c语言版源代码-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#define N 1000 typedef struct student {int number;char name[20];int grade;int gaoshu;int yingyu;int jisuanji;int sum;}STUDENT; STUDENT student[N]; int shuliang=0;void menu();void fhzjm(){char biaozhi[20]; printf("\n");printf("还需要操作么?如果需要操作请输入:yes,否则请输入:no\n");scanf("%s",biaozhi);if(strcmp(biaozhi,"yes")==0){menu();}else if(strcmp(biaozhi,"no")==0)exit(0);else{printf("请输入正确的字符,谢谢!\n"); fhzjm();}}void DengJi(){int rs;int i,k=1;system("CLS");printf("请输入需要输入几个学生信息:"); scanf("%d",&rs);for(i=shuliang;i<shuliang+rs;i++,k++){printf("请输入第%d个学生的学号:",k); scanf("%d",&student[i].number);printf("请输入学生的姓名:");scanf("%s",student[i].name);printf("请输入学生3门课的成绩:"); printf("请输入第1门课的成绩:"); scanf("%d",&student[i].gaoshu);printf("请输入第2门课的成绩:"); scanf("%d",&student[i].yingyu);printf("请输入第3门课的成绩:");scanf("%d",&student[i].jisuanji);}shuliang=shuliang+rs;fhzjm();}void ShanChu(){char shanchuinfo[10];system("CLS");printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0){int j;printf("你删除的学生信息如下:\n");printf("-----------学号-------------姓名-------------高数--------------英语--------------计算机\t\n");for(j=0;j<shuliang;j++)printf("----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student [j].jisuanji);shuliang=0;printf("删除成功\n\n");}else if(strcmp(shanchuinfo,"one")==0) {struct student *p=NULL;int choice;int i,j,k=0;printf("请输入你要删除的人的学号:"); scanf("%d",&choice);for(i=0;i<shuliang;i++){if(choice==student[i].number) {k=1;j=i;break;}}if(k){if(shuliang==1){p=&student[0];free(p);shuliang=0;}else{for(i=j;i<shuliang;i++) {student[i]=student[i+1]; }shuliang=shuliang-1;}printf("删除成功\n\n");}else{printf("输入数据错误!\n"); }}fhzjm();}void LiuLan(){int i;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息!\n");}else{for(i=0;i<shuliang;i++){printf("第%d个学生的学号为:%d\n",i+1,student[i].number); printf("第%d个学生的姓名为:%s\n",i+1,student[i].name);printf("第%d个学生的第一门课的成绩为:%d\n",i+1,student[i].gaoshu);printf("第%d个学生的第二门课的成绩为:%d\n",i+1,student[i].yingyu);printf("第%d个学生的第三门课的成绩为:%d\n",i+1,student[i].jisuanji);student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji; printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum);}}fhzjm();}void ChaZhao(){int xx;char choice,yy[20];int i,j,k=0;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息!\n"); fhzjm();}printf("三种查找方式:学号,姓名,成绩\n");printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");printf("请输入您查找的方式:");scanf("%s",&choice);if(choice=='1'){printf("请输入需要查找学生的学号:");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].number){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j]. yingyu,student[i].jisuanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='2'){printf("请输入需要查找学生的姓名:\n");scanf("%s",yy);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(strcmp(yy,student[i].name)==0){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j]. yingyu,student[j].jisuanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='3'){printf("请输入需要查找学生的成绩:\n");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数----英语----计算机----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].grade){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j]. yingyu,student[i].jisuanji);}}if(k==0)printf("输入信息有误:\n");}fhzjm();}void PaiXu(){struct student *p1[N],**p2,*temp; int i,j;system("CLS");p2=p1;for( i=0;i<shuliang;i++){p1[i]=student+i;}for( i=0;i<shuliang;i++){for( j=i+1;j<shuliang;j++){if((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;}}}printf("按照总成绩排序之后的信息为:\n");printf("----学号----姓名----总成绩----\t\n");for( i=0;i<shuliang;i++){student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji;printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum);}fhzjm();}void CunChu(){int i;FILE *rs;if((rs=fopen("student.txt","w"))==NULL) {printf("not open");exit(0);}for(i=0;i<shuliang;i++){fwrite(&student[i], sizeof(student[i]), 1, rs); }if(ferror(rs)){fclose(rs);perror("写文件失败!\n");return;}printf("存储文件成功!\n");fclose(rs);fhzjm();}void DaoChu(){struct student t;int i=0;FILE* fp = fopen("student.txt", "r"); shuliang=0;if(NULL==fp){perror("读取文件打开失败!\n"); return;}memset(student,0x0,sizeof(student)); while(1){fread(&t,sizeof(t),1,fp);if(ferror(fp)){fclose(fp);perror("读文件过程失败!\n"); return;}if(feof(fp)){break;}student[i]=t;i++;}fclose(fp);shuliang=i;printf("导出文件成功!\n"); fhzjm();}void menu(){int n=0;system("CLS");printf(" 学生信息管理系统\n");printf(" 作者:陈椿\n");printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n");printf(" 2.删除学生信息\n");printf(" 3.浏览所有已经登记的学生\n");printf(" 4.查找\n");printf(" 4.1按学号查找\n"); printf(" 4.2按姓名查找\n"); printf(" 4.3按成绩查找\n"); printf(" 5.根据总成绩排序\n"); printf(" 6.存储到文件\n"); printf(" 7.从文件导出\n"); printf(" 8.退出系统\n");a: printf(" 请选择:"); scanf("%d",&n);switch (n){case 1:DengJi();break; case 2: ShanChu();break; case 3:LiuLan();break; case 4: ChaZhao();break; case 5:PaiXu();break;case 6:CunChu();break;case 7:DaoChu();break;case 8:exit(0);break;default:{printf("请输入1-8之间的数字,谢谢!\n"); goto a;}}}main() { menu(); }。
学生成绩管理系统c语言课程设计报告一、引言学生成绩管理系统是一个为学校或教育机构提供学生学业成绩管理的重要工具。
通过该系统,可以方便地记录和查询学生的各项成绩,帮助教师和学生了解学生的学业表现,及时作出教学和学习的调整和改进。
本文将介绍一个基于C语言的学生成绩管理系统的设计与实现。
二、需求分析1. 学生信息管理:包括学生基本信息的录入、修改和删除。
2. 成绩信息管理:包括成绩的录入、修改和删除。
3. 成绩查询与统计:可以按照学生学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。
4. 数据存储与备份:能够将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。
三、系统设计1. 学生信息管理模块:设计一个结构体来存储学生的基本信息,包括学号、姓名、性别、年龄等。
通过菜单选择,可以实现学生信息的录入、修改和删除功能。
2. 成绩信息管理模块:设计一个结构体来存储学生的成绩信息,包括科目名称和成绩。
通过菜单选择,可以实现成绩信息的录入、修改和删除功能。
3. 成绩查询与统计模块:通过学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。
4. 数据存储与备份模块:设计文件操作函数,将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。
四、系统实现1. 使用C语言编写程序代码,通过结构体和数组等数据结构实现学生信息和成绩信息的存储。
2. 利用文件操作函数实现数据的读取和存储,包括学生信息和成绩信息的存储和备份。
3. 设计菜单界面,通过用户选择来实现各个功能模块的调用。
五、系统测试与优化1. 针对各个功能模块进行测试,验证系统的正确性和稳定性。
2. 根据测试结果优化程序代码,提高系统性能和用户体验。
3. 完善系统功能,考虑异常情况的处理,提高系统的容错性和健壮性。
六、总结与展望通过本次课程设计,我们成功实现了一个基于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 语言课程设计题目:学生信息管理系统设计者:梁天江专业:机械设计制造及其自动化班级学号: 072084-31所属院系:机电学院指导教师:吴湘宁7月17日1.题目和要求:1.1问题提出与要求:学生成绩管理系统[要求]设计一个学生成绩管理系统,对在校某班学生几门课程的考试成绩进行统一管理。
每个学生记录包括学号、姓名、年龄、数学、英语、物理成绩,默认以学号为序存放。
(1)一个文件按以班为单位存储学生记录。
(2)将允许的操作分为六种A:插入一个新的学生记录(录入学生信息)B:修改学生记录C:删除一个学生记录D:登记成绩E:修改成绩F:浏览全班成绩(3)计算学生的总成绩(4)输出全班成绩表1.2需求分析.根据题目要求,由于学生信息是存放在文件中,因此应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.2.功能实现设计:2.1总体设计:分析系统:根据题目的需求分析,可将这个系统设计为六大模块(见下图):插入学生信息,修改,删除,登记,浏览,统计。
2.2详细设计:1、主函数主函数设计得比较简洁,只提供输入、功能处理和输出部分的函数调用。
其中各功能模块用菜单方式选择;其流程图如下:[程序]void main(){int a;do{printf("\t\t\t\t\n");printf("\t\t\t\t学生成绩管理系统\n");printf("\n");printf("\t\t\t作者:梁天江班级:072084-31 学号: 1004528\n"); printf("\t\t\t-------------------------------------------\n\n");printf("\t 1.插入新的学生记录\n");printf("\t 2.修改学生记录\n");printf("\t 3.删除学生记录\n");printf("\t 4.显示学生成绩和总分\n");printf("\t 5.浏览全班成绩\n");printf("\t 6.退出\n\n");。
#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语言编写的学籍管理系统的源代码。
学籍管理系统是一个用于管理学生的基本信息和学习成绩的软件系统。
该系统可以帮助学校、学院和教师有效地管理学生的信息,并生成学生的成绩报表。
功能学籍管理系统具有以下功能:1.添加学生:可以添加学生的基本信息,如学号、姓名、性别、班级等。
2.删除学生:可以根据学号删除已有的学生信息。
3.查询学生:可以根据学号查询学生的信息。
4.修改学生:可以根据学号修改学生的信息。
5.成绩录入:可以录入学生的学习成绩,包括各科目的成绩和总分。
6.成绩查询:可以根据学号查询学生的成绩。
7.成绩统计:可以统计学生各科目的平均分、最高分和最低分。
程序结构学籍管理系统的源代码主要包括以下几个文件:1.main.c:程序的入口文件,包含主函数和界面显示函数。
2.student.h:定义了学生的结构体和相关操作函数。
3.student.c:实现了学生结构体的操作函数,包括添加学生、删除学生、查询学生、修改学生等。
4.score.h:定义了成绩的结构体和相关操作函数。
5.score.c:实现了成绩结构体的操作函数,包括成绩录入、成绩查询、成绩统计等。
使用说明1.下载源代码:将源代码文件下载到本地电脑上。
2.编译程序:打开命令行窗口,进入源代码所在的目录,使用gcc编译器编译源代码文件。
示例命令为:gcc main.c student.c score.c -ostudent_management_system。
3.运行程序:编译成功后,运行生成的可执行文件。
示例命令为:./student_management_system。
4.操作系统:该学籍管理系统适用于Linux、Unix和Windows操作系统。
示例代码以下是学籍管理系统的示例代码:```c #include <stdio.h> #include。
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。
. 精品 目 录 1设计目的………………………………………………………………………3 2 设计题目及要求……………………………………………………3 3设计算法分析………………………………………………………………3 3.1 模块调用层次图………………………………………………………3 3.2 核心算法描述………………………………………………………4 3.3 系统特点………………………………………………………6 4程序代码………………………………………………………………………6 5调试情况……………………………………………………………………8 6结论……………………………………………………………………………11 .
精品 学生信息管理 1.设计目的 本课程设计的目的就是要通过一次集中的强化训练,使学生能及时巩固已学的知识,补充未学的但又必要的内容。进行课程设计目的在于加深对程序设计基础中基础理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计的能力。具体目的如下: 1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 2.培养学生综合运用所学知识独立完成课题的能力。 3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。 5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
2.设计题目及要求 【1】设计题目 【2】要求 实现如下功能: (1)建立学生信息的结构体 (2)学生信息的初始化(可以从文件获取) (3)学生信息的添加、修改、删除、查找 (4)学生信息的输出 (5)对学生信息按学号、成绩排序 (6)计算一门课的平均分和总分 (7)将学生信息保存为文件 综合应用数组、指针、结构体、文件等,对该设计题目进行设计和实现。课程设计完成后,提交课程设计报告。 3.设计算法分析 3.1 模块调用层次图 【1】变量描述 定义形式/名称 含义/作用 数组 char name[20] 定义姓名数组 结构体 struct student stu[50] 声明一个结构数组 全局变量 int input=0;float ave,sum; FILE *fp; 全局变量标记当前录入学生个数 . 精品 文件 stu_list2.doc 保存学生信息 函数 Save InputStu DelStu ModifyStu FindStu InsertStu SortStu ListStu 保存 录入 删除 修改 查找 插入 排序 显示学生信息 【2】系统模块调用层次图
3.2核心算法描述 1.总体模块流程图:
N
T
Main ListStu SortStu ModifyStu FindStu InsertStu Save InputStu DelStu
开始 !(scanf("%d",&in1)==1
学生信息 修改 查询 插入 删除 排序 保存 .
精品 2.修改模块: for(i=0;i<=15;i++) for(i=0;i
stu[i].num==id T(flag!=0) F(flag!=0)
输出修改后学生信息 printf("\n\nnull")
3.查询模块: for(i=0;i<=15;i++) for(i=0;i (stu[i].num==id) T (flag=0) F (flag!=0)
输出查询后学生信息 printf("\n\nnull") (stu[i].classid==id) T (flag=0) F(flag!=0)
输出查询后学生信息 printf("\n\nnull")
T (flag=0) (!strcmp(stu[i].name,name)) F(flag!=0)
输出查询后学生信息 无找到有关信息
4.插入模块: for(i=0;i
stu[i].num=id T(flag=0) F(flag!=0)
学号信息已经存在 输入要插入学生信息 5.删除模块:
结束 .
精品 ask != 'n' T F i=0;istu[i].num == delnum
T (flag=0) F(flag!=0) for(j=i;j 删除成功且 显示删除后数据 删除指定学生的信息 没有要删除的学生
6.排序模块: chose==1 T F(chose==2) for(i=0;i for(j=i+1;j stu[i].num>stu[j].num stu[i].ave T F T F
temp=stu[i] temp=stu[i] stu[i]=stu[j] stu[i]=stu[j] stu[j]=temp stu[j]=temp
3.3 系统特点 【1】特点:这个学生信息管理系统建立了学生信息的结构体,实现了学生信息的录入、添加、修改、删除、查找等功能,并能计算学生的平均分和总分,对学生进行排序。
4. 程序代码 【1】程序代码 void Help(); void Save(struct student stu[]); void InputStu(struct student stu[]); void DelStu(struct student stu[]); void ModifyStu(struct student stu[]); void FindStu(struct student stu[]); void InsertStu(struct student stu[]); void SortStu(struct student stu[]); void ListStu(struct student stu[]); void main() { struct student stu[50]; struct student *p; int in; int in1; char ch; void InputStu(struct student stu[]) { pp=stu; . 精品 system("cls"); int i; printf("Number of students you want to enter information:"); scanf("%d",&input); if((fp=fopen("inputdata.sys","wb+"))==NULL) { printf("Cannot open file strike any key exit!"); getch(); exit(1); } void ModifyStu(struct student stu[]) { system("cls"); pp=stu; int id,i,flag=1; if((fp=fopen("modifydata.sys","wb+"))==NULL) { printf("Cannot open file strike any key exit!"); getch(); exit(1); } void FindStu(struct student stu[]) { system("cls"); int i=0,id,flag=1,chose; printf("\nPlease select query: 1.No. inquiries by school;2.Query by class;3.Query by name\n"); scanf("%d",&chose); switch(chose){ case 1: printf("Please enter your query No. students:"); scanf("%d",&id); for(i=0;i{ if (stu[i].num==id) { flag=0; stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3; stu[i].ave=stu[i].sum/3; printf("\nNo. Studies\ Name\ No. classes\ The first subjec\ The second subject\ The third subject\Average \Total\n"); void InsertStu(struct student stu[ ]) { system("cls"); int flag=1; pp=stu; int i,id; if((fp=fopen("insertdata.sys","wb+"))==NULL) { printf("Cannot open file strike any key exit!"); getch(); exit(1); } void ListStu(struct student stu[]) { int i=0; for(i=0;i{ stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3; stu[i].ave=stu[i].sum/3;} printf("\nNo. Studies\ Name\ No. classes\ The first subjec\ The second subject\ The third subject\Average \Total\n"); for(i=0;i{printf("\n %d %s %d \t%d \t%d \t%d \t%d %d",stu[i].num,stu[i].name,stu[i].classid,stu[i].score1,stu[i].score2,st