| 查看: 4060 | 回復(fù): 22 | |||
[交流]
【求助】自己寫的C語言,突然想看看C++是什么,求助一下。還有C語言和C++有什么區(qū)別啊 已有21人參與
|
|||
|
#include #include #include #include #define N 3 struct student { char name[10]; char no[10]; char sex; int age; char bnote[100]; }; void print(bool menu)//打印基本信息 { if (!menu) { printf("學(xué)生基本信息錄入 ,press 1\n"); } else { printf("學(xué)生基本信息顯示 ,press 2\n"); printf("學(xué)生基本信息保存 ,press 3\n"); printf("學(xué)生基本信息刪除 ,press 4\n"); printf("學(xué)生基本信息修改 ,press 5\n"); printf("學(xué)生基本信息查詢 ,press 6\n"); } printf("退出學(xué)生信息系統(tǒng) ,press 7\n"); } bool Check(char pas[6])//密碼驗證 { FILE *fp; char ch; char a[7]={" "}; int i = 0; if ((fp=fopen("c:\\1.txt","r"))==NULL) { printf("打開文件失敗!\n"); exit(0); } ch=fgetc(fp); while (ch!=EOF&&i<6) { a = ch; ch=fgetc(fp); i++; } a[6] = '\0'; if (!strcmp(pas,a)) { return true; } else { printf("密碼錯誤\n"); return false; } fclose(fp); } void GetInfo(struct student *arr,int n)//學(xué)生基本信息錄入 { for (int i = 0;i printf("輸入學(xué)生的基本信息:name no sex age bnote\n"); scanf("%s %s %c %d %s",arr.name,arr.no,&arr.sex,&arr.age,arr.bnote); } } void Display(struct student* arr,int n)//學(xué)生基本信息顯示 { printf("學(xué)生信息: Name NO Sex age Note\n"); for (int i = 0;i printf("%15s%15s%15c%15d%15s\n",arr.name,arr.no,arr.sex,arr.age,arr.bnote); } } void Save(struct student* arr,int n)//學(xué)生基本信息保存,保存在c:\\student.txt { FILE * fp; fp= fopen("c:\\student.txt","w+"); if (fp == NULL) { printf("文件不存在!\n"); exit(0); } fwrite(arr,sizeof(struct student)*n,n,fp); fclose(fp); } void Modfiy(struct student* arr,int n)//學(xué)生基本信息修改 { char number[10]; bool flag=false; char pass[6]; printf("請輸入密碼:\n"); scanf("%s",pass); if (Check(pass)) { printf("修改學(xué)生信息:\n"); printf("請輸入學(xué)號:\n"); scanf("%s",number); for (int i =0;i if (!strcmp(number,arr.no)) { printf("infor: name no sex age note\n"); printf("%12s%12s%12c%12d%12s\n",arr.name,arr.no, arr.sex,arr.age,arr.bnote); printf("please input information:\n"); scanf("%s%s%c%d%s",arr.name,arr.no,&arr.sex,&arr.age,arr.bnote); Save(arr,n); flag = true; } } if (flag == false) { printf("該學(xué)生不存在!:\n"); } } } void Delete(struct student* arr,int n)//學(xué)生基本信息刪除 { char number[10]; bool flag=false; printf("Delete information:\n"); printf("please input the no:\n"); scanf("%s",number); for (int i =0;i if (!strcmp(number,arr.no)) { strcpy(arr.name," "); strcpy(arr.no," "); strcpy(arr.bnote," "); arr.sex = ' '; arr.age = 0; Save(arr,n); flag = true; } } if (flag == true) { printf("該學(xué)生不存在!:\n"); } } void Search(struct student* arr,int n)//學(xué)生基本信息查詢 { int temp,i; bool flag=false; printf("---------------通過學(xué)號查詢,press 1-------------\n"); printf("---------------通過姓名查詢,press 2-----------\n"); printf("---------------通過性別查詢,press 3------------\n"); printf("---------------通過年齡查詢,press 4------------\n"); printf("---------------退出,press 5 ------------\n"); scanf("%d",&temp); switch (temp) { case 1://按照學(xué)號查詢 { char num[10]; printf("請輸入學(xué)號:\n"); scanf("%s",num); for ( i =0;i if (!strcmp(num,arr.no)) { printf("%12s%12s%12c%12d%12s\n",arr.name,arr.no, arr.sex,arr.age,arr.bnote); flag = true; } } if (!flag) { printf("該學(xué)生不存在.\n"); } } break; case 2://按照名字查詢 { char num[10]; printf("please input name:\n"); scanf("%s",num); for ( i =0;i if (!strcmp(num,arr.name)) { printf("%12s%12s%12c%12d%12s",arr.name,arr.no, arr.sex,arr.age,arr.bnote); flag = true; } } if (!flag) { printf("該學(xué)生不存在.\n"); } } break; case 3://按照性別查詢 { char ch; printf("請輸入性別:\n"); //scanf("%c",&ch); ch = getch(); for ( i =0;i if (ch == arr.sex) { printf("%12s%12s%12c%12d%12s\n",arr.name,arr.no, arr.sex,arr.age,arr.bnote); flag = true; } } if (!flag) { printf("t該學(xué)生不存在.\n"); } } break; case 4://按照年齡查詢 { char num_age; printf("請輸入年齡:\n"); scanf("%d",&num_age); for ( i =0;i if (num_age == arr.age) { printf("%12s%12s%12c%12d%12s\n",arr.name,arr.no, arr.sex,arr.age,arr.bnote); flag = true; } } if (!flag) { printf("該學(xué)生不存在.\n"); } } break; default: break; } } void main() { struct student arr[N]; char ps[6]; bool flag =false; printf("請輸入密碼:\n"); scanf("%s",ps); flag = Check(ps); if (flag) { int select; print(false); scanf("%d",&select); while (0 { switch (select) { case 1: GetInfo(arr,N); print(true); break; case 2: Display(arr,N); print(true); break; case 3: Save(arr,N); print(true); break; case 4: Delete(arr,N); print(true); break; case 5: Modfiy(arr,N); print(true); break; case 6: Search(arr,N); print(true); break; default: break; } printf("請選擇:\n"); scanf("%d",&select); } } } |


金蟲 (文壇精英)
老漢一枚
|
在1998年的元旦,Bjarne Stroustrup(C++之父)接受了IEEE《計算機》雜志記者的專訪。編輯很自然的認為他會對于過去七年來使用他創(chuàng)建的語言進行面對對象設(shè)計做一個歷史性的回顧。而在這個專訪中,記者獲得了更有價值的新聞,但是最后編輯決定為了整個IT產(chǎn)業(yè),這個稿子不能發(fā)表!。 但是就像其它被砍掉的新聞,往往還是弄得路人皆知的。這一篇適當(dāng)時專訪的完全拷貝,沒有被編輯、刪改或者做過什么潤色處理,也沒有發(fā)布過,可能看起來不像常見的雜志文章,但這是實情。你會發(fā)現(xiàn)真正引人入勝的地方... ...... 記者: 您在幾年前你改變了軟件設(shè)計世界的面貌,現(xiàn)在再回首往事您有什么感想? Stroustrup: 事實上我在你到來之前的這些天里一直在考慮這件事,你還記得幾乎所有的人都在寫C程序那會兒嗎?麻煩的是這些人寫得太好了,而且那些個大學(xué)也都在努力的傳授C編程技術(shù)。的確他們是十分的成功——我要特別的指出“成功”這個詞——因為這種顯著的C程序員的培養(yǎng)效率,這就是產(chǎn)生問題的原因。 記者: 這難道是個問題嗎? Stroustrup: 當(dāng)然,你記得大家都在用Cobol語言寫程序的時候嗎? 記者: 哦,當(dāng)然,當(dāng)時我也一樣。 Stroustrup: 在一開始的時候,這些人簡直象半個上帝似的拿著高工資,享受著貴族一樣的待遇。 記者: 唉,那些日子多么的讓人懷念,是吧? Stroustrup: 當(dāng)然了。但是接著發(fā)生了什么?IBM覺得這樣不舒服,就投資了數(shù)百萬來培養(yǎng)程序員,直到程序員多得一毛錢就可以雇一打。 記者: 這就是為什么當(dāng)時我撤出來了,工資在一年里就降到人們在說做個記者都比程序員強的地步。 Stroustrup: 對啦!那時侯相同的事情發(fā)生在了C程序員身上了。 記者: 這個我明白了,可是您要說的是…… Stroustrup: 有一天,我坐在辦公室里就在想如何能把這件事挽回一些。我想知道如果有一種特別復(fù)雜而且難以學(xué)會的語言,是否就沒有人可以又把程序員們搞到市場的泥潭里去呢?我用了從X10里了解到的東西,,噢,就是X-Windows,真是一個該死的圖形系統(tǒng),只能運行在那些個SUN 3/60的機器里,哈!它具有所有我想要的特征:可笑而復(fù)雜的語法,含混的功能描述,還有偽裝的OO結(jié)構(gòu),就算是在現(xiàn)在,還是沒有人愿意用那些東西,如果你不想發(fā)瘋的話,Motif才是唯一解決方案。 記者: 你是在開玩笑嗎? Stroustrup: 沒有,事實上還有另外的一個問題,UNIX是用C寫的,就是說任何一個C程序員都可以很容易的成為系統(tǒng)程序的開發(fā)者。還記得一個大型的主機系統(tǒng)應(yīng)用的開發(fā)者通常能掙多少錢嗎? 記者: 你肯定是知道我當(dāng)時就是干這個的。 Stroustrup: 好吧,因此這個新的語言一定要通過隱藏所有的系統(tǒng)調(diào)用來和UNIX分離開來,這樣可以使那些個就只是知道DOS的人也可以活得很體面。 記者: 我不大相信您說的這個…… Stroustrup: 而且到現(xiàn)在時間也夠長的了,我相信有很多的人已經(jīng)指出了C++是對時間的浪費,我要說的是,這個過程比我想象的要長的多了。 記者: 那么您又是如何做到的呢? Stroustrup: 那只是一個玩笑,我真的沒有想到人們會對那本書那么認真。任何人只要長了半個大腦也應(yīng)該明白面對對象編程是荒謬而不合邏輯的,而且效率低下。 記者: 什么? Stroustrup: 再說代碼重用,你什么時候聽說過有公司重用他的代碼? 記者: 事實上從來沒有,但是…… Stroustrup: 那么我提醒你一下,在早期有很多的例子。哦,有一家叫Menter Graphics的俄勒岡州公司,我認為他們應(yīng)該是感冒了,竟然在90年或者是91年把所有的代碼用C++重寫了一遍,對不起,我實在是想不起確切的時間了,我看大家應(yīng)該從這個事件中吸取教訓(xùn)。 記者: 沒有人真正的吸取了教訓(xùn)嗎? Stroustrup:沒有,而且還有很多公司犯同樣的錯誤,還向他們的股東解釋說那3億美圓的損失是正常的,他們就是做了這樣的事情。 記者: 真的?可是這也只能證明OO方法是能夠工作的,不是嗎? Stroustrup: 也許吧,執(zhí)行文件是那么大,在一臺有128M內(nèi)存的HP工作站上只是裝載到內(nèi)存中就要用5分鐘時間,然后將象毛毛蟲爬樹一樣的運行。事實上我在第一個禮拜就發(fā)現(xiàn)了這個缺點,奇怪的是好象沒人在乎這個,Sun和HP好象只在乎買出那些功能強大的各種玩意兒,而不在乎在上面跑什么程序。在AT&.T的時候我編了一個“Hello World”程序,簡直是難以置信,執(zhí)行文件有2.1M。 ...... |
新蟲 (初入文壇)
鐵蟲 (小有名氣)

木蟲 (小有名氣)
新蟲 (初入文壇)
|
木蟲 (正式寫手)
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 211本,11408一志愿中科院277分,曾在中科院自動化所實習(xí) +6 | Losir 2026-03-12 | 7/350 |
|
|---|---|---|---|---|
|
[考研] 302求調(diào)劑 +4 | 小賈同學(xué)123 2026-03-15 | 8/400 |
|
|
[考研] 機械專碩325,尋找調(diào)劑院校 +3 | y9999 2026-03-15 | 5/250 |
|
|
[考研] 085600調(diào)劑 +5 | 漾漾123sun 2026-03-12 | 6/300 |
|
|
[考研] 085601材料工程315分求調(diào)劑 +3 | yang_0104 2026-03-15 | 3/150 |
|
|
[考研] 本科南京大學(xué)一志愿川大藥學(xué)327 +3 | 麥田耕者 2026-03-14 | 3/150 |
|
|
[考研] 復(fù)試調(diào)劑 +9 | Copy267 2026-03-10 | 9/450 |
|
|
[考研] 341求調(diào)劑 +4 | 番茄頭--- 2026-03-10 | 4/200 |
|
|
[考研] 材料專碩288分求調(diào)劑 一志愿211 +4 | 在家想你 2026-03-11 | 4/200 |
|
|
[考研] 0703化學(xué)調(diào)劑 +4 | 快樂的香蕉 2026-03-11 | 4/200 |
|
|
[考研] 0856材料與化工301求調(diào)劑 +5 | 奕束光 2026-03-13 | 5/250 |
|
|
[考研] 26調(diào)劑/材料/英一數(shù)二/總分289/已過A區(qū)線 +6 | 步川酷紫123 2026-03-13 | 6/300 |
|
|
[考研] 工科,求調(diào)劑 +3 | 我887 2026-03-11 | 3/150 |
|
|
[考研] 301求調(diào)劑 +6 | Liyouyumairs 2026-03-11 | 6/300 |
|
|
[考研] 求b區(qū)學(xué)校調(diào)劑 +3 | 周56 2026-03-11 | 3/150 |
|
|
[考研] 310求調(diào)劑 +3 | 【上上簽】 2026-03-11 | 3/150 |
|
|
[論文投稿]
投稿問題
5+4
|
星光燦爛xt 2026-03-12 | 6/300 |
|
|
[考研] 0856化學(xué)工程280分求調(diào)劑 +4 | shenzxsn 2026-03-11 | 4/200 |
|
|
[考研] 290求調(diào)劑 +3 | ADT 2026-03-13 | 3/150 |
|
|
[考研] 290求調(diào)劑 +3 | 柯淮然 2026-03-10 | 8/400 |
|