C编程的学生信息管理系统.docx
- 文档编号:30692827
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:16
- 大小:18.92KB
C编程的学生信息管理系统.docx
《C编程的学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《C编程的学生信息管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
C编程的学生信息管理系统
《C语言程序设计》实训报告
实训名称:
学生信息管理系统
专业:
通信技术
班级:
通信技术09A1学号:
姓名:
指导教师:
二0一0年三月二十七日
实训成绩
考核、评价项目
考核内容
得分
实训评价
实训表现与态度
(20分)
对实训期间的出勤情况、实训态度、安全意识、职业道德素质评定成绩
职业素质、实训态度、效率观念、协作精神
实训操作过程
(40分)
根据学生实训操作的过程进行考核,评定成绩
根据学生在实训操作过程中的知识掌握情况、程序设计方法和技巧、基本操作技能、知识应用能力、分析问题和解决问题的能力,以及创新能力进行考核。
实训考核
(30分)
根据学生实训,程序设计的结果进行考核,评定成绩
根据实训项目任务要求,对程序设计的结果,分模块进行测试考核
实训文档
(10分)
实训日记、实训报告等评定成绩
表达能力、文档写作能力、文档的规范性
总分
注:
1.成绩的评定标准(要和实训大纲、计划、实训指导书中评分标准一致),上表供参考。
2.“各个实训模块考核”要详细(考什么内容、怎么考),根据实训大纲的成绩评定,具体项目进行细分,可以通过理论考核、口述、实做等多种形式。
一、实训目的
通过《学生信息管理系统》项目的实际编程操作训练,让同学们掌握对实际工程项目的开发与设计的基本方法与步骤,掌握结构体数组、分支结构、循环结构、顺序结构程序设计、函数调用的思想,在日后的工作和学习中能够更加熟练地运用所学的知识。
提高学生们的实际操作能力。
二、实训设计内容及步骤
2.1使用设备或软、硬件
硬件:
PC机
软件:
C集成环境(能够保存学生程序),TC2.0的开发工具
2.2功能设计及思想
本程序可以完成对一部分学生信息包括学号、姓名、性别、数学成绩、英语成绩、总成绩、平均成绩的管理。
支持对学生信息的修改和删除。
并且可以使用账号密码进入该系统。
主要功能设计:
(1)主菜单目录
(2)学生各项信息的输入和输出
(3)学生各项信息的查询
(4)新学生信息的插入
(5)学生各项信息的修改
(6)学生信息的删除
(7)统计总成绩和平均分
(8)通过密码登陆本系统
2.3算法分析
(1)password():
用for语句控制循环,通过strcmp比较密码与输入字符串的相同,进行程序的下一项,不相同三次后,自动结束循环,退出体统。
(2)search():
通过for循环比较学号找出所需要学生信息的下标i,使用printf输出i下标包括的各项信息。
(3)insert():
通过for循环比较学号找出所需要学生信息的下标i,从最后一项开始依次将第N项的信息通过赋值的方式给第N+1项,然后用scanf输入新学生的各项信息,最后保存.
(4)modify():
通过for循环比较学号找出所需要学生信息的下标i,使用scanf将新信息通过从新赋值的方式替换i项的老信息,最后保存。
(5)delete():
通过for循环比较学号找出所需要学生信息的下标i,从i+1项开始依次将下标下包括的信息用结构体整体赋值的方式给第i项,最后保存。
(6)count():
通过for的循环计算总成绩和平均成绩。
2.4各个模块功能
(1)菜单设计模块:
使界面更加清晰、易懂,设置主菜单和子菜单,来区分各分支模块。
介绍有哪些菜单项,哪些子菜单,使操作更加的简单易懂。
(2)保存文件和打开文件模块:
程序和外部的联系可以通过文件来实现,使用保存和文件打开两个基本操作。
(3)登录密码模块:
使用密码登陆保护进入程序的安全性,且有限制错误密码的次数。
提高了程序的安全可靠程度。
(4)输入模块:
输入所需要个数学生各项信息。
(5)输出模块:
提取、输出所有学生各项信息。
(6)查找模块:
通过学号找到学生信息,输出到屏幕显示。
(7)插入模块:
找出插入的位置,将新学生信息插入到指定位置。
(8)修改模块:
单个学生全部信息的修改。
(9)删除模块:
将指定的学生信息删除.
(10)统计模块:
统计学生的总成绩和平均成绩,以及成绩的排序。
(11)主函数模块:
通过链接各个模块,实现各个模块的独立功能,最终实现统一。
三、结论
这个程序可以完成对一部分学生信息包括学号、姓名、性别、数学成绩、英语成绩、数学成绩、总成绩、平均成绩等的管理。
本系统的功能不是非常全面,学生可以根据具体要求对其进行功能上的修改。
其目的是通过该系统的设计,让学生了解如何根据实际问题,分析功能需求,将复杂问题分解成子问题,以功能函数为基础,确定解决问题的方法和步骤,通过函数的调用,从而最终达到模块化设计系统功能的目标,方便对程序的编写。
同时,利用以上这些功能模块可以组成一些基本的信息管理系统,具有增加、删除、修改、查询等功能,如,通讯管理、课程管理、工资管理、图书管理、档案管理等小型管理系统,都可以利用这些方法制作,让各种简单管理都可以轻松完成,全面应对各种问题。
四、附录:
(源程序清单)
#include
#include
#defineN50
menu()
{
printf("\n\n\t\t\t++++++++++++++++++++++++++++\n");
printf("\t\t\t****************************\n");
printf("\t\t\tstudentscoresystems\n");
printf("\t\t\t****************************\n");
printf("\t\t\t++++++++++++++++++++++++++++\n");
printf("\t\t\t1:
:
scoreinput\n");
printf("\t\t\t2:
:
scoreoutput\n");
printf("\t\t\t3:
:
scoresearch\n");
printf("\t\t\t4:
:
scoremodify\n");
printf("\t\t\t5:
:
scoredelete\n");
printf("\t\t\t6:
:
scoresort\n");
printf("\t\t\t0:
:
savereturn\n");
}
password()
{
inti,k;
charsz[7]={'\0'};
clrscr();
printf("\n\t\t*************************************************");
printf("\n\t\t#################################################");
printf("\n\t\t*************************************************\n");
printf("\n\n\n\t\t\tPleaseinputyourpassword:
");
for(k=0;k<3;k++)
{
for(i=0;i<6;i++)
{
sz[i]=getch();
printf("*");
}
if(strcmp(sz,"123456")==0)
return1;
else
printf("\n\t\t\tyourpasswordiserror!
\n\t\t\tpleasetryagain:
");
}
return0;
}
structstinfor
{
intno;
charname[4];
floatenglish;
floatmath;
floataverage;
floatsum;
}st[N];
intpos=0;
input()
{
inti;
charszt[20];
for(i=0;i { printf("\n\t\tPleaseinputyourno.(ifinput-1toexit): "); scanf("%d",&st[pos].no); if(st[pos].no==-1) return; else { printf("\n\t\t\tPleaseinputyourname: "); scanf("%s",st[pos].name); printf("\n\t\t\tPleaseinputyourenglishscore: "); scanf("%s",szt); st[pos].english=atof(szt); printf("\n\t\t\tPleaseinputyourmathscore: "); scanf("%f",&st[pos].math); st[pos].sum=st[pos].english+st[pos].math; printf("\n\t\t\tyourtotalscoreis: "); printf("%f\n",st[pos].sum); st[pos].average=st[pos].sum/2; printf("\n\t\t\tyouraveragescoreis: "); printf("%f\n",st[pos].average); pos++; } } } save() { FILE*pf=fopen("stfo.cuu","w"); if(pf) { fwrite(&st[0],sizeof(structstinfor),1,pf); fclose(pf); } } load() { FILE*pf=fopen("stfo.cuu","r"); if(pf) { fread(&st[0],sizeof(structstinfor),1,pf); fclose(pf); } } output() { inti; printf("\t\tno\tname\tenglish\tmath\tsum\taverage\n"); for(i=0;i { if(st[i].no==-1) break; printf("\t\t%-2d\t%-3s\t%-5.2f\t%-5.2f\t%-5.2f\t%-5.2f\n",st[i].no,st[i].name,st[i].english,st[i].math,st[i].sum,st[i].average); } printf("\n\t\t\tpressanykeytocontinue! "); getch(); } search() { inti,j; clrscr(); printf("\t\tPleaseinputthestudent'sNo: "); scanf("%d",&j); for(i=0;i { if(st[i].no==j) { printf("\t\tno\tname\tenglish\tmath\tsum\taverage\n"); printf("\t\t%d\t%s\t%-5.2f\t%-5.2f\t%-5.2f\t%-5.2f\n",st[i].no,st[i].name,st[i].english,st[i].math,st[i].sum,st[i].average); flushall(); printf("\t\t\tpressanykeytogoon! "); getch(); returni; } } printf("\t\t\tTheNoisnotexist! "); getch(); return-1; } modify() { intk; clrscr(); k=search(); if(k==-1) { getch(); return; } { printf("\n\t\t\tPleaseinputanewNo: "); scanf("%d",&st[k].no); printf("\n\t\t\tPleaseinputnewname: "); scanf("%s",st[k].name); printf("\n\t\t\tPleaseinputnewenglishscore: "); scanf("%f",&st[k].english); printf("\n\t\t\tPleaseinputnewmathscore: "); scanf("%f",&st[k].math); st[k].sum=st[k].english+st[k].math; st[k].average=st[k].sum/2; } } delete() { intk; clrscr(); k=search(); if(k==-1) { printf("\n\t\t\t*****deletefail*****\n"); return; } else { for(;k { st[k].no=st[k+1].no; strcpy(st[k].name,st[k+1].name); st[k].english=st[k+1].english; st[k].math=st[k+1].math; st[k].sum=st[k+1].sum; st[k].average=st[k+1].average; } } printf("\n\t\t\t******deletesuccess! ******"); pos--; getch(); } structstfor { intno; charname[4]; floatenglish; floatmath; floatsum; floataverage; }ti[N]; sort() { intop; clrscr(); printf("\t\t\t*****1>>sortbyNo*****\n"); printf("\t\t\t*****2>>sortbyenglish*****\n"); printf("\t\t\t*****3>>sortbymath*****\n"); printf("\t\t\t*****4>>sortbysum*****\n"); printf("\t\t\t*****Pleaseinputanumber: "); flushall(); op=getchar(); switch(op) { case'1': No();break; case'2': english();break; case'3': math();break; case'4': sum();break; } } No() { inti,j; for(i=0;i { for(j=0;j if(st[j].no>st[j+1].no) { memcpy(&ti[0],&st[j],22); memcpy(&st[j],&st[j+1],22); memcpy(&st[j+1],&ti[0],22); } } printf("\n\t\t\t*****sortsuccess! *****\n\t\t\t*****pressanycontinue.*****"); getch(); } english() { inti,j; for(i=0;i { for(j=0;j if(st[j].english>st[j+1].english) { memcpy(&ti[0],&st[j],22); memcpy(&st[j],&st[j+1],22); memcpy(&st[j+1],&ti[0],22); } } printf("\n\t\t\t*****sortsuccess! *****\n\t\t\t*****pressanykeytocontinue.*****"); getch(); } math() { inti,j; for(i=0;i { for(j=0;j if(st[j].math>st[j+1].math) { memcpy(&ti[0],&st[j],22); memcpy(&st[j],&st[j+1],22); memcpy(&st[j+1],&ti[0],22); } } printf("\n\t\t\t*****sortsuccess! *****\n\t\t\t*****pressanykeytocontinue.*****"); getch(); } sum() { inti,j; for(i=0;i { for(j=0;j if(st[j].sum>st[j+1].sum) { memcpy(&ti[0],&st[j],22); memcpy(&st[j],&st[j+1],22); memcpy(&st[j+1],&ti[0],22); } } printf("\n\t\t\t*****sortsuccess! *****\n\t\t\t*****pressanytocontinue.*****"); getch(); } main() { if(! password()) return; load(); for(;;) { chark; clrscr(); menu(); printf("\n\t\t\tWecometostudentscoresystems! \n"); printf("\t\t\tPleaseinputanumber: "); flushall(); k=getchar(); switch(k) { case'1': input();break; case'2': output();break; case'3': search();break; case'4': modify();break; case'5': delete();break; case'6': sort();break; case'0': save();return; } } } _
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 学生 信息管理 系统