成绩管理系统设计与实现11022233.docx
- 文档编号:27058492
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:21
- 大小:132.41KB
成绩管理系统设计与实现11022233.docx
《成绩管理系统设计与实现11022233.docx》由会员分享,可在线阅读,更多相关《成绩管理系统设计与实现11022233.docx(21页珍藏版)》请在冰豆网上搜索。
成绩管理系统设计与实现11022233
课程设计报告
课程名称《C语言程序设计》
课题名称班级档案管理系统
专业轻化工程
班级轻化0702
学号200706020212
姓名唐莹
指导教师陈世清扬子华罗敬
2009年5月4日
湖南工程学院
课程设计任务书
课程名称《C语言程序设计》课题班级档案管理系统
专业班级轻化工程
学生姓名唐莹
学号200706020212
指导老师陈世清扬子华罗敬
审批
任务书下达日期2009年5月4日
任务完成日期2009年5月10日
一、设计内容与设计要求
1.设计内容:
对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。
2.设计要求:
1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
学号、姓名、性别、年龄、备注。
2)本系统显示这样的菜单:
请选择系统功能项:
a.学生基本信息录入(要求先输入密码)
b.学生基本信息显示
c.学生基本信息删除(要求先输入密码)
d.学生基本信息修改(要求先输入密码)
e.学生基本信息查询
(1)按学号查询
(2)按姓名查询
(3)按性别查询
(4)按年龄查询
f.退出系统
3)执行一个具体的功能之后,程序将重新显示菜单。
4)将学生基本信息保存到文件中。
5)进入系统之前要先输入密码。
二、进度安排
星期一布置任务,查找资料。
星期二确定总体方案,进行详细设计。
星期三编写程序,上机调试。
星期四编写程序,上机调试。
星期五答辩,总结。
星期六~星期天写课程设计报告
程序目录
一.课程设计的目的和要求
二.功能介绍
三.心得体会
四.使用说明
五.参考文献
六.源程序清单
七.附图
一.课程设计目的与要求
全面熟悉C语言基本知识,进一步掌握程序设计与调试,结果分析的方法和技巧,进一步提高上机动手能力,养成提供文档资料的习惯,掌握程序化设计的重要思想,采用自顶向下,逐步求精的方法编制程序解决一些实际问题,为以后的学习和工作打下较好的基础。
为将来使用和开发软件积累一些典型的案例处理经验。
二.功能介绍
1.问题描述:
对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。
2.基本功能:
1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
学号、姓名、性别、年龄、备注。
2)本系统显示这样的菜单:
请选择系统功能项:
f.学生基本信息录入(要求先输入密码)
g.学生基本信息显示
h.学生基本信息删除(要求先输入密码)
i.学生基本信息修改(要求先输入密码)
j.学生基本信息查询
(1)按学号查询
(2)按姓名查询
f.退出系统
3)执行一个具体的功能之后,程序将重新显示菜单。
4)将学生基本信息保存到文件中。
5)进入系统之前要先输入密码。
三.程序流程图(附后)
四.心得体会
按照教学安排计划,我们轻化班在十一周进行了一周的关于C语言的课程设计。
这次实习周给我们充足的时间自己构思,自己设计,自己调试,自己分析,同时还有专门的老师指导我们。
通过这次的课程设计我体会很多,虽然书上的知识我们学完了,但由于C语言课上期就学完了,很多东西都慢慢的忘记了。
虽然都只是些基础,但要真正掌握并且会灵活应用它来编程还真的难。
我们平常没有什么机会去进行编程,这次刚开始时很无奈,但经过几天的上机实践以后自己也开始慢慢的去学习,去实践!
C语言课程设计不仅能提高教学质量、增强教学效果、而且能培养和提高我们分析问题、解决问题能力和创新能力。
老师在给我们定制的任务书中中,围绕我们的所学的书本的基本知识点引导引导我们思考和探索,是我们的思想活跃起来。
课程设计完了,自己也掌握了一些知识!
但自己要说真正掌握了很多知识的话,也没什么太多!
但学习就是要不断的发现问题,才能不断的解决问题,不然不会有什么成效,更谈不上进步啦。
实际上,问题是最好的老师,是学生学习的引导没有问题便没有深入。
在C语言程序设计过程中,我们就是在问题解决中学习,即提出问题,老师也留了大量的时间给我们思考、讨论、解决问题,从而更深入地展开学习。
这样就充分的调动了我们学习的积极性和主动性。
老师教给学生正确的学习方法,给我们这么好的机会,让我们掌握C语言的的思想精髓在这次的实践过程中我独立的思考着这些问题,自己试着设计着这些比较有趣的课题,把课堂上学的for,Switch和while语句还有数组的使用和指针的用法与作用都有了进一步的认识。
从这次编程中我认识到做什么事情要求绝对的细心,马虎不得。
程序设计课程的实践性很强,通过这次实践也增强自己的动手能力。
让自己在以后的学习中要努力,认真
这次的课程设计题是《班级档案管理系统》,设计选题既接近实际需要,又能够让我们感兴趣、能够运用所学知识解决。
锻炼了我们的动手能力,进一步培养我们分析问题、解决问题、研究和探索问题的能力和团队协作精神。
C语言不仅仅要求我们掌握基本的语法知识,更要通过课程设计培养抽象思维和逻辑推理能力,掌握程序设计的思想和方法尽管在设计中遇到了不少的问题,回想起来最主要的原因就是对C语言程序设计的不熟悉和不了解,这样就算是遇到了错误了不知道修改,所以程序设计就无法进行下去。
但是通过一周的课程设计,使我对C语言有了很大程度上的了解,也能掌握一写基本的有关C语言的知识。
通过这次的程序设计周,让我明白了只有努力,只要自己真正的去做一件事情,认真,仔细!
这样才能让自己不仅在这一周,更在以后的学习和工作中有很好的耐心,才能做出一番成就!
五.用户使用说明书
Main()函数是程序的入口,程序从它开始执行,它里面包含了各个模块,其中也要声明一些变量通过调用各个函数实现各个模块的作用,并且包含一个switch选择语句,实现选择功能。
Strcmp():
字符串比较函数,进行密码等字符串的比较;
Strcpy():
字符串拷贝函数,进行字符串的拷贝;
add():
添加函数,用于添加学生信息;
disp():
显示函数用于显示学生信息;
modi():
修改函数用于修改学生信息;
find():
查找函数用于根据学号`姓名进行查找;
dele():
删除函数用于删除学生基本信息;
进入此程序主菜单时,首先必须正确输入正确的密码,如果输入错误,系统便提醒你再次输入密码;如果输入了正确的密码,便进入了主菜单。
进入之后系统便提醒你从a,b,c,d,e,g中选择你要进行的操作。
选择a便进入了显示学生基本信息的函数,系统便将储存的所有学生的基本信息显示出来。
然后按Enter键便会回到主函数菜单。
选择b便进入了增加学生基本信息的函数,进入此函数后按照系统的要求依次输入你要增加学生信息的人数,新增加学生的学号,姓名,性别,年龄和其他信息,然后核对系统显示学生的信息是否与你所输入的一致,无误后按Enter键接着输入下一个学生的信息。
输入完毕后,按Enter键回到主菜单。
选择便进入了删除学生基本信息函数,选择你要删除学生信息的学号,系统便进行删除。
如删除成功系统便显示Delesucessful;否则显示Delefailed.显示Delefailed则说明系统中没有你所要删除的学生的信息。
按Enter键再回到主菜单。
选择d便进入了修改学生基本信息菜单,进行修改前必须再次输入正确得密码,输入正确进入修改函数;错误,系统便提醒你再次输入密码。
进入修改函数后,输入你要修改学生信息的学号,根据系统的显示依次输入新的学生的学号,姓名,性别,年龄和其他信息。
核对系统所显示的学生的信息,无误后,按Enter键返回主菜单。
选择e便进入了查找学生基本信息函数,进入此函数后,根据系统的提示选择你所要查找的方式。
比如你若选择了2,则接着输入你所要查找的姓名。
查找完之后按Enter键返回主菜单。
六.参考文献
[1]谭浩强。
C语言程序设计(第二版)。
清华大学出版社[M],199912
(1):
298-327
[2]苏小红。
C语言程序设计,电子工业出版社,20022
[3]刘振安。
C语言程序设计实训,清华大学出版社,200210
[4]杨路明。
C语言程序设计教程,北京邮电大学出版社
[5]马靖善。
C语言程序设计,清华大学出版社,2005
七.源程序清单
#include
#include
#include
charf[20]="8681208";
struct
{
charnumber[10];/*学生学号*/
charname[20];/*姓名*/
charsex[5];/*性别*/
intage;/*年龄*/
charzb[100];/*备注*/
}stu[50]={{"010101","hujiping","Boy",22,"12-503"},
{"010102","huzhiquan","Boy",23,"12-303"},
{"010103","liuxiang","Boy",19,"12-303"},
{"010104","chenrenming","Boy",20,"12-303"},
{"010105","yulinghua","Boy",22,"12-303"},
{"010106","yaomin","Boy",23,"12-303"},
{"010107","yijianlian","Boy",22,"12-303"},
{"010108","wurongsheng","Boy",19,"12-303"},
{"010109","liulinan","girl",18,"12-303"},
{"010110","weigong","girl",23,"12-303"}};/*数组初始化*/
intadd(inta)/*学生基本信息录入函数*/
{
charj[10],m[1],k[20],l[4],p[50];
intw,i,n;
clrscr();/*清屏处理*/
printf("\naddstudentsnumber:
");
scanf("%d",&n);
for(i=a;i {printf("\nAddtheinformationofstudents"); printf("\n\npleaseentertheNo.: "); scanf("%s",j); printf("\nEnterthename: "); scanf("%s",k); printf("\nEnterthesex: "); scanf("%s",l); printf("\nEntertheage: "); scanf("%d",&w); printf("\nEnterthemoreinformation: "); scanf("%s",p); strcpy(stu[i].number,j);/*拷贝学生基本信息*/ strcpy(stu[i].name,k); strcpy(stu[i].sex,l); stu[i].age=w; strcpy(stu[i].zb,p); getchar(); printf("\nPleasecheckit: "); printf("\nNo.name: sex: age: moreinformation: \n"); printf("%-10.10s%-15.15s%-10.10s%-8d%-25.25s\n",stu[n].number,stu[n].name,stu[n].sex,stu[n].age,stu[n].zb); getchar();} returnn+a; } disp(intm,intn)/*学生基本信息显示函数*/ { inti; printf("\n\nTheinformationofallstudents: "); printf("\n\nNo.name: sex: age: moreinformation: \n"); for(i=m;i<=n;i++) printf("%-10.10s%-15.15s%-10.10s%-8d%-25.25s\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].zb); getchar(); } modi(n)/*学生基本信息修改函数*/ { charj[10],m[1],k[20],l[4],p[50]; into,i,x=0; charh[20]; clrscr();/*清屏处理*/ printf("\npleaseenteryourpassword: ");/*身份验证*/ scanf("%s",h); if(strcmp(h,f)&&x++<3)/*密码比较*/ printf("error,pleasetryagain! "); if(x>3)return; printf("\nMotifytheinformationofstudents: "); printf("\n\npleaseentertheNO.: "); scanf("%s",j); for(i=0;i if(strcmp(j,stu[i].number))break; printf("\nenterthenewname: "); scanf("%s",k); printf("\nenterthesex: "); scanf("%s",l); printf("\nentertheage: "); scanf("%d",&o); printf("\nenterthemoreinformation: \n"); scanf("%s",p); strcpy(stu[i].number,j);/*拷贝学生基本信息*/ strcpy(stu[i].name,k); strcpy(stu[i].sex,l); stu[i].age=o; strcpy(stu[i].zb,p); printf("\npleasecheckit: "); printf("%-10.10s%-15.15s%-10.10s%-8d%-25.25s\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].zb); getchar(); } find(n)/*学生基本信息查找函数*/ {intl,s;clrscr(); printf("\n\nSearchtheinformationofthestudents\n"); printf(" (1)SearchbyNo.\n"); printf(" (2)Searchbyname\n"); printf("Otherkeytomainmenun\n"); printf("Pleasechooseone: "); scanf("%d",&l); switch(l)/*switch语句查找*/ { case1: /*按学号查找*/ {charr[10];ints; printf("\nPleaseentertheNo."); scanf("%s",r); for(s=0;s<=n;s++) if(strcmp(stu[s].number,r)==0) {disp(s,s-1); return; } printf("\nEntererror! ! \nPleasepressanykeywithEnterkeyback! "); getchar(); return;} case2: /*按姓名查找*/ {charr[10],m[1];ints; printf("\nPleaseentertheName."); scanf("%s",r); for(s=0;s<=n;s++) if(strcmp(stu[s].name,r)==0) {disp(s,s-1);return;} printf("\nEntererror! ! \nPleasepressanykeywithEnterkeyback! "); getchar(); return;} } } dele(n)/*学生基本信息删减函数*/ { charr[10],l[1];ints,t,u,; clrscr(); printf("PleasepresstheNo.youwanttodel: "); scanf("%s",r); for(s=0;s<=n;s++) { if(strcmp(stu[s].number,r)==0) { for(t=s;t { strcpy(stu[t].number,stu[t+1].number);/*拷贝学生基本信息*/ strcpy(stu[t].name,stu[t+1].name); strcpy(stu[t].sex,stu[t+1].sex); strcpy(stu[t].zb,stu[t+1].zb); stu[t].age=stu[t+1].age; } printf("\n\nDelsucessful! ! \n");/*删减成功*/ getchar(); returnn-1; } } printf("\n\nDelfailed! ! ");/*删减失败*/ getchar(); returnn; } main()/*主函数*/ { staticintn=9; inti=0,j=0; charm,k[20]="8681208";/*设置密码*/ printf("\npleaseinputyourpassword: ");/*输入密码*/ while((k[i]=getch())! ='\r')/*密码比较*/ {printf("*");i++;} k[i]=0; while(strcmp(k,f)) {i=0;j++; printf("\nPleasepressanykeywithEnterkeyback! "); getch(); printf("\npleaseinputyourpassword: ");/*输入密码*/ while((k[i]=getch())! ='\r') {printf("*");i++;}/*密码比较*/ if(j>=2) {printf("error! "); getchar(); exit(0);} } for(;;) {clrscr();/*班级档案管理系统欢迎界面*/ printf("\n\n\r\r\r\t\211HuaGong0501Dang'anguanli\2221\n"); printf("\t****Pleasemakeachoice****\n");/*选择菜单*/ printf("\n\n\tA.Addtheinformationofthestudents\n"); printf("\tB.Showtheinformationofthestudents\n"); printf("\tC.Motifytheinformationofthestudents\n"); printf("\tD.Deltheinformationofthestudents\n"); printf("\tE.Searchtheinformationofthestudents\n"); printf("\tG.Exittheprogram\n\n"); printf("Pleasechoosea,b,c,d,eorgtoenter\n"); printf("Pleasepressthekey: "); m=getchar();getchar(); switch(m)/*switch语句选择*/ { case'a': case'A': n=add(n);break; case'b': case'B': disp(0,n);break; case'c': case'C': modi(n);break; case'd': case'D': n=dele(n);break; case'e': case'E': find(n);break; case'g': case'G': exit(0); default: printf("yourchoiceerror! tryagain! ! "); } } } _ 附图: 3.删除函数流程图 4.修改函数流程图 5.查找函数流程图 课程设计评分表 课程名称: C语言程序设计 项目 评价 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩 教师签名: 日期:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 成绩管理系统 设计 实现 11022233