语言专业课程设计方案报告.doc
《语言专业课程设计方案报告.doc》由会员分享,可在线阅读,更多相关《语言专业课程设计方案报告.doc(22页珍藏版)》请在咨信网上搜索。
一、设计思想 一方面建立主函数实现功能选取,然后通过调用函数来分别实现;1.学生信息录入功能(以文献方式保存);2.学生信息浏览功能;3.学生信息查询功能(可以按学号,班级,性别分别进行查询,用子菜单,可显示多条记录);4.学生信息删除功能(按学号进行删除);5.学生信息修改功能(按学号修改);6.不及格学生成绩汇总功能。 二. 概要设计 1. 模块简介 程序由十一种模块构成,分别是:主菜单模块、录入信息模块、保存信息模块、浏览信息模块、查询菜单模块、按学号查询模块、按姓名查询模块、按性别查询模块、修改信息模块、删除信息模块、不及格学生信息汇总模块。 2.函数功能 lr()函数是实现信息录入功能函数; bc()函数是将录入信息保存到文献中额函数; ll()是实现浏览功能函数; cx()是实现信息查询功能函数, 在cx()函数调用了xuehao();xingming();xingbie()这三个函数,这三个函数分别实现按学号查找、按姓名查找、按性别查找学生信息 功能; sc()函数是实现删除学生信息功能; xg()实现信息修改功能; hz()实现不及格学生汇总功能 3、系统流程开始 输入0-6选取功能 输入5 输入4 输入3 输入2 退出程序 输入0 输入6 输入学生信息 将学生信息保存到文献 浏览学生信息 查询学生信息,输入1-3选取查询方式 输入1,按学号查询 输入2,按姓名查询 输入3,按性别查询 修改学生信息 输入1 输入0取消查询 输入所需修改学生学号 输入0-9选取所需修改内容 输入新信息 修改完毕 删除信息 输入学生学号 删除完毕 不及格学生信息汇总 三. 详细设计 1、代码 #include <stdio.h> #include <string.h> #include<stdlib.h> struct student { char num[13]; char name[15]; char cla[10]; int age; char sex[4]; char bir[8]; char addr[15]; char tele[15]; char course[10]; int score; };int n=0; struct student stu[100]; //定义变量 struct student *p; FILE *fp; void lr(); void ll(); void cx(); void sc(); void xg(); void hz(); void bc(); void xuehao(); void xingming(); void xingbie(); //定义函数 void main() //主函数 { int z; printf("+---------------------------+\n"); printf("| 欢迎使用学生信息管理系统 |\n"); printf("+---------------------------+\n"); printf("提示:为保证您操作得到保存,请按正常顺序退出系统^_^\n"); do { printf("\n\t\t\t--------------------------------\n"); printf("\t\t\t+ 主菜单 |\n"); printf("\t\t\t--------------------------------\n"); printf("\t\t\t+ [1]----录入学生信息 |\n"); printf("\t\t\t+ [2]----浏览学生信息 |\n"); printf("\t\t\t+ [3]----查询学生信息 |\n"); printf("\t\t\t+ [4]----删除学生信息 |\n"); printf("\t\t\t+ [5]----修改学生信息 |\n"); printf("\t\t\t+ [6]----不及格学生成绩汇总 |\n"); printf("\t\t\t+ [0]----退出系统 |\n"); printf("\t\t\t--------------------------------\n"); printf("请输入您选取:"); scanf("%d",&z); switch(z) { case 0 : break; case 1 :lr();break; case 2 :ll();break; case 3 :cx();break; case 4 :sc();break; case 5 :xg();break; case 6 :hz();break; //函数调用 default:printf("\n无效选项!"); } } while(z!= 0); } void lr() //录入函数 { int y; if(n==0) p=stu; printf("--------------------\n"); printf("\n\t\t请输入学生学号:"); scanf("%s",&stu[n].num); printf("\n\t\t请输入学生姓名:"); scanf("%s",&stu[n].name); printf("\n\t\t请输入学生班级:"); scanf("%s",&stu[n].cla); printf("\n\t\t请输入学生年龄:"); scanf("%d",&stu[n].age); printf("\n\t\t请输入学生性别:"); scanf("%s",&stu[n].sex); printf("\n\t\t请输入学生出生年月:"); scanf("%s",&stu[n].bir); printf("\n\t\t请输入学生地址:"); scanf("%s",&stu[n].addr); printf("\n\t\t请输入学生电话:"); scanf("%s",&stu[n].tele); printf("\n\t\t请输入学生课程:"); scanf("%s",&stu[n].course); printf("\n\t\t请输入学生成绩:"); scanf("%d",&stu[n].score); //输入学生信息 n++; p++; printf("请输入 0以保存信息:"); scanf("%d",&y); if(y==0) bc(); //调用函数 else printf("无效选项"); return; } void bc()/*保存函数*/ { int i; if ((fp=fopen("fstudent.txt","wb"))==NULL) //打开一种只写文献,将要打开文献指针赋给fp,使fp与文献相联系 { printf("\n\t\t文献打开失败"); exit(0); } for (i=0;i<100;i++) { fwrite(&stu[i],sizeof(struct student),1,fp);//把信息输出大奥fp所指向文献中,返回值为写到 fp文献中数据项个数 } fclose(fp); //关闭fp所指文献,有错返回非0,否则返回0 printf("\n\t\t通讯录文献已保存"); printf("\n\t\t按回车键退出程序\n\t\t"); } void ll()/*浏览函数*/ { int i; if(n!=0) { printf("\n\t\t*************** 如下为学生管理系统所有信息************"); for (i=0;i<n;i++) { printf("\n\t\t学号: %s",stu[i].num); printf("\n\t\t姓名: %s",stu[i].name); printf("\n\t\t班级: %s",stu[i].cla); printf("\n\t\t年龄: %d",stu[i].age); printf("\n\t\t性别: %s",stu[i].sex); printf("\n\t\t出生年月: %s",stu[i].bir); printf("\n\t\t地址: %s",stu[i].addr); printf("\n\t\t电话: %s",stu[i].tele); printf("\n\t\t课程: %s",stu[i].course); printf("\n\t\t成绩: %d",stu[i].score); printf("\t\t\n"); } printf("\n\t\t************************************************"); } } void cx()/*查询函数*/ {int c; do{ printf("\n"); printf("+--------------------+\n"); printf("| 按学号查询 请按 1 |\n"); printf("| 按姓名查询 请按 2 |\n"); printf("| 按性别查询 请按 3 |\n"); printf("| 取消 请按 0 |\n"); printf("+--------------------+\n"); printf("请输入您选取:"); scanf("%d",&c); switch(c) { case 0:break; case 1:xuehao();break; case 2:xingming();break; case 3:xingbie();break; //调用函数 default: printf("\n提示:无效选项!"); break; } }while(c!= 0); } void xingming()//按姓名查询 { int i; int j=0; char name[15]; printf("\n\t\t****************** 按姓名查找 ******************"); printf("\n\t\t请输入要查学生姓名:"); scanf("%s",name); for(i=0;i<n;i++) if(strcmp(name,stu[i].name)==0) //比较两个字符串,若相等,返回0 { j++; printf("\n\t\t************** 如下是您查找学生信息 **********"); printf("\n\t\t学号: %s",stu[i].num); printf("\n\t\t姓名: %s",stu[i].name); printf("\n\t\t班级: %s",stu[i].cla); printf("\n\t\t年龄: %d",stu[i].age); printf("\n\t\t性别: %s",stu[i].sex); printf("\n\t\t出生年月: %s",stu[i].bir); printf("\n\t\t地址: %s",stu[i].addr); printf("\n\t\t电话: %s",stu[i].tele); printf("\n\t\t课程: %s",stu[i].course); printf("\n\t\t成绩: %d",stu[i].score); printf("\n\t\t************************************************"); printf("\n\t\t与否继续查询?(y/n)"); getchar(); //输入选取 if (getchar()=='y') xingming(); //函数递归调用 return ; } if(j==0) { printf("\n\t\t未查找该学生信息:"); printf("\n\t\t按回车键返回菜单:"); getchar(); getchar(); return; } printf("\n\t\t按回车键返回主菜单:"); getchar(); getchar(); } void xuehao()//*按学号查询 { int i; int j=0; char num[13]; printf("\n\t\t****************** 按学号查找 ******************"); printf("\n\t\t请输入要查学生学号:"); scanf("%s",&num); for(i=0;i<n;i++) if(strcmp(num,stu[i].num)==0) { j++; printf("\n\t\t************** 如下是您查找学生信息 **********"); printf("\n\t\t学号: %s",stu[i].num); printf("\n\t\t姓名: %s",stu[i].name); printf("\n\t\t班级: %s",stu[i].cla); printf("\n\t\t年龄: %d",stu[i].age); printf("\n\t\t性别: %s",stu[i].sex); printf("\n\t\t出生年月: %s",stu[i].bir); printf("\n\t\t地址: %s",stu[i].addr); printf("\n\t\t电话: %s",stu[i].tele); printf("\n\t\t课程: %s",stu[i].course); printf("\n\t\t成绩: %d",stu[i].score); printf("\n\t\t************************************************"); printf("\n\t\t与否继续查询?(y/n)"); getchar(); if (getchar()=='y') xuehao(); //函数递归调用 return ; } if(j==0) { printf("\n\t\t未查找该学生信息:"); printf("\n\t\t按回车键返回菜单:"); getchar(); getchar(); return; } printf("\n\t\t按回车键返回主菜单:"); getchar(); getchar(); } void xingbie()//按性别查询 { int i; int j=0; char sex[4]; printf("\n\t\t****************** 按性别查找 ******************"); printf("\n\t\t请输入要查学生性别:"); scanf("%s",&sex); for(i=0;i<n;i++) {for(i=0;i<n;i++) if(strcmp(sex,stu[i].sex)==0) { j++; printf("\n\t\t************** 如下是您查找学生信息 **********"); printf("\n\t\t学号: %s",stu[i].num); printf("\n\t\t姓名: %s",stu[i].name); printf("\n\t\t班级: %s",stu[i].cla); printf("\n\t\t年龄: %d",stu[i].age); printf("\n\t\t性别: %s",stu[i].sex); printf("\n\t\t出生年月: %s",stu[i].bir); printf("\n\t\t地址: %s",stu[i].addr); printf("\n\t\t电话: %s",stu[i].tele); printf("\n\t\t课程: %s",stu[i].course); printf("\n\t\t成绩: %d",stu[i].score); printf("\n\t\t************************************************"); } printf("\n\t\t与否继续查询?(y/n)"); getchar(); if (getchar()=='y') xingbie(); //函数递归调用 return; } if(j==0) { printf("\n\t\t未查找该学生信息:"); printf("\n\t\t按回车键返回菜单:"); getchar(); getchar(); return; } printf("\n\t\t按回车键返回主菜单:"); getchar(); getchar(); } void xg()/*修改函数*/ { char num[13]; char name[15]; char cla[10]; int age; char sex[4]; char bir[8]; char addr[15]; char tele[15]; char course[10]; char score; int i,j,c; if(n!=0) { printf("请输入您要修改学生学号:"); scanf("%s",&num); printf("\n"); for(i=0;i<n;i++) if(strcmp(num,stu[i].num)==0) {j=i; printf("请选取您要修改学生信息内容:\n"); printf("+--------------------------+\n"); printf("| 姓名 请按 1 |\n"); printf("| 班级 请按 2 |\n"); printf("| 年龄 请按 3 |\n"); printf("| 性别 请按 4 |\n"); printf("| 出生年月 请按 5 |\n"); printf("| 地址 请按 6 |\n"); printf("| 电话 请按 7 |\n"); printf("| 课程 请按 8 |\n"); printf("| 成绩 请按 9 |\n"); printf("| 取消 请按 0 |\n"); printf("+--------------------------+\n"); printf("请输入您选取:"); scanf("%d",&c); printf("\n"); switch(c) { case 0:break; case 1:printf("请输入新姓名:"); scanf("%s",stu[j].name); strcpy(name,stu[j].name); //复制字符串,返回name break; case 2:printf("请输入新班级:"); scanf("%s",stu[j].cla); strcpy(cla,stu[j].cla); break; case 3:printf("请输入新年龄:"); scanf("%d",&stu[j].age); strcpy(age,stu[j].age);break; case 4:printf("请输入新性别:"); scanf("%s",stu[j].sex); strcpy(sex,stu[j].sex);break; case 5:printf("请输入新出生年月:"); scanf("%s",stu[j].bir); strcpy(bir,stu[j].bir);break; case 6:printf("请输入新地址:"); scanf("%s",stu[j].addr); strcpy(addr,stu[j].addr);break; case 7:printf("请输入新电话:"); scanf("%s",stu[j].tele); strcpy(tele,stu[j].tele);break; case 8:printf("请输入新课程:"); scanf("%s",stu[j].course); strcpy(course,stu[j].course);break; case 9:printf("请输入新成绩:"); scanf("%d",stu[j].score); strcpy(score,stu[j].score);break; default: printf("\n无效选项!"); break; } } printf("\n\t\t按回车键返回主菜单:"); getchar(); getchar(); //输入回车键 return; }else printf("提示:无学生数据,请输入数据!"); } void sc()/*删除函数*/ { int e=0; char name[15]; int j; int i; char id[20]; printf("\n\t\t请输入要删除联系人姓名:"); scanf("%s",name); getchar(); for (i=0;i<n;i++) { if (strcmp(stu[i].name,name)==0) { printf("\n\t\t如下是您要删除学生纪录:"); e++; printf("\n\t\t****************************"); printf("\n\t\t学号: %s",stu[i].num); printf("\n\t\t姓名: %s",stu[i].name); printf("\n\t\t班级: %s",stu[i].cla); printf("\n\t\t年龄: %d",stu[i].age); printf("\n\t\t性别: %s",stu[i].sex); printf("\n\t\t出生年月: %s",stu[i].bir); printf("\n\t\t地址: %s",stu[i].addr); printf("\n\t\t电话: %s",stu[i].tele); printf("\n\t\t课程: %s",stu[i].course); printf("\n\t\t成绩: %d",stu[i].score); printf("\n\t\t****************************"); printf("\n\t\t与否删除?(y/n)"); if (getchar()=='y') { for (j=i;j<n;j++) stu[j]=stu[j+1]; n--; printf("\n\t\t删除成功"); printf("\n\t\t与否继续删除?(y/n)"); getchar(); if (getchar()=='y') sc(); } } } if (e==0) { printf("\n\t\t没有该学生纪录"); printf("\n\t\t与否继续删除?(y/n)"); if (getchar()=='y') sc(); //函数递归调用 } } void hz()/*汇总函数*/ {int score; int i; int *p; for(i=0;i<n;i++) {for(p=&stu[i].score;p<(stu[i].score+n);p++) //用指针变量指向数组元素 printf("%d",*p); //*p即为学生成绩 if(*p<60) {printf("\n\t\t************** 如下是不及格学生信息 **********"); printf("\n\t\t学号: %s",stu[i].num); printf("\n\t\t姓名: %s",stu[i].name); printf("\n\t\t班级: %s",stu[i].cla); printf("\n\t\t年龄: %d",stu[i].age); printf("\n\t\t性别: %s",stu[i].sex); printf("\n\t\t出生年月: %s",stu[i].bir); printf("\n\t\t地址: %s",stu[i].addr); printf("\n\t\t电话: %s",stu[i].tele); printf("\n\t\t课程: %s",stu[i].course); printf("\n\t\t成绩: %d",stu[i].score); printf("\n\t\t************************************************"); } } } 四、 总结 在这为期一周课程设计中,我发现了诸多问题,也正是由于发现了问题,我也学到了诸多东西。在写程序过程中总是会发现许多错误,并且发现自己诸多知识都没掌握好,因此在开始设计之前我把课本后几章又看了一遍。在写时候,我也是把书放在旁边,随时翻阅。这不但让我巩固了已学到知识,也让我弄懂了诸多问题。在这一周里,诸多时候程序没有错误却无法运营,本来束手无策我也学会通过调试程序来发现问题所在,然后解决问题。通过这一周实践操作,我学到了诸多有用东西,这无论是对后来学习还是生活均有无比重要价值。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 专业课程 设计方案 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文