台灣最大程式設計社群網站
線上人數
1593
 
會員總數:241122
討論主題:186796
歡迎您免費加入會員
討論區列表 >> C/C++ >> 學生資料管理
[ 變換順序 ]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
學生資料管理
價值 : 200 QP  點閱數:78 回應數:0

樓主

多多慮
門外漢
0 3
48 3
發送站內信

各位神人好本人剛學C++不久 很多觀念不是很清楚下面這題是要做學生資料管理 我可做到新增資料了 可是我在修改資料的時候 沒辦法輸入新資料去修改舊的資料




#include <iostream>
#include <cstdlib>
using namespace std;
static int i=0;
struct SDATA{
string name;
int math;
int id;
};

class Cwin
{
public:

void add(int,SDATA*);
void mod(int,SDATA*);
int dog(SDATA*,int);
void mod(string,int);
};

int main(){
int a,b,c,d,j;
SDATA *ptr;
Cwin win1;
ptr=new SDATA[1000] ;
while(1){

printf("1:新增,2:修改,3:刪除,0:結束程式:");
scanf("%d",&b);

if(b==1)
win1.add(i,ptr);
else if(b==2)
{
printf("輸入要修改的學號 ");
(cin>>j).get();
d=win1.dog(ptr,j);
cout<<"要修改的學號是"<<ptr[d].id<<endl;
printf("修改姓名按1 修改姓名和成及按2:");
scanf("%d",&c);
if(c=1)
win1.mod(d,ptr);
else if(c=2)
win1.mod(ptr[d].name,ptr[d].math);
}
else if(b==0)
break;
}


system("pause");
return 0;
}
void Cwin::add(int i,SDATA *ptr)
{
printf("輸入學號");
(cin>>ptr[i].id).get();
printf("\n");
printf("輸入成績");
(cin>>ptr[i].math).get();
printf("\n");
printf("輸入姓名");
getline(cin,ptr[i].name);
printf("\n");
i++;
}
void Cwin::mod(int b,SDATA *ptr)
{
string arr;
printf("輸入新明子");
getline(cin,arr);
ptr[b].name.assign(arr);
printf("\n");

}
void Cwin::mod(string a,int b)
{
printf("輸入新明子");
getline(cin,a);
printf("輸入新成績");
(cin>>b).get();
}
int Cwin::dog(SDATA *ptr,int k)
{
int s;
for(s=0;s<=i;s++)
{
if(ptr[s].id==k)
return s;
}
printf("找不到這筆資料");
}

搜尋相關Tags的文章: [ 結構 ] , [ 類別 ] ,
本篇文章發表於2017-11-11 16:12
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
[ 變換順序 ]   

回覆
如要回應,請先登入.