導航:首頁 > 編程語言 > c語言程序設計3答案

c語言程序設計3答案

發布時間:2023-08-16 14:33:36

『壹』 求c語言程序設計答案

#include
<fstream>
#include
<string.h>
#include
<iostream>
#include
<conio.h>//用getch();
using
namespace
std;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class
Student
{
public:
char
name[20];
char
Class[20];
char
Id[20];
int
Cnum;
//C課程得分
int
Mnum;
//數學課程得分
int
Enum;
//英語課程得分
int
Gnum;
//體育
int
sum;
//總分
int
ave;
//平均分
Student
*
Next;
void
Input()
{
cout<<"\t\t請輸入學生的姓名:";
cin>>name;
cout<<"\t\t請輸入學生的班級:";
cin>>Class;
cout<<"\t\t請輸入學生的學號:";
cin>>Id;
cout<<"\t\t請輸入C++的成績:";
cin>>Cnum;
cout<<"\t\t請輸入數學課程的成績:";
cin>>Mnum;
cout<<"\t\t請輸入英語課程的成績:";
cin>>Enum;
cout<<"\t\t請輸入日語的成績:";
cin>>Gnum;
sum=Cnum+Mnum+Enum+Gnum;
ave=(Cnum+Mnum+Enum+Gnum)/4;
}
void
ReadFile(istream
&
in)
{
in>>name>>Class>>Id>>Cnum>>Mnum>>Enum>>Gnum>>ave>>sum;
}
void
Show()
{
cout<<"姓名:"<<name<<endl<<"班級:"<<Class<<endl<<"學號:"<<Id<<endl<<"C++:"<<Cnum<<endl
<<"數學:"<<Mnum<<endl<<"外語:"<<Enum<<endl<<"日語:"<<Gnum<<endl<<"平均成績:"<<ave<<endl<<"總成績:"<<sum<<endl<<endl<<endl;
}
};
//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class
Studentmassage
{
public:
Studentmassage();
~Studentmassage();
void
ShowMenu();
void
Find();
void
Save();
void
ModifyItem();
void
RemoveItem();
void
Swap(Student
*,Student
*);
void
Sort();
int
ListCount();
void
Display()
{
for(Student
*
p=Head->Next;p!=End;p=p->Next)
p->Show();
cout<<"輸入任意字元!繼續……";
getch();
}
void
AddItem()
{
End->Input();
End->Next=new
Student;
End=End->Next;
cout<<"添加成功!"<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
private:
Student
*
Head,*
End;
ifstream
in;
ofstream
out;
Student
*FindItem(char
*
name)
{
for(Student
*
p=Head;p->Next!=End;p=p->Next)
if(!strcmp(p->Next->name,name))return
p;
return
NULL;
}
Student
*FindID(char
*
Id)
{
for(Student
*
p=Head;p->Next!=End;p=p->Next)
if(!strcmp(p->Next->Id,Id))return
p;
return
NULL;
}
Student
*FindCLASS(char
*
Class)
{
for(Student
*
p=Head;p->Next!=End;p=p->Next)
if(!strcmp(p->Next->Class,Class))return
p;
return
NULL;
}
}Grade;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌構造函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::Studentmassage()
{
Head=new
Student;
Head->Next=new
Student;
End=Head->Next;
in.open("sort.txt");
if(!in)
cout<<"這是一個新系統,無學生信息。請先輸入。"<<endl;
else
{
while(!in.eof())
{
End->ReadFile(in);
if(End->name[0]=='\0')break;
End->Next=new
Student;
End=End->Next;
}
in.close();
cout<<"\t\t讀取學生信息成功!"<<endl;
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析構函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::~Studentmassage()
{
Save();
for(Student
*
temp;Head->Next!=End;)
{
temp=Head->Next;
Head->Next=Head->Next->Next;
delete
temp;
}
delete
Head,End;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜單﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::ShowMenu()
{
cout<<"〓〓〓〓〓〓〓〓〓〓










〓〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓★★★★★
★★★★★★★
★★★★★〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★

1.增加學生成績

★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★

2.顯示學生成績

★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★

3.排序統計成績

★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★

4.查找學生成績

★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★

5.刪除學生成績

★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★

6.修改學生信息

★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★

0.安全退出系統

★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"\n\t\t\n\t\t請選擇:";
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::Find()
{
char
name[20]
,Id[10],Class[20];
int
x;
Student
*
p=NULL;
cout<<"\n\t\t*********************************\n";
cout<<"\t\t※
1.按學生的姓名查找\n\t\t※
2.按學生學號查找\n\t\t※
3.按學生班級查找";
cout<<"\n\t\t*********************************\n請選擇:";
cin>>x;
switch(x)
{
case
1:{cout<<"\t\t請輸入要查找的學生的姓名:";cin>>name;
if(p=FindItem(name))
{
p->Next->Show();
cout<<"輸入任意字元!繼續……";
getch();
}
else
{
cout<<"\t\t沒有找到該姓名的學生!"<<'\n'<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
}break;
case
2:
{
cout<<"\t\t請輸入要查找的學生的學號:";cin>>Id;
if(p=FindID(Id))
{
p->Next->Show();
cout<<"輸入任意字元!繼續……";
getch();
}
else
{
cout<<"\t\t沒有找到該學號的學生!"<<'\n'<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
}break;
case
3:{cout<<"\t\t請輸入要查找的學生的班級:";cin>>Class;
if(p=FindCLASS(Class))
{
p->Next->Show();
cout<<"輸入任意字元!繼續……";
getch();
}
else
{
cout<<"\t\t沒有找到該班級的學生!"<<'\n'<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
}break;
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::ModifyItem()
//修改信息
{
char
ID[20];
Student
*
p=NULL;
cout<<"\t\t請輸入要修改的人的學號:";cin>>ID;
if(p=FindID(ID))
{
cout<<"\t\t已找到學生的信息,請輸入新的信息!"<<endl;
p->Next->Input();
cout<<"修改成功!"<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
else
{
cout<<"\t\t沒有找到!"<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌刪除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::RemoveItem()
//
刪除信息
{
char
ID[20];
Student
*
p=NULL,*temp=NULL;
cout<<"\t\t請輸入要刪除的學生的學號:";cin>>ID;
if(p=FindID(ID))
{
temp=p->Next;
p->Next=p->Next->Next;
delete
temp;
cout<<"\t\t刪除成功!"<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
else
{
cout<<"\t\t沒有找到!"<<endl;
cout<<"輸入任意字元!繼續……";
getch();
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::Swap(Student
*p1,
Student
*p2)
{
Student
*temp=new
Student;
strcpy(temp->name,p1->name);
strcpy(temp->Id,p1->Id);
temp->Cnum=p1->Cnum;
temp->Mnum=p1->Mnum;
temp->Enum=p1->Enum;
temp->sum=p1->sum;
strcpy(p1->name,p2->name);
strcpy(p1->Id,p2->Id);
p1->Cnum=p2->Cnum;
p1->Mnum=p2->Mnum;
p1->Enum=p2->Enum;
p1->sum=p2->sum;
strcpy(p2->name,temp->name);
strcpy(p2->Id,temp->Id);
p2->Cnum=temp->Cnum;
p2->Mnum=temp->Mnum;
p2->Enum=temp->Enum;
p2->sum=temp->sum;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int
Studentmassage::ListCount()//統計當前的記錄總數
{
if(!
Head)
return
0;
int
n=0;
for(Student
*
p=Head->Next;p!=End;p=p->Next)
{
n++;
}
return
n;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::Sort()//對當前學生進行排序
{
cout
<<"Sorting..."<<endl;
Student
*p=NULL,*p1=NULL,*k=NULL;
int
n=Studentmassage::ListCount();
if(n<2)
return;
for(p=Head->Next;p!=End;p=p->Next)
for(k=p->Next;k!=End;k=k->Next)
{
if(p->sum>k->sum)
{
Studentmassage::Swap(p,k);
}
}
cout
<<"排序完成!"<<endl;
getch();
return;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void
Studentmassage::Save()
{
out.open("sort.txt");
for(Student
*p=Head->Next;p!=End;p=p->Next)
out<<p->name<<"\t"<<p->Class<<"\t"<<p->Id<<"\t"
<<p->Cnum<<"\t"<<p->Mnum<<"\t"<<p->Enum<<"\t"<<p->Gnum<<"\t"<<p->ave<<"\t"<<p->sum<<'\n';
out.close();
}
void
code()
//密碼
{
char
s1[20]="123",s2[20];
cout<<"請輸入密碼:";
while(cin>>s2)
{
if(!strcmp(s1,s2))
{
Grade.ModifyItem();break;
}
else
cout<<"你輸入的密碼不正確,請重新輸入:";
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函數﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int
main()
{
int
x,i=0;
bool
quit=false;
cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl;
for(i=0;i<3;i++)
cout<<"\t\t◎\t\t\t\t\t\t
◎"<<endl;
cout<<"\t\t◎★★★★【
歡迎進入學生成績管理系統
】★★★★◎"<<endl;
for(i=0;i<3;i++)
cout<<"\t\t◎\t\t\t\t\t\t
◎"<<endl;
cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"<<endl;;
cout<<"請按任意鍵開始……";
getch();
while(!quit)
{
system("cls");
Grade.ShowMenu();
cin>>x;
switch(x)
{
case
0:cout<<"★★★★感謝您的使用★★★★"<<endl;quit=true;break;
case
1:Grade.AddItem();break;
case
2:Grade.Display();break;
case
3:Grade.Sort();break;
case
4:Grade.Find();break;
case
5:Grade.RemoveItem();break;
case
6:code();break;
}
}
return
0;
}
我稍微改了下,應該可以用~
額~~你們一定要C編嗎~C++不可以嘛?

『貳』 求C語言程序設計習題集與上機指導-第三版 (及答案)......

大學學習資料免費下載網 有

在 其他公共課程 版塊

標題:
譚浩強《C程序設計題解與版上機指導》(電子書權+紙質書)
譚浩強編《C語言程序設計》(電子書word(txt)、pdf+紙質書)
譚浩強C語言程序設計習題參考解答
和配套 C程序設計題解與上機指導 答案

都有的 還有其他課程答案 (下載不用積分)

『叄』 c語言程序設計答案

#include "stdio.h"
#include <stdlib.h>
#define SIZE 10

struct student{
char id[20];
char name[20];
int score[3];
int all;
float average;
} stud[SIZE];

void input() /* 輸入學生的信息 */
{
int i;

for(i=0;i<SIZE;i++)
{
printf("第%d個學生的信息:\n",i+1);
scanf("%s%s%d%d%d",stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
}
}

void average() /* 每個學生總成績、平均成績和所有學生的總成績 */
{
int i,all=0;

for(i=0;i<SIZE;i++)
{
stud[i].all=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];
stud[i].average=stud[i].all/3.0;
all+=stud[i].all;
}
for(i=0;i<SIZE;i++)
printf("%s %s %d %d %d %d %3.1f\n",stud[i].id,stud[i].name,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].all,stud[i].average);
printf("總平均成績:%3.1f\n",all/30.0);
}

void maximum() /* 排序輸出最高分的學生信息 */
{
int i,j;
struct student temp;

for(i=0;i<SIZE;i++)
{
for(j=0;j<SIZE-i-1;j++)
{
if(stud[j].all<stud[j+1].all)
{
temp=stud[j];
stud[j]=stud[j+1];
stud[j+1]=temp;
}
}
}
printf("\n%s %s %d %d %d \n",stud[0].id,stud[0].name,stud[0].score[0],stud[0].score[1],stud[0].score[2]);
}

void main()
{
input();
average();
maximum();
}

『肆』 c語言程序設計第三版課後習題答案

習抄 題 1

1.1 填空題

1.函數襲

2.主函數main();主函數main()

3.主函數main()

4.函數首部;函數體

5.{;}

6.順序結構;選擇結構;循環結構

7..c;.obj;.exe

1.2 思考題

1.答:結構化程序設計是指,為使程序具有一個合理的結構以保證程序正確性而規定的一套如何進行程序設計的原則。順序結構,選擇結構,循環結構

2.答:演算法是對具體問題求解步驟的一

閱讀全文

與c語言程序設計3答案相關的資料

熱點內容
數控中怎麼編程 瀏覽:409
vm如何安裝linux系統 瀏覽:423
歌手實績數據在哪裡看 瀏覽:691
代碼002 瀏覽:714
jdk如何編譯java文件 瀏覽:900
修改iptables配置文件 瀏覽:427
word自動保存指定文件夾 瀏覽:18
電腦畫質不清晰win10 瀏覽:912
diskgen使用教程 瀏覽:970
常州數控車編程培訓哪裡有 瀏覽:44
如何升級晴明等級 瀏覽:347
開頭是什麼文件 瀏覽:645
linux16進制看elf文件 瀏覽:663
紙檔文件怎麼能變成excel檔 瀏覽:481
迅雷下載總出現jsp 瀏覽:150
創建網頁用什麼編程語言 瀏覽:526
考研哪個app好 瀏覽:30
計算機網路的概念是什麼 瀏覽:625
網路硬碟存儲製作 瀏覽:4
iphone怎麼備份數據到電腦 瀏覽:41

友情鏈接