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

武汉科技大学

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

信息科学与工程学院

课程设计报告书

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

班 级: 自动化2009级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("学号 姓名 性别 班级 数学成绩 英语成绩 计算机成绩

c语言课设学生管理程序,c语言程序课程设计学生成绩管理程序.doc相关推荐

  1. c语言课设宿舍管理程序,C语言程序课程设计宿舍管理软件.doc

    C语言程序课程设计宿舍管理软件.doc 课程设计(论文) 题 目 名 称 宿舍管理软件 课 程 名 称 C语言程序课程设计 学 生 姓 名 学 号 系 .专 业 信息工程系.信息大类 指 导 教 师 ...

  2. 职工工资程序c语言doc,C语言程序课程设计---职工工资单系统.doc

    C语言程序课程设计---职工工资单系统.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水 ...

  3. C语言课设物资管理系统,C语言课设之物资管理系统.doc

    C语言课设之物资管理系统 C语言课程设计 目 录 1.需求分析: 2.系统总框图: 3.每个模块的设计分析: 4.列出所有定义的函数及说明: 5.举例说明1.2个比较有特点的算法: 6.数据分析.完备 ...

  4. 拼图游戏C语言课设实验报告,C语言拼图游戏实验报告.doc

    C语言拼图游戏实验报告 课程设计实验报告 班级:光电104-2 姓名:刘云龙 学号:201058501220 一.实验题目:使用C语言编写一个小游戏(拼图游戏) 二.实验目的:C语言是每一个通信学生的 ...

  5. java查询学生信息_分别显示女生_女生学生基本信息的代码_java课程设计学生信息管理系统_毕业论文.doc...

    java课程设计学生信息管理系统_毕业论文 学 号: 课 程 设 计 题 目学生信息管理系统学 院计算机科学与信息工程学院专 业金融信息化服务外包班 级学生姓名指导教师 2015年12月28日 课程设 ...

  6. java课设推荐,《Java程序设计》课程设计报告推荐.docx

    <Java程序设计>课程设计报告推荐 <Java程序设计>课程设计报告2015-2016学年 第一学期设计题目整数进制转换学生姓名邹晓刚学 号0专业班级信管1303指导教师 姜 ...

  7. mysql课设体会500字_MYSQL数据库课程设计 精品

    <MYSQL数据库>课程设计 一.目的和要求 (1)培养学生运用所学课程<MYSQL数据库>中数据设计方面的理论知识和技能,深入理解数据库设计相关的理论知识,学会分析实际问题的 ...

  8. 关于游戏的C 语言的课设报告,猜单词游戏C课程设计报告.doc

    #include void OpenWordFile(char string[200][12]); void PlayGame(char wordlist[200][12]); void Change ...

  9. c语言课设报告水果,C语言--水果

    #include #include #include using namespace std; struct node { char name[81]; char addr[81]; int num; ...

最新文章

  1. Kubernetes学习笔记(一)
  2. 【收藏】spring boot+websocket+echarts 后台推送数据用echarts展示
  3. Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)
  4. Python 随机森林特征重要度
  5. CNN结构基元:纹理结构和纹理基元方程化GLOH、Gabor...(Code)
  6. opengl微发展理解
  7. Ubuntu 20.10安装docker
  8. MPLS/×××江湖恩仇录笔记
  9. 分享改进 高性能通用分表归档存储过程测试结果更新
  10. 转载 MySql常用查询语句(23种)
  11. Python中的pip包管理工具被删除重新进行安装
  12. 推荐一个不错的plist拆解工具,untp
  13. Windows上 IE10 最快,Mac上Chrome 19最快
  14. python爬虫--requests模块
  15. HenCoder 3-1 触摸反馈,以及 HenCoder Plus
  16. Labview双通道虚拟示波器完整程序
  17. 嵌入式学习笔记-迅为4412开发板实现一键开关机休眠唤醒
  18. 数学家是如何做量化交易的
  19. 【Keras】使用 TPU 训练 TensorFlow 模型
  20. 学完了Scratch,我要开始学Python了~~~

热门文章

  1. 【PC工具】创客、arduino爱好者必备,最最简单好用硬件电路连线绘图工具Fritzing...
  2. 【scratch】实用作品方案:微信抽奖机,Scratch编程教育作品
  3. 【PC工具】winrar解压缩装机必备软件,winRAR5.70免费无广告
  4. git命令行完全解读
  5. 【Cocos2d-X(2.x) 游戏开发系列之三】最新版本cocos2d-2.0-x-2.0.2使用资源加载策略
  6. android 打包出现错误Error: ResourceName
  7. 怎么用BarTender批量打印标签
  8. Android Studio或者Eclipse中的最常用的快捷键,最简单的,部分不适用eclipse
  9. 嵌入式linux开发环境搭建——VirtualBox虚拟机网络环境解析
  10. eclipse打开jar包出现乱码问题解决方法