一段有问题的C#代码~~请教高人

devilsmaycry 2010-10-20 03:55:23
using System;
public static class GlobalMembersSadf
{

public static bool OutDataToFile(My_Memo memo, int number)
{
ofstream outm = new ofstream("memo.dat"/*,ios.out|ios.binary*/);
ofstream outn = new ofstream("number.dat"/*,ios.out|ios.binary*/);
if (outn != null && outm != null)
{
outn.write((string)&number, sizeof(int));
outn.close();
for (int i = 0; i < number; i++)
{
outm.seekp(sizeof(My_Memo) * i, ios.beg);
outm.write((string)(memo + i), sizeof(My_Memo));
}
outm.close();
return true;
}
return false;
}

public static bool InDataOfFile(My_Memo memo, ref int number)
{
ifstream inm = new ifstream("memo.dat"/*,ios.in|ios.binary*/);
if (inm != null)
{
for (int i = 0; i < number; i++)
{
inm.seekg(sizeof(My_Memo) * i, ios.beg);
inm.read((string)(memo + i), sizeof(My_Memo));
}
inm.close();
return true;
}
return false;
}

public static void ADD()
{
int number = 0;
ifstream f = new ifstream("number.dat"/*,ios.in|ios.binary*/);
if (f != null)
{
f.read((string)&number, sizeof(int));
f.close();
}
My_Memo[] memo = new My_Memo[number + 1];
GlobalMembersSadf.InDataOfFile(new My_Memo(memo), ref number);
(memo + number).Input();
number++;
if (!GlobalMembersSadf.OutDataToFile(new My_Memo(memo), number))
{
Console.Write("write error!");
Console.Read();
Console.Read();
memo = null;
return;
}
memo = null;
}

public static void ALL()
{
int number = 0;
ifstream f = new ifstream("number.dat"/*,ios.in|ios.binary*/);
if (f != null)
{
f.read((string)&number, sizeof(int));
f.close();
}
My_Memo[] memo = new My_Memo[number];
if (!GlobalMembersSadf.InDataOfFile(new My_Memo(memo), ref number))
{
Console.Write("rendin error!");
Console.Read();
Console.Read();
memo = null;
return;
}
for (int i = 0; i < number; i++)
{
(memo + i).Output();
Console.Write("\n");
Console.Write("\n");
}
Console.Write("the end!");
Console.Read();
Console.Read();
}

public static void DELETE()
{
int number = 0;
ifstream f = new ifstream("number.dat"/*,ios.in|ios.binary*/);
if (f != null)
{
f.read((string)&number, sizeof(int));
f.close();
}
My_Memo[] memo = new My_Memo[number];
if (!GlobalMembersSadf.InDataOfFile(new My_Memo(memo), ref number))
{
Console.Write("rendin error!");
Console.Read();
Console.Read();
memo = null;
return;
}
Day d = new Day();
Day b = new Day(1, 1, 1);
while (true)
{
Console.Write("Input one day(all Input 1 to end)");
Console.Write("\n");
d.InputDay();
if (d == b)
break;
for (int i = 0; i < number; i++)
{
if (d == (memo + i).GetDay())
{
string a;
Console.Write("is it(if true,input 0)");
cin >> a;
if (a == "0")
{
My_Memo m = new My_Memo();
m = *(memo + i) * (memo + i) = *(memo + number - 1) * (memo + number - 1) = m;
number--;
if (!GlobalMembersSadf.OutDataToFile(new My_Memo(memo), number))
{
Console.Write("write error!");
Console.Write("\n");
}
else
{
Console.Write("fullfill!!");
Console.Write("\n");
}
}
}
}
}
memo = null;
Console.Read();
Console.Read();
}
public static void MAKEROVER()
{
int number = 0;
ifstream f = new ifstream("number.dat"/*,ios.in|ios.binary*/);
if (f != null)
{
f.read((string)&number, sizeof(int));
f.close();
}
My_Memo[] memo = new My_Memo[number];
if (!GlobalMembersSadf.InDataOfFile(new My_Memo(memo), ref number))
{
Console.Write("rendin error!");
Console.Read();
Console.Read();
memo = null;
return;
}
Day d = new Day();
Day b = new Day(1, 1, 1);
while (true)
{
Console.Write("Input one day(all Input 1 to end)");
Console.Write("\n");
d.InputDay();
if (d == b)
break;
for (int i = 0; i < number; i++)
{
if (d == (memo + i).GetDay())
{
string a;

Console.Write("is it(if true,input 0)");
cin >> a;
if (a == "0")
{
(memo + i).Input();
if (!GlobalMembersSadf.OutDataToFile(new My_Memo(memo), number))
{
Console.Write("write error!");
Console.Write("\n");
}
else
{
Console.Write("fullfill!!");
Console.Write("\n");
}
}
}
}
}
memo = null;
Console.Read();
Console.Read();
}
public static void SEE()
{
int number = 0;
ifstream f = new ifstream("number.dat"/*,ios.in|ios.binary*/);
if (f != null)
{
f.read((string)&number, sizeof(int));
f.close();
}
My_Memo[] memo = new My_Memo[number];
if (!GlobalMembersSadf.InDataOfFile(new My_Memo(memo), ref number))
{
Console.Write("rendin error!");
Console.Read();
Console.Read();
memo = null;
return;
}
...全文
107 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyer_longlong 2010-10-21
  • 打赏
  • 举报
回复
没有注释 并且不是一段,是一片
devilsmaycry 2010-10-21
  • 打赏
  • 举报
回复
不好意思哈各位~~~
我搞错了~~~
问题我自己解决了~~~
viprx 2010-10-20
  • 打赏
  • 举报
回复
起码的注释嘛~不然连看的心情都没有
xianfengxyz 2010-10-20
  • 打赏
  • 举报
回复
LZ 代码太长了 无心看下去
Ghost_Khz 2010-10-20
  • 打赏
  • 举报
回复
眼睛真的花了。。
sweetqueen1 2010-10-20
  • 打赏
  • 举报
回复
你代码太长了、、而且你要问什么?要解释这段代码?
HooverHuang 2010-10-20
  • 打赏
  • 举报
回复
这么多的代码,这么少的分数,眼都看花了
devilsmaycry 2010-10-20
  • 打赏
  • 举报
回复
Day d = new Day();
Day b = new Day(1, 1, 1);
while (true)
{
Console.Write("Input one day(all Input 1 to end)");
Console.Write("\n");
d.InputDay();
if (d == b)
break;
for (int i = 0; i < number; i++)
{
if (d == (memo + i).GetDay())
(memo + i).Output();
}
}
memo = null;
Console.Read();
Console.Read();
}
public static void _()
{
system("cls");
Console.Write("---------------------------------------------------------------\n");
Console.Write(" memo\n");
Console.Write("---------------------------------------------------------------\n");
Console.Write(" input 0 exit\n");
Console.Write(" input 1 ADD\n");
Console.Write(" input 2 ALL SHOW\n");
Console.Write(" input 3 SEE\n");
Console.Write(" input 4 delete\n");
Console.Write(" input 5 maker over\n");
Console.Write("---------------------------------------------------------------\n");
}
static int Main()
{
string a;
for (GlobalMembersSadf._(); cin >> a && a != "0"; GlobalMembersSadf._())
{
if (a == "1")
GlobalMembersSadf.ADD();
if (a == "2")
GlobalMembersSadf.ALL();
if (a == "3")
GlobalMembersSadf.SEE();
if (a == "4")
GlobalMembersSadf.DELETE();
if (a == "5")
GlobalMembersSadf.MAKEROVER();
}
}
}
public enum Show
{
china = 0x0001,
english = 0x0010,
rest = 0x0100
}
public class Day
{
private int year;
private int month;
private int day;
public Day(int y, int m)
: this(y, m, 1)
{
}
public Day(int y)
: this(y, 1, 1)
{
}
public Day()
: this(1, 1, 1)
{
}
public Day(int y, int m, int d)
{
year = y;
month = m;
day = d;
}

public Day InputDay()
{
Console.Write("year:");
cin >> year;
while (cout << "month:" && cin >> month)
{
if (month <= 0 || month > 12)
{
Console.Write("error!");
Console.Write("\n");
continue;
}
break;
}
bool leap_year = false;
if ((!(year / 4) && !(year / 100)) || !(year / 400))
{
leap_year = true;
}
int max = 31;
if (month == 2)
max = (leap_year) ? 29 : 28;
else
if (month == 4 || month == 6 || month == 9 || month == 11)
max = 30;
while (cout << "day:" && cin >> day)
{
if (day <= 0 || day > max)
{
Console.Write("error!");
Console.Write("\n");
continue;
}
break;
}
return this;
}

public Day OutputDay(Show show)
{
switch (show)
{
case Show.china:
Console.Write("公元");
Console.Write(((year < 0) ? ("前") : (" ")));
Console.Write(((year < 0) ? (-year) : (year)));
Console.Write("年");
Console.Write(month);
Console.Write("月");
Console.Write(day);
Console.Write("日");
break;
case Show.english:
Console.Write("year:");
Console.Write(year);
Console.Write("month:");
Console.Write(month);
Console.Write("day:");
Console.Write(day);
break;
default:
Console.Write(year);
Console.Write('/');
Console.Write(month);
Console.Write('/');
Console.Write(day);
break;
}
Console.Write("\n");
return this;
}

public static Day()
{
if (day2.year == day.year && day2.day == day.day && day2.month == day.month)
return true;
else
return false;
}
}

public class My_Memo
{
private Day day = new Day();
private string memotext = new string(new char[200]);
public My_Memo(int y, int m, int d)
: this(y, m, d, "?")
{
}
public My_Memo(int y, int m)
: this(y, m, 1, "?")
{
}
public My_Memo(int y)
: this(y, 1, 1, "?")
{
}
public My_Memo()
: this(1, 1, 1, "?")
{
}
public My_Memo(int y, int m, int d, string mData)
{
day = new Day(y, m, d);
memotext = mData;
}
public void Input()
{
Console.Write("Input day:\n");
day.InputDay();
Console.Write("Input memo text:");
cin >> memotext;
}

public void Output()
{
Console.Write("Output day:\n");
day.OutputDay(Show.rest);
Console.Write("Output memo text:\n");
Console.Write(memotext);
Console.Write("\n");
}
}

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧