| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1058 人关注过本帖
标题:[求助]请大家看看我第一次做的简单系统,谢谢了!
取消只看楼主 加入收藏
xianen20
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-12-30
收藏
 问题点数:0 回复次数:5 
[求助]请大家看看我第一次做的简单系统,谢谢了!

谢谢各位进来.本人在c++还是很菜.因为老师要求我们做系统程序的.我只好弄了一个这样的(但绝不是乱弄的)想请各位帮帮忙,帮我改一下下面的程序的.小弟真的感激不尽了(长了些,可是应该还比较容易看明白的).真的谢谢了!

题目:
主要功能说明:
1、用口令(密码)形式检验管理员身份(可输入三次),合法者可进入,否则程序结束
2、有关功能参考:
a.建立学生成绩表
输入姓名,学号,班级,课程编号,成绩
b.添加学生记录
在学生成绩表中添加新纪录
c.删除学生记录
在学生成绩表中删除有三门课程不及格的学生
逐条符合条件的学生姓名,成绩,确认后删除
d.修改学生信息
根据学号,在学生成绩表中找出记录后进行修改
f.按姓名和班级查找
输入姓名或班级,显示相应信息
g.信息统计
按班级,课程和个人进行成绩统计
h.退出信息管理系统,返回操作系统
[基本要求]
1、简单的系统与功能分析
2、建立数据结构表(用类结构)
(1)字段名(不少于10个)(2)可采用数组或真实的二维链表结构
3、要建立一个测试的数据表,至少要有10个测试数据
4、使用数组或链表实现实数据的:录入、查询、修改、增加、删除、统计、输出
其它要求]
1、只能使用C++语言,源程序要有适当的注释,使程序容易阅读 2、至少采用文本菜单界面
 
我写的程序在下面.

[此贴子已经被作者于2006-1-11 21:23:16编辑过]

搜索更多相关主题的帖子: 系统 
2006-01-11 03:20
xianen20
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-12-30
收藏
得分:0 

#include "stdafx.h"
#include "iostream.h"
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
const char null='\0';
static char *strsave(char *s) {
char *p;
p=new char[strlen(s)+1];
strcpy(p,s);
return p;
}
class student{ //学生类
public:
char *name;
char *stu_no;
char *sex;
char *banji;

student()
{
name=null;
stu_no=null;
sex=null;
banji=null;
}
student( char *name1,char *stu_no1,char *sex1,char *banji1)
{ name=strsave(name1);
stu_no=strsave(stu_no1);
sex=strsave(sex1);
banji=strsave(banji1);
}
~student()
{ delete []name;
delete []stu_no;
delete []sex;
delete []banji;
}
void print1()
{ cout<<"\n"<<"name:"<<name<<endl;
cout<<"stu_no:"<<stu_no<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"banji:"<<banji<<endl;
}
};
class kc{ //课程类
public:
char *yw_no;
char *yy_no;
char *sx_no;
char *zz_no;

kc(char *yw_no1, char *yy_no1,char *sx_no1,char *zz_no1)
{yw_no=strsave(yw_no1);
yy_no=strsave(yy_no1);
sx_no=strsave(sx_no1);
zz_no=strsave(zz_no1);}
~kc()
{ delete []yw_no;
delete []yy_no;
delete []sx_no;
delete []zz_no;
}
void print2()
{ cout<<"\n"<<"yw_no:"<<yw_no<<endl;
cout<<"yy_no:"<<yy_no<<endl;
cout<<"sx_no:"<<sx_no<<endl;
cout<<"zz_no:"<<sx_no<<endl;}
};
class score: public student, public kc{ // 学生成绩类
public:
int yw_cj;
int yy_cj;
int sx_cj;
int zz_cj;


score( char *name1,char *stu_no1,char *sex1,char *banji1,char*yw_no1,char *yy_no1,char *sx_no1,
char *zz_no1,int yw_cj1,int yy_cj1,int sx_cj1,int zz_cj1):student(name1, stu_no1,sex1,banji1),
kc(yw_no1, yy_no1, sx_no1, zz_no1)
{ yw_cj=yw_cj1;
yy_cj=yy_cj1;
sx_cj=sx_cj1;
zz_cj=zz_cj1;}

void print();
};

void score::print()
{ student::print1();
kc::print2();
cout<<"yw_cj:"<<yw_cj<<endl;
cout<<"yy_cj:"<<yy_cj<<endl;
cout<<"sx_cj:"<<sx_cj<<endl;
cout<<"zz_cj:"<<zz_cj<<endl;
}

int main()
{ char sel;char u[6],p[8];
char uu[6]={"admin"},pp[8]={"123456"};
int n=0;
cout<<"请输入用户名和密码:"<<endl;
cout<<"--------------------"<<endl;
cout<<"user:";
cin>>u;
cout<<"password:";
cin>>p;if(strcmp(uu,u)==0&&strcmp(pp,p)==0)
cout<<"******欢迎进入学生管理系统******"<<endl;
while(strcmp(uu,u)!=0||strcmp(pp,p)!=0)
{
cout<<"输入错误请重新输入"<<endl;
cout<<"请输入用户名和密码:"<<endl;
cout<<"user:";
cin>>u;
cout<<"password:";
cin>>p;
n++;

if(n==2)
{cout<<"对不起您的输入次数已经达到最大!"<<endl;exit(0);}}
cout<<"\n";

score a[10]={score("张三","0321335001","男","信管","001","002","003","004",75,85,65,70),
score("李四","0321335002","男","信管","001","002","003","004",56,85,69,80),
score("李明","0321335003","男","信管","001","002","003","004",68,75,86,83),
score("刘芳","0321335004","女","信管","001","002","003","004",84,65,59,78),
score("王乐","0321335005","女","信管","001","002","003","004",87,65,73,82),
score("高天","0321335010","男","电商","001","002","003","004",54,55,68,53),
score("李山","0321335012","男","电商","001","002","003","004",59,63,85,59),
score("王强","0321335013","男","电商","001","002","003","004",56,55,86,53),
score("刘欣","0321335014","女","电商","001","002","003","004",84,65,59,78),
score("乐乐","0321335015","女","电商","001","002","003","004",87,65,73,82),};

cout<<"*************** 学生管理系统 *************************"<<endl;
cout<<"1: 建立学生成绩表"<<endl;
cout<<"2: 添加一个学生信息"<<endl;
cout<<"3: 删除一个学生信息"<<endl;
cout<<"4: 修改学生信息"<<endl;
cout<<"5: 查找信息"<<endl;
cout<<"6: 信息统计"<<endl;
cout<<"7: 退出系统"<<endl;
cout<<"*******************************************************"<<endl;
cout<<"请输入操作:";
cin>>sel;
switch(sel)
{
case '1':{ cout<<"**********学生成绩表记录如下***********"<<endl;
for(int i=0;i<10;i++)
a[i].print();}; break;

case '2':{cout<<"********请输入要添加学生记录*********"<<endl;
cin>>a[10].name; cin>>a[10].stu_no; cin>>a[10].sex; cin>>a[10].banji;
cin>>a[10].yw_no; cin>>a[10].yy_no; cin>>a[10].sx_no; cin>>a[10].zz_no;
cin>>a[10].yw_cj; cin>>a[10].yy_cj; cin>>a[10].sx_cj; cin>>a[10].zz_cj;};break;

case '3':{cout<<"************进行删除操作************"<<endl;
int n=0;char *p1="王强";
for(int c=0;c<10;c++)
if((a[c].sx_cj<60)&&strcmp(a[c].name,p1)==0)
{ n++;}
cout<<"************修改后的数据*************"<<endl;
if(n>=3)
for(int d=0;d<10;d++)
{if(strcmp(a[d].name,p1)>0||strcmp(a[d].name,p1)<0)
{ a[d].print(); cout<<"------------------------"<<endl;}
}}; break;
case '4':{cout<<"************进行修改操作************"<<endl;
char *pp="321335015";
for(int e=0;e<10;e++)
if(strcmp(a[e].stu_no,pp)==0)
{ cout<<"请输入修改后班级:";
cin>>a[e].banji;
a[e].print();
cout<<"-------------------------"<<endl;}}; break;
case '5':{cout<<"************进行查找操作************"<<endl;
student obj("乐乐","0321335015","女","电商");
cout<<"请输入要查找的人的姓名:"<<endl;
for(int g=0;g<10;g++)
if(strcmp(a[g].name,obj.name)==0)
a[g].print();
else
exit(0);
cout<<endl;
cout<<"请输入要查找的班级名:";
cin>>obj.banji;
for(int h=0;h<15;h++)
{if(strcmp(a[h].banji,obj.banji)==0) a[h].print();}};break;
case '6':{ cout<<"******进行统计操作******"<<endl;
char *p2="信管";char *p3="电商";
char *p4="001";char *p5="002";char *p6="003";char *p7="004"; int sum=0;
cout<<"******按班级统计成绩******"<<endl;
for(int i=0;i<10;i++)
if(strcmp(a[i].banji,p2)==0)
{ sum+=a[i].sx_cj;}
cout<<"信管的总成绩为:"<<sum<<endl;
for(int j=0;j<10;j++)
if(strcmp(a[j].banji,p3)==0)
{ sum+=a[j].yw_cj;}
cout<<"电商的总成绩为:"<<sum<<endl;
cout<<"******按课程统计成绩******"<<endl;
for(int i1=0;i1<10;i++)
if(strcmp(a[i1].yw_no,p4)==0)
{ sum+=a[i1].yw_cj;}
cout<<"语文的总成绩为:"<<sum<<endl;
for(int i2=0;i2<10;i++)
if(strcmp(a[i2].yy_no,p5)==0)
{ sum+=a[i2].yy_cj;}
cout<<"英语总成绩为:"<<sum<<endl;
for(int i3=0;i3<10;i++)
if(strcmp(a[i3].sx_no,p4)==0)
{ sum+=a[i3].sx_cj;}
cout<<"数学的总成绩为:"<<sum<<endl;
for(int i4=0;i4<10;i++)
if(strcmp(a[i4].zz_no,p4)==0)
{ sum+=a[i4].zz_cj;}
cout<<"政治的总成绩为:"<<sum<<endl;};break;

case '7':{exit(0);};break;
}

return 0;
}

这是我重新写的,可是有的地方显示不出数据来,请各位告诉我一下为什么?怎么修改?谢谢各位了!

[此贴子已经被作者于2006-1-13 13:21:43编辑过]

2006-01-11 03:32
xianen20
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-12-30
收藏
得分:0 

感谢楼上的指点,我去掉一个类了.
2.分不清结构与类的差别.(以象结构的方式来初始化类.在main()函数中)
3.指针理解得不够深入.(指针用"."来调用)
请问这两个该怎么改?我该如何在定义函数中进行对象的引用

请问直接数组对象进行调用,我上面那种可以吗?

[此贴子已经被作者于2006-1-11 22:35:59编辑过]

2006-01-11 22:16
xianen20
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-12-30
收藏
得分:0 

谢谢楼上的指点.可是我因为不知道这样用指针才这样的.麻烦你能否说清楚些?

2006-01-12 21:27
xianen20
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-12-30
收藏
得分:0 
呵呵.那倒不必了,楼上的建议真的很不错.不过因为现在没时间了,我是一边准备考试一边弄这题目的,太谢谢你了!能否看看我重新编译过的程序.运行可以通过的.请帮我下.指正一下其中的错误.(错误应该都在主函数那快)先谢谢你了哦!
2006-01-13 13:26
xianen20
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-12-30
收藏
得分:0 

楼上的真的很感激你哦,很谢谢你的,帮我这么多次呢!就是因为我的程序不能查找信息所以我才要改哦!(题目要求能查找信息的),不过很感谢你怎么多次的帮忙呢

2006-01-13 21:28
快速回复:[求助]请大家看看我第一次做的简单系统,谢谢了!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017140 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved