




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文华学院文华学院 信息与科学技术学部 课程设计报告 201 6 201 7 学年第 一 学期 课程名称 C 语言课程设计 设计题目 学生成绩管理 学生姓名 学 号 专业班级 自动化 1502 班 指导教师 2016 年 12 月 12 日 文化学院 C 程序设计报告 1 目录目录 1、设计任务书设计任务书.1 1.1、题目与要求.1 1.2、本程序涉及的知识点.1 2、功能设计功能设计 .1 2.1、算法设计.1 2.2、部分模块流程图.2 3、程序代码设计程序代码设计.10 4、在设计过程中遇到的困难在设计过程中遇到的困难 .24 5、C 程序设计总结程序设计总结.25 文化学院 C 程序设计报告 2 1 1、设计任务书设计任务书 1.11.1、题目与要求、题目与要求 1,由键盘输入 20 个学生(姓名)的某门课程的学习成绩 1099 分(也可超过) 。 2,将分数由低到高排序(用直接排序法和冒泡法) ,并显示学生姓名和对应的分数。 3,用线性搜索法检索某个学生的成绩(输入姓名,显示成绩) 4 , 对分搜索法检索某个学生的成绩(输入姓名,显示成绩) 1.21.2、本程序涉及的知识点、本程序涉及的知识点 变量的定义、输入和输出函数、if 语句、转意字符的使用、调用外部文件、调用 winds 下的命 令符、清屏语句等等。 2 2、功能设计功能设计 2.12.1、算法设计、算法设计 1、本程序实现的功能要求:将各个功能写成子函数,需要时进行调用。 主函数。 文化学院 C 程序设计报告 3 2.2、部分模块流程图 1)管理员菜单 文化学院 C 程序设计报告 4 2)学生菜单 文化学院 C 程序设计报告 5 3)网页转跳 4)打开文件 文化学院 C 程序设计报告 6 5)登陆程序 文化学院 C 程序设计报告 7 6)输入函数 文化学院 C 程序设计报告 8 7)排序函数 8)冒泡排序 文化学院 C 程序设计报告 9 9)搜索程序 文化学院 C 程序设计报告 10 10)对分搜索 3 3、程序代码设计程序代码设计 #include#include #include#include #include#include 文化学院 C 程序设计报告 11 #define#define max1max1 100100/最多人数最多人数 structstruct gerengeren/定义一个结构体定义一个结构体 charchar name40;name40; intint chengji;chengji; intint paiming;paiming; ; structstruct gerengeren guanlimax1;guanlimax1; /geren/geren 结构数组结构数组 voidvoid glcaidan();glcaidan();/管理员菜单管理员菜单 voidvoid xscaidan();xscaidan();/学生菜单学生菜单 voidvoid shuru();shuru();/输入函数输入函数 voidvoid paixushuchu();paixushuchu(); voidvoid guanliyuan();guanliyuan();/管理员登陆管理员登陆 voidvoid paiming();paiming();/对学生进行排名对学生进行排名 voidvoid xueshendenlu();xueshendenlu();/学生登录学生登录 voidvoid sousuo();sousuo(); voidvoid zhuantiao();zhuantiao();/网页转跳网页转跳 voidvoid swap(structswap(struct gerengeren *student,int*student,int n);n);/从大到小的排序从大到小的排序 voidvoid wenjian();wenjian();/打开文件打开文件 voidvoid duifen();duifen();/对分搜索对分搜索 voidvoid zhijie();zhijie();/直接排序直接排序 voidvoid main()main() glcaidan();glcaidan();/管理员菜单管理员菜单 zhuantiao();zhuantiao();/网页转跳网页转跳 xscaidan();xscaidan(); /学生菜单学生菜单 voidvoid wenjian()wenjian() /打开文件打开文件 FILEFILE *fp;*fp; charchar ch;ch; charchar *file_path*file_path = = .字符图案字符图案wenhua.txt;wenhua.txt; system(cls);system(cls); if(fp=fopen(file_path,r)=NULL)if(fp=fopen(file_path,r)=NULL) printf(nSorry,printf(nSorry, CantCant openopen thethe file!file! _n);_n); exit(0);exit(0); elseelse while(ch=fgetc(fp)!=EOF)while(ch=fgetc(fp)!=EOF) printf(%c,ch);printf(%c,ch); fclose(fp);fclose(fp); 文化学院 C 程序设计报告 12 Sleep(2000);Sleep(2000); system(cls);system(cls); voidvoid zhuantiao()zhuantiao() /网页转跳网页转跳 intint i;i; for(i=3;i0;i-)for(i=3;i0;i-) system(cls);system(cls); printf(nnnnnnnnnttttttttt%dsprintf(nnnnnnnnnttttttttt%ds 后将转跳到学生后将转跳到学生 成绩查询系统成绩查询系统.,i);.,i); Sleep(1000);Sleep(1000); voidvoid swap(structswap(struct gerengeren *student,int*student,int n)n) /冒泡排序,从大到小的排序冒泡排序,从大到小的排序 intint flag;flag; intint i,j;i,j; structstruct gerengeren temp;temp; for(i=0;in-1;i+)for(i=0;in-1;i+) flag=0;flag=0; for(j=0;jn-i-1;j+)for(j=0;jn-i-1;j+) if(guanlij.chengjiguanlij+1.chengji)if(guanlij.chengjiguanlij+1.chengji) flag=1;flag=1; temp=guanlij+1;temp=guanlij+1; guanlij+1=guanlij;guanlij+1=guanlij; guanlij=temp;guanlij=temp; if(flag=0)if(flag=0) break;break; paiming();paiming(); voidvoid zhijie()zhijie() /直接排序直接排序 intint i,j;i,j; intint a;a; for(i=0;imax1;i+)for(i=0;imax1;i+) for(j=i+1;jmax1;j+)for(j=i+1;jmax1;j+) if(guanlii.chengjiif(guanlii.chengji guanlij.chengjiguanlij.chengji ) ) 文化学院 C 程序设计报告 13 a=guanlii.chengjia=guanlii.chengji ; ; guanlii.chengjiguanlii.chengji =guanlij.chengji=guanlij.chengji ; ; guanlij.chengjiguanlij.chengji =guanlii.chengji;=guanlii.chengji; voidvoid paiming()paiming() /对学生进行排名对学生进行排名 intint a,j;a,j; for(a=1,j=0;jmax1;j+)for(a=1,j=0;jmax1;j+) guanlij.paiming=a;guanlij.paiming=a; a+;a+; voidvoid glcaidan()glcaidan() /管理员菜单管理员菜单 intint a,b,c,d,f;a,b,c,d,f; charchar e;e; a=1;a=1; c=0;c=0; d=0;d=0; f=0;f=0; wenjian();wenjian(); /打开文件打开文件 while(a)while(a) b=1;b=1; Sleep(f);Sleep(f); system(cls);system(cls); while(b)while(b) printf(*printf(* * *n);*n); printf(*printf(* 欢迎来到学生成绩录入系统欢迎来到学生成绩录入系统 *n);*n); printf(*printf(* * 文化学院 C 程序设计报告 14 *n);*n); printf(printf( %c1%c1、登陆、登陆 %c2%c2、录入学生成绩、录入学生成绩 %c3%c3、查看录入成绩、查看录入成绩 % % c4c4、退出登陆、退出登陆n,3,3,3,3);n,3,3,3,3); fflush(stdin);fflush(stdin); scanf(%d,scanf(%d, switch(e)switch(e) casecase 1:1: guanliyuan();guanliyuan(); /管理员登陆管理员登陆 b=0;b=0; c=1;c=1; f=2000;f=2000; break;break; casecase 2:2: if(c=1)if(c=1) shuru();shuru(); /成绩输入成绩输入 b=0;b=0; d=1;d=1; f=2000;f=2000; elseelse printf(nnntttttttttprintf(nnnttttttttt 您还没有登陆,您还没有登陆, 请先登录请先登录n);n); b=0;b=0; f=2000;f=2000; break;break; casecase 3:3: if(c=1)if(c=1) if(d=1)if(d=1) paiming();paiming(); /对学生进行排名对学生进行排名 paixushuchu();paixushuchu(); b=0;b=0; f=10000;f=10000; elseelse printf(nnntttttttttprintf(nnnttttttttt 还没有录入还没有录入 成绩。成绩。n);n); b=0;b=0; 文化学院 C 程序设计报告 15 f=2000;f=2000; elseelse printf(nnntttttttttprintf(nnnttttttttt 您还没有登陆,您还没有登陆, 请先登录请先登录n);n); b=0;b=0; f=2000;f=2000; break;break; casecase 4:4: if(c=1)if(c=1) printf(nnntttttttttprintf(nnnttttttttt 成功退出登陆。成功退出登陆。 n);n); a=0;a=0; b=0;b=0; elseelse printf(nnntttttttttprintf(nnnttttttttt 您还没有登陆。您还没有登陆。 请登录请登录n);n); b=0;b=0; f=2000;f=2000; break;break; default:default: printf(nnntttttttttprintf(nnnttttttttt 未知错误未知错误n);n); fflush(stdin);fflush(stdin); b=0;b=0; f=2000;f=2000; voidvoid xscaidan()xscaidan() /学生菜单学生菜单 intint a,b,c,d,e,f;a,b,c,d,e,f; a=1;a=1; c=0;c=0; d=0;d=0; f=0;f=0; 文化学院 C 程序设计报告 16 wenjian();wenjian(); /打开文件打开文件 while(a)while(a) b=1;b=1; Sleep(f);Sleep(f); system(cls);system(cls); while(b)while(b) printf(*printf(* * *n);*n); printf(*printf(* 欢迎来到学生成绩查询系统欢迎来到学生成绩查询系统 *n);*n); printf(*printf(* * *n);*n); printf(printf( %c1%c1、登陆、登陆 %c2%c2、查看学生成绩、查看学生成绩 %c3%c3、按条件查找、按条件查找 % % c4c4、退出登陆、退出登陆n,3,3,3,3);n,3,3,3,3); fflush(stdin);fflush(stdin); scanf(%d,scanf(%d, switch(e)switch(e) casecase 1:1: xueshendenlu();xueshendenlu(); /学生登录学生登录 b=0;b=0; c=1;c=1; f=2000;f=2000; break;break; casecase 2:2: if(c=1)if(c=1) paixushuchu();paixushuchu(); b=0;b=0; f=10000;f=10000; elseelse printf(nnntttttttttprintf(nnnttttttttt 您还没有登陆,您还没有登陆, 请先登录请先登录n);n); 文化学院 C 程序设计报告 17 b=0;b=0; f=2000;f=2000; break;break; casecase 3:3: if(c=1)if(c=1) sousuo();sousuo(); b=0;b=0; f=5000;f=5000; elseelse printf(nnntttttttttprintf(nnnttttttttt 您还没有登陆,您还没有登陆, 请先登录请先登录n);n); b=0;b=0; f=2000;f=2000; break;break; casecase 4:4: if(c=1)if(c=1) printf(nnntttttttttprintf(nnnttttttttt 成功退出登陆。成功退出登陆。 n);n); a=0;a=0; f=2000;f=2000; elseelse printf(nnntttttttttprintf(nnnttttttttt 您还没有登陆。您还没有登陆。 请登录请登录n);n); b=0;b=0; f=2000;f=2000; break;break; default:default: printf(nnntttttttttprintf(nnnttttttttt 未知错误未知错误n);n); fflush(stdin);fflush(stdin); b=0;b=0; f=2000;f=2000; voidvoid guanliyuan()guanliyuan() /管理员登陆管理员登陆 文化学院 C 程序设计报告 18 intint a=1,b=0;a=1,b=0; charchar zh7=123456;zh7=123456; charchar mima4=123;mima4=123; charchar zh17,mima14;zh17,mima14; printf(printf(请输入管理员账号:请输入管理员账号:);); while(a)while(a) fflush(stdin);fflush(stdin); scanf(%s,scanf(%s, if(strcmp(zh,zh1)!=0)if(strcmp(zh,zh1)!=0) printf(nnntttttttttprintf(nnnttttttttt 账号错误,请重新输入!账号错误,请重新输入! nttttttttt);nttttttttt); elseelse a=0;a=0; a=1;a=1; printf(printf(请输入密码:请输入密码:);); while(a)while(a) fflush(stdin);fflush(stdin); scanf(%s,scanf(%s, if(strcmp(mima,mima1)!=0)if(strcmp(mima,mima1)!=0) b+;b+; printf(nnntttttttttprintf(nnnttttttttt 密码错误,请重新输入!密码错误,请重新输入! nttttttttt);nttttttttt); printf(ntttttttttprintf(nttttttttt 已输错已输错%d%d 次,还有次,还有%d%d 次机会次机会. . nttttttttt,b,3-b);nttttttttt,b,3-b); elseelse a=0;a=0; if(b=3)if(b=3) printf(printf(您已连续三次输错密码,即将关机。您已连续三次输错密码,即将关机。);); system(shutdownsystem(shutdown -s-s -t-t 10);10); Sleep(9000);Sleep(9000); system(shutdownsystem(shutdown -a);-a); printf(nnntttttttttprintf(nnnttttttttt 登陆成功。登陆成功。n);n); voidvoid xueshendenlu()xueshendenlu() /学生登录学生登录 文化学院 C 程序设计报告 19 intint a=1,b=0;a=1,b=0; charcharzh7=123456;zh7=123456; charchar mima4=123;mima4=123; charchar zh17,mima14;zh17,mima14; printf(printf(请输入账号:请输入账号:);); while(a)while(a) fflush(stdin);fflush(stdin); scanf(%s,scanf(%s, if(strcmp(zh,zh1)!=0)if(strcmp(zh,zh1)!=0) printf(nnntttttttttprintf(nnnttttttttt 账号错误,请重新输入!账号错误,请重新输入! nttttttttt);nttttttttt); elseelse a=0;a=0; a=1;a=1; printf(printf(请输入密码:请输入密码:);); while(a)while(a) fflush(stdin);fflush(stdin); scanf(%s,scanf(%s, if(strcmp(mima,mima1)!=0)if(strcmp(mima,mima1)!=0) b+;b+; printf(nnntttttttttprintf(nnnttttttttt 密码错误,请重新输入!密码错误,请重新输入! nttttttttt);nttttttttt); printf(ntttttttttprintf(nttttttttt 已输错已输错%d%d 次,还有次,还有%d%d 次机会次机会. . nttttttttt,b,3-b);nttttttttt,b,3-b); memset(sizeof(mima1); /将数组进行清空将数组进行清空 elseelse a=0;a=0; if(b=3)if(b=3) printf(printf(您已连续三次输错密码,即将关机。您已连续三次输错密码,即将关机。);); system(shutdownsystem(shutdown -s-s -t-t 10);10); Sleep(9000);Sleep(9000); system(shutdownsystem(shutdown -a);-a); printf(nnntttttttttprintf(nnnttttttttt 登陆成功。登陆成功。n);n); 文化学院 C 程序设计报告 20 voidvoid shuru()shuru() /输入函数输入函数 intint f,g;f,g; intint j=0;j=0; f=1;f=1; memset(sizeof(guanli); /将结构体数组进行清空将结构体数组进行清空 printf(nnprintf(nn 请输入学生的姓名和成绩请输入学生的姓名和成绩( (以以“.”“.”结束结束)n);)n); while(f)while(f) printf(printf(请输入第请输入第%d%d 个同学的名字:个同学的名字:,j+1);,j+1); fflush(stdin);fflush(stdin); scanf(%s,scanf(%s, );); if(0if(0 !=.)!=.) g=1;g=1; while(g)while(g) printf(printf(请输入第请输入第%d%d 个同学的成绩:个同学的成绩:,j+1);,j+1); fflush(stdin);fflush(stdin); scanf(%d,); if(guanlij.chengji100)if(guanlij.chengji100) printf(nprintf(n 输入错误,请重新输入输入错误,请重新输入!n);!n); elseelse g=0;g=0; elseelse f=0;f=0; j+;j+; voidvoid paixushuchu()paixushuchu() /排序输出排序输出 intint a,b,c,d;a,b,c,d; c=1;c=1; printf(printf(按照冒泡排序请按按照冒泡排序请按 1 1,直接排序请按,直接排序请按 2.n);2.n); while(c)while(c) scanf(%d,scanf(%d, switch(d)switch(d) casecase 1:1: 文化学院 C 程序设计报告 21 swap(guanli,max1);swap(guanli,max1); c=0;c=0; break;break; casecase 2:2: zhijie();zhijie(); c=0;c=0; break;break; default:default: printf(printf(输入有误。请重新输入。输入有误。请重新输入。n);n); for(a=0,b=0;amax1;a+)for(a=0,b=0;amax1;a+) if(0!=.if(0!=. n); /输出排序结果输出排序结果 printf(printf(排名排名tt 名字名字tt 成绩成绩n);n); c+;c+; printf(%dt%st%dn,guanlia.paiming,,guanlia.printf(%dt%st%dn,guanlia.paiming,,guanlia. chengji);chengji); elseelse b+;b+; if(b=max1)if(b=max1) printf(nnnntttttttttprintf(nnnnttttttttt 没有查到该次考试成绩。没有查到该次考试成绩。);); voidvoid sousuo()sousuo() /搜索成绩搜索成绩 intint a,b,d,e,j;a,b,d,e,j; charchar mingzi40;mingzi40; printf(nnprintf(nn 开始查找成绩!开始查找成绩!n);n); printf(nprintf(n 按姓名查找请按按姓名查找请按 1 1,按成绩查找请按,按成绩查找请按 2.2. n);n); fflush(stdin);fflush(stdin); scanf(%d,scanf(%d, switch(b)switch(b) 文化学院 C 程序设计报告 22 casecase 1:1: printf(printf(请输入姓名:请输入姓名:n);n); fflush(stdin);fflush(stdin); scanf(%s,scanf(%s, for(j=0,d=0;jmax1;j+)for(j=0,d=0;jmax1;j+) if(strcmp(mingzi,)=0)if(strcmp(mingzi,)=0) printf(printf(姓名:姓名:%sn%sn 排名:排名:%dn%dn 成绩:成绩: %dnn,,guanlij.paiming,guanlij.chengji);%dnn,,guanlij.paiming,guanlij.chengji); elseelse d+;d+; if(d=max1)if(d=max1) printf(printf(没有查找到此人没有查找到此人n);n); break;break; casecase 2:2: printf(nprintf(n 线性搜索请按线性搜索请按 1 1,对分搜索请按,对分搜索请按 2n);2n); fflush(stdin);fflush(stdin); scanf(%d,scanf(%d, switch(a)switch(a) casecase 1:1: printf(nprintf(n 请输入成绩:请输入成绩:n);n); fflush(stdin);fflush(stdin); scanf(%d,scanf(%d, for(j=0,d=0;jmax1;j+)for(j=0,d=0;jmax1;j+) if(e=guanlij.chengji)if(e=guanlij.chengji) printf(printf(姓名:姓名:%sn%sn 名次:名次:%dn%dn 成绩:成绩: %dnn,,guanlij.paiming,guanlij.chengji);%dnn,,guanlij.paiming,guanlij.chengji); elseelse d+;d+; if(d=max1)if(d=max1) printf(printf(没有查找到此成绩没有查找到此成绩n);n); break;break; casecase 2:2: duifen();duifen(); break;break; default:printf(default:printf(输入错误输入错误n);n); voidvoid duifen()duifen()/对分搜索对分搜索 文化学院 C 程序设计报告 23 intint a,b,c,d,i;a,b,c,d,i; intint m=0,n=max1-1;m=0,n=max1-1; fflush(stdin);fflush(stdin); scanf(%d,scanf(%d, a=1;a=1; d=1;d=1; while(a)while(a) c=(m+n)/2;c=(m+n)/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国葛洲坝集团勘测设计有限公司招聘12人笔试题库历年考点版附带答案详解
- 2025年医疗健康行业智能医疗设备与健康服务研究报告
- 2025年文化创意行业数字化文化产品推广策略研究报告
- 2025年智能家居安全系统市场趋势与竞争分析研究报告
- 校园环境应急安全培训课件
- 税务 合作协议书
- 2026年国家能源投资集团有限责任公司高校毕业生统招笔试备考试题及答案解析
- 2026年度内蒙古自治区事业单位公开招聘工作人员10710人笔试模拟试题及答案解析
- 2025年肝胆胰外科胆囊切除手术操作规范模拟考试答案及解析
- 2025年传染病科结核病患者隔离与防护知识考核模拟试卷答案及解析
- 2026届湖南省天一大联考高三上学期阶段性检测(一)数学试题
- 中职生就业指导课件
- 《国庆假期安全教育》课件
- 2025年辅警招聘考试试题库及完整答案(历年真题)
- 2025湖北宜昌市不动产交易和登记中心招聘编外聘用人员17人考试参考题库及答案解析
- 2025下半年四川内江市隆昌诚信农业产业化融资担保有限责任公司招聘4人考试参考题库及答案解析
- 《春江花月夜》课件+2025-2026学年统编版高二语文选择性必修上册
- 广州中侨置业投资控股集团有限公司债权资产评估报告
- 脑梗的课件和提纲
- 监控工程试运行方案(3篇)
- 2025年秋季学期学校红领巾监督岗工作实施细则
评论
0/150
提交评论