c语言课设学生管理程序,c语言程序课程设计学生成绩管理程序.doc
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相关推荐
- c语言课设宿舍管理程序,C语言程序课程设计宿舍管理软件.doc
C语言程序课程设计宿舍管理软件.doc 课程设计(论文) 题 目 名 称 宿舍管理软件 课 程 名 称 C语言程序课程设计 学 生 姓 名 学 号 系 .专 业 信息工程系.信息大类 指 导 教 师 ...
- 职工工资程序c语言doc,C语言程序课程设计---职工工资单系统.doc
C语言程序课程设计---职工工资单系统.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水 ...
- C语言课设物资管理系统,C语言课设之物资管理系统.doc
C语言课设之物资管理系统 C语言课程设计 目 录 1.需求分析: 2.系统总框图: 3.每个模块的设计分析: 4.列出所有定义的函数及说明: 5.举例说明1.2个比较有特点的算法: 6.数据分析.完备 ...
- 拼图游戏C语言课设实验报告,C语言拼图游戏实验报告.doc
C语言拼图游戏实验报告 课程设计实验报告 班级:光电104-2 姓名:刘云龙 学号:201058501220 一.实验题目:使用C语言编写一个小游戏(拼图游戏) 二.实验目的:C语言是每一个通信学生的 ...
- java查询学生信息_分别显示女生_女生学生基本信息的代码_java课程设计学生信息管理系统_毕业论文.doc...
java课程设计学生信息管理系统_毕业论文 学 号: 课 程 设 计 题 目学生信息管理系统学 院计算机科学与信息工程学院专 业金融信息化服务外包班 级学生姓名指导教师 2015年12月28日 课程设 ...
- java课设推荐,《Java程序设计》课程设计报告推荐.docx
<Java程序设计>课程设计报告推荐 <Java程序设计>课程设计报告2015-2016学年 第一学期设计题目整数进制转换学生姓名邹晓刚学 号0专业班级信管1303指导教师 姜 ...
- mysql课设体会500字_MYSQL数据库课程设计 精品
<MYSQL数据库>课程设计 一.目的和要求 (1)培养学生运用所学课程<MYSQL数据库>中数据设计方面的理论知识和技能,深入理解数据库设计相关的理论知识,学会分析实际问题的 ...
- 关于游戏的C 语言的课设报告,猜单词游戏C课程设计报告.doc
#include void OpenWordFile(char string[200][12]); void PlayGame(char wordlist[200][12]); void Change ...
- c语言课设报告水果,C语言--水果
#include #include #include using namespace std; struct node { char name[81]; char addr[81]; int num; ...
最新文章
- Kubernetes学习笔记(一)
- 【收藏】spring boot+websocket+echarts 后台推送数据用echarts展示
- Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)
- Python 随机森林特征重要度
- CNN结构基元:纹理结构和纹理基元方程化GLOH、Gabor...(Code)
- opengl微发展理解
- Ubuntu 20.10安装docker
- MPLS/×××江湖恩仇录笔记
- 分享改进 高性能通用分表归档存储过程测试结果更新
- 转载 MySql常用查询语句(23种)
- Python中的pip包管理工具被删除重新进行安装
- 推荐一个不错的plist拆解工具,untp
- Windows上 IE10 最快,Mac上Chrome 19最快
- python爬虫--requests模块
- HenCoder 3-1 触摸反馈,以及 HenCoder Plus
- Labview双通道虚拟示波器完整程序
- 嵌入式学习笔记-迅为4412开发板实现一键开关机休眠唤醒
- 数学家是如何做量化交易的
- 【Keras】使用 TPU 训练 TensorFlow 模型
- 学完了Scratch,我要开始学Python了~~~
热门文章
- 【PC工具】创客、arduino爱好者必备,最最简单好用硬件电路连线绘图工具Fritzing...
- 【scratch】实用作品方案:微信抽奖机,Scratch编程教育作品
- 【PC工具】winrar解压缩装机必备软件,winRAR5.70免费无广告
- git命令行完全解读
- 【Cocos2d-X(2.x) 游戏开发系列之三】最新版本cocos2d-2.0-x-2.0.2使用资源加载策略
- android 打包出现错误Error: ResourceName
- 怎么用BarTender批量打印标签
- Android Studio或者Eclipse中的最常用的快捷键,最简单的,部分不适用eclipse
- 嵌入式linux开发环境搭建——VirtualBox虚拟机网络环境解析
- eclipse打开jar包出现乱码问题解决方法