C语言程序设计课程设计学生成绩管理系统.docx
- 文档编号:28840715
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:24
- 大小:279.22KB
C语言程序设计课程设计学生成绩管理系统.docx
《C语言程序设计课程设计学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计学生成绩管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
C语言程序设计课程设计学生成绩管理系统
C语言程序设计课程设计
-—班级成绩管理系统
院系:
****学院
专业:
****专业
班级:
*级*班
姓名:
***
学号:
*********
导师:
***
1.设计目的
2.设计任务
3.设计内容与步骤
3—1.实现的功能
3-2.数据存储方式
3-3.功能目录
3—4.程序流程图
3—5.测试与评价
3—6.体会与收获
4.参考文献
5.附录
5—1.用户手册
5—2.源代码清单
1.设计目的
(1)熟练掌握C语言的基本知识和技能
(2)基本掌握结构化程序设计的思路和方法
(3)熟练掌握指针的用法和用链表存储数据的方法
(4)能够利用所学的基本知识和技能,发挥自学能力和查找资料的能
力,解决稍微复杂的结构化程序设计问题
(5)培养创新能力和良好的思维能力。
2.设计任务
(1)编写一个班级成绩管理系统,以文件形式保存班级学生的基本信息。
(2)能运用自己编写的程序对学生信息进行一定的处理.
从设计目的之后奇数页开始撰写。
调试环境:
VC6。
0
完成人:
***
3.设计内容与步骤
3.1实现的功能
a。
学生成绩登记
b。
学生信息删除
c.学生信息修改
d.学生信息查询
e。
学生成绩排序
f。
密码功能
3.2数据存储方式
用结构数组存储数据,以可执行文件形式保存学生信息。
3.3功能目录
本系统首先设计出了主函数,然后根据去要实现的功能分别设计了密码系统,学生信息录入、显示、查询、删除、修改、添加功能的子函数。
在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的内容读取到内存然后打印出来。
删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的FOR循环将该人从内存里删除,然后再用写的方式打开文件,将内存内的信息写入文件,实现删除。
查找也是先打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。
修改也大体和删除相同,添加函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。
3—4.程序流程图
3-5.测试与评价
1.运行进入程序主菜单
主选单具有所有函数的功能实现的选择功能,通过主选单的操作进入各个功能。
主选单主要由主函数提供,其功能由子函数实现.
a.班级成绩管理主界面
密码为:
123456
1学生信息输入,按回车
学号
姓名
性别
年龄
成绩
b。
学生信息显示
c学生信息查询
d学生信息删除
e学生信息排序
f学生信息修改
g退出系统
3—6.体会与收获
通过这次课程设计,我对很多的函数有新的认识,也学会运用多种函数,我也明白写软件的基本过程和基本方法。
写软件的过程中我又学到曾经自己不知道的函数或是自己不会的函数的用法。
特别是文件的开启和关闭,读与写。
这次课程设计课总的来说让我受益匪浅。
4.参考文献
【1】谭浩强。
C程序设计(第三版)。
北京:
清华大学出版社,2005
【2】谭浩强.C程序设计题解与上机指导.第三版。
北京:
清华大学出版社,2005
【3】C语言程序设计北京高等教育出版社
【4】其他网络资源
5.附录
5-1.用户手册
执行软件
首先进入主界面时输入密码:
123456
1当软件中总有输入人员信息时:
A.请输入你要选择的功能:
根据提示输入1按回按回车
输入学生学号,姓名,性别,年龄,成绩;按回车
B.学生信息查询
根据提示输入2按回车
输入需要查询人员学号:
按回车
没有信息。
C.删除人员信息:
根据提示输入3按回车
输入需要删除的人员学号,姓名,按回车
D.排序人员信息:
根据提示输入4按回车
显示班级成绩的名次.
E.修改学生信息
根据提示输入5按回车
根据提示可修改学号,姓名,性别,年龄,成绩等.
F.退出系统
根据提示输入6按回车,接着输入密码按回车。
5—2.源代码清单
//软件中使用结构体和结构体数组
#include〈stdio。
h〉
#include #include〈stdlib。 h> #include h〉//来源于网络资源 #defineN30 intM=0; structstudent { charnum[10];//对用户的信息进行保存,他们都以二进制的形式读写。 其中: charname[20]; charsex[10]; intage; floatscore1; floatscore2; floatscore3; floatscore4; floatsum;//分别对姓名、学号、性别、、年龄、成绩进行储存 在子函数中还使用了结构体数组: }stu[N]; voidmenu(); voidInput(); voidSearch(); voidDel(); voidSort(); voidModi(); voidmain() { intn,k; charstr[10]; printf(”\n");//主菜单系统 printf(”*********************************************\n"); printf("*欢迎进入*\n”); printf("*学生成绩管理系统*\n”); printf(”*********************************************\n”); printf(”\n"); printf("请输入密码继续! ”);//密码系统,密码为123456 printf(”\n”); for(k=0;k〈3;k++) { printf("请输入密码: ”); for(n=0;(str[n]=getch())! =’\r';n++) putchar('*’); printf(”\n”); str[n]=’\0’; if(strcmp(str,”123456")==0) { printf("密码正确! ”); menu(); } else printf(”密码错误! \n请重新输入! \n你已输入%d次",k+1); } printf(”\n\n\n"); system("cls");menu(); } voidmenu() { intas; printf("************************************************\n”); printf(”欢迎进入主菜单! *\n”); printf(”************************************************\n"); printf(”1。 学生信息的录入”); printf("2.学生信息的查询"); printf(”3。 学生信息的删除”); printf("4.学生信息的排序"); printf("5.学生信息的修改”); printf("6。 退出系统"); printf("请选择操作: ”); scanf("%d",&as); if(as<1||as>6)as=0; switch(as) { case0: printf("输入错误! \n”);break; case1: Input();break; case2: Search();break; case3: Del();break; case4: Sort();break; case5: Modi();break; case6: break; default: menu(); } } voidInput() { intnum[20]; staticinti=0; intflag=1; charl; system(”cls"); printf("***********欢迎进入学员信息的录入! ***********\n"); while(flag) { i++;printf("AA%dAA",i); printf(”\n输入第%d个学员学号: ",i); scanf(”%s”,stu[i].num); printf("\n输入第%d个学员姓名: ",i); scanf(”%s",stu[i].name); printf("\n输入第%d个学员性别: ",i); scanf(”%s”,stu[i].sex); printf("\n输入第%d个学员年龄: ”,i); scanf("%d",&stu[i].age); printf(”\n输入第%d个学员成绩1: ",i); scanf("%f",&stu[i]。 score1); printf(”\n输入第%d个学员成绩2: ”,i); scanf("%f",&stu[i].score2); printf(”\n输入第%d个学员成绩3: ”,i); scanf(”%f”,&stu[i]。 score3); printf(”\n输入第%d个学员成绩4: ”,i); scanf(”%f",&stu[i].score4); stu[i]。 sum+=stu[i]。 score1+stu[i].score2+stu[i]。 score3+stu[i].score4; printf("学号: %s\n”,stu[i].num); printf("姓名: %s\n",stu[i].name); printf(”性别: %s\n”,stu[i].sex); printf("年龄: %d\n”,stu[i].age); printf(”成绩1: %f\n",stu[i].score1); printf(”成绩2: %f\n",stu[i]。 score2); printf(”成绩3: %f\n",stu[i]。 score3); printf(”成绩4: %f\n”,stu[i].score4); printf("总分: %f\n",stu[i].sum); printf("是否继续输入? (Y/N)”); getchar(); scanf(”%c",&l); if(l=='n'||l=='N') flag=0; elseif(l==’Y’) Input(); elsebreak; } system(”cls"); menu(); } voidSearch()//子函数SEARCH { inti=0,flag=1; charcn; charstr[20]; system(”cls"); printf("***********欢迎进入学员信息查询系统! ***********\n"); printf(”请输入要查找的学号: ");scanf("%s",str); while(flag) { if((strcmp(str,stu[i].num))==0) { printf(”学号姓名性别年龄成绩1成绩2成绩3成绩4\n”); printf(”%s%s%s%d%f%f%f%f\n”,stu[i].num,stu[i].name,stu[i]。 sex,stu[i]。 age,stu[i]。 score1,stu[i].score2,stu[i].score3,stu[i]。 score4); break; }i++; if(i==N) printf(”无此学号! \n"); if(i==N)flag=0; } printf(”是否继续输入(Y/N)? "); getchar(); if(getchar()==’Y')Search(); menu(); } voidDel() { inti,j,flag=1; charcn; charstr[20]; system(”cls"); printf(”***********欢迎进入学员信息删除系统! ***********\n”); while(flag) {printf(”请输入要删除的学员学号: ”); scanf("%s",&str); for(i=0;i〈N;i++) if(strcmp(str,stu[i].num)==0) { for(j=i;j〈N;j++) stu[j]=stu[j+1]; printf(”删除成功! \n”); printf("是否继续输入(Y/N): ”); getchar(); scanf("%c",&cn); if(cn=='n’||cn==’N’)flag=0; } system(”cls"); } menu(); } voidSort() { structstudentt; inti,j,k,p,x,flag=1; floatsum[N]; floatf,g; charcn; printf("***********欢迎进入学员信息排序系统! ***********\n"); while(flag) { for(i=0;i〈N;i++) sum[i]=stu[i].score1+stu[i]。 score2+stu[i].score3+stu[i].score4; for(k=0;k〈N-1;k++) { x=k; for(p=k+1;p〈N;p++) if(sum[x]>sum[p]) { x=p; g=sum[k]; sum[k]=sum[x];sum[x]=g; t=stu[k]; stu[k]=stu[x]; stu[x]=t; }} printf(”学号\t姓名\t性别\t年龄\t成绩1\t成绩2\t成绩3\t成绩4\t总分\n”); for(i=N;i〉0;i--) if(stu[i]。 age! =0) printf(”%s\t%s\t%s\t%d\t%.2f\t%.2f\t%。 2f\t%.2f\t%。 2f\n”,stu[i]。 num,stu[i]。 name,stu[i]。 sex,stu[i]。 age,stu[i]。 score1,stu[i]。 score2,stu[i]。 score3,stu[i].score4,stu[i]。 sum); printf(”是否返回主菜单(y/n): "); getchar(); scanf(”%c",&cn); if(cn=='y’||cn==’Y')flag=0; } system("cls”); menu(); } voidModi() { inti=0,flag=1; chark; charstr[20]; printf("***********欢迎进入学员信息修改系统! ***********\n”); while(flag) { i++; printf("请输入要修改的学生的学号: \n"); scanf("%s",str); if(strcmp(str,stu[i].num)==0) { printf(”学号\t姓名\t性别\t年龄\t成绩1\t成绩2\t成绩3\t成绩4\t总分\n”); printf(”%s\t%s\t%s\t%d\t%.2f\t%。 2f\t%。 2f\t%。 2f\t%.2f\n",stu[i]。 num,stu[i]。 name,stu[i]。 sex,stu[i].age,stu[i]。 score1,stu[i].score2,stu[i]。 score3,stu[i]。 score4,stu[i].sum); printf("\n请输入修改内容\n"); printf(”请修改学生学号: "); scanf(”%s",stu[i]。 num); printf(”请修改学生姓名: "); scanf("%s",stu[i].name); printf("请修改学生性别: "); scanf(”%s”,stu[i]。 sex); printf(”请修改学生年龄: ”); scanf(”%d",&stu[i].age); printf(”请修改成绩1: ”); scanf("%f”,&stu[i].score1); printf(”请修改成绩2: "); scanf("%f”,&stu[i]。 score2); printf(”请修改成绩3: ”); scanf(”%f",&stu[i].score3); printf("请修改成绩4: ”); scanf(”%f”,&stu[i].score4); stu[i]。 sum=stu[i].score1+stu[i].score2+stu[i].score3+stu[i]。 score4;printf("AA%fAA”,stu[i]。 sum); printf(”请输出修改后的学员信息: \n”); printf(”学号\t姓名\t性别\t年龄\t成绩1\t成绩2\t成绩3\t成绩4\t总分\n"); printf(”%s\t%s\t%s\t%d\t%。 2f\t%。 2f\t%.2f\t%。 2f\t%.2f\n",stu[i].num,stu[i].name,stu[i]。 sex,stu[i].age,stu[i]。 score1,stu[i]。 score2,stu[i].score3,stu[i].score4,stu[i].sum); break; } if(i==N) printf("无此学号! \n"); printf("是否继续输入(Y/N)? ”); getchar(); scanf(”%c",&k); if(k==’n’||k==’N')flag=0; system(”cls”); } menu(); getchar(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课程设计 学生 成绩管理系统