当前位置:文档之家› c语言学生成绩管理系统

c语言学生成绩管理系统

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

软件学院大作业设计说明书

题目学生成绩信息管理程序

学院: 软件学院

专业: 计算机软件

班级: 东软实验班

学号:

学生姓名:

指导教师: 刘伯成

起讫日期: 2012.5.15——2012.6.15

目录

第一章绪论 (5)

1.1 课题背景 (5)

1.2 课题意义 (5)

第二章系统需求分析 (6)

2.1 需求分析 (6)

2.2 可行性分析 (6)

2.3 系统配置需求 (6)

第三章系统总体设计 (8)

3.1 项目规划 (8)

3.2 设计目标 (9)

3.3 技术介绍 (9)

3.4 模块设计 (9)

第四章系统详细设计和实现 (11)

4.1 主界面设计实现 (11)

4.2 学生信息管理界面实现 (11)

4.2.1添加学生 (11)

4.2.1添加学生 (11)

4.3 学生成绩管理界面实现 (11)

4.2.1添加学生 (11)

4.2.1添加学生 (11)

4.4 浏览界面实现 (11)

4.5统计实现 (11)

第五章系统测试 (23)

5.1 测试任务 (24)

5.2 测试目标 (24)

5.3 测试方案 (24)

第六章总结与心得 (25)

参考文献 (30)

附录

第一章绪论

1.1课题背景

该项目开发的程序为学生成绩信息管理系统程序,是鉴于目前在校学生人数与日剧增,学生在校信息呈爆炸性增长的前提下,为了实现学校和老师对学生成绩信息的自动化而构思出来的,便于学生成绩的管理和保存,有较为广泛是实用性。

虽然社会上信息管理系统发展飞快,各个企业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也有了很大的发展,但毕竟最适合自己的才是最好的,本着这一原则,着力于开发本程序,力求功能简洁明了,但功能齐全易于操作。

1.1课题意义

学生信息管理系统是一个教育单位不可或缺的部分。一个功能齐全、简单易用的信息管理程序不但能有效的减轻学校老师等相关工作人员的工作负担,也增强了各种信息的安全性和实用性。所以学生成绩信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。一直以来,人们使用传统人工的方式管理文件档案、统计和查询数据,这种方式有着很大的漏洞,如:效率低,保密性差,人工劳动力的大量浪费,容易丢失。时间一长,将产生大量的信息,对信息的管理和维护更带来了不少麻烦。因此编写一个适合自己的方便实用的学生成绩管理系统是很有必要的。

第二章系统需求分析

2.1需求分析()

随着学校的规模不断扩大,各院校专业、班级、学生的数量急剧增加,有关学生成绩的各种信息也是成倍增长。为了改变现在学生成绩管理系统的不便以及繁琐的工作量,节省教学资源,提供工作效率,开发一个成绩管理系统是很有必要和需求的。

2.2可行性分析(技术、经济、操作)

(1)技术可行性:目前我们已经学习过C语言的各种基本知识,对其语法及逻辑结构有了一定的了解,虽然进行中会遇到一些问题,但已经具备了完成该项目的能力。

(2)经济可行性:系统开发中,所需设备一台电脑即可,不需要什么额外的经济支出。

(3)目前已对编译工具和C知识有了一定的基础,和C程序设计中有详细的讲解,又有充足的时间,因此是可操作完成的。

2.3 系统配置需求

通常对软件系统有下述几方面的综合要求。

1.功能需求:简单明了的实现对学生成绩的输入,显示,保存,修改,删除,保存和读取。

2.性能需求:简单,可操作性强。

3.可靠性和可用性需求:保密性高。

4.出错处理需求:能够更改输入时的错误,避免整体数据的重新输入。

第三章系统总体设计

总体设计目标:

(1).使用多文件方式实现设计。

(2).在各个文件内实现结构化的设计。

(3).每个模块作为一个单独的C文件。具体的函数如下:

文件及函数组成

源文件函数名及其他成分功能system.c main 总控函数

menu_select 菜单选择

handle_menu 菜单处理

quit 结束运行

add.c showtable 显示表头函数

display 显示记录函数

addrecord 增加记录函数

getposition 得到名次函数array.c array 排序函数

find.c findrecord 查找记录函数

findstu 查找学生函数

removerecord 删除记录函数

copy 复制函数

correct 修改信息函数save.c save 存入函数

load 读取函数

head.h 常数提供常数

结构声明学生成绩结构

库函数及函数原型声明引用库函数及函数(4).宏和数据结构等放在头文件中,并使用条件编译。

学生成绩管理系统的功能:

1—增加学生信息

2—修改学生信息

3—显示学生信息

4—查询学生信息

5—删除学生信息

6—显示学生信息

7—从记录文件读取学生信息

8—对记录进行排序处理

9—结束运行!!

此项目主要考察我们对结构体、指针、文件的操作,以及C语音算法的掌握,所以完成此题目要求较高的设计能力,尤其是要有大局的意识。如何调试程序也非常重要,通过这个程序可以学到以前调试程序没有的经验。菜单中的每一个选项都对应一个子程序。

第四章系统详细设计与实现

1.建立文件

(1)可以使用默认文件名或指定文件名将记录存储到文件。

(2)文件保存成功返回0,失败返回—1。

(3)设置保存标志savedtag作为是否已对记录进行存储操作的信息。

(4)写同名文件将覆盖原来文件的内容。

2.增加学生记录

(1)可在已有记录后面追加新的记录。

(2)可以随时用它增加新的记录,它们仅保存在结构数组中。

(3)可以讲一个文件读入,追加在已有记录之后。

(4)如果已经采取用文件追加的方式,在没有保存到文件之前,将继续保持文件追击状态,以便实现连续文件追加操作方式。

(5)如果没有记录存在,给出提示信息。

3.显示记录

(1)如果没有记录可供显示,给出提示信息。

(2)可以随时显示内存中的记录。

(3)显示表头。

4.文件存储

(1)可以按默认名字或指定名字存储记录文件。

(2)存储成功返回0否则返回-1。

(3)更新存储标志。

5.读取文件

(1)可以按默认名字或指定名字将记录文件读入内存。

(2)读取成功返回0,否则返回-1.

(3)可以将指定或默认文件追加到现有记录的尾部。

(4)可以讲文件连续追加到现有记录并更新记录的名次。

(5)更新存储标志。

6.删除文件

(1)可以按学号、姓名、或名次方式删除记录。

(2)给出将被删除记录的信息,经确认后再删除。

(3)如果已经是空表,删除时应给出提示信息并返回主菜单。

(4)如果没有要删除的信息,输出没有找到的信息。

(5)应该更新其他记录的名次。

(6)删除操作仅限于内存,只有执行存记录时,才能覆盖原纪录。

(7)更新存储标志。

7.修改文件

(1)可以按学号、姓名或名次方式修改记录内容。

(2)给出将被修改记录的信息,经确认后进行修改。

(3)如果已经是空表,应给出提示信息并返回主菜单。

(4)如果没有找到需要修改的信息,输出提示信息。

(5)应该同时更新其他记录的名次。

(6)修改操作仅限于内存,只有进行存储操作时,才能覆盖原纪录。

(7)更新存储标志。

8.查询文件

(1)可以按学号、姓名或名次方式查询记录内容。

(2)能给出查询记录的信息。

(3)如果查询的信息不存在,输出提示信息。

9.头文件

(1)使用条件编译定义头文件。

(2)函数原型声明。

(3)数据结构及包含文件。

10.测试程序

(1)应列出测试大纲对程序进行测试。

(2)应保证测试用例到程序的各种边界情况。

源代码文件(1).head.h头文件

#include

#include

#include

#include

#include //用来改变界面颜色#define STAR_SIZE 100 //数组初始大小

#define ADD_SIZE 50 //数组每次增加大小#define SUBJECT_SIZE 5 //科目数

typedef struct student

{

char name[20]; //姓名

char num[15]; //学号

char sex[5]; //性别

float score[SUBJECT_SIZE]; //分数

float sum; //总分

float average; //平均分

int position; //名次

}Stu;

//新类型

extern int numstu; //记录学生数

extern Stu* record; //记录学生信息的数组extern char savedflag; //信息是否保存的标志extern int arraysize; //数组大小

extern char* subject[]; //科目

void handle_menu(void); //菜单处理函数

int menu_select(void); //菜单选择函数

void quit(void); //结束运行

void showtable(void); //显示表头函数

void addrecord(void); //增加记录

void display(void); //显示记录

void removerecord(void); //删除记录

int findrecord(char*,int,int); //查找记录

void findstu(void); //查找学生

void copy(Stu*,Stu*); //复制记录

void correct(void); //修改记录

int save(void); //文件存储

int load(void); //文件读取

void array(void); //为学生信息排名

int getposition(float); //得到学生名次

(2).system.c文件

#include "head.h"//包含头文件

int numstu=0; //记录学生数

Stu *record=NULL; //记录学生信息指针

char savedflag=0; //信息保存标记

int arraysize; //数组大小

char* subject[]={"语文","数学","英语","物理","化学"}; //科目信息

//主函数

int main()

{

system("color 0a");//改变界面字体颜色

record=(Stu*)malloc(sizeof(Stu)*STAR_SIZE);

if(record==NULL)

{

printf("memory fail!");

exit(-1);

}//申请内存

arraysize=STAR_SIZE;

printf("\n");

//启动界面图案

printf(" ╭⌒╮下雨啦━┅~ ¤╭⌒╮╭⌒╮┏─┓╔--╗\n");

printf(" ╭⌒╭⌒╮╭⌒╮~╭⌒╮︶︶, ︶︶│天│┆生┆┏─┓╔--╗\n");

printf(" ,︶︶︶︶,''︶~~ ,''~,︶, , , . ┖─┙╚--╝│我│┆才┆┏─┓╔--╗\n");

printf(" ╱◥█◣╱◥█◣, ╔--╗┌┐┖─┙╚--╝│必│┆有┆\n");

printf(" ︱田︱田︱︱田︱田︱, ┆用┆←┘│┌⌒┐┌┐┖─┙╚--╝\n");

printf(" ╬╬╬╬╬╬╬╬╬╬╬╬╬╬╚--╝└┘└⌒┘└--------┘\n");

printf("\t\t*************************\n");

printf("\t\t* 欢迎进入*\n");

printf("\t\t* 学生成绩管理系统*\n");

printf("\t\t 南昌大学软件学院欢迎您!\n");

printf(" \t\t\t\t\t\t作者:东软实验班朱宝光\n");

printf("\n");

handle_menu();

}

//菜单处理函数

void handle_menu(){

for(; ;){

switch(menu_select()){

case 1:

addrecord();

break;

case 2:

correct();

break;

case 3:

display();

break;

case 4:

findstu();

break;

case 5:

removerecord();

break;

case 6:

save();

break;

case 7:

load();

break;

case 8:

array();

break;

case 9:

quit();//调用函数进行退出

}

}

}

//菜单选择函数

int menu_select()

{

char s[2];

int cn=0;

printf("\n");

//显示功能列表让用户进行选择

printf(" \t|___________________________________________________________|\n");

printf(" \t| |\n");

printf(" \t|\t1:增加学生信息|\n");

printf(" \t|\t2:修改学生信息|\n");

printf(" \t|\t3:显示学生信息|\n");

printf(" \t|\t4:查询学生信息|\n");

printf(" \t|\t5:删除学生信息|\n");

printf(" \t|\t6:保存学生信息至记录文件|\n");

printf(" \t|\t7:从记录文件读取学生信息|\n");

printf(" \t|\t8:对记录进行排序处理|\n");

printf(" \t|\t9:结束运行!|\n");

printf(" \t|___________________________________________________________|\n");

printf(" \n\t左边数字代表相应功能,请选择1-9: \n");

for(;;)

{

gets(s);

cn=atoi(s);//把字符串转换成长整型数

if(cn<1||cn>9)

printf("\n\t输入错误,重选1-9:");

else break;

}

return cn;

}

//结束程序函数

void quit()

{

char s[2];

if(savedflag==1)

{

//若有记录要先询问是否保存,以免数据丢失

printf("是否保存记录?(Y/N)");

gets(s);

if(s[0]!='n'&&s[0]!='N')

save();

}

free(record);

exit(0);

}

system.c界面运行图片如下:

(3).add.c//增加学生信息

#include "head.h"

//显示表头函数

void showtable()

{

int i;

printf("学号\t姓名\t性别");

for(i=0;i

printf("\t%s",subject[i]);

printf("\t总分\t平均分\t名次\n"); }

//显示记录函数

void display()

{

int i,j;

if(numstu==0)

{

printf("记录为空!");

return;

}

showtable(); //显示表头

for(i=0;i

{

printf("%s\t%s\t%s",record[i].num,record[i].name,record[i].sex);

for(j=0;j

printf("\t%.lf",record[i].score[j]);

printf("\t%.lf\t%.lf\t%d\n",record[i].sum,record[i].average,record[i].position);

if(i%19==0&&i!=0)

{

printf("输入任意一个数继续..\n");

getch();

printf("\n\n");

showtable();

}

}

}

//增加记录函数

void addrecord()

{

char a,s[10];

float mark,sum;

int i;

if(numstu==0)

printf("没有原记录,建立新表\n");

else

printf("在当前表尾增加信息\n");

while(1)

{

printf("您将要增加新的记录?(Y/N)");

gets(s);

if(s[0]=='n'||s[0]=='N') //判断用户是否增加新纪录

break;

if(numstu>=arraysize)

{

record=realloc(record,(arraysize+ADD_SIZE)*sizeof(Stu));

if(record==NULL)

{

printf("内存分配错误");

exit(-1);

}

arraysize=arraysize+ADD_SIZE;

}

//使用loop和goto语句实现:防止当用户输入学号或姓名后发现输入错误而没法更改的情况,避免重新输入整个数据。

loop:

printf("请输入学号:\n");

gets(record[numstu].num);

//避免出现学号重复的现象

for(i=0;i

{

//判断学号是否重复,是的话跳出循环重新输入

if(strcmp(record[numstu].num,record[i].num)==0)

{

printf("学号输入错误!请重新输入:\n");

goto loop;

}

else break;

}

loop1:

printf("请输入姓名(返回学号输入请按*键)\n");

gets(record[numstu].name);

// 判断用户是否输入错误,并返回上一层

if(record[numstu].name[0]=='*'||record[numstu].name[0]=='*')

goto loop;

loop2:

printf("请输入性别(1代表女2代表男)(返回姓名输入请按*键)\n");

gets(s);

if(s[0]=='*') goto loop1;

//判断性别,输入错误的话重新输入

if(s[0]=='1')

strcpy(record[numstu].sex,"女");

else if(s[0]=='2')

strcpy(record[numstu].sex,"男");

else

{

printf("输入错误,请重新输入!!\n");

goto loop2;

}

sum=0;

for(i=0;i

{

printf("返回上一科成绩输入请按*键!!\n");

printf("请输入%s成绩:\n",subject[i]);

gets(s);

//判断成绩是否输错,错的话跳到上一循环重新输入

if(s[0]=='*')

{

i=i-2;

continue;

}

mark=(float)atof(s);

record[numstu].score[i]=mark;

sum+=mark;

}

record[numstu].sum=sum;

record[numstu].average=sum/SUBJECT_SIZE;

record[numstu].position=getposition(sum);

numstu++;

}

printf("现在一共有%d条信息",numstu);

savedflag=1;

}

//得到名次函数

int getposition(float sum)

{

int i;

int count=0;

for(i=0;i

{ //总分来计算名次,该学生的名次是if(record[i].sum

{ //且所有总分小于他的学生的名次record[i].position++; //均增1

}

else if(record[i].sum>sum){

count++;

}

}

return count+1;

}

add.c增加信息时的图片:

(4).array.c//对记录进行排序处理

#include "head.h"

void array(void)

{

char s[5];

int i,j;

Stu p;

if(numstu==0)

{

printf("没有数据!\n");

return;

}

//让用户选择排序方式

printf("请选择排序方式:\n");

printf("1:按学号升序排列\n");

printf("2:按学号降序排列\n");

printf("3:按姓名升序排列\n");

printf("4:按姓名降序排列\n");

printf("5:按名次升序排列\n");

printf("6:按名次降序排列\n");

printf("7:按错了不进行排序,返回上一菜单\n");

gets(s);

if(s[0]<'1'||s[0]>'6') return;

for(i=0;i

{

for(j=i+1;j

{

if((s[0]=='1'&&strcmp(record[i].num,record[j].num)>0)||

(s[0]=='2'&&strcmp(record[i].num,record[j].num)<0)||

(s[0]=='3'&&strcmp(record[i].name,record[j].name)>0)||

(s[0]=='4'&&strcmp(record[i].name,record[j].name)<0)||

(s[0]=='5'&&record[i].position>record[j].position)||

(s[0]=='6'&&record[i].position

{

copy(&record[i],&p);

copy(&record[j],&record[i]);

copy(&p,&record[j]);

}

}

}

printf("排序已经完成!\n");

savedflag=1;

}

排序的运行图片:

(5).find.c//查询学生信息

#include "head.h"

//查找记录函数

int findrecord(char *target,int targettype,int from)

{

int i;

for(i=from;i

{

if((targettype==0&&strcmp(target,record[i].num)==0)||

(targettype==1&&strcmp(target,record[i].name)==0)||

(targettype==2&&atoi(target)==record[i].position)) return i;

}

return -1;

}

//查找学生函数

void findstu()

{

char str[5];

char target[15];

int type;

int count;

int i,j;

if(numstu==0)

{

printf("没有记录可供查询!");

return;

}

//让用户选择查询方式

while(1)

{

loop:

printf("请输入查询方式:(直接回车则结束查询)\n");

printf("1:按学号查询\n");

printf("2:按姓名查询\n");

printf("3:按名次查询\n");

gets(str);

if(strlen(str)==0)

学生管理系统 C语言

C/C++程序设计 课程设计报告 专业: 班级: 学号: 姓名: 版本号: 时间:

目录 1 概述 (2) 1.1目的 (2) 1.2计划 (2) 2 课程设计过程及结果 (3) 2.1编程环境及工具 (3) 2.2排序与简单分析 (3) 2.3综合设计 (3) 2.3.1 功能实现 (3) 2.3.2 程序异常处理 (5) 2.3.3 特色功能 (5) 3 课程设计总结 (6) 3.1课程设计计划执行情况 (6) 3.2我理解的C++ (6) 3.3改进设想 (6) 附录关键代码 (6)

原创声明:本课程设计报告及相应的软件程序的全部内容均为本人独立完成,如有抄袭,愿承担相应后果。 声明人___________________ 学号:__________________

1概述 1.1 目的 1、熟悉c语言的编译环境 2、掌握c语言的基本操作 3、回顾并加深对C/C++程序设计相关知识的理解,能够用C/C++独立完成简单数据管 理软件的编写 4、锻炼同学思维强度与能力 5、培养同学认真态度和刻苦的精神 1.2 计划 用Microsoft Visual C++ 6.0进行编译,利用之前学过的课程知识和查询资料等方法完成题目的设计,用Debug进行调试。 1.回顾c语言编程基本内容,了解各种数据类型及掌握各种语句的结构类型。 2.完成一个简单任务:排序与简单分析把一个完全由小写字母组成字符串按照每个字母的出现次数从低到高重新排序。出现次数相同的按照字母顺序排列,(a最前,z最后)。 输入:任意一个字符串(小写,长度小于255) 输出:重新排序后的结果 例如,输入:aassdfkjiowea回车 则输出为:defijkowssaaa 3.综合设计:设计实现学生成绩管理软件。 参考下面的数据,用C/C++设计一个简单的学生成绩管理软件,实现基本的功能。 学生信息文件(A.TXT)及其内容(示意): 学号姓名性别班级 200800800901 张三男电子0801 200800820902 李四女通信0801 200800800903 王五女电子0802 200800820904 赵六男通信0801 …… 课程信息(B.TXT)及其内容(示意): 课程编号课程名称学分 C01 大学英语 4 C02 高等数学 4 C03 C++程序设计 3 …… 学生成绩信息文件(C.TXT)及其内容(示意,成绩保存使用浮点数): 学号课程成绩 200800800901 C01 89 200800800902 C01 68.5 200800800901 C02 45.5 200800800903 C02 78 实现数据录入显示功能查询功能数据删除、整理功能排序功能。

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

计算机学院 C语言程序设计报告书设计名称:学生成绩管理系统 专业:软件工程 指导老师: 班级: 姓名: 学号: 座号: 2011-6-15

一、实验目的 1.在编辑应用程序过程中,逐步加深对C语言编程的理解; 2.加强实践的能力,动手能力,同时进一步对所学的知识 进行巩固; 3.培养初步编程的能力,为以后的学习奠定基础。 二、实验内容 运用所学的C语言知识编辑一个应用程序:学习成绩管理系统 三.系统软件环境: 本程序主要运行在:Visual C++ 6.0 Turbo C/C++ 3.0 四.课程设计题目: 学生成绩管理系统 程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单

(2)各菜单项功能 ①成绩录入:输入学生的学号、姓名及三门课的成绩; ②成绩查询: *按学号查询学生记录。 ③成绩统计: *计算学生的平均分; *根据学生的平均分高低,对学生的数据进行排序后输出; ④退出系统:退出整个系统(即主菜单) 。 五.数据结构设计描述: ↓ ↓

六.各变量的定义和作用 int num; /*定义学号,变量为整型*/ char name; /*定义姓名,变量为字符型*/ int score; /*定义课程的成绩,变量为整型*/ float average; /*定义平均分,变量为浮点型*/ 七.系统各函数的功能,、相互调用关系 1.函数实现功能说明: (1)menu函数 是定义一个菜单函数,其功能在于输出菜单界面供使用者选择。 (2)input函数 是定义用于输入学生信息。 (3)select 函数 是定义用于查询学生信息。包括学号、姓名及各科成绩。(4)statistics 函数 计算学生的平均分。 根据学生的平均分高低,对学生的数据进行排序输出。2.相互调用关系: Main函数调用menu函数。 Menu 函数可以调用input 函数、select函数和statistics函数八.心得体会

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

C 语言程序设计作业 一设计项目:学生成绩管理系统 二总体设计: 2:模块功能说明: 1 输入功能:输入学生姓名学号及成绩。 2 查看功能:输出姓名学号及各科成绩。 3 查询功能:通过学号查询学生姓名及各科成绩。 4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。 5 修改功能:通过输入学号修改指定学生的错误信息。 6添加功能:添加学生信息。 7删除功能:通过输入学号输入指定学生信息。 8保存功能:将学生信息保存。 9 退出系统。 3:主要函数之间的调用关系及各自功能: 主要函数的函数原型 void inputscore(void); void savescore(void); void avergescore(void); void modifyscore(void); void lookscore(void); void searchscore(void); void statistic(void); void add(void); void modify(void);

void delscore(void); void menu(void); i.在菜单界面输入1,调用函数inputscore( )实现输入学生成绩信息功能。ii.在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。 出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计 算。 iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。 iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。 v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。 vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。 viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。 ix.在菜单界面输入9,退出成绩管理系统。

最新学生信息管理系统C语言编程

学生信息管理系统C语言编程 【问题描述】 学生信息的管理是每个学校必须具有的管理功能,主要是对学生的基本情况及学习成绩等方面的管理。该系统模拟一个简单的学生管理系统,要求对文件中所存储的学生数据进行各种常规操作,如:排序、查找、计算、显示等功能。通过此课题,熟练掌握文件、数组、结构体的各种操作,在程序设计中体现一定的算法思想,实现一个简单的学生信息管理系统。【基本要求】 (1)学生信息包括: 学生基本信息文件(student.txt)(注:该文件不需要编程录入数据,可用文本编辑工具直接生成)的内容如下: (2)学生成绩基本信息文件(score.dat)及其内容如下:((注:该文件内容需要编程录入数据,具体做法见下面的要求) 学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分(3)需要实现的功能 1)数据录入和计算功能:对score.dat进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据,综合成绩、实得学分由程序根据条件自动运算。 综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70% 。 实得学分的计算:采用等级学分制,综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=学分*80%;综合成绩在70-80之间 ,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下 ,应得学分=学分*0%。 2)查询功能:分为学生基本情况查询和成绩查询两种 (1)学生基本情况查询: ①、输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出,格式如下: ②、输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。(格式如上所示) (2)成绩查询: ①、输入一个学号时,查询出此生的所有课程情况,格式如下: 学号:xx 姓名:xxxxx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx …………………… 共修:xx科,实得总学分为: xxx (3)删除功能: 提供待删除学生的学号,则在student.txt和score.dat中删除所有与该学生有关的信息。(4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。 【程序设计的具体说明】 (1)将与两个文件对应的信息分别定义两种结构体类型来表示,也可以用类来定义;(2)对score.dat文件的写入,从键盘上输入的是前七项,后两项数据项根据计算方法算出后,得到完整的结构体信息,作为一个整体写入(可调用write函数)。

简单的学生信息管理系统C语言

#include #include //输入函数getch的头文件,不能用getchar,具体请查看两者的区别 #include //申请空间的函数malloc的头文件 typedef struct { //定义结构体类型,包含四项内容,可以自由添加 int num; char name[10]; int age; char sex[5]; }st; typedef struct node //构造结点(也是结构体变量) { st data; //数据域 struct node *next; //指针域(指向结构体,也就是自身) }list; list *create() //建立一个单链表 { list *p,*r,*head; //定义结构体指针变量 int i,n; head = (list *)malloc(sizeof(list)); //申请头结点 r = head; head->next = NULL; //头结点的指针域先定义为空 printf("请输入学生人数:\n"); scanf("%d",&n); printf("请输入学生个人信息:\n\n学号,姓名,年龄,性别\n"); for(i=1;i<=n;i++) { p = (list *)malloc(sizeof(list)); //申请一个结点 scanf("%d%s%d%s",&p->data.num,&p->https://www.doczj.com/doc/6b17324513.html,,&p->data.age,&p->data.sex); //向结点的数据域输入学生信息 p->next = NULL; r->next = p; //将头结点指向第一个结点,以此类推。 r = r->next; } return (head); //返回头结点的地址 } void output(list *h) // 输出链表中的学生信息 { list *p; p = h->next; //使p指向第一个结点 if(p == NULL)

学生信息管理系统C语言课程设计报告

通信工程C语言强化训练实验报告 评语: 教师签字: 东北大学秦皇岛分校

学生信息管理系统 强化训练目的 C语言基本知识的巩固和综合运用。基本数据类型、基本控制结构、数组、指针、函数、结构体和共用体。 C语言高级编程。链表基本操作、文件的基本操作、图形和声音制作。 程序的结构化设计。 编辑、设置、编译、调试、执行。 C语言结合实际问题的综合设计。 设计题目功能 通过计算机对数据文件的存储和读取,对学生信息进行管理,能够完成学生信息的增、删、改、查找等功能。 设计题目要求 名片信息至少包括学号、姓名、性别、出生日期、宿舍号等基本信息。 具体要求包括: 1有主界面和主菜单

2以班级为单位用链表存放学生信息 3可以实现按学号、姓名、宿舍号查询和统计并在屏幕上输出查询结果 4友好的界面和操作提示 [A]信息录入 [D]信息删除 [F]信息查询 [Q]退出 4、程序流程图 总体设计 详细设计 【程序】主函数 void main() /*主函数即用户的操作界面*/ { system("color 1E"); /*设计文本颜色*/ int b,flag=0; /*声明局部变量*/ while(1) /*循环输出以下信息*/ { printf("\n\t\t\t欢迎来到学生成绩管理系统!\n"); printf("\n\t\t\t\t ###制作\n"); printf("\t\t\t-------------------------------\n");

printf("\t\t\t1.键入学生的信息\n\n"); /*键入学生的信息*/ printf("\t\t\t2.查看录入的学生信息\n\n"); /*查看录入的学生信息*/ printf("\t\t\t3.按姓名查看学生的信息\n\n"); /*按姓名查看学生的信息*/ printf("\t\t\t4.按学号查看学生的信息\n\n"); /*按学号查看学生的信息*/ printf("\t\t\t5.按宿舍号查看学生的信息\n\n"); /*按宿舍号查看学生的信息*/ printf("\t\t\t6.删除学生信息\n\n"); /*删除学生信息*/ printf("\t\t\t7.保存学生信息\n\n"); /*保存*/ printf("\t\t\t8.打开文件\n\n"); /*打开文件*/ printf("\t\t\t9.我的个人信息\n\n"); /*我的个人信息*/ printf("\t\t\t0.退出\n\n"); /*退出*/ printf("\t\t\t请输入你的选择:"); scanf("%d",&b); switch(b) { case 1:type();break; /*调用键入学生信息函数*/ case 2:look();break; /*调用查看函数*/ case 3:search_name();break; /*调用姓名查看函数*/ case 4:search_number();break; /*调用学号查看函数*/ case 5: search_dorm();break; /*调用宿舍号查看函数*/ case 6:del();break;/*调用删除函数*/ case 7:save();break;/*调用保存函数*/ case 8:see();break;/*调用打开文件函数*/ case 9:welcome();break;/*调用我的个人信息函数*/ case 0:flag=1;break;/*退出SWITCH语句*/ default :printf("错误!"); } if(flag) break; /*如果选择0就退出循环*/ } } 5、程序设计源代码 #include"stdio.h" #include"conio.h" #include"string.h" #include"stdlib.h" void look(); /*声明查看函数*/ void save(); /*声明保存函数*/ void search_name(); /*声明按姓名查看函数*/ void search_number(); /*声明按学号查看函数*/ void search_dorm(); /*声明按宿舍号查看函数*/ void del(); /*声明删除函数*/ int openl(); /*声明打开函数*/ void welcome(); /*声明我的个人信息函数*/ void type(); /*声明输入函数*/

学生成绩管理系统基本C语言编写

//代码版权所有,不要 #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" copy,仅供参考学习。//标准输入输出函数库 //标准函数库 //字符串函数库 //屏幕操作函数库 #define p->data.num,p->https://www.doczj.com/doc/6b17324513.html,,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.a ve,p->data.mingci int saveflag=0; //是否需要存盘的标志变量 //定义与学生有关的数据结构 typedef struct student { char num[12]; char name[15]; int cgrade; int mgrade; int egrade; int total; float ave; int mingci; }sqlist; //定义每条记录或结点的数据结构,标记为:node typedef struct node { struct student data;// 数据域 struct node *next; //指针域 }Node,*Link; //Node 为node 类型的结构变量,*Link 为node 类型的指针变量 void menu() //主菜单 { system("cls"); //调 用 DOS 命令,清屏.与clrscr() 功能相同 printf(" \n"); printf(" 学生成绩管理信息系统主菜单\n\n"); printf(" **************************************************\n"); printf(" $ 1 、添加记录6、统计记录$\n"); #define HEADER1 " ********************** ***** 学生成绩信息 ****************************** \n\n" #define HEADER2 " 学号姓名计算机数学英语总分平均分名次\n\n" #define FORMAT " %-10s %-10s %5d %5d %5d %5d %.3f %4d \n" DATA //标记为student //学号 //姓名//计 算机成绩// 数学成绩// 英语成绩 //总分 //平均分 //名次

c学生信息管理系统

洛阳理工学院 课程设计报告课程名称高级语言C#课程设计 设计题目学生信息管理系统 专业计算机科学与技术 班级 B130506 学号 姓名张葵 完成日期 课程设计任务书 设计题目:学生信息管理系统 教务员可以输入学生、教师、班级、课程信息,一个班级只属于一个专业,一个学生只属于一个班级。教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。一个教师可以教授多个班的多门课程。 教师可以查看学习该课程的学生名单。课程结束后,教师可以录入课程成绩。 课程分两类,必修课和选修课。学生可以选修课程,每学期几门。学生可以查看自己各门课程的成绩。学生还可以进行评教,给老师打分。 系统管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。

指导教师:张文学 2015 年 12 月 27 日 课程设计评语成绩: 指导教师:_______________ 2015 年 12 月 31 日

目录

第 1 章需求和可行性分析 需求分析 学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。学校的管理人员可以通过电脑对学生信息进行有效的管理,避免了以往人工管理的复杂和耗时费力的劳动,也大大的能够减少管理人员的工作量,可以有效的节约学校的开支。

功能需求 作为一个学生的信息管理系统,必须要有管理人员能够进行对学生的信息进 行有效的管理,因此,系统必须预留一个管理员的登录窗口和登录之后所能进行的操作,在学生信息管理系统中,管理员具有最高的权限,可以对学生、老师、班级、专业等等进行添加、删除、修改个查询。除了拥有管理员之外,还应该拥有教务处对学生进行管理,例如:对学生课程,成绩等等具有一定的权限。此外,还应该有老师的一个权限,老师在带完一门课之后可以对学生进行一个成绩录入和平时布置作业的功能。最后是学生自己拥有的功能,学生在考试结束后可以利用系统登录自己的账户对成绩进行查询。 在学生信息管理系统中,要明确各类用户所能拥有的最高权限,如果一旦权限的问题搞错以后,整个系统就会变得没有价值。例如:学生只有对成绩的查询功能,而不能对成绩拥有修改和删除以及插入的功能。老师只能够对学生进行成绩的录入和平时布置作业,而不能删除学生的个人信息等权限。 要设立不同的异常机制,这样不会因为用户的错误的操作而使得系统瞬时奔溃。我们要在代码中设置不同的异常抛出机制,这样就可以使得用户在进行了错误的或者违反规则的操作之后,系统不会出现突然的停止运转。 可行性分析 随着计算机语言和数据服务的不断发展,使得许多的现实问题都可以利用计算机来帮助人类实现轻巧,方便的管理。在教育上,学生是一个庞大的群体,因此技术人员早早就开始想办法解决这个问题,因此,目前对于学生信息的管理各种语言都能够编写出一套完整的、可用的学生信息管理系统。 技术可行性 在这套系统的开发中,采用的是开发语言是C#,软件是Visio Studio2010,C#是微软对问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft?平台的应用程序,Microsoft .NET提供

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

目录 ——学生成绩管理程序题目要求 (2) 设计目的 (2) 总体设计 (3) 详细设计 (3) 调试与测试 (12) 源程序 (14) 总结 (30)

学生成绩管理程序 一.题目要求 1.问题描述: 对在校学生几门课程的考试成绩进行统一管理.每个学生记录包括学号,姓名,年龄,数学,英语,物理成绩,默认以学号为序存放. 2.要求: (1)一个文件按以班为单位存储学生记录. (2)将允许的操作分为四种,以A,B ,C,D,E,F为标志: A:插入一个学生记录; B:修改学生记录; C:删除一个学生记录; D:查找一个学生记录; E:浏览学生成绩: F:退出 3.计算学生的总成绩. 4.按学号排序输出全班学生成绩表 . 二.设计目的 根据题目要求,由于学生信息是存放在文件中,所以应提供文件的输入,输出等操作;在程序中需要浏览学生的信息,应提供显示,查找,排序等操作;另外还应提供键盘式选择菜单实现功能选择.

三.总体设计 根据上面的需求分析,可以将这个系统分为以下模块:输入模块,修改模块,删除模块,查找模块,显示模块. 四.详细设计 1.主函数: 主函数一般设计得比较简单,只提供输入,处理和输出部分的函数调用,其中各功能模块用菜单方式选择. 流程图:

[程序]: //#include "head.h" int menu_select() { char c; printf("\n\n"); printf(" | 1. 增加学生记录 5.统计信息|\n"); printf(" | 2. 查询学生记录 6.打开文件|\n"); printf(" | 3. 修改学生记录7.保存文件|\n"); printf(" | 4. 学生纪录排序8.显示记录|\n"); printf(" | 0. 退出系统|\n"); printf("\n\n"); printf("请选择(0-8):"); c=getchar(); getchar(); return (c-'0'); } 2.输入模块: [分析]: 单独看各数据信息,学号,姓名是字符型,可以采用字符型数组;分数为整数,采用整数;数据信息存放在文件中,一条记录对应一个学生,既符合习惯又方便信息管理. 如果要存放若干学生信息就用结构体数组: void addrecord(student stud[]) { int i=0,j,num; char str[5]; if(numstus!=0) {

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

青岛农业大学 课程设计报告 题目:学生成绩管理系统 姓名:田世强元成张斌 学院:工程系 专业:电子信息工程技术 班级:2班 学号:200806013 200806015 200806023 指导教师:曹红波 2010年9月16日 六详细设计(各功能模块的具体实现算法——流程图) (3)

一设计目的 进一步加深、巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。 二课程设计的内容 对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三课程设计的要求与数据 1、用C语言实现系统; 2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出. 3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能: (1) 每一条记录包括一个学生的学号、姓名、3门课成绩 (2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记 录的输入。) (3)、成绩信息显示浏览功能:完成全部学生记录的显示。 (4)、查询功能:完成按姓名查找学生记录,并显示。 (5)成绩信息的删除:按学号进行删除某学生的成绩. (6)、排序功能:按学生平均成绩进行排序。 (7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

学生管理系统c

实验 一、设计思路和主要步骤 思路主要是设计一个单文档用来实现主界面,然后在菜单栏添加一个菜单项,下面包含录入学生基本信息,查询学生基本信息,和修改学生基本信息等多项子菜单,每项子菜单都对应一个对话框对数据进行处理。在主对话框中添加列表控件用来显示学生的基本信息,以方便学生信息的修改,具体修改哪一项。对于学生信息的录入,查询,修改,删除都用按钮控件,并为每个按.钮添加消息响应函数用来处理学生的信息操作。 接下来就是要把学生的基本信息能够保存下来,因此要用到文件的操作,fstream 二、可以满足要求。 三、各功能模块和流程图 1.功能模块 对话框

四、代码 1.主体 Int CMainFrame::0nCreate(LPCREATESTRUCT IpCreateStruct) { if(CFr ameWnd::0nCreate(lpCreateStruct)==-1) return-1; if(!m_ wndToolBar .CreateEx(this, TBSTYLE_ FLAT,WS__CHILD|

WS_VISIBLE|CBRS_T0Pl CBRS_GRIPPERI CBRS_T00L TIPS CBRS_FLYBY]CBRS_SIZE_ DYNAMIC)[!m_ wndT oolBar.LoadToolB ar(ID R_MAINFRAME)) { TRACEO("Failed to create toolbarln"); return -1; // fail to create } If(!m_wndStatusBar.Create( this)/l!m_wndS tatusBar.SetIndicat ors(indicators,sizeof(indicators)/ sizeof(UINT))) { TRACEO("Failed to create status barln"); return -1; //fail to create } m_wndToolBar EnableDocking(CBRS_ALIGN__ANY);EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); return O; { void CMainFrame::OnMenuitemadd() { CMyDlgAdd dlg1; dlg1.DoModal0; } void CMainFrame::OnMenuitemmodify() { CMyDlgModify dlg2; } dlg2.DoModal(); void CMainFrame::OnMenuitemseek() {

C语言学生信息管理系统 (2)

C语言课程设计 题目名称:学生信息管理系统 姓名XXX 学号XXXXXXXX 专业网络工程 班级一班 指导教师XXX 编写日期2011/6/6 目 录 查询函数.............................................................................................................................

1、序言 随着学校的规模不断过大,学生数量急剧增加,有关学生的各种信息量也成倍增加。面对庞大的信息量需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范化管理、科学性统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。 2、需求分析 本系统主要需要解决的任务是实现学生信息关系的系统化、规范化和自动化,其主要目的是计算学生各种信息进行日常管理,如查询、修改、增加删除学生信息等。在实现程序功能的同时应该做到界面简单易懂,容易操作,方便使用的要求。并且程序需要有一定的纠错能力。 .具体目标 本系统主要应用于学生学籍管理、信息查询等部分,具有不同的操作功能。具体功能如下: 2.1.1 有关学生信息的录入,学生信息包括输入学生的学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等(学生信息用文件保存)。 2.1.2. 学生信息的浏览功能。 2.1. 3.学生信息的查询功能,其中实现按学号和姓名二种方式查询。 2.1.4.学生信息的修改功能,包括增加、删除等。 3、总体设计 .算法分析 首先,考虑信息的录入,一个学生包括这么多的属性,应该考虑定义一个结

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

学生成绩管理系统实验报告 ㈠实验名称: 学生成绩管理系统 ㈡实验目的: 1)利用所学的三种程序基本结构以及数组、用户自定义函数进行一个简单管理系统的设计,进一步理解和掌握c语言的语法以及三种基本程序结构的综合应用。 2)通过程序中设计到的排序、查找、求和等操作加深对算法、程序设计思路、常用程序设计技巧的理解与掌握,逐步培养学生的程序开发能力。 ㈢实验要求: 设某班有n位同学,每位同学的数据包括一下内容:学号(长整型)、姓名(字符号)、数学成绩(整型)、程序设计成绩(整型)。设计程序完成以下5项功能:新建数据档案、添加数据、删除数据、对输入的数据进行排序和查询。 ㈣算法内容: ①程序运行,利用printf函数显示主菜单,并提示输入相应的数字来进行相关操作。 显示主菜单如下: 1.新建数据 2.添加数据 3.删除数据 4.排序 5.查询 6.退出 ②若输入1,则进入新建数据界面。根据提示依次输入学生人数、学生的学号、姓名、数学成绩和程序设计程序。 S1:输入学生人数n, S2: 0->i,(把0放在变量i中) S3:输入第i+1个学生的数据(学号,姓名,学数学成绩,程序设计成绩) S4:i+1->i S5:若i

③输入2,进入添加数据界面。 S1:原有学生人数n加1,即n+1=>n S2:输入学生数据 S3:0->i S4:输出第i+1个学生的数据 S5:若ii,0->j S3:若学生的学号stu[i].num,转到S6,否则继续 S4:i+1->i S5:若i n S7: 把要删除的数据覆盖 stu[i].num=>stu[j].num;stu[i].name=>stu[j].name; stu[i].math=stu[j].math;stu[i].C=stu[j].C;j++; S8:若ii S10:输出第i+1个学生的数据 S11:若ii S2:i+1->j S3:若a[i]j S5:若ji S7:若ii S3:若stu[i].num=a[10],输出该生数据并结束 S4:i+1->i S5:若ii,0->j S3:若std[i].math=m,转到S6 S4:i+1->i

学生信息管理系统c语言

学生信息管理系统 1 课程设计目的与要求 1.1课程设计目的 本课程设计是在学习C语言基本理论之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过课程设计在下述各方面得到锻炼: 1.能根据实际问题的具体情况,结合C语言的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。 2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。 1.2课程设计要求 通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用。具体如下: (1)数据组织方面尽量使用到:数组、链表、结构体、文件; (2)程序结构方面做到函数调用,尽量采用指针运算; (3)代码编写规范,形成良好的编程习惯; (4)程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。 (5)课设完成须进行答辩,提交课设报告电子稿、装订的打印稿。课设报告内容包括以下几个方面: ●程序的总体设计和算法分析。 ●程序流程图、函数说明

●源程序代码清单 ●测试数据和测试过程记录 ●遇到的问题及解决方法分析 ●课程设计小结 1.3课程设计的评价 通过此次课程设计,我的知识面得到了扩展,发现课本上的东西是远远不够的,需要上网找资料寻找补充,而且小组合作的形式可以互相交流知识,弥补自己的不足。通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功能需求分析,并设计合理的模块化结构。提高程序开发能力。 1

学生学籍信息管理系统C

一、学生学籍信息管理系统设计 1、需求分析 学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。 2、总体设计 整个系统可以设计为数据录入模块、数据修改模块、数据查询模块、数据删除模块和数据排序模块。 成绩包括数学、英语、程序设计基础三门课成绩 基本信息存放在一个文件,成绩信息存放在另一个文件。 (1)数据录入模块 学生基本信息文件可以在磁盘建立,采用写文件方式录入学生基本信息、各门课程的成绩单。综合成绩通过平时成绩和卷面成绩获得计算得到(平时30%,卷面70%)。(2)数据修改模块 采用读文件方式读入学生成绩基本信息,进行修改后,以写文件方式写回原文件中。修改时,首先询问要修改信息学生的姓名或学号,然后选择要修改的内容,并输入新的数据进行修改。

(3)查询模块 通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、姓名或宿舍号码,然后把查找结果输出。若选择后者,则先查找学号对应的姓名,再查找该学生的课程情况,并统计科目和实得总学分,输出结果。 (3)删除模块 通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在两个文件中查找该生信息,删除之。 (4)排序模块 通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果,排序标准包括总分、某课成绩、某课卷面成绩等。 (5)追加模块 追加学生信息 #include #include #include #include #include

C语言之学生管理系统

流程图: 运行结果:

程序源码: #include #include #include #include #include #define LEN sizeof(struct student)//求字节数运算符

struct student { char name[20]; long intnum; char sex[4]; int age; char address[30]; float score; struct student *next;//链表 };//定义一个结构题 int TOTAL_NUM = 0;//学生总数 struct student *head = NULL; void mainmenu ();//主界面 void record (); //记录数据 void insert(struct student *stu); //插入数据 void display(struct student *stu); //显示一个学生的信息void displayAll (); //显示所有学生的信息 void query(); //查询学生信息 void query_by_num(); //按学号查询学生信息 void query_by_name(); void readData (); //读取文件里学生的信息

void writeData (); //向文件写入学生信息 void freeAll (); //清空链表内容 void del (); //删除学生信息 void change (); //更改学生信息 void sort();//排序 void devise (struct student *p); //选择更改内容 int main (void) { mainmenu (); return 0; } //系统主菜单 void mainmenu () { int choice; choice = -1; readData (); printf ("\t\t\t----------------------------------------------------\n"); printf ("\t\t\t| 欢迎使用通信工程专业学生信息管理系统|\n"); printf ("\t\t\t----------------------------------------------------\n"); printf ("\t\t\t本程序需要在当前目录下建立student.txt才可正常运行\n"); do

c语言课程设计报告+学生成绩信息管理系统+源代码

实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:

1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r);

C学生成绩管理系统完整

C学生成绩管理系统完整 The latest revision on November 22, 2020

( 二〇一四 年 十 一月 课程设计说明书 本科毕业设计 题 目: 学生成绩管理系统(教师端) 学生姓名: 陈 学 院:工学院 专 业:数字媒体技术 班 级:2013级 指导教师:

目录

一、设计题目(问题)描述和要求 设计目的: 为方便对学生成绩进行高效的管理,编写该程序以提高学生成绩管理效率。使用该程序之后,学校管理者可以查询某位学生、某个科目的成绩情况,还可以对学生成绩进行排名,对学生的数据进行修改和删除,其中排名以按总分排名,并且还提供了多种浏览方式,查询结果包括各个科目的分数、总分。通过本系统可以很好的掌握学生成绩的分布,减轻管理人员的负担,也使学生的成绩和信息长时期的保留。 问题描述: 编写一个简单的学生成绩管理系统。学生成绩管理系统有若干学生成绩记录组成,每个记录由学号、姓名、性别、年级、班级、三个科目成绩、总分、总排名、各科目排名几个部分组成,学号不超过5个字符,姓名不超过3个字符,成绩为int型数据。该系统具有以下功能: 程序开始执行时显示如下版权信息和主菜单: *******学生成绩管理系统************* 学生信息 *1.登记 *2.编辑 *3.顺序 4.删除 浏览 * 5全部 *6个人 *7考试 * 8专业 *9指定

系统设置 10默认 0.退出 ************************************ 请输入(0~8): 通过键盘输入数字0~10后,程序能够执行相应的功能,执行完后回到上述主菜单继续等待用户输入,输入数字0后退出程序。 (1)选择“登记”后,输入学生个数。按程序提示输入学号、姓名、性别、年级、班级、三个科目成绩、总分、总排名、各科目排名。 (2)选择“编辑”,按提示输入要删除的学生的学号,输入学号,若改学号存在,则编辑相应的学生记录,如果该学号不存在,返回主菜单(3)选择“顺序”后,会显示从成绩高到低还是相反。该操作会改变程序中链表的连接顺序,因此浏览时候显示也是顺序改变后的链表顺序 输出。 (4) (5)选择“全部”,系统会按照年级显示全部学生其成绩。 (6)选择“个人”,系统会提示输入学生姓名或者学号进行寻找并显示。 (7)选择“考试”,会按照每一年级的每一次考试显示成绩。 (8)选择“专业”,会按照专业进行成绩输出。 (9)选择“指定”,里面还有八种显示方式:分数段、排名、学期、班级、大一至大四,可以按照其进行浏览。 (10)进行系统相关的设置,如是否显示欢迎窗口,是否自动读取信息或是手动、是否浏览显示全部等 (0)退出操作。 二、系统分析与模块设计 《学生成绩管理系统》结构图

相关主题
文本预览
相关文档 最新文档