课程设计报告学生成绩管理系统C语言.docx
- 文档编号:12047525
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:27
- 大小:161.29KB
课程设计报告学生成绩管理系统C语言.docx
《课程设计报告学生成绩管理系统C语言.docx》由会员分享,可在线阅读,更多相关《课程设计报告学生成绩管理系统C语言.docx(27页珍藏版)》请在冰豆网上搜索。
课程设计报告学生成绩管理系统C语言
信息学院
课程设计Ⅰ报告
课程名称___C语言程序设计_
题目名称学生成绩管理系统
学生学院__
专业班级
学号
学生姓名
指导教师__________
2012年12月23日
1设计目的与要求3
1.1题目及设计要求3
1.2本程序设计的知识点3
2、功能设计3
2.1、总体设计3
2.3详细设计6
3、程序实现8
3.1程序实现时应考虑的问题8
3.2成绩排序、信息删除、信息保存、文件打开模块核心代码8
3.3程序源代码11
4、测试分析19
4.1测试结果及分析19
5、总结22
6、参考文献:
23
1设计目的与要求
1.1题目及设计要求
题目:
将学生基本信息、学生成绩基本信息要存入文件当中,并且具有文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。
设计要求:
程序具有信息录入、查看、查找、成绩排序、删除信息、保存信息、打开文件、退出系统等功能。
我负责的是成绩排序、信息的删除、信息的保存、文件的打开这四个模块。
1.2本程序设计的知识点
1程序涉及数组,字符串的定义;
2函数调用;
3结构体,指针;
4文件录入
2、功能设计
2.1、总体设计
(1)在此程序中,包括几个头文件:
#include
将stdio.h内容放在这儿,此文件有printf、scanf等函数的定义;
#include
定义字符串变量;
#include
定义了五种类型变量、常用函数例如look()、save();
(2)系统中所包含的函数:
voidlook();/*声明查看函数*/
voidsave();/*声明保存函数*/
voidsearch_name();/*声明按姓名查看函数*/
voidsearch_number();/*声明按学号查看函数*/
voidorder();/*声明排序函数*/
voiddel();/*声明删除函数*/
intopenl();/*声明打开函数*/
voidwelcome();/*声明我的个人信息函数*/
voidtype();/*声明输入函数*/
voidsee();/*声明打开并查看文件函数*/
Main();/*主函数*/
(3)系统中定义的结构体
structstudent/*定义学生信息的结构体类型*/
charnum[15];/*学号*/
charname[20];/*姓名*/
charsex[4];/*性别*/
chardno[20];/*宿舍号*/
intenglish;/*英语成绩*/
intmath;/*数学成绩*/
intchinese;/*语文成绩*/
floataver;/*平均成绩*/
floatsum;/*总成绩*/
(4)系统中定义的全局变量
intn
(5)系统功能模块
2.3详细设计
(1)成绩排序模块
排序功能:
对数据进行排序,通过order函数对数据按平均分进行排序,排序结束后调用save函数保存。
(2)信息删除模块
删除功能:
删除信息,通过del函数实现,删除后调用save函数对数据保存。
(3)信息保存模块
保存功能:
对数据进行保存,用save函数向文件中写入数据实现该功能。
(4)文件打开模块
3、程序实现
3.1程序实现时应考虑的问题
程序代码问题输入时大小写问题、界面是否整洁大方。
在程序实现时,定义是否合理,函数调用语句是否达到要求,控制语句是否合理。
调试程序,运行程序,程序是否达到设计需求等。
3.2成绩排序、信息删除、信息保存、文件打开模块核心代码
voidorder()/*定义排序函数*/
{
system("CLS");
inti,j;
chara;
structstudenttemp;/*声明结构体变量*/
printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n");
for(i=0;i { for(j=i+1;j if(stu[i].sum { temp=stu[i]; stu[i]=stu[j]; stu[j]=temp; } printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name, stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum); } getch(); printf("是否保存? (yorn)"); getchar(); scanf("%c",&a); if(a=='y')/*是否保存排序后的文件*/ save(); else printf("退出"); getch(); } voiddel()/*定义删除学生信息函数*/ { inti; chara; charname[20]; system("CLS"); printf("\t\t\t输入学生名字: \n"); scanf("%s",name); system("CLS"); printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n"); for(i=0;i if(strcmp(stu[i].name,name)==0) { printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name, stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum); getch(); printf("真的删除? (yorn)"); getchar(); scanf("%c",&a); if(a=='y')/*是否删除该信息*/ { for(;i stu[i]=stu[i+1]; n=n-1; printf("你已经删除信息"); } else printf("退出"); getch(); } save(); } voidsave()/*建立保存文件函数*/ { system("CLS"); FILE*fp;/*定义文件型指针*/ inti; if((fp=fopen("student.txt","wb"))==NULL)/*打开输出文件*/ { printf("不能打开文件! \n"); return;/*终止程序*/ } for(i=0;i if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1) printf("文件写入错误\n"); fclose(fp);/*关闭文件*/ printf("\n\n\n\n\t\t\t学生信息保存成功! \n"); printf("\n\n\n\n\t\t\t按任意键返回菜单! ! "); getch(); } voidsee()/*打开并查看文件*/ { system("CLS"); inti; n=openl(); printf("文件打开成功! \n"); printf("按任意键查看! \n"); getch(); printf("学号\t姓名\t性别\t宿舍\t电话\t英语\t数学\t语文\t平均成绩\t总成绩\n"); for(i=0;i { printf("%s\t%s\t%2s\t%s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name, stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum); } printf("\n\n\n\t\t\t按任意键返回菜单"); getch(); } 3.3程序源代码 #include"stdio.h" #include"conio.h" #include"string.h" #include"stdlib.h" voidlook();/*声明查看函数*/ voidsave();/*声明保存函数*/ voidsearch_name();/*声明按姓名查看函数*/ voidsearch_number();/*声明按学号查看函数*/ voidorder();/*声明排序函数*/ voiddel();/*声明删除函数*/ intopenl();/*声明打开函数*/ voidwelcome();/*声明我的个人信息函数*/ voidtype();/*声明输入函数*/ voidsee();/*声明打开并查看文件函数*/ structstudent/*定义学生信息的结构体类型*/ { charnum[15];/*学号*/ charname[20];/*姓名*/ charsex[4];/*性别*/ chardno[20];/*宿舍号*/ intenglish;/*英语成绩*/ intmath;/*数学成绩*/ intchinese;/*语文成绩*/ floataver;/*平均成绩*/ floatsum;/*总成绩*/ }stu[100]; intn;/*声明一个全局变量*/ voidmain()/*主函数即用户的操作界面*/ { intn; for(;;) { printf("\n"); printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("\t※※\n"); printf("\t※欢迎来到学生信息管理系统※\n"); printf("\t※※\n"); printf("\t※系部: 计科系专业: 计算机科学与技术※\n"); printf("\t※姓名: 学号: 2011091124※\n"); printf("\t※姓名: 学号: 2011091152※\n"); printf("\t※※\n"); printf("\t※指导老师: 马瑜※\n"); printf("\t※※\n"); printf("\t※主菜单※\n"); printf("\t※※\n"); printf("\t※▲1.录入信息▲※\n");/*键入学生的信息*/ printf("\t※▲2.查看信息▲※\n");/*查看录入的学生信息*/ printf("\t※▲3.姓名查找▲※\n");/*按姓名查看学生的信息*/ printf("\t※▲4.学号查找▲※\n");/*按学号查看学生的信息*/ printf("\t※▲5.成绩排序▲※\n");/*排序*/ printf("\t※▲6.删除信息▲※\n");/*删除学生信息*/ printf("\t※▲7.保存信息▲※\n");/*保存*/ printf("\t※▲8.打开文件▲※\n");/*打开文件*/ printf("\t※▲9.退出系统▲※\n");/*退出*/ printf("\t※※\n"); printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n"); printf("请输入选择项(1-9): "); scanf("%d",&n); printf("\n\n\n\n"); if(n>0&&n<10) { switch(n) { case1: type();break;/*调用键入学生信息函数*/ case2: look();break;/*调用查看函数*/ case3: search_name();break;/*调用姓名查看函数*/ case4: search_number();break;/*调用学号查看函数*/ case5: order();break;/*调用排序函数*/ case6: del();break;/*调用删除函数*/ case7: save();break;/*调用保存函数*/ case8: see();break; case9: printf("\t\t※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("\t\t※※\n"); printf("\t\t※谢谢使用! ※\n"); printf("\t\t※再见! ※\n"); printf("\t\t※※\n"); printf("\t\t※※※※※※※※※※※※※※※※※※※※※※※※\n"); exit(0); } } else {system("CLS"); printf("\t\t※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("\t\t※※\n"); printf("\t\t※输入错误! ※\n"); printf("\t\t※请退出! ※\n"); printf("\t\t※※\n"); printf("\t\t※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("\n\n\n\t\t\t按任意键返回菜单"); getch(); } } } voidtype()/*定义录入学生信息函数*/ { system("CLS"); inti;/*定义局部变量*/ printf("\t\t输出你想输入的学生信息个数: "); scanf("%d",&n); for(i=0;i { printf("\n\t\t\t----------------\n"); printf("\t\t\t学号: "); scanf("%s",&stu[i].num);/*输入学号*/ printf("\t\t\t姓名: "); scanf("%s",&stu[i].name);/*输入姓名*/ printf("\t\t\t性别: "); scanf("%s",&stu[i].sex);/*输入性别*/ printf("\t\t\t宿舍号: "); scanf("%s",&stu[i].dno);/*输入宿舍*/ printf("\t\t\t英语: "); scanf("%d",&stu[i].english);/*输入英语成绩*/ printf("\t\t\t数学: "); scanf("%d",&stu[i].math);/*输入数学成绩*/ printf("\t\t\t语文: "); scanf("%d",&stu[i].chinese);/*输入语文成绩*/ stu[i].aver=((float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese)/3;/*计算平均成绩*/ stu[i].sum=(float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese;/*计算总成绩*/ printf("\t\t\t平均成绩=%4.1f\n",stu[i].aver);/*输出平均成绩*/ printf("\t\t\t总成绩=%4.1f\n",stu[i].sum);/*输出总成绩*/ } printf("\n\t\t\t按任意键返回菜单! ! "); getch(); save(); } voidsave()/*建立保存文件函数*/ { system("CLS"); FILE*fp;/*定义文件型指针*/ inti; if((fp=fopen("student.txt","wb"))==NULL)/*打开输出文件*/ { printf("不能打开文件! \n"); return;/*终止程序*/ } for(i=0;i if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1) printf("文件写入错误\n"); fclose(fp);/*关闭文件*/ printf("\n\n\n\n\t\t\t学生信息保存成功! \n"); printf("\n\n\n\n\t\t\t按任意键返回菜单! ! "); getch(); } voidlook()/*定义查看函数*/ { system("CLS"); inti; //n=openl();/*调用openl函数*/ printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n"); for(i=0;i { printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name, stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum); } printf("\n\n\n\t\t\t按任意键返回菜单"); getch(); } voidsearch_name()/*按姓名查看函数*/ { system("CLS"); inti; charname[20];/*声明字符数组*/ printf("\t\t\t请输入学生姓名: \n"); scanf("%s",name); printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n"); for(i=0;i if(strcmp(stu[i].name,name)==0)/*将输入的姓名与结构体中的姓名进行比较*/ { printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name, stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum); printf("\n\n\n\t\t\t按任意键返回菜单"); } getch(); } voidsearch_number()/*定义按学号查看函数*/ { system("CLS"); inti; charnumber[15];/*声明字符数组*/ printf("\t\t\t请输入学号: \n"); scanf("%s",number); printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n"); for(i=0;i if(strcmp(stu[i].num,number)==0)/*将输入的学号与结构体中的学号进行比较*/ printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name, stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum); printf("\n\n\n\t\t\t按任意键返回菜单"); getch(); } voidorder()/*定义排序函数*/ { system("CLS"); inti,j; chara; structstudenttemp;/*声明结构体变量*/ printf("学号\t姓名\t性别\t宿舍\t英语\t数学\t语文\t平均成绩\t总成绩\n"); for(i=0;i { for(j=i+1;j if(stu[i].sum { temp=stu[i]; stu[i]=stu[j]; stu[j]=temp; } printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%.1f\t\t%.1f\n",stu[i].num,stu[i].name, stu[i].sex,stu[i].dno,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum); } getch(); printf("是否保存? (yorn)"); getchar(); scanf("%c",&a); if(a=='y')/*是否保存排序后的文件*/ save(); else printf("退出"); getch(); } v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 学生 成绩管理系统 语言
![提示](https://static.bdocx.com/images/bang_tan.gif)