C++程序实验报告.docx
- 文档编号:6667616
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:20
- 大小:188.83KB
C++程序实验报告.docx
《C++程序实验报告.docx》由会员分享,可在线阅读,更多相关《C++程序实验报告.docx(20页珍藏版)》请在冰豆网上搜索。
C++程序实验报告
C++课程设计报告
题目:
学生信息管理系统
设计者:
陈金雷
专业班级:
物联网1班
学号:
2011302873
指导教师:
郝老师
2012年6月14日
安徽理工大学计算机学院
安徽理工大学课程设计任务书2
1题目与要求3
1.1问题提出3
1.2本系统涉及的知识点4
1.3功能要求4
1.4问题分析4
2功能设计5
2.1显示界面5
2.2部分模块流程图6
3程序代码设计6
4C++程序设计总结29
5结束语29
指导教师评价29
安徽理工大学课程设计任务书
计算机科学与工程学院硬件教研室
学号
2011302873
学生姓名
陈金雷
专业(班级)
物联网工程
(1)班
设计题目
学生信息管理系统
设计技术参数
1.熟悉C++语言的编程方法
2.初步了解MFC的使用方法
设计要求
题目的选择是根据C++语言的特点主要针对C++初学者而设计的,是对学生所学课程知识较为全面的考察。
由于C++语言编程相对其他语言编程比较复杂,因此,在设计上应把重点放在程序的功能实现上,不要太在意程序的结构和显示界面的设计。
不要局限于题目所规定的要求,可以灵活裁减,设计出功能更完善的程序。
工作量
完成所选题目的程序设计;
课程设计说明书
工作计划
第1次熟悉软件环境。
第2次绘制程序流程图。
第3次用编写程序。
第4次用调试运行程序。
第5次编写课程设计说明书
参考资料
《VisualC++面向对象程序设计教程与实验》,温秀梅、丁学钧主编,第二版,北京:
清华大学出版社,2009.4
1题目与要求
1.1问题提出
学生信息包括:
学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:
系统以菜单方式工作,学生信息录入功能(学生信息用文件保存)输入学生信息浏览功能,输出查询排序功能算法
按学号查询按姓名查询学生信息的删除与修改
1.2本系统涉及的知识点
结构、指针、循环、数组、函数、宏定义
1.3功能要求
1、录入学生信息,每个学生的信息包括:
学号、姓名、性别、班级、手机号、邮箱号;
2、查询学生信息;
3、排序:
分别按平均分排序、按学号排序;
4、根据学号查询成绩;
5、修改学生信息;
1.4问题分析
定义不同的函数,实现信息管理系统各项功能。
其中,学生信息包括:
学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
实现功能包括:
学生信息录入功能,学生信息浏览功能,查询,排序功能,按学号查询,学生信息的删除与修改等。
2功能设计
2.1显示界面
2.2部分模块流程图
3程序代码设计
头文件:
#include"stdafx.h"
#include
#include
#include
#include
usingnamespacestd;
#include
#include
#defineLEN30/*学号和姓名最大学生人数*/
#defineN100/*最大学生人数*/
structstudent/*声明函数体*/
{
charcode[20];/*学号*/
charname[10];/*姓名*/
intage;/*年龄*/
charsex[5];/*性别*/
chartime[20];/*出生年月*/
charadd[20];/*家庭地址*/
chartel[20];/*电话*/
charmail[20];/*邮箱地址*/
}stu[N];
intk=1,m,n;
student*shuru_information(student*);
student*chaxun_information(student*);
student*xiugai_information(student*);
student*zengjia_information(student*);
student*shanchu_information(student*);
student*xianshi_information(student*);
student*baocun_information(student*);
student*caidan_information(student*);
student*tuichuxitong_information(student*);
student*huanyingyemian_information(student*);
student*help_information(student*);
student*paixu_information(student*);
主函数:
intmain()
{
student*head;
while(k)
{
head=huanyingyemian_information(head);
system("pause");
system("cls");
cout<<"请按任意键进入主菜单!
"< system("cls"); head=caidan_information(head); system("pause"); } return0; } 系统帮助说明函数: student*help_information(student*head) { system("COLOR3f"); cout<<"\n尊敬的用户您好! "< //cout<<"\n============================================================|"< cout<<"\n1.欢迎进入帮助系统! "< cout<<"★★★★★★★★"< cout<<"2.请按照菜单提示进入数字代号! "< cout<<"3.增加学生信息后,请切记保存! "< cout<<"4.谢谢您的使用! "< cout<<"============================================================"; return(head); } 学生信息输入函数: student*shuru_information(student*head)/*实现录入学生基本信息功能*/ { inti,flag=1; while(flag) { flag=0; cout<<"请输入需要创建信息的学生人数(1-100): "< scanf("%d",&n); if(n<1||n>100) { flag=1; cout<<"输入错误,检查后请重新输入! "< } for(i=0;i { cout<<"请输入第%d个学生的基本信息: \n"< cout<<"请输入学号: \n"; cin>>stu[i].code; cout<<"请输入姓名: \n"; cin>>stu[i].name; getchar(); cout<<"请输入性别(男,女): \n"; cin>>stu[i].sex; cout<<"请输入年龄: \n"; cin>>stu[i].age; cout<<"请输入出生年月(输入格式: 年.月): \n"; cin>>stu[i].time; cout<<"请输入家庭地址: \n"; cin>>stu[i].add; cout<<"请输入电话号码: \n"; cin>>stu[i].tel; cout<<"请输入E-mail地址: \n"; cin>>stu[i].mail; } cout<<"录入完毕! \n"; head=baocun_information(head); return(head); student*baocun_information(student*head)/*保存学生信息到文件的函数*/ { inti; FILE*fp; if((fp=fopen("student.txt","wb"))==NULL)/*创建文件并判断是否能够打开成功*/ { cout<<"文件不能打开! \n"; exit(0);/*如果不能打开文件,则关闭当前所有的文件*/ } for(i=0;i if(fwrite(&stu[i],sizeof(structstudent),1,fp)! =1) cout<<"文件输入错误! \n"; fclose(fp); return(head); } 学生信息查询: student*chaxun_information(student*head) { inti,t,flag; chars1[30]; system("COLOR5f"); cout<<"\n=================================\n"; cout<<"|1.按学号查询|\n"; cout<<"|2.按姓名查询|\n"; cout<<"|3.退出本菜单|\n"; cout<<"=================================\n"; while (1) { flag=0; cout<<"请输入子菜单编号: "; cin>>t; switch(t) { case1: cout<<"请输入要查询的学生的学号: \n"; cin>>s1; for(i=0;i if(strcmp(stu[i].code,s1)==0) { flag=1; cout<<"学生学号"; cout< cout<<"\n学生姓名"; cout< cout<<"\n年龄"; cout< cout<<"\n性别"; cout< cout<<"\n出生年月"; cout< cout<<"\n家庭地址"; cout< cout<<"\n电话"; cout< cout<<"\nE-mail"; cout< } if(flag==0) cout<<"该学号不存在! \n";break; case2: cout<<"请输入要查询的学生的姓名: \n"; cin>>s1; for(i=0;i if(strcmp(stu[i].name,s1)==0) { flag=1; cout<<"学生学号学生姓名年龄性别出生年月家庭地址电话E-mail\n"; cout<<"================================================================================\n"; cout<<"%6s%7s%6d%5s%9s%8s%10s%14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail; } if(flag==0) cout<<"该姓名不存在! \n";break; case3: return(head); default: cout<<"请在1--3之间选择\n"; } } return(head); } 修改学生信息: student*xiugai_information(student*head) { inti,t,num; charsex1[3],s1[30],s2[30]; cout<<"请输入要查询的学生的学号: \n"; cin>>s1; for(i=0;i if(strcmp(stu[i].code,s1)==0) num=i; system("COLOR4f"); cout<<"=============================================\n"; cout<<"|1.修改姓名|\n"; cout<<"|2.修改年龄|\n"; cout<<"|3.修改性别|\n"; cout<<"|4.修改出生年月|\n"; cout<<"|5.修改地址|\n"; cout<<"|6.修改电话号码|\n"; cout<<"|7.修改E-mail|\n"; cout<<"|8.修改退出本菜单|\n"; cout<<"=============================================\n"; while (1) { cout<<"请输入子菜单的编号: "; cin>>t; switch(t) { case1: cout<<"请输入新的姓名: \n"; cin>>s2; strcpy(stu[num].name,s2);break; case2: cout<<"请输入新的年龄: \n"; cin>>s2; cin>>stu[num].age;break; case3: case4: cout<<"请输入新的出生年月: \n"; cin>>s2; strcpy(stu[num].time,s2);break; case5: cout<<"请输入新的地址: \n"; cin>>s2; strcpy(stu[num].add,s2);break; case6: cout<<"请输入新的电话号码: \n"; cin>>s2; strcpy(stu[num].tel,s2);break; case7: cout<<"请输入新的E-mail: \n"; cin>>s2; strcpy(stu[num].mail,s2);break; case8: return(head); default: cout<<"请在1--8之间选择\n"; } return(head); } } 对学生信息进行排序: student*paixu_information(student*head) { inti,j,*p,*q,s; chartemp[10]; for(i=0;i { for(j=n-1;j>i;j--) if(strcmp(stu[j-1].code,stu[j].code)>0) { strcpy(temp,stu[j-1].code); strcpy(stu[j-1].code,stu[j].code); strcpy(stu[j].code,temp); strcpy(temp,stu[j-1].name); strcpy(stu[j-1].name,stu[j].name); strcpy(stu[j].name,temp); strcpy(temp,stu[j-1].sex); strcpy(stu[j-1].sex,stu[j].sex); strcpy(stu[j].sex,temp); strcpy(temp,stu[j-1].time); strcpy(stu[j-1].time,stu[j].time); strcpy(stu[j].time,temp); strcpy(temp,stu[j-1].add); strcpy(stu[j-1].add,stu[j].add); strcpy(stu[j].add,temp); strcpy(temp,stu[j-1].tel); strcpy(stu[j-1].tel,stu[j].tel); strcpy(stu[j].tel,temp); strcpy(temp,stu[j-1].mail); strcpy(stu[j-1].mail,stu[j].mail); strcpy(stu[j].mail,temp); p=&stu[j-1].age; q=&stu[j].age; s=*p; *p=*q; *q=s; } }return(head); 增加学生信息: student*zengjia_information(student*head) { inti=n,j,flag; cout<<"请输入将要增加的学生数目: \n"; cin>>m; do { flag=1; while(flag) { flag=0; cout<<"请输入第%d个学生的学号: \n"< cin>>stu[i].code; for(j=0;j if(strcmp(stu[i].code,stu[j].code)==0) { cout<<"该学号已经存在,请仔细核查后重新输入! \n"; flag=1;break; } } cout<<"请输入第%d个学生的学生姓名: \n"< cin>>stu[i].name; cout<<"请输入第%d个学生的学生年龄: \n"< cin>>stu[i].age; cout<<"请输入第%d个学生的学生性别: \n"< cin>>stu[i].name; cout<<"请输入第%d个学生的学生出生年月: (格式: 年,月,日)\n"< cin>>stu[i].time; cout<<"请输入第%d个学生的学生家庭地址: \n"< cin>>stu[i].add; cout<<"请输入第%d个学生的学生电话: \n"< cin>>stu[i].tel; cout<<"请输入第%d个学生的学生E-mail: \n"< cin>>stu[i].mail; if(flag==0) i++; }while(i n=n+m; cout<<"输入完毕! \n\n"; head=paixu_information(head); return(head); } 删除学生信息: student*shanchu_information(student*head) { inti,j,flag=0; chars1[15]; cout<<"请输入将要删除的学生的学号: \n"; cin>>s1; for(i=1;i if(strcmp(stu[i].code,s1)==0) { flag=1; for(j=i;j stu[j]=stu[j+1]; } if(flag==0) cout<<"该学号不存在! \n"; if(flag==1) { cout<<"删除成功! 显示结果请按6! \n"; n--; }return(head); } student*xianshi_information(student*head) { inti; FILE*fp; if((fp=fopen("student.txt","rb"))==NULL) { cout<<"打开文件时错误! 请按任意键退出! "; system("pause"); exit(0); } cout<<"所有学生的信息为: \n\n"; cout<<"学生学号学生姓名年龄性别出生年月家庭地址电话E-mail"; cout<<"================================================================================"; for(i=0;i {fread(&stu[i],sizeof(structstudent),1,fp); cout<<"%6s%7s%6d%5s%9s%8s%10s%14s\n"< }return(head); } 退出系统: student*tuichuxitong_information(student*head) { system("COLOR3f"); cout<<"--------【学生信息管理系统】-------\n"; cout<<"\n"; cout<<"\n"; cout<<"指导老师: 郝伟\n"; cout<<"================================================================================\n"; cout<<"●☆☆Bye-Bye☆☆●\n"; cout<<"\n"; cout<<"★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n"; cout<<"\n"; cout<<"\n"; cout<<"☆☆☆☆☆☆☆☆☆☆☆\n"; cout<<"\n"; cout<<"★★★★★★★★★★★\n"; cout<<"安★物\n"; cout<<"徽★联\n"; cout<<"理★网\n"; cout<<"工★工\n"; cout<<"大★工\n"; cout<<"学★程\n"; cout<<"★一\n"; cout<<"★班\n"; cout<<"◆谢谢使用◆\n"; return(head); } 显示主界面: student*huanyingyemian_information(student*head) {system("COLOR6f"); cout<<"\n"; cout<<"\n";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序 实验 报告