求c语言程序设计答案

求c语言程序设计答案,第1张

#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->Nextp!=Endp=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=Headp->Next!=Endp=p->Next)

if(!strcmp(p->Next->name,name))return

p

return

NULL

}

Student

*FindID(char

*

Id)

{

for(Student

*

p=Headp->Next!=Endp=p->Next)

if(!strcmp(p->Next->Id,Id))return

p

return

NULL

}

Student

*FindCLASS(char

*

Class)

{

for(Student

*

p=Headp->Next!=Endp=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

*

tempHead->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->Nextp!=Endp=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->Nextp!=Endp=p->Next)

for(k=p->Nextk!=Endk=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->Nextp!=Endp=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=0i<3i++)

cout<<"\t\t◎\t\t\t\t\t\t

◎"<<endl

cout<<"\t\t◎★★★★【

欢迎进入学生成绩管理系统

】★★★★◎"<<endl

for(i=0i<3i++)

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<<"★★★★感谢您的使用★★★★"<<endlquit=truebreak

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++不可以嘛?

程序源码如下:

#define _CRT_SECURE_NO_WARNINGS//VS环境下需要,VC不需要

#include<stdio.h>

void main()

{

char a//定义一个字符

printf("请输入一个字符:")//文字提示

scanf("%c", &a)//输入一个字符

printf("其后续字符为:")//文字提示

printf("%c\n", a + 1)//输出其之后的字符

}

序运行结果如下:

扩展资料:

在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示。

而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。

ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。其中:

1、0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;

通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响 。

2、32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。

3、65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。

奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;

偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。

后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号

常见ASCII码的大小规则:0~9<A~Z<a~z。

1)数字比字母要小。如 “7”<“F”;

2)数字0比数字9要小,并按0到9顺序递增。如 “3”<“8” ;

3)字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z” ;

4)同个字母的大写字母比小写字母要小32。如“A”<“a” 。

几个常见字母的ASCII码大小: “A”为65;“a”为97;“0”为 48 。

参考资料来源:百度百科-ASCII

写个三重循环来寻找购买方案。

#include <stdio.h>

int main(void) {

int i,j,k,count=0

for (i=1i<=100/5i++) /*公鸡*/

for (j=1j<=100/3j++) /*母鸡*/

for (k=1k<=100*3k++) /*小鸡*/

if (i*5+j*3+k==100 && i+j+k*3==100) {

count ++

printf ("方案%d:%d只公鸡,%d只母鸡,%d只小鸡。\n",count,i,j,k*3)

printf ("100只鸡 = %d + %d + %d\n",i,j,k*3)

printf ("100元钱 = %d×5 + %d×3 + %d/3 = %d + %d + %d\n",i,j,k*3,i*5,j*3,k)

printf ("\n") 

}

}

运行结果


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7688720.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存