C++程序实验报告.docx
《C++程序实验报告.docx》由会员分享,可在线阅读,更多相关《C++程序实验报告.docx(20页珍藏版)》请在冰豆网上搜索。
![C++程序实验报告.docx](https://file1.bdocx.com/fileroot1/2023-1/8/2f527b53-eaf9-452b-82ab-0451d60ec821/2f527b53-eaf9-452b-82ab-0451d60ec8211.gif)
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/*I/o函数*/
#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;iif(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;iif(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;iif(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;iif(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(in=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;iif(strcmp(stu[i].code,s1)==0)
{
flag=1;
for(j=i;jstu[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";