c语言课程设计———学生成绩系统.doc
《c语言课程设计———学生成绩系统.doc》由会员分享,可在线阅读,更多相关《c语言课程设计———学生成绩系统.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-作者xxxx-日期xxxxc语言课程设计学生成绩管理系统【精品文档】C语言学生成绩管理系统程序 学院 计算机(软件)学院 班级 信管1002班 成员 陈昊 日期 2011-9-6 C可视化程序设计报告一.设计题目学生成绩管理系统二、课题的任务:1、 所有记录保存在一个数据文件中;2、 具备记录添加功能;3、 查询功能(如按学号查询成绩等);4、 计算统计功能(如统计某门课程的平均程序);5、 排序功能(如按成绩排序);6、 统计并显示信息功能;三课程设计目的了解软件工程中的一些系统分析,模块分析,代码设计的概念,利用visual c+实现学生成绩管理系统的录入、查询、删除、统计等基本操作,掌
2、握C语言中的结构体、指针、函数(系统函数、自定义函数)、文件操作等知识。通过对系统的分析和设计,进一步巩固C语言的学习,以提高对开发环境。四、成员承担的任务:陈梁:完成下面子程序的编写:a:主函数的编译b:定位指针的Locate()函数的编译,与调试。c:主菜单函数的编译,及其它外部函数的编译,与调试。 d: 任务分配,规定变量符号,及变量的初始化。 e:程序的组装及调试。:完成下面子程序的编写: a:统计数据函数的编译。 b::查找学生记录函数的编译。 c:增加学生记录的函数的编译。 陈俊: 完成下面子程序的编写:a:删除函数的编译b:修改函数的编译c:排序函数的编译陈昊:完成下面子程序的编
3、写:a:显示函数的编译。b:欢迎界面的制作。c:保存函数的编译五、程序流程图保存学生资料排序学生资料统计学生资料件显示学生资料录修改学生资料录查询学生资料录删除学生资料录创建文件输入学生资料主程序获取帮组信息退出管理系统六.系统源代码#include stdio.h #include stdlib.h #include string.h int shoudsave=0; /定义一个全局变量 struct student char num11;/学号 char name20;/姓名 char sex4; /性别 int cgrade; /c语言成绩 int mgrade; /数学成绩 int e
4、grade; /英语成绩 int totle; /总分 int ave; /平均分 char neartime10;/最近更新时间 ; typedef struct node /声明新的结构体类型Node struct student data; struct node *next; Node,*Link; void welcome()/欢迎界面 printf( *n); printf( *欢 迎 使 用*n); printf( *河南理工大学大学学生成绩管理系统 *n); printf( *n); printf( 本系统由计算机学院 信管1002班nttt倾情奉献n); printf(n);
5、 printf( 愿我们的努力n); printf( 能为您的学习工作带来方便n); printf( 您的支持将是我们不断创新的动力n); void menu() /主菜单 printf(t*n); printf(t* MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM *n); printf(t* MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM *n); printf(t* MMM 1 2 MMM *n); printf(t* MMM 3 4 MMM *n);
6、printf(t* MMM 5 6 MMM *n); printf(t* MMM 7 8 MMM *n); printf(t* MMM 9 0 MMM *n); printf(t* MMM MMM *n); printf(t* MMM MMM *n); printf(t* MMM * MMM *n); printf(t* MMM i 欢迎使用河南理工大学大学学生成绩管理系统i MMM *n); printf(t* MMM * MMM *n); printf(t* MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM *n); pri
7、ntf(t* MMM 出品人:梦幻小组 | 辅导老师:于金霞 MMM *n); printf(t* MMM 组长:陈梁 | 梦幻组合 MMM *n); printf(t* MMM 组员:陈梁 陈昊 陈俊 成就梦幻品质 MMM *n); printf(t* MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM *n); printf(t*n); void printstart() printf(-n); void Wrong() printf(n对不起!你输入的信息有误!请重新输入!n); void Nofind() printf(
8、_n); printf(nt!提示:没有找到该学生!n); printf( _n); printf(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.cgrade,p-data.totle,p-data.ave);/输出成绩 Node*
9、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; while(r!=NULL) if(strcmp(
10、r-data.name,findmess)=0) return r; /返回地址 r=r-next; return 0; void Add(Link l) /增加学生 Node *p,*r,*s; /定义Node型指针 char num11; 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,num)=0)/将新输入学号与
11、已有学号对比 printf(!提示:学号为%s的学生已经存在,若要修改请你选择4 修改!n,num); printstart(); printc(); printe(s); printstart(); printf(n); return; s=s-next;/指向下一个地址 p=(Node *)malloc(sizeof(Node);/在内存中分配长度与node相同的连续空间用于存储新数据 strcpy(p-data.num,num); printf(请你输入姓名:); scanf(%s,p-data.name); getchar(); printf(请你输入性别:); scanf(%s,p-
12、data.sex); getchar(); printf(请你输入c语言成绩:); 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=NUL
13、L; r-next=p; r=p; shoudsave=1; void Qur(Link l) /查询学生 int sel; char findmess20; Node *p; if(!l-next)/当l-next=NULL时成立 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); pr
14、intstart(); printc(); printe(p); printstart(); 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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 学生 成绩 系统
限制150内