我试着在互联网上到处寻找,我似乎找不到多少。
现在,我没有太多谈论我的问题:我必须为大学制作一个项目,包括使用C ++中的OOP编程逻辑制作一个“电子电话簿”。我收到的材料非常模糊,所以我必须以自己的方式做到这一点。
以下是我迄今为止所做的代码(在互联网的帮助下):
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <string.h>
#include <fstream.h>
void op1()
{
printf("\n Add contact");
getch();
}
void op2()
{
printf("\n Delete contact");
getch();
}
void op3()
{
printf("\n Edit a contact");
getch();
}
void op4()
{
printf("\n Find a contact");
getch();
}
void op5()
{
printf("\n Sort the contacts");
getch();
}
void op6()
{
printf("\n 'About the program, details etc. etc.");
getch();
}
void print_menu()
{
system("cls"); // clearing window
printf("\nMenu:");
printf("\n##############################\n");
printf("\n1. Add contact");
printf("\n2. Delete contact");
printf("\n3. Edit a contact");
printf("\n4. Find a contact");
printf("\n5. Sort the contacts");
printf("\n6. About");
printf("\n7. Exit");
printf("\n\n##############################");
printf("\n\nInput your option: ");
}
// Text centering function - begin
void centerText(char* s)
{
int l=strlen(s);
int pos=(int)((80-l)/2);
for(int i=0;i<pos;i++)
cout<<" ";
cout<<s<<endl;
}
// Text centering functon - end
void main()
{
{
printf("\n 'My University' 'My City' ");
printf("\n Faculty of Electrical Engineer and Computer Science");
printf("\n Study program used: C++\n\n");
centerText("C++ Project");
centerText("<The Phonebook>");
printf("\n");
centerText("<my name, Year I of study, Group>");
printf("\n");
printf("\n");
centerText("<june.2013>");
system("pause>nul"); // Screen is paused until a key is pressed (to allow this text to be viewed)
}
// ... Sequence for password verification ...
{
char password[20], my_password[20]="2013";
system("cls");
printf("WARNING!\n");
printf("Authentication required!\n");
printf("\nType input password: ");
scanf("%19s",password);
if (strcmp(password, my_password)!=0)
{
printf("\n\nIncorrect password !!!\n");
printf("The program will now exit...\n");
getch();
return;
}
printf("\n\nPassword is correct !\n");
printf("The program is executed !\n");
getch();
}
char optiune;
// ... Sequence for option choosing ...
do
{
print_menu();
fflush(stdin);
cin>>optiune;
switch(optiune)
{
case '1': op1(); break;
case '2': op2(); break;
case '3': op3(); break;
case '4': op4(); break;
case '5': op5(); break;
case '6': op6(); break;
case '7': exit(0);
default : printf("\n\nIncorrect option !");
fflush(stdin);
getch();
}
}
while(1);
}
我的想法是,我可以使用这个菜单,只需插入其中一个op()函数重定向到另一个文件,这是一个单独的文件中的1个函数。 所以我会把这个程序作为一个主程序,“添加,编辑,删除..etc”的每个函数都将在这个程序之外,我会单独处理它们。 事情是..我不知道这样做。我查看了“标题”工作系统,我没有找到任何有价值的东西。也许我不知道看,但相信我,我真的尝试过。 任何反馈都非常感谢,但请记住,我是非常新手。如果可以的话,请尽可能详细地解释。我很感激任何读过这整篇文章的人。我会感谢开始。
答案 0 :(得分:3)
你说你在任何地方找不到帮助,但是你说“我必须为大学做一个项目”。所以大概你已经有教师和/或教授来帮助你学习?除此之外,任何有关C ++的入门书都将涵盖您所要求的内容。
你说“在C ++中使用OOP编程逻辑”,但你不使用内置IO类以外的任何OOP。
正确缩进代码。
不要使用这些:
#include <conio.h>
getch()
system("cls")
您正在将printf()
的来电与std::cout
混合,并使用scanf()
致电std::cin
- 选择其中一个,不要使用{{ 1}}。
如果您使用的是C ++,则使用scanf()
优于此:
std::string
此处的演员表是不必要的,当您被分配到void centerText(char* s)
时,它会自动转换:
int
int pos=(int)((80-l)/2);
返回main()
,请勿执行此操作:
int
你不能void main()
,在输入流上没有定义刷新。
不要把这样的东西放在一行,因为它看起来很糟糕:
fflush(stdin)
在正常情况下,case '1': op1(); break;
比return 0
更好,因为exit(0)
不会破坏您的对象。
答案 1 :(得分:0)
在许多应用程序中,构建解决方案有三个主要组件。有View,就是你与用户互动的方式。到目前为止,您的工作看起来好像正在构建一个相当明智的命令行界面。然后是存储联系人的后端。这可以是文件,数据库或某种JSON或XML结构。中间是控制器,它使视图和数据库保持同步,并执行来自用户的命令和查询。也许这对你的课程来说太过分了,如果你杀了这个程序就会忘记一切,你会感到很高兴。在这种情况下,您需要一个基于内存的结构来保存数据。我建议你创建一个类来保存联系人中的所有字段并存储在std :: vector&lt; Contact&gt;中。