1、学生成绩管理系统课程设计 学生成绩管理系统课程设计报告 编写人: 组 员: 完成日期:2011-12-22 辅导教师: 批阅日期: 分 数: 一、 功能描述此成绩管理系统主要利用指针实现,由如下几个功能模块实现1 输入模块:主要完成将学生信息记录存入指针域的工作。2 查看模块:浏览已存入的学生信息。3 排列模块:主要是将学生信息按学号排序。4 插入模块:主要完成插入学生信息的工作。5 删除模块:删除部分学生信息。6 查找模块:主要完成查找学生信息。7 输出统计模块:主要是输出学生的统计信息。二、功能模块设计1. 主函数执行流程:通过主函数来调用菜单函数,以此对学生信息进行操作。 void ma
2、in() 2. 输入模块:对学生信息进行输入。 void input() 3. 查看模块:浏览已存入的学生信息。 void display() 4. 排列模块:主要是将学生信息按学号排序。 void Sort_by_num () 5 插入模块:主要完成插入学生信息的工作。 int Insert_a_record () 6 删除模块:删除部分学生信息。int Delete_a_record().7 查找模块:主要完成查找学生信息。void Query_a_record().8.输出统计模块:主要是输出学生的统计信息。void Query_a_record().三 数据结构设计 1.学生信息结构体
3、typedef struct char num10; char name20; char sex2; int gaoshu; int yingyu; int wuli; int jisuanji; Student; Student stu80; int menu_select() char c; do system(cls); system(color 2b); printf(tt |-|nn); printf(tt | 青海大学土木工程学院房建(1)班 |nn); printf(tt | 组长: 华丽 |nn); printf(tt | 组员: 田丹 |nn); printf(tt | 韩印
4、海 马英才 |nn); printf(tt |-|nn); printf(tt *学生成绩管理系统*nn); printf(tt * 1. 输入记录 : 2. 查看记录 : *nn); printf(tt * 3. 排列顺序 : 4. 插入记录 : *nn); printf(tt * 5. 删除记录 : 6. 查找记录 : *nn); printf(tt * 7. 输出统计 : 0. 退出系统 : *nn); printf(tt *nn); printf(tt请做出选择(0-7):); c=getchar(); while(c7); return(c-0); 四 函数功能描述 1.输入函数 i
5、nput() int Input(Student stud,int n) int i=0; char sign,x10; while(sign!=n&sign!=N) printf(tttstudents num:); scanf(ttt%s,studn+i.num); printf(tttstudents name:); scanf(ttt%s,studn+i.name); printf(tttstudents sex:); scanf(ttt%s,studn+i.sex); printf(tttstudents gaoshu:); scanf(ttt%d,&studn+i.gaoshu);
6、 printf(tttstudents yingyu:); scanf(ttt%d,&studn+i.yingyu); printf(tttstudents wuli:); scanf(ttt%d,&studn+i.wuli); printf(tttstudents jisuanji:); scanf(ttt%d,&studn+i.jisuanji); gets(x); printf(tttany more records?(Y/N); scanf(ttt%c,&sign); i+; return(n+i); 2. 查看函数:Display() void Display(Student stu
7、d,int n) int i; printf(tt-n) printf(tt学号 姓名 性别 高数 英语 物理 计算机n); printf(tt-n); for(i=1;i1&i%10=0) printf(tt-n); printf(tt); system(pause); printf(tt-n); printf(ttt); system(pause); 3. 排列函数:Sort_by_num“()void Sort_by_num(Student stud,int n) int i,j,*p,*q,s; char t10; for(i=0;in-1;i+) for(j=0;j0) strcpy
8、(t,studj+1.num); strcpy(studj+1.num,studj.num); strcpy(studj.num,t); strcpy(t,studj+1.name); strcpy(studj+1.name,studj.name); strcpy(studj.name,t); strcpy(t,studj+1.sex); strcpy(studj+1.sex,studj.sex); strcpy(studj.sex,t); p=&studj+1.gaoshu; q=&studj.gaoshu; s=*p; *p=*q; *q=s; p=&studj+1.yingyu; q=&
9、studj.yingyu; s=*p; *p=*q; *q=s; p=&studj+1.wuli; q=&studj.wuli; s=*p; *p=*q; *q=s; p=&studj+1.jisuanji; q=&studj.jisuanji; s=*p; *p=*q; *q=s; 5. 插入函数:Insert_a_record() int Insert_a_record(Student stud,int n) char x10; printf(tttstudents num:); scanf(ttt%s,studn.num); printf(tttstudents name:); scan
10、f(ttt%s,studn.name); printf(tttstudents sex:); gets(ttt%s,studn.sex); printf(tttstudents gaoshu:); scanf(ttt%d,&studn.gaoshu); printf(tttstudents yingyu:); scanf(ttt%d,&studn.yingyu); printf(tttstudents wuli:); scanf(ttt%d,&studn.wuli); printf(tttstudents jisuanji:); scanf(ttt%d,&studn.jisuanji); ge
11、ts(x); n+; Sort_by_num(stud,n); printf(tttInsert Successed!n); return(n); 6 删除函数:Delete_a_record() int Delete_a_record(Student stud,int n) char s20; int i=0,j; printf(ttttell me his(her) name:);scanf(%s,s); while(strcmp(studi.name,s)!=0&in) i+; if(i=n) printf(tttnot find!n); return(n); for(j=i;jn-1;
12、j+) strcpy(studj.num,studj+1.num); strcpy(studj.name,studj+1.name); strcpy(studj.sex,studj+1.sex); studj.gaoshu=studj+1.gaoshu; studj.yingyu=studj+1.yingyu; studj.wuli=studj+1.wuli; studj.jisuanji=studj+1.jisuanji; printf(tttDelete Successed!n); return(n-1); 7 查找函数:Query_a_record() void Query_a_reco
13、rd(Student stud,int n) char s20; int i=0; printf(tttinput his(her) name:); scanf(ttt%s,s); while(strcmp(studi.name,s)!=0&in) i+; if(i=n) printf(tttnot find!n); return; printf(ttthis(her) number:%sn,studi.num); printf(ttthis(her) number:%sn,studi.sex); printf(ttthis(her) shuxue:%dn,studi.gaoshu); pri
14、ntf(ttthis(her) yingyu:%dn,studi.yingyu); printf(ttthis(her) yuwen:%dn,studi.wuli); printf(ttthis(her) yuwen:%dn,studi.jisuanji); 8 输出统计函数Statistic()void Statistic(Student stud,int n) int i,j=0,k=0; float aver,sum=0.0; for(i=0;istudi.gaoshu) j=i; if(studk.gaoshustudi.gaoshu) k=i; aver=1*sum/n; print
15、f(tttthere are %d records.n,n); printf(tttthe lowest 高数 score:n); printf(tttnumber:%s name:%s sex:%s score:%dn,studj.num,studj.name,studj.sex,studj.gaoshu); printf(tttthe hignest 高数 score:n); printf(tttnumber:%s name:%s sex:%s score:%dn,studk.num,studk.name,studk.sex,studk.gaoshu); printf(tttthe 高数
16、average score is %5.2fn,aver); 五 程序实现1源代码分析 程序预处理 #include #include #include #include 主函数main() void main() 主菜单界面 printf(tt |-|nn); printf(tt | 青海大学土木工程学院房建(1)班 |nn); printf(tt | 组长: 华丽 |nn); printf(tt | 组员: 田丹 冶成虎 |nn); printf(tt | 韩应海 马英才 |nn); printf(tt |-|nn); printf(tt *学生成绩管理系统*nn); printf(tt
17、* 1. 输入记录 : 2. 查看记录 : *nn); printf(tt * 3. 排列顺序 : 4. 插入记录 : *nn); printf(tt * 5. 删除记录 : 6. 查找记录 : *nn); printf(tt * 7. 输出统计 : 0. 退出系统 : *nn); printf(tt *nn); printf(tt请做出选择(0-7):); c=getchar(); while(c7); return(c-0); 二、 运行结果1. 主界面2.浏览界面(1)输入并查看界面(2)、插入并查看界面(3)、删除并查看界面(4)、删除界面(5)、输出统计界面(6) 、退出程序界面七
18、设计小结 本次课程设计我们五人同心协力,最终写出了这个程序,现将这个程序的优缺点总结如下。 优点:能够实现输入,查看,排序,插入,统计,删除等功能。还有就是改变运行屏幕的一贯黑白色,采用绿背景蓝字的模式,显示清晰、环保、美观的特点。界面布局整齐、干净,让人一目了然,方便查找。缺点:浏览界面对不齐,只能实现简单的一些功能,排序只能按学号进行排序,统计只能按单一科目进行,还有就是录入的信息不是很多,这个程序要录入信息时,必须输入要求输入的条数才会终止,半途不可以终止,比较不好,浏览界面的性别后总会有一个英文字母显示。经过这次课程设计我们学到了很多,我们组成员之间合作很愉快,同时也体验到了这门课确实很难,在修改的时候有时候没改对,反而多了很多错误,让大家不知道如何是好。以后需要再接再厉。八 任务分配华丽:主要负责编写主函数和菜单函数,田丹:主要负责删除及查找函数,冶成虎:主要负责输出统计函数,韩应海:主要负责输入排列函数,马英才:主要负责查看及插入函数。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1