我要寫一段程式來整理資料,因我是初學者想不到什麼方法?可以給我一個方向,謝謝
檔案大約如下公司 部門 編碼
A K 55
c K 11
B Z 80
A Y 22
B Y 65整理後 匯出公司 部門 編碼
A Y 22
A K 55
B Y 65
B Z 80
c K 11排列方式
1.先把公司整理出來由A~C
2.再整理該公司的部門 K~Z
3.再把該部門的編碼由小到大排序請問這樣怎麼寫比較好
我有想過就硬拆,用struct
typedef struct Company
{
CString dep;
int data;
};
先讀資料後,
Company A[100], B[100], C[100] ;
//公司分類
switch(讀的公司){
case 'A':
A[i].dep= 讀到部門;
A[i].data= 讀到編碼;
++i;
break;
case 'B':
B[j].dep= 讀到部門;
B[j].data= 讀到編碼;
++j;
break;
case 'C':
......}//部門分類
switch(A[i].dep){
case 'K':
dataK[h]=A[i].data;
++i;
++h;
break;
case 'Z':
dataZ[n]=B[j].data;
++j;
++n;
break;
case 'Y':
......}然後再一個個印出來可是這方法,不太好,可我想不出其他方法了?請還有其他方法整理嗎?
檔案大約如下公司 部門 編碼
A K 55
c K 11
B Z 80
A Y 22
B Y 65整理後 匯出公司 部門 編碼
A Y 22
A K 55
B Y 65
B Z 80
c K 11排列方式
1.先把公司整理出來由A~C
2.再整理該公司的部門 K~Z
3.再把該部門的編碼由小到大排序請問這樣怎麼寫比較好
我有想過就硬拆,用struct
typedef struct Company
{
CString dep;
int data;
};
先讀資料後,
Company A[100], B[100], C[100] ;
//公司分類
switch(讀的公司){
case 'A':
A[i].dep= 讀到部門;
A[i].data= 讀到編碼;
++i;
break;
case 'B':
B[j].dep= 讀到部門;
B[j].data= 讀到編碼;
++j;
break;
case 'C':
......}//部門分類
switch(A[i].dep){
case 'K':
dataK[h]=A[i].data;
++i;
++h;
break;
case 'Z':
dataZ[n]=B[j].data;
++j;
++n;
break;
case 'Y':
......}然後再一個個印出來可是這方法,不太好,可我想不出其他方法了?請還有其他方法整理嗎?
解决方案 »
- 基于对话框的程序, 有按ESC键时(或有VK_ESCAPE时), 程序会退出?
- 怎样监控USB口
- 如何让一个对话框工程中的若干对话框中的控件在显示的时候位置保持一致?
- 请问一下VARIANT定义下的哪个变量才是字符串呢??
- ATL的控件的属性怎么添加了没反映啊?
- 看看我的新昵称!!!
- 谁有完整的ZIP源代码,能用的!给我一份!我在网上找的都不能用!谢谢!
- 关于数据类型的解释,应该不难,高分马上送出!!!
- 高分求救,试衣软件
- 大虾救济救济小弟:如何把HBITMAP保存为一个bmp文件???最好有代码
- cserial port 类数据接收处理,请教
- 下面函数是从上往下渐变//怎么改成X号也发白呢?
struct data
{
CString comp;
CString depart;
int code;
bool largerdata(data &p)//这个叫谓词
{
if(comp>p.comp)
{
return 1;
}else if(comp>p.comp)
{ //第二字段
if(depart>p.comp)
{
return 1; }else if(depart==p.comp)
{//比较第3字段,自己模仿写 }else
{
return 0;
}
}else
{
return 0;
} }
}
vector <data> datavec;
sort(datavec.begin(),datavec.end(),largerdata);
你自己建容器,操作太麻烦。而且问题多。