




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上C语言课程设计报告一、组员信息。组长:岳英明(信科092班 学号)负责构思程序的大体算法,流程图,编写代码,检查错误。成员:孟琼瑶(信科092班 学号)主要编写代码,查资料,界面设计。二、设计目的进一步加深、巩固学生所学专业课程(C语言)的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。三、成绩管理系统主要功能 1. 输入记录 2. 用指定格式显示全部记录 3. 根据姓名查找记录 4. 根据姓名删除记录 5. 保存记录到文件 6. 按序号显示记录7. 按姓名由小到大的顺序排序四、系
2、统流程图开始结束选择操作输入数据排序显示数据查询删除输出界面插入数据退出系统按学号按姓名保存数据吧按景平均成绩选择7选择6选择5选择4选择3选择2选择1选择8按平均成绩高低i读取数据吧选择8三门成绩学号姓名五、 界面设计此系统界面采用图形和数字化菜单设计。主界面设计如下: - 欢迎进入 学生成绩管理系统-制作者:武汉纺织大学理学院信科092班岳英明 * *主菜单* *1. 登记学生资料 2. 删除学生资料3. 查找学生资料 4. 修改学生资料5. 保存学生资料 6. 退出系统* 六、程序代码#include "stdio.h" #include "stdlib.h
3、" #include "string.h" int shoudsave=0; /* */ struct student char num10;/* 学号 */ char name20; char sex4; int 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(&qu
4、ot;*主菜单*"); printf("t1登记学生资料ttttt2删除学生资料n"); printf("t3查询学生资料ttttt4修改学生资料n"); printf("t5保存学生资料ttttt0退出系统n"); printf("*n"); void printstart() printf("-n"); void Wrong() printf("n=>提示:输入错误!n"); void Nofind() printf("n=>提示:没有找到
5、该学生!n"); void printc() /* 本函数用于输出中文 */ printf(" 学号t 姓名 性别 英语成绩 数学成绩 C语言成绩 总分 平均分n"); void printe(Node *p)/* 本函数用于输出英文 */ printf("%-12s%st%st%dt%dt%dt %dt %dn",p->data.num,p->,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle
6、,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) /*
7、按姓名查询 */ r=l->next; while(r!=NULL) if(strcmp(r->,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'返回上一级菜单:)"); sca
8、nf("%s",num); if(strcmp(num,"0")=0) break; while(s) if(strcmp(s->data.num,num)=0) printf("=>提示:学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!n",num); printstart(); printc(); printe(s); printstart(); printf("n"); return; s=s->next; p=(Node *)malloc(siz
9、eof(Node); strcpy(p->data.num,num); printf("请你输入姓名:"); scanf("%s",p->); getchar(); printf("请你输入性别:"); scanf("%s",p->data.sex); getchar(); printf("请你输入c语言成绩:"); scanf("%d",&p->data.cgrade); getchar(); printf("请你
10、输入数学成绩:"); 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
11、; 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("n=>1按学号查找n=>2按姓名查找n"); scanf("%d",&sel); if(sel=1)/* 学号 */ printf("请你输入要查找的学号:"); scanf(&q
12、uot;%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"); if(p) pri
13、ntf("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&quo
14、t;,&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(&qu
15、ot;请你输入要删除的姓名:"); 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(); else Wrong(); void Modify(Link l) Node *p; char findmess20
16、; if(!l->next) printf("n=>提示:没有资料可以修改!n"); return; printf("请你输入要修改的学生学号:"); scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) printf("请你输入新学号(原来是%s):",p->data.num); scanf("%s",p->data.num); printf("请你输入新姓名(原来是%s):&quo
17、t;,p->); scanf("%s",p->); getchar(); printf("请你输入新性别(原来是%s):",p->data.sex); scanf("%s",p->data.sex); printf("请你输入新的c语言成绩(原来是%d分):",p->data.cgrade); scanf("%d",&p->data.cgrade); getchar(); printf("请你输入新的数学成
18、绩(原来是%d分):",p->data.mgrade); scanf("%d",&p->data.mgrade); getchar(); printf("请你输入新的英语成绩(原来是%d分):",p->data.egrade); scanf("%d",&p->data.egrade); p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade; p->data.ave=p->data.tot
19、le/3; printf("n=>提示:资料修改成功!n"); shoudsave=1; else Nofind(); void Disp(Link l) int count=0; Node *p; p=l->next; if(!p) printf("n=>提示:没有资料可以显示!n"); return; printf("tttt显示结果n"); printstart(); printc(); printf("n"); while(p) printe(p); p=p->next; print
20、start(); printf("n"); void Tongji(Link l) Node *pm,*pe,*pc,*pt,*pa; /* 用于指向分数最高的接点 */ Node *r=l->next; if(!r) printf("n=>提示:没有资料可以统计!n"); return ; pm=pe=pc=pt=pa=r; while(r!=NULL) if(r->data.cgrade>=pc->data.cgrade) pc=r; if(r->data.mgrade>=pm->data.mgrade
21、) pm=r; if(r->data.egrade>=pe->data.egrade) pe=r; if(r->data.totle>=pt->data.totle) pt=r; if(r->data.ave>=pa->data.ave) pa=r; r=r->next; printf("-统计结果-n"); printf("总分最高者:t%s %d分n",pt->,pt->data.totle); printf("平均分最高者:t%s %d分n"
22、;,pa->,pa->data.ave); printf("英语最高者:t%s %d分n",pe->,pe->data.egrade); printf("数学最高者:t%s %d分n",pm->,pm->data.mgrade); printf("c语言最高者:t%s %d分n",pc->,pc->data.cgrade); printstart(); void Sort(Link l) Link ll; Node
23、*p,*rr,*s; ll=(Link)malloc(sizeof(Node); /* 用于做新的连表 */ ll->next=NULL; if(l->next=NULL) printf("n=>提示:没有资料可以排序!n"); return ; p=l->next; while(p) s=(Node*)malloc(sizeof(Node); /* 新建接点用于保存信息 */ s->data=p->data; s->next=NULL; rr=ll; while(rr->next!=NULL && rr-&g
24、t;next->data.totle>=p->data.totle) rr=rr->next; if(rr->next=NULL) rr->next=s; else s->next=rr->next; rr->next=s; p=p->next; free(l); l->next=ll->next; printf("n=>提示:排序已经完成!n"); void Save(Link l) FILE* fp; Node *p; int flag=1,count=0; fp=fopen("c:
25、student","wb"); if(fp=NULL) printf("n=>提示:重新打开文件时发生错误!n"); exit(1); p=l->next; while(p) if(fwrite(p,sizeof(Node),1,fp)=1) p=p->next; count+; else flag=0; break; if(flag) printf("n=>提示:文件保存成功.(有%d条记录已经保存.)n",count); shoudsave=0; fclose(fp); void main() L
26、ink l;/* 连表 */ FILE *fp; /* 文件指针 */ int sel; char ch; char jian; int count=0; Node *p,*r; printf("nt欢迎进入ntttt学生成绩管理系统nntttt-作者:成都航空职业技术学院60933班n"); l=(Node*)malloc(sizeof(Node); l->next=NULL; r=l; fp=fopen("C:student","rb"); if(fp=NULL) printf("n=>提示:文件还不存在,是
27、否创建?(y/n)n"); scanf("%c",&jian); if(jian='y'|jian='Y') fp=fopen("C:student","wb"); else exit(0); printf("n=>提示:文件已经打开,正在导入记录.n"); while(!feof(fp) p=(Node*)malloc(sizeof(Node); if(fread(p,sizeof(Node),1,fp) /* 将文件的内容放入接点中 */ p->next=NULL; r->next=p; r=p; /* 将该接点挂入连中 */ count+; fclose(fp); /* 关闭文件 */ printf("n=>提示:记录导入完毕,共导入%d条记录.n",count); while(1) menu(); printf("请你选择操作:"); scanf("%d",&sel); if(sel=0) if(shoudsave=1) getchar(); printf(&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗废物转运流程中的责任划分
- 体育俱乐部会员积分管理与奖励
- 房地产开盘流程中的数据分析
- 房产共有权变更合同:版
- 跨境电商物流保险合同样本
- 广东深圳市购房合同
- 国际间专利技术许可合作合同分析
- 洒店股份转让合同协议
- 小区车位使用权合同
- 国有土地转让合作合同2025
- 地理-浙江省强基联盟2025年2月高三年级联考试题和答案
- 济南2024年山东济南广播电视台招聘14人笔试历年参考题库附带答案详解
- 海洋气候预测模型创新研究-深度研究
- 《客户服务基础》教案及课件项
- 2025《医药企业防范商业贿赂风险合规指引》解读课件
- 2025年度船舶焊接维修工程合同范本资料下载
- 2025年湖南工业职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年丹参原药材项目可行性研究报告
- 物理(A版)-安徽省合肥一中(省十联考)2024-2025学年度高二年级上学期期末测试试题和答案
- 人教版初中历史与社会七年级下册 6.3.3向西开放的重要门户-乌鲁木齐 说课稿
- 综合材料绘画课程设计
评论
0/150
提交评论