2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > c语言课设学生管理程序 c语言程序课程设计学生成绩管理程序.doc

c语言课设学生管理程序 c语言程序课程设计学生成绩管理程序.doc

时间:2023-06-08 12:04:19

相关推荐

c语言课设学生管理程序 c语言程序课程设计学生成绩管理程序.doc

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

武汉科技大学

二〇一〇~二〇一一学年第一学期

信息科学与工程学院

课程设计报告书

课程名称: C语言课程设计

班 级: 自动化级2班

学 号:

姓 名:

指导老师:

二〇一〇 年 九 月

设计题目:学生成绩管理程序

任务:自学C语言中相关知识,设计出学生成绩管理程序。

设计要求:

能录入学生信息存储在文件中,每位学生录入的信息有:姓名、学号、性别、班级、和三门功课(数学、英语、计算机)的成绩;

能够统计每个学生三门课程的总成绩;

能按学生学号查询其三门功课成绩并显示;

能浏览全部学生成绩;

能按总成绩有高到低显示学生信息。

系统功能需求分析:

系统要求用户必须输入正确的信息格式;

系统应该提供已经记录在案的信息数目;

系统应提供查询、删除、保存、浏览功能;

系统总体设计框架:

主界面

主界面

查询学生资料

删除学生资料

登记学生资料

修改学生资料

保存

浏览全部

排序浏览

系统功能模块图:1,登记学生资料尽快保存;

2,删除学生信息;

3,查询学生信息;

4,修改学生信息;

5,保存学生信息;

6,保存资料后浏览全部学生成绩;

7,保存资料后按总成绩排名;

退出系统。

功能模块的算法设计思路:

1,增加学生:将指针放在链表尾,开辟一个结构体单元,输入学号,查找是否有重复学号,如无,则写入,再关闭文件。

2,查询信息:如果l->next为空,则无信息;按学号查,输入要查的学号,与链表中数据一个一个进行比较,找到所在处,指针指向,输出信息。无信息则提示。

3,删除信息:如果l->next为空,则无信息;按学号删,输入要删的学号,在链表中号码一个一个与所找学号比较,找到后将前一个数据的尾接到后一个的头;

4,修改信息:如果l->next为空,则无信息,输入要该的学号,在文件中找到,重新写入各项信息,保存。

5,保存:打开一个制定文件,将链表的内容写入文件中,关闭文件。

6,浏览:打开文件,找到链表头,逐个输出。

7,排序:建立一个新的结构体,将文件中内容复制到新结构体中,用冒泡排序将总成绩排序,输出。

工作流程图:

主要源程序代码:

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

int numbercount=0; /* */

struct student

{

char num[10];/* 学号 */

char name[20]; /*姓名*/

char sex[10];/*性别*/

char clas[10];/*班级*/

int mgrade;/*数学*/

int egrade; /*英语*/

int cgrade;/*计算机*/

int totle;/*总分*/

};

typedef struct node

{ struct student data;

struct node *next;

}Node,*Link;

void printenglish(Node *p)/* 本函数用于输出英文 */

{ printf("%-12s%s\t%s\t%s\t%d\t%d\t%d\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.clas,p->data.mgrade,p->data.egrade,p->data.cgrade,p->data.totle);

}

void Add(Link l) /* 增加学生信息*/

{

Node *p,*r,*s;

char num[10],a[10];

r=l; /*l为小写L*/

s=l->next;

while(r->next!=NULL)

r=r->next; /* 将指针置于最末尾 */

while(1)

{

printf("请你输入学号:");

scanf("%s",num);

for(;s!=NULL;s=s->next)

{

if(strcmp(s->data.num,num)==0)

{

printf("提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);

printf("学号 姓名 性别 班级 数学成绩 英语成绩 计算机成绩

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。