帮同学做的课程设计,内容比较简单,功能为录入学生的姓名、学号、宿舍号以及是否违规,可以用学号、宿舍号来查询,并且统计一个宿舍违规总次数。
#include<iostream>
#include<stdio.h>
#include<windows.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
#define N 4
int mulu();
class sushe
{
public:
int xuehao;
char name[10];
int sushehao;
int weigui;
}
sushe[N];
void fanhui()
{
int j=1;
while(j)
{
cout<<"** 返回主菜单请选择按键【0】**:";
cin>>j;
if(j!=0)
{ cout<<"输入错误!请按键【0】返回主菜单!"<<endl; }
else {system("cls");mulu();}
}
}
void shuru()
{
int i;
for(i=0;i<N;i++)
{
cout<<"输入学号"<<endl;
cin>>sushe[i].xuehao;
cout<<"输入姓名"<<endl;
cin>>sushe[i].name;
cout<<"输入宿舍号"<<endl;
cin>>sushe[i].sushehao;
cout<<"输入违规情况,违规输入1,没有违规输入0"<<endl;
cin>>sushe[i].weigui;
}
fanhui();
}
void find_xuehao()
{
int i;
int n;
cout<<"输入要查找的学号"<<endl;
for(i=0;i<N;i++)
{
cin>>n;
for(i=0;i<N;i++)
{
if(n==sushe[i].xuehao)
cout<<"学号\t"<<"姓名\t"<<"宿舍号\t"<<endl<<sushe[i].xuehao<<"\t"<<sushe[i].name<<"\t"<<sushe[i].sushehao<<"\t"<<endl;
}
}
fanhui();
}
void find_sushehao()
{
int i,n,j=0;
for(i=0;i<N;i++)
{
cout<<"输入要查找的宿舍号"<<endl;
cin>>n;
cout<<"学号\t"<<"姓名\t"<<"宿舍号\t"<<endl;
for(i=0;i<N;i++)
{
if(n==sushe[i].sushehao)
{cout<<sushe[i].xuehao<<"\t"<<sushe[i].name<<"\t"<<sushe[i].sushehao<<"\t"<<endl;
j=j+sushe[i].weigui;
}
}
cout<<"违规次数"<<j<<endl;
}
fanhui();
}
int mulu()
{
int a;
cout<<" ______ 欢迎进入学生宿舍管理系统 ______"<<endl
<<" ______ 1.录入 ______"<<endl
<<" ______ 2.学号查询 ______"<<endl
<<" ______ 3.宿舍号查询 ______"<<endl
<<" --------------------------------------------"<<endl;
cin>>a;
switch(a)
{
case 1:{system("cls");shuru();}break;
case 2:{system("cls");find_xuehao();}break;
case 3:{system("cls");find_sushehao();}break;
}
return 0;
}
int main()
{
mulu();
return 0;
}
主页面
输入页面
学号查找
宿舍查找
不足:
1.使用的是define N 而没有调用动态链表,是程序失去灵活性....
2.违规记录的录入本应该是在基本信息录入之后二次录入,因为时间不够我就直接将违规信息封装在类中一次录入,这样程序的逻辑上就有了问题:
在录入信息的时候就已经知道谁会违规......
在学习完动态链表后重新做一次。