ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:86.14KB ,
资源ID:4288516      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4288516.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生成绩管理系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生成绩管理系统.docx

1、学生成绩管理系统目录5.1 题目5.2 课程设计5.3 需求分析5.4 设计要求5.4.1功能设计要求5.4.2总体设计5.4.3函数设计5.5源程序5.6总结5.7参考资料学生成绩管理系统2.1 题目 学生成绩管理系统2.2 课程设计目的1 要求学生达到熟练掌握C语言的基本知识和技能2 掌握利用工具软件开发系统的基本思路和方法3 强化上机动手能力,闯过编码关,把理论与实际应用相结合2.3 需求分析 本课程设计是一个简单的学生成绩管理系统,该系统用以实现学生基本信息的编辑,课程信息的编辑,成绩信息的编辑,学生成绩统计等等。2.4 设计要求 2.4.1 功能设计和要求设计要求实现的功能很多,主要

2、分为几个板快进行分析。1 系统功能 学生基本信息的编辑:包括学生信息的录入、修改、删除和查询等功能。 课程信息的编辑:包括课程信息的录入、修改、删除和查询等功能。 成绩信息的编辑:包括学生成绩的录入、修改、删除和查询等的功能。 学生成绩统计,包括:按学号、按课程号求平均分、各分数段的人数与百分比。按学号求不及格的门数。按课程号求不及格的人数。 通过菜单选择退出系统,并有退出系统的提示或确认。2 系统要求 使用菜单操作。 学生信息用文件保存。 进入系统的时候,要验证用户身份(用户名和密码)。3 应用程序的总体设计图: (1) 程序加密在开始进入系统的时候,首先要进行密码核对,以便对程序进行保护,

3、核对正确后,才能进入系统。(2) 主页面从键盘录入学生成绩的基本信息。1 按照一定的顺序依次输入学生的“学号”、“姓名”、“语文”、“数学”、“英语”等基本内容。2 学生姓名要和学生成绩相匹配。3 输入完毕后要保存学生信息。(3) 增加学生成绩界面输入学生的基本信息。(4) 删除学生成绩界面 删除学生的基本信息。(5) 修改学生成绩界面按学号选择需要修改的学生信息。(6) 查找学生成绩界面 查找已经保存了的学生信息。 按照学号查找。(7)统计学生成绩界面 按学号、按课程号求平均分、各分数段的人数与百分比。 按学号求不及格的门数。 按课程号求不及格的人数。2.4.2总体设计最初的规划只是说明它的

4、可行性,不要求制定函数的具体实现,甚至不需要考虑数原型。完成规划后,按照各个模块的功能连接描述。1 要求使用多个文件方式实现设计;2 要求在个各文件内实现结构化设计;3 每个文件作为单独的C文件,分别说明每个函数的功能和实现方法。2.4.3 函数设计下面分别描述一些函数,建立它们的原型。1 保存函数函数原型: struct student_type * saveDate(struct student_type * head)功 能: 保存学生信息参 数: struct工作方式:保存输入的学生信息要 求:保存在文件里2 查找函数函数原型: struct student_type * find(s

5、truct student_type * head,long num)功 能: 查找学生信息参 数: struct工作方式:查找输入的学生信息要 求:只对储存内容进行查找3 增加函数函数原型: struct student_type * add(struct student_type * head)功 能: 增加学生信息参 数: struct工作方式:输入学生的信息要 求:按顺序输入4 浏览函数函数原型: void browse功 能: 浏览保存的学生信息参 数: void工作方式:浏览学生的信息要 求:只能浏览保存的学生信息5 修改函数函数原型:void changeDate(struct

6、student_type * head)功 能: 修改保存的学生信息参 数: void工作方式:浏览学生的信息要 求:只能修改保存的学生信息6 统计函数函数原型: struct student_type * stat(struct student_type * head)功 能: 按学号、按课程号求平均分、各分数段的人数与百分比;按学号求不及格的门数。按课程号求不及格的人数参 数: struct工作方式:统计学生的信息要 求:只能统计输入的学生信息7 删除函数函数原型: struct student_type * delDate(struct student_type * head)功 能:

7、删除学生的信息参 数: void工作方式:删除学生的信息要 求:只能删除保存的学生信息工作方式:删除学生的信息要 求:只能删除保存的学生信息8 身份验证系统函数原型: void main()功 能:验证用户的身份参 数: void工作方式:验证身份要 求:只能验证设置好的用户身份9 主函数函数原型: void main()功 能:控制程序参 数: void要 求:管理菜单命令10 头函数函数原型: stdio.h功 能:声明函数原型、包含文件、自定义及数据结构要 求:报告是否能正常打开文件执行存入操作及存入记录的条数2.5源程序/ sixStuMakeAdmin.cpp : Defines t

8、he entry point for the console application./*学生成绩管理系统 a) 用结构体形式实现对学生成绩的描述,结构体成员包括:学号,姓名,语文,数学,英语;b) 能够进行数据记录的增加、查询、修改、统计、删除、保存;c) 能够将学生的基本信息存放在文件中,系统可以再次从文件中读出保存的数据;d) 定义一个操作命令集,例如 H-帮助 A-增加 R-浏览 M-修改B-统计D-删除 S-保存 F-查找 Q-退出 C-清除所有记录*/#include stdio.h#include malloc.h#include#include#include#include#

9、define NULL 0#define LEN sizeof(struct student_type)#define LEN_S sizeof(struct student)#define NAME_LEN 10#define FILENAME score.dat#define TEST 0/0表示不输出测试信息,表示输出void homepage(); void quit(); /退出界面void main() int i,k=0,j; char username15,pwd6; system(color 3f); printf(nn); printf( tn); printf( t*n)

10、; printf( t*n); printf( t*n); printf( t* *n); printf( t* 欢迎使用学生成绩管理系统 *n); printf( t* *n); printf( t* *n); printf( t* 电信七班 刘萍 *n); printf( t* *n); printf( t* 2008.6.23 *n); printf( t* *n); printf( t*n); printf( t*n); printf( t*n); printf( tn); for(i=0;i20) break; pwdj=0; if(strcmp(username,060502070

11、3)=0)&(strcmp(pwd,123456)=0) printf(n您已经成功登录n); k=1; for(i=0;istu.num=stud.num; for(int i=0;istu.namei=stud.namei; p1-stu.chinese=stud.chinese; p1-stu.math=stud.math; p1-stu.english=stud.english; p1-next=NULL; if(n=1) p2=p1; head=p2; else /p2保存p1之前的数据 p2-next=p1; p2=p1; fclose(fp);return(head);/S-保存

12、struct student_type * saveDate(struct student_type * head) if(num_change=0) printf(*当前没有改动需要保存!*n); return(head); FILE *fp; struct student_type * p; p=head; if(fp=fopen(FILENAME,wb)=NULL) printf(cant open filen); return(head); n=0;/重新对记录条数记数 if(TEST) printf(saveDate(head)%dn,p); if(head!=NULL) do if

13、(fwrite(p,LEN_S,1,fp)!=1) printf(file write errorn); else n+; p=p-next; while(p!=NULL); fclose(fp); num_change=0;/保存了所有的记录,未保存数归零 printf(保存成功!共记%d条记录n,n); return(head);/R-浏览void browse() FILE *fp; struct student stud; if(fp=fopen(FILENAME,rb)=NULL) printf(ncant open filen); if(n=0)printf(*没有记录*n);el

14、se printf(n 学生成绩表n); printf(=n); printf( 学号 姓名 语文 数学 英语 n); while(fread(&stud,LEN_S,1,fp)=1) printf(-n); printf(%8ld %-10s %-8.1f %-8.1f %-8.1fn,stud.num,stud.name,stud.chinese, stud.math,stud.english); printf(=n); printf(共记%d条记录n,n);/F-查找(查找学号为num的记录,返回指向那条记录的指针)struct student_type * find(struct st

15、udent_type * head,long num) if(head=NULL)/没有记录 或学号为负了,学号应不小于为0 return NULL; struct student_type * p1; p1=head; while(num!=p1-stu.num & p1-next!=NULL) /如果没找到所要的结点,并且没有到最后一下结点,p1后移一个结点 p1=p1-next; if(num=p1-stu.num)/找到了 return(p1); return NULL;/A-增加struct student_type * add(struct student_type * head)

16、struct student_type * newstudent;struct student_type * p;char t;long numstu;/输入的学号printf(你将增加1条记录n);/不允许输入相同的学号printf(学号:);scanf(%ld,&numstu);if(numstustu.num=numstu;printf(姓名:);scanf(%s,newstudent-stu.name);scanf(%c,&t);/接收回车printf(语文:);scanf(%f,&newstudent-stu.chinese);printf(数学:);scanf(%f,&newstu

17、dent-stu.math);printf(英语:);scanf(%f,&newstudent-stu.english);p=head;head=newstudent;newstudent-next=p;num_change+;/增加没有保存的记录条数printf(增加了1条记录n);printf(请输入S命令立即保存,否则会造成数据丢失!n);return(head);/B-统计 #define M 4 #define N 3 struct student_type * stat(struct student_type * head) float studentMN; float avera

18、geM=0; int i,j; for(i=0;iM;i+) printf(请输入学号为%d学生3门课的成绩,i+1); for(j=0;jN;j+) scanf(%f,&studentij); averagei+=studentij; for(i=0;iM;i+) printf(学号为%d个学生的平均成绩为%.2fn,i+1,averagei/N); return 0; / D-删除struct student_type * delDate(struct student_type * head) /删除可能删掉头指针,所以要返回头指针 if(head=NULL) printf(没有数据记录n

19、);return(head); printf(你将删除1条记录n);struct student_type * p1,* p2;long num_s;printf(要删除的学生的学号:);scanf(%ld,&num_s);if(num_sstu.num & p1-next!=NULL)p2=p1;p1=p1-next;if(num_s=p1-stu.num)/显示查到的要删除的学生的信息printf( *将要删除的学生的信息*n); printf( 学号 姓名 语文 数学 英语n); printf(%8ld %-10s %-8.1f %-8.1f %-8.1fn,p1-stu.num,p1-

20、stu.name,p1-stu.chinese,p1-stu.math,p1-stu.english);if(p1=head)head=p1-next;elsep2-next=p1-next;num_change+;/增加没有保存的记录条数printf(删除了1条记录n);printf(请输入S命令立即保存,否则会造成数据丢失!n);elseprintf(查无此人!n);return(head);/M-修改void changeDate(struct student_type * head) if(head=NULL) printf(*没有数据!*n);return; printf(你将修改1条记录n);struct student_type * p;long num_s,numstu;/修改前的学号,修改后的学号printf(要作修改的学生的学号:);scanf(%ld,&num_s);if(num_sstu.num,p-stu.name,p-stu.chinese,p-stu.math,p-stu.english);printf( *修改:*

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1