C语言程序设计-学生成绩管理系统.doc
《C语言程序设计-学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《C语言程序设计-学生成绩管理系统.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言上机实验程序设计报告课程名称 c语言上机实践 设计题目 学生管理系统 学生姓名 张记函 学 号 专业班级 自动化(交通信息与控制) 指导教师 王秋才 年 月 日一、设计目的二、课程设计的要求与数据 三、成绩管理系统主要功能 四、界面设计 五、程序源码 六、心得体会 一、设计目的进一步加深、巩固学生所学专业课程(C语言)的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。二 、 课程设计的要求与数据1、用C语言实现系统;2、对学生信息(包括学号、姓名、性别、高数、英语、C语言、平均分)进行管理,包括学生成
2、绩的信息输入、显示、添加、删除、修改、查询、退出.3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能:(1)每一条记录包括一个学生的学号、姓名、性别、3门课成绩。(2)成绩信息显示浏览功能:完成全部学生记录的显示。(3)可以添加后来学生的信息。(4)成绩信息的删除:按学号进行删除某学生的成绩。(5)可以修改某学生的信息。(6)查询功能:完成按姓名查找学生记录,并显示。(7)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!三、成绩管理系统主要功能 1. 输入记录 2. 用指定格式显示全部记录 3. 根据姓名查找记录 4. 根据姓名删除记录
3、5. 保存记录到文件 6. 按序号显示记录7. 按姓名由小到大的顺序排序四、 界面设计此系统界面采用图形和数字化菜单设计。主界面设计如下: - 欢迎进入 学生成绩管理系统* *主菜单* *1. 登记学生资料 2. 删除学生资料3. 查找学生资料 4. 修改学生资料5. 保存学生资料 6. 退出系统* 五、程序代码#include stdio.h #include stdlib.h #include string.h int shoudsave=0; /* */ struct student char num10;/* 学号 */ char name20; char sex4; int cgra
4、de; int mgrade; int egrade; int totle; int ave; char neartime10;/* 最近更新时间 */ ; typedef struct node struct student data; struct node *next; Node,*Link; void menu() printf(*主菜单*); printf(t1登记学生资料ttttt2删除学生资料n); printf(t3查询学生资料ttttt4修改学生资料n); printf(t5保存学生资料ttttt0退出系统n); printf(*n); void printstart() p
5、rintf(-n); void Wrong() printf(n=提示:输入错误!n); void Nofind() printf(n=提示:没有找到该学生!n); void printc() /* 本函数用于输出中文 */ printf( 学号t 姓名 性别 英语成绩 数学成绩 C语言成绩 总分 平均分n); void printe(Node *p)/* 本函数用于输出英文 */ printf(%-12s%st%st%dt%dt%dt %dt %dn,p-data.num,p-data.name,p-data.sex,p-data.egrade,p-data.mgrade,p-data.cg
6、rade,p-data.totle,p-data.ave); Node* Locate(Link l,char findmess,char nameornum) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */ Node *r; if(strcmp(nameornum,num)=0) /* 按学号查询 */ r=l-next; while(r!=NULL) if(strcmp(r-data.num,findmess)=0) return r; r=r-next; else if(strcmp(nameornum,name)=0) /* 按姓名查询 */ r=l-next; whil
7、e(r!=NULL) if(strcmp(r-data.name,findmess)=0) return r; r=r-next; return 0; void Add(Link l) /* 增加学生 */ Node *p,*r,*s; char num10; r=l; s=l-next; while(r-next!=NULL) r=r-next; /* 将指针置于最末尾 */ while(1) printf(请你输入学号(以0返回上一级菜单:); scanf(%s,num); if(strcmp(num,0)=0) break; while(s) if(strcmp(s-data.num,n
8、um)=0) printf(=提示:学号为%s的学生已经存在,若要修改请你选择4 修改!n,num); printstart(); printc(); printe(s); printstart(); printf(n); return; s=s-next; p=(Node *)malloc(sizeof(Node); strcpy(p-data.num,num); printf(请你输入姓名:); scanf(%s,p-data.name); getchar(); printf(请你输入性别:); scanf(%s,p-data.sex); getchar(); printf(请你输入c语言
9、成绩:); scanf(%d,&p-data.cgrade); getchar(); printf(请你输入数学成绩:); scanf(%d,&p-data.mgrade); getchar(); printf(请你输入英语成绩:); scanf(%d,&p-data.egrade); getchar(); p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade; p-data.ave=p-data.totle / 3; /* 信息输入已经完成 */ p-next=NULL; r-next=p; r=p; shoudsave=1; void
10、 Qur(Link l) /* 查询学生 */ int sel; char findmess20; Node *p; if(!l-next) printf(n=提示:没有资料可以查询!n); return; printf(n=1按学号查找n=2按姓名查找n); scanf(%d,&sel); if(sel=1)/* 学号 */ printf(请你输入要查找的学号:); scanf(%s,findmess); p=Locate(l,findmess,num); if(p) printf(tttt查找结果n); printstart(); printc(); printe(p); printsta
11、rt(); else Nofind(); else if(sel=2) /* 姓名 */ printf(请你输入要查找的姓名:); scanf(%s,findmess); p=Locate(l,findmess,name); if(p) printf(tttt查找结果n); printstart(); printc(); printe(p); printstart(); else Nofind(); else Wrong(); void Del(Link l) /* 删除 */ int sel; Node *p,*r; char findmess20; if(!l-next) printf(n
12、=提示:没有资料可以删除!n); return; printf(n=1按学号删除n=2按姓名删除n); scanf(%d,&sel); if(sel=1) printf(请你输入要删除的学号:); scanf(%s,findmess); p=Locate(l,findmess,num); if(p) r=l; while(r-next!=p) r=r-next; r-next=p-next; free(p); printf(n=提示:该学生已经成功删除!n); shoudsave=1; else Nofind(); else if(sel=2) printf(请你输入要删除的姓名:); sca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 学生 成绩管理系统
限制150内