Board logo

标题: 求c++高人! [打印本页]

作者: xuan1988    时间: 2011-12-4 16:36     标题: 求c++高人!

有个小程序想请教一下!站内信在线等.感激万分啊!
作者: sagood    时间: 2011-12-4 16:51

直接贴出来好了
作者: xuan1988    时间: 2011-12-4 16:57

Bankleitzahlen (Arbeiten mit Textdateien in C++)

Beim Internetbanking/Online-Banking geben Sie für eine Überweisung auf ein anderes Bankkonto die Kontonummer und die Bankleitzahl (BLZ) an. Zur Überprüfung sucht der Rechner dabei die Bezeichnung der Bank zu der eingegebenen BLZ heraus und zeigt Ihnen diese zur Bestätigung der Überweisung mit an. Die aktuellen Bankleitzahlen werden auf einem Server der Deutschen Bundesbank jeweils aktuell bereitgestellt.

In der nachfolgenden CSV-Datei zum Download finden Sie eine gekürzte Version der aktuellen Bankleitzahlendaten mit den Spalten BLZ (bank code number), Kurzbezeichnung (short description), PLZ (postal code), Ort (city). Eine CSV-Datei ist eine Textdatei, in der die einzelnen Einträge einer Zeile durch ein Trennzeichen wie das ';' voneinander getrennt sind. In der ersten Zeile stehen die Überschriften der Spalten, ab Zeile 2 folgen die eigentlichen Daten. CSV-Dateien können über ASCII-Editoren oder über Tabellenkalkulationsprogramme wie beispielsweise Microsoft Excel gelesen und bearbeitet werden.

blz.csv Excel-Tabelle

Laden Sie sich diese obige Datei blz.csv auf Ihren Rechner herunter.


Schreiben Sie ein C++-Programm, das zuerst diese heruntergeladene Textdatei blz.csv komplett liest und (nur) die Daten für die BLZ und die Kurzbezeichnung als unsortierte Liste im dynamischen Hauptspeicher (Heap) speichert. Die erste Zeile mit den Spaltenüberschriften soll dabei komplett überlesen werden. Die weiteren Daten in allen Zeilen nach der ersten Zeile sollen ignoriert werden, doppelte Zeilen/Einträge (verursacht durch Filialen von Banken) müssen nicht erkannt und aussortiert werden.

Danach soll in Ihrem Hauptprogramm eine Schleife programmiert werden, in der eine BLZ eingegeben werden kann (Ende bei Eingabe einer 0) und daraufhin eine Ausgabe der Form "BLZ: short description" oder "BLZ unknown" gemacht wird, also beispielsweise bei der Eingabe von 35050000 die Ausgabezeile 35050000: Spk Duisburg ausgegeben wird (siehe Beispiel Screenshot).

Beispiel (Screenshot) Datei

Hinweise

◦Sie dürfen die Datei blz.csv nicht verändern.
◦Lesen Sie die Datei wie in der Vorlesung gezeigt Zeile für Zeile als Text über die Funktion getline ein. Kopieren Sie jeweils die Zeichen bis zum ersten ';' in ein Feld für die BLZ, die Zeichen bis zum zweiten ';' in ein Feld für den Ort. Wandeln Sie die Zeichenkette in eine ganze Zahl um (hierfür können Sie selbst eine Funktion schreiben oder die in der C Standardbibliothek vordefinierte Funktion int atoi (const char * str); verwenden). Erzeugen Sie dann ein neues Element der Liste auf dem Heap, kopieren die BLZ in dieses, kopieren den Ort in eine Zeichenkette auf dem Heap und verbinden diese mit dem neuen Listenelement, und fügen das neue Listenelement anschließend in die Liste ein.
作者: sagood    时间: 2011-12-4 17:04

提示里面写的很清楚啦。打开文件,第一行是数据描述,第二行开始是数据部分,读取数据,提炼出 BLZ 和简短的描述,然后存在 std:list 里面。。

接下来就是让用户输入BLZ,然后你在存好的list里面检索相应的BLZ。。
作者: xuan1988    时间: 2011-12-4 17:11

回复 4# sagood


    可是太菜了写不出来啊。。。
作者: Darkpriest    时间: 2011-12-4 22:49

回复  sagood


    可是太菜了写不出来啊。。。
xuan1988 发表于 2011-12-4 17:11

慢慢学着写。实现想法只是学习编程的第一步,当然这步搞清楚了后面就比较舒服了。
作者: 近月    时间: 2011-12-5 10:40

这点程序找本c++的书啃两天就会了,耐心点。
作者: watergame    时间: 2011-12-5 10:54

回复 3# xuan1988


    德语啊 看不懂 悲剧
作者: ascend2    时间: 2011-12-5 13:22

每次问计算机问题的都是德语。。搞得想帮都帮不了




欢迎光临 人在德国 社区 (http://rs238848.rs.hosteurope.de/bbs/) Powered by Discuz! 7.2