c语言设计实现学生成绩管理软件

上传人:第*** 文档编号:34729892 上传时间:2018-02-28 格式:DOC 页数:19 大小:20.61KB
返回 下载 相关 举报
c语言设计实现学生成绩管理软件_第1页
第1页 / 共19页
c语言设计实现学生成绩管理软件_第2页
第2页 / 共19页
c语言设计实现学生成绩管理软件_第3页
第3页 / 共19页
c语言设计实现学生成绩管理软件_第4页
第4页 / 共19页
c语言设计实现学生成绩管理软件_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《c语言设计实现学生成绩管理软件》由会员分享,可在线阅读,更多相关《c语言设计实现学生成绩管理软件(19页珍藏版)》请在金锄头文库上搜索。

1、用 C 语言设计实现学生成绩管理软件。 参考下面的数据,用 C/C+设计一个简单的学生成绩管理软件,实现基本的功能。 学生信息文件(A.TXT)及其内容(示意): 学号 姓名 性别 班级 200800800901 张三 男 电子 0801 200800820902 李四 女 通信 0801 200800800903 王五 女 电子 0802 200800820904 赵六 男 通信 0801 课程信息(B.TXT )及其内容(示意): 课程编号 课程名称 学分 C01 大学英语 4 C02 高等数学 4 C03 C+程序设计 3 学生成绩信息文件(C.TXT)及其内容(示意,成绩保存使用浮点数

2、): 学号 课程 成绩 200800800901 C01 89 200800800902 C01 68.5 200800800901 C02 45.5 200800800903 C02 78 功能要求: (1 ) 数据录入:A.TXT B.TXT 直接用文本编辑器编辑文本文件,C.TXT 须通过软 件的运行界面录入(录入后可保存供后续使用),录入时,需要校验学号、课程是否已经在 A 、B 文件中存在。 (2 ) 显示功能:可分别显示学生、课程和学生成绩。学生成绩显示的时候,应将课 程号输出为课程名称(可以自行设计更为详尽、用户友好的输出形式)。 (3 ) 查询功能: 输入一个学号时,查询出此生

3、的所有课程情况,格式如下(注意:成绩不及格时 实得学分为 0): 学号:xxxxxxxxxxx 姓名:xxxxxxx 课程号:xxx 课程名称:xxxxx 成绩:xx 实得学分: xx 课程号:xxx 课程名称:xxxxx 成绩:xx 实得学分: xx 课程号:xxx 课程名称:xxxxx 成绩:xx 实得学分: xx 共修:xx 科,实得总学分为:xxx (4 ) 数据删除、整理功能:当在 A.TXT、B.TXT 中删除学生或课程信息时,能分析 并删除 C.TXT 相关信息(即删除 C.TXT 中的无用信息)。 (5 ) 排序功能(选做,加分项):对指定的科目,能够按照成绩降序或升序排序显

4、示数据。 (6 ) 其他自己在软件编写过程中增加的便于应用的分析、统计功能(加分项,考查 自主软件改进能力) 性能及其他要求: (7 ) 具备一定的防错能力,能够识别文件的错误,能够对文件中的数据类型错误做 出有针对性的处理。 (8 ) 验收时,自带的数据文件中学生信息条目不得少于六条,课程信息不得少于 6 条,成绩信息不得少于 10 条。 #include “stdio.h“ #include “stdlib.h“ #include “string.h“ int shoudsave=0; struct student char num10;char name20; char sex4; in

5、t cgrade; 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 prin

6、tstart() printf(“-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.cgrade,p

7、-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; while(r!=NULL) if(strcmp(r-data.name,findmess)=0) return r;

8、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,num)=0) printf(“=提示: 学号为%s 的学生已经存在, 若要修改请你选择4 修改 !n“,num); printstart(); pr

9、intc(); 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 语言成绩:“); scanf(“%d“, getchar(); printf(“ 请你输入数学成绩:“);

10、scanf(“%d“, getchar(); printf(“ 请你输入英语成绩:“); scanf(“%d“, 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 Qur(Link l) int sel; char findmess20; Node *p; if(!l-next) printf(“n=提示:没有资料可以查询!n“); return; printf(

11、“n=1 按学号查找n=2 按姓名查找n“); scanf(“%d“, if(sel=1) printf(“ 请你输入要查找的学号:“); scanf(“%s“,findmess); p=Locate(l,findmess,“num“); if(p) printf(“tttt 查找结果n“); printstart(); printc(); printe(p); printstart(); else Nofind(); else if(sel=2) printf(“ 请你输入要查找的姓名:“); scanf(“%s“,findmess); p=Locate(l,findmess,“name“)

12、; 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=提示:没有资料可以删除!n“); return; printf(“n=1 按学号删除n=2 按姓名删除n“); scanf(“%d“, if(sel=1) printf(“ 请你输入要删除的学号:“); scanf(“%s“,fi

13、ndmess); 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(“ 请你输入要删除的姓名:“); scanf(“%s“,findmess); p=Locate(l,findmess,“name“); if(p) r=l; while(r-next!=p) r=r-next; r-next=p-next; free(p); printf(“n= 提示: 该学生已经成功删除!n“); shoudsave=1; else Nofind();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号