| 5 | 1/1 | 返回列表 |
| 查看: 4110 | 回復(fù): 22 | |||
| 當(dāng)前只顯示滿足指定條件的回帖,點(diǎn)擊這里查看本話題的所有回帖 | |||
[交流]
【求助】自己寫的C語(yǔ)言,突然想看看C++是什么,求助一下。還有C語(yǔ)言和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])//密碼驗(yàn)證 { 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("密碼錯(cuò)誤\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("請(qǐng)輸入密碼:\n"); scanf("%s",pass); if (Check(pass)) { printf("修改學(xué)生信息:\n"); printf("請(qǐng)輸入學(xué)號(hào):\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("---------------通過(guò)學(xué)號(hào)查詢,press 1-------------\n"); printf("---------------通過(guò)姓名查詢,press 2-----------\n"); printf("---------------通過(guò)性別查詢,press 3------------\n"); printf("---------------通過(guò)年齡查詢,press 4------------\n"); printf("---------------退出,press 5 ------------\n"); scanf("%d",&temp); switch (temp) { case 1://按照學(xué)號(hào)查詢 { char num[10]; printf("請(qǐng)輸入學(xué)號(hào):\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("請(qǐng)輸入性別:\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("請(qǐng)輸入年齡:\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("請(qǐng)輸入密碼:\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("請(qǐng)選擇:\n"); scanf("%d",&select); } } } |
新蟲 (初入文壇)
木蟲 (小有名氣)
金蟲 (職業(yè)作家)

金蟲 (文壇精英)
老漢一枚
|
在1998年的元旦,Bjarne Stroustrup(C++之父)接受了IEEE《計(jì)算機(jī)》雜志記者的專訪。編輯很自然的認(rèn)為他會(huì)對(duì)于過(guò)去七年來(lái)使用他創(chuàng)建的語(yǔ)言進(jìn)行面對(duì)對(duì)象設(shè)計(jì)做一個(gè)歷史性的回顧。而在這個(gè)專訪中,記者獲得了更有價(jià)值的新聞,但是最后編輯決定為了整個(gè)IT產(chǎn)業(yè),這個(gè)稿子不能發(fā)表!。 但是就像其它被砍掉的新聞,往往還是弄得路人皆知的。這一篇適當(dāng)時(shí)專訪的完全拷貝,沒(méi)有被編輯、刪改或者做過(guò)什么潤(rùn)色處理,也沒(méi)有發(fā)布過(guò),可能看起來(lái)不像常見(jiàn)的雜志文章,但這是實(shí)情。你會(huì)發(fā)現(xiàn)真正引人入勝的地方... ...... 記者: 您在幾年前你改變了軟件設(shè)計(jì)世界的面貌,現(xiàn)在再回首往事您有什么感想? Stroustrup: 事實(shí)上我在你到來(lái)之前的這些天里一直在考慮這件事,你還記得幾乎所有的人都在寫C程序那會(huì)兒?jiǎn)幔柯闊┑氖沁@些人寫得太好了,而且那些個(gè)大學(xué)也都在努力的傳授C編程技術(shù)。的確他們是十分的成功——我要特別的指出“成功”這個(gè)詞——因?yàn)檫@種顯著的C程序員的培養(yǎng)效率,這就是產(chǎn)生問(wèn)題的原因。 記者: 這難道是個(gè)問(wèn)題嗎? Stroustrup: 當(dāng)然,你記得大家都在用Cobol語(yǔ)言寫程序的時(shí)候嗎? 記者: 哦,當(dāng)然,當(dāng)時(shí)我也一樣。 Stroustrup: 在一開始的時(shí)候,這些人簡(jiǎn)直象半個(gè)上帝似的拿著高工資,享受著貴族一樣的待遇。 記者: 唉,那些日子多么的讓人懷念,是吧? Stroustrup: 當(dāng)然了。但是接著發(fā)生了什么?IBM覺(jué)得這樣不舒服,就投資了數(shù)百萬(wàn)來(lái)培養(yǎng)程序員,直到程序員多得一毛錢就可以雇一打。 記者: 這就是為什么當(dāng)時(shí)我撤出來(lái)了,工資在一年里就降到人們?cè)谡f(shuō)做個(gè)記者都比程序員強(qiáng)的地步。 Stroustrup: 對(duì)啦!那時(shí)侯相同的事情發(fā)生在了C程序員身上了。 記者: 這個(gè)我明白了,可是您要說(shuō)的是…… Stroustrup: 有一天,我坐在辦公室里就在想如何能把這件事挽回一些。我想知道如果有一種特別復(fù)雜而且難以學(xué)會(huì)的語(yǔ)言,是否就沒(méi)有人可以又把程序員們搞到市場(chǎng)的泥潭里去呢?我用了從X10里了解到的東西,,噢,就是X-Windows,真是一個(gè)該死的圖形系統(tǒng),只能運(yùn)行在那些個(gè)SUN 3/60的機(jī)器里,哈!它具有所有我想要的特征:可笑而復(fù)雜的語(yǔ)法,含混的功能描述,還有偽裝的OO結(jié)構(gòu),就算是在現(xiàn)在,還是沒(méi)有人愿意用那些東西,如果你不想發(fā)瘋的話,Motif才是唯一解決方案。 記者: 你是在開玩笑嗎? Stroustrup: 沒(méi)有,事實(shí)上還有另外的一個(gè)問(wèn)題,UNIX是用C寫的,就是說(shuō)任何一個(gè)C程序員都可以很容易的成為系統(tǒng)程序的開發(fā)者。還記得一個(gè)大型的主機(jī)系統(tǒng)應(yīng)用的開發(fā)者通常能掙多少錢嗎? 記者: 你肯定是知道我當(dāng)時(shí)就是干這個(gè)的。 Stroustrup: 好吧,因此這個(gè)新的語(yǔ)言一定要通過(guò)隱藏所有的系統(tǒng)調(diào)用來(lái)和UNIX分離開來(lái),這樣可以使那些個(gè)就只是知道DOS的人也可以活得很體面。 記者: 我不大相信您說(shuō)的這個(gè)…… Stroustrup: 而且到現(xiàn)在時(shí)間也夠長(zhǎng)的了,我相信有很多的人已經(jīng)指出了C++是對(duì)時(shí)間的浪費(fèi),我要說(shuō)的是,這個(gè)過(guò)程比我想象的要長(zhǎng)的多了。 記者: 那么您又是如何做到的呢? Stroustrup: 那只是一個(gè)玩笑,我真的沒(méi)有想到人們會(huì)對(duì)那本書那么認(rèn)真。任何人只要長(zhǎng)了半個(gè)大腦也應(yīng)該明白面對(duì)對(duì)象編程是荒謬而不合邏輯的,而且效率低下。 記者: 什么? Stroustrup: 再說(shuō)代碼重用,你什么時(shí)候聽(tīng)說(shuō)過(guò)有公司重用他的代碼? 記者: 事實(shí)上從來(lái)沒(méi)有,但是…… Stroustrup: 那么我提醒你一下,在早期有很多的例子。哦,有一家叫Menter Graphics的俄勒岡州公司,我認(rèn)為他們應(yīng)該是感冒了,竟然在90年或者是91年把所有的代碼用C++重寫了一遍,對(duì)不起,我實(shí)在是想不起確切的時(shí)間了,我看大家應(yīng)該從這個(gè)事件中吸取教訓(xùn)。 記者: 沒(méi)有人真正的吸取了教訓(xùn)嗎? Stroustrup:沒(méi)有,而且還有很多公司犯同樣的錯(cuò)誤,還向他們的股東解釋說(shuō)那3億美圓的損失是正常的,他們就是做了這樣的事情。 記者: 真的?可是這也只能證明OO方法是能夠工作的,不是嗎? Stroustrup: 也許吧,執(zhí)行文件是那么大,在一臺(tái)有128M內(nèi)存的HP工作站上只是裝載到內(nèi)存中就要用5分鐘時(shí)間,然后將象毛毛蟲爬樹一樣的運(yùn)行。事實(shí)上我在第一個(gè)禮拜就發(fā)現(xiàn)了這個(gè)缺點(diǎn),奇怪的是好象沒(méi)人在乎這個(gè),Sun和HP好象只在乎買出那些功能強(qiáng)大的各種玩意兒,而不在乎在上面跑什么程序。在AT&.T的時(shí)候我編了一個(gè)“Hello World”程序,簡(jiǎn)直是難以置信,執(zhí)行文件有2.1M。 ...... |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 26考研調(diào)劑 +4 | Wnz.20030617 2026-04-01 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 285求調(diào)劑 +14 | AZMK 2026-04-02 | 14/700 |
|
|
[考研] 326求調(diào)劑 +3 | 崽崽仔 2026-04-02 | 3/150 |
|
|
[考研] 材料求調(diào)劑 一志愿哈工大總分298分,前三科223分 +12 | dongfang59 2026-03-27 | 12/600 |
|
|
[考研] 0710生物學(xué)336分求調(diào)劑 +3 | kiyy 2026-04-01 | 3/150 |
|
|
[考研] 材料考研調(diào)劑 +9 | Gs大王 2026-04-02 | 9/450 |
|
|
[考研]
|
廈大化工 2026-04-01 | 5/250 |
|
|
[考研] 298求調(diào)劑 +4 | 什么是胖頭魚 2026-03-30 | 6/300 |
|
|
[考研] 292求調(diào)劑 +17 | 木蟲er12138 2026-04-01 | 17/850 |
|
|
[考研] 303分 0807學(xué)碩求調(diào)劑 +3 | TYC3632 2026-04-01 | 3/150 |
|
|
[考研] 調(diào)劑 +3 | 好好讀書。 2026-04-01 | 3/150 |
|
|
[考研] 一志愿北交材料工程總分358 +5 | cs0106 2026-04-01 | 7/350 |
|
|
[考研] 土木304求調(diào)劑 +3 | 兔突突突, 2026-03-31 | 3/150 |
|
|
[考研] 289求調(diào)劑 +3 | Acesczlo 2026-03-29 | 4/200 |
|
|
[考研] 生物考研337分求調(diào)劑 +4 | cgxin 2026-03-30 | 6/300 |
|
|
[考研] 085602化工求調(diào)劑(331分) +8 | 111@127 2026-03-30 | 8/400 |
|
|
[考研] 求調(diào)劑 +10 | 家佳佳佳佳佳 2026-03-29 | 10/500 |
|
|
[考研] 071010 323 分求調(diào)劑 +3 | Baekzhy 2026-03-27 | 3/150 |
|
|
[考研] 315調(diào)劑 +4 | 0860求調(diào)劑 2026-03-26 | 5/250 |
|
|
[考研] 調(diào)劑 +3 | 李嘉圖·S·路 2026-03-27 | 3/150 |
|