c程序课程设计实例

c程序课程设计实例,第1张

第一题:

#include <iostream>

using namespace std

void main()

{ int i, j, k, count=0

for( i=1i<=9i++)

for( j=0j<=9j++)

if ( i==j )

continue

else

for( k=0k<=9k++)

if ( k!=i&&k!=j)

{count++

cout<<i<<拿唤衡j<<k<<ends

}

cout<<endl

cout<<"所有这样的三位数个数有:"<<count<<" 个"<<endl

}

第二题

#include <iostream>

using namespace std

int fun(char*s,int n)

{

int flag=1

for(int i=0i<ni++)//比较前n个字符是否为*

if(s[i]!='*')

{

flag=0

break

}

if(flag==0)

return 0

else

{

int k=n

while(s[k]!='\0')//移动到非*字符

{

if(s[k]=='*')

k++

else

break

}

int j=0

while(s[k]!='\0')//向前复制

{

s[n+j]=s[k]

k++

j++

}

s[n+j]='\0'

}

return 1

}

void main()

{

static char str[15]

int m

cout<<"请输入一个只含*和字母的字符串:"<<endl

cin>>str

cout<<"请输入n值:"<<endl

cin>>m

fun(str,m)

cout<<str<<endl

}

第三题

#include "iostream"

#include "string"

#include "list"

#include "cassert"

using namespace std

/*

编号、姓名、部门、应付工资、保险、税金消做、实付工资。

其中实付工资由公式计算得到:实付工资=应付工资 - 保险- 税金

*/

struct employee{

string m_num//编号

string m_name//姓名

string m_dep//部门

double m_salary//应付工资

double m_insurance//保险

double m_tax//税金

}

/*

(1)录入:输入职工数据,其中“实付工资”通过计算得到;

(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息)

(3) 修改:允许对已经录入的数据重新进行编辑、修改;

(4) 显示:显示全体职工链猜数据;

(5)查询:

a. 输入职工姓名,显示该职工的全部数据;

b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。

(6) 退出程序。

*/

list<employee>emps

int main(int argc, char argv[])

{

void print(const employee &e)

void input()

void del()

void mod()

void show_all()

void show_name()

void show_dep()

cout<<"请选择 *** 作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"<<endl

int choose=0

cin>>choose

assert(!cin.fail())

while (choose!=6)

{

if (choose==1) input()

if (choose==2) del()

if (choose==3) mod()

if (choose==4)

{

int choice=0

cout<<"请选择 *** 作 1.按姓名查询 2.按部门查询 3.退出:"<<endl

cin>>choice

if (choice==1) show_name()

if (choice==2) show_dep()

if (choice==3)

{

cout<<"请选择 *** 作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"<<endl

cin>>choose

assert(!cin.fail())

continue

}

}

if (choose==5) show_all()

cout<<"请选择 *** 作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :"

cin>>choose

assert(!cin.fail())

}

return 0

}

void print(const employee &e)

{

cout<<"编号:"<<e.m_num<<endl

cout<<"姓名:"<<e.m_name<<endl

cout<<"部门:"<<e.m_dep<<endl

cout<<"保险:"<<e.m_insurance<<endl

cout<<"税金:"<<e.m_tax<<endl

cout<<"应付工资:"<<e.m_salary<<endl

cout<<"实付工资:"<<e.m_salary-e.m_insurance-e.m_tax<<endl

}

void input()

{

string num,name,dep

double salary,ins,tax

cout<<"请输入员工编号:"<<endl

cin>>num

cout<<"请输入员工姓名:"<<endl

cin>>name

cout<<"请输入员工部门:"<<endl

cin>>dep

cout<<"请输入员工保险:"<<endl

cin>>ins

assert(!cin.fail())

cout<<"请输入员工税金:"<<endl

cin>>tax

assert(!cin.fail())

cout<<"请输入员工应付工资:"<<endl

cin>>salary

assert(!cin.fail())

employee temp

temp.m_dep=dep

temp.m_insurance=ins

temp.m_name=name

temp.m_num=num

temp.m_salary=salary

temp.m_tax=tax

emps.push_back(temp)

cout<<"员工录入 *** 作完毕."<<endl

}

void del()

{

if (emps.size()==0)

{

cout<<"没有员工记录."<<endl

return

}

string name

bool isfind=false

cout<<"请输入要删除的员工姓名:"<<endl

cin>>name

list<employee>::iterator iter

for (iter=emps.begin()iter!=emps.end()iter++)

{

if (iter->m_name==name)

{

isfind=true

emps.erase(iter)

cout<<"姓名为"<<name<<"的员工记录已删除."<<endl

return

}

}

if (!isfind)

{

cout<<"没有找到姓名为"<<name<<"的员工."<<endl

return

}

}

void mod()

{

if (emps.size()==0)

{

cout<<"员工记录为空."<<endl

return

}

bool isfind=false

string name

cout<<"请输入要修改的员工姓名:"<<endl

cin>>name

list<employee>::iterator iter

for (iter=emps.begin()iter!=emps.end()iter++)

{

if (iter->m_name==name)

{

isfind=true

cout<<"姓名为"<<name<<"的员工记录已找到."<<endl

break

}

}

if (isfind)

{

string num,name,dep

double tax,ins,salary

print(*iter)

cout<<endl

cout<<"请输入新的员工编号:"<<endl

cin>>num

cout<<"请输入新的员工姓名:"<<endl

cin>>name

cout<<"请输入新的员工部门:"<<endl

cin>>dep

cout<<"请输入新的员工保险:"<<endl

cin>>ins

assert(!cin.fail())

cout<<"请输入新的员工税金:"<<endl

cin>>tax

assert(!cin.fail())

cout<<"请输入新的员工工资:"<<endl

cin>>salary

assert(!cin.fail())

iter->m_dep=dep

iter->m_insurance=ins

iter->m_name=name

iter->m_num=num

iter->m_salary=salary

iter->m_tax=tax

cout<<"1 员工记录被成功修改."<<endl

}

else

{

cout<<"没有找到姓名为"<<name<<"的员工记录."<<endl

}

}

void show_all()

{

if (emps.size()==0)

{

cout<<"员工记录为空."<<endl

return

}

cout<<"显示全体员工数据:"<<endl

cout<<"--------------------"<<endl

list<employee>::iterator iter

for(iter=emps.begin()iter!=emps.end()iter++)

{

cout<<endl

print(*iter)

cout<<endl

}

cout<<"--------------------"<<endl

}

void show_name()

{

if (emps.size()==0)

{

cout<<"员工记录为空."<<endl

return

}

bool isfind=false

string name

cout<<"请输入要查询的员工姓名:"<<endl

cin>>name

list<employee>::iterator iter

for(iter=emps.begin()iter!=emps.end()iter++)

{

if (iter->m_name==name)

{

isfind=true

cout<<"姓名为"<<name<<"的员工记录已找到."<<endl

print(*iter)

break

}

}

if (!isfind)

{

cout<<"没有找到姓名为"<<name<<"的员工."<<endl

return

}

}

void show_dep()

{

if (emps.size()==0)

{

cout<<"员工记录为空."<<endl

return

}

double isfind=0.00

double total_salary=0.00

string dep

cout<<"请输入要查询的部门名称:"<<endl

cin>>dep

cout<<"部门["<<dep<<"]的员工信息:"<<endl

cout<<"--------------------"<<endl

list<employee>::iterator iter

for(iter=emps.begin()iter!=emps.end()iter++)

{

if (iter->m_dep==dep)

{

isfind++

total_salary+=iter->m_salary

print(*iter)

cout<<endl

continue

}

}

cout<<"--------------------"<<endl

if (isfind==0)

{

cout<<"没有找到名称为["<<dep<<"]的部门."<<endl

}

else

{

cout<<"部门["<<dep<<"]工资统计:"<<endl

cout<<"工资总额:"<<total_salary<<endl

cout<<"平均工资:"<<total_salary/isfind<<endl

}

}

好了 我都运行过的

#include<stdio.h>

#include<string.h>

struct student

{

int id //学号

char name[10]//姓名

int brithday

char sub[10]

int banji

char adress[20]

int dom

}stud[3]

void save()

{

FILE *p

int i

if((p=fopen("aa","wb"))==NULL)

{

printf("cannot open file")

return

}

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

if(fwrite(&stud[i],sizeof(struct student),1,p)!=1)

printf("file write error\n")

fclose(p)

}

void message()//输学生的基本信息

{

int i

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

{ printf("请输入磨卜第%d位学生的信息,",i+1)

printf("请输瞎早穗入学号:")

scanf("%d",&stud[i].id)

printf("姓名:")

scanf("%s",stud[i].name)

printf("请输入生日:")

scanf("%d",&stud[i].brithday)

printf("请输入专业:")

scanf("%s",stud[i].sub)

printf("请输入班级:")

scanf("%d",&stud[i].banji)

printf("请输入地址:")

scanf("%s",stud[i].adress)

printf("请输入寝室号睁信:")

scanf("%d",&stud[i].dom)

}

}

void main()

{

message()

save()

int i,t=0,m=0,j=0

FILE *p

if((

p=fopen("aa","rb"))==NULL)

{

printf("cannot open file\n")

return

}

printf("*******************************************************\n")

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

{fread(&stud[i],sizeof(struct student),1,p)}

printf("请输入要查询的姓名:")

char a[10]

scanf("%s",&a)

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

if(strcmp(stud[i].name,a)==0)

printf("姓名%s、学号%d、出生年月%d、专业%s、班级%d、家庭地址%s、宿舍号码%d\n",stud[i].name,stud[i].id,stud[i].brithday,stud[i].sub,stud[i].banji,stud[i].adress,stud[i].dom)

}

Private Sub Form_Activate()

'1年期2.25%,2年期2.43%,3年期为2.70%,5年期为2.88%(不记复利)。今有X元,5年以后使用,共有如下6中存法:

Const x1 As Double = 0.0225, x2 As Double = 0.0243, x3 As Double = 0.027, x5 As Double = 0.0288

Dim x As Double

x = Val(InputBox(""))

Print "①存一次5年期,5年后到期的本息合计"ss(x, 5, x5)

Print "②存一次3年期,一次2年期,5年后到期的本息合计"ss(ss(x, 3, x3), 2, x2)

Print "③存郑蚂一次3年期,两次1年喊橡埋期,5年后到期的本息合计"ss(ss(ss(x, 3, x3), 1, x1), 1, x1)

Print "④存两次2年期,一次1年期,5年后到期的本息合计"ss(ss(ss(x, 2, x2), 2, x2), 1, x1)

Print "⑤存一次2年期,三次1年期,5年后到期的本如碰息合计"ss(ss(ss(ss(x, 2, x2), 1, x1), 1, x1), 1, x1)

Print "⑥存五次1年期,5年后到期的本息合计"ss(ss(ss(ss(ss(x, 1, x1), 1, x1), 1, x1), 1, x1), 1, x1)

End Sub

Private Function ss(ByVal a As Double, b As Integer, c As Double) As Double

ss = a + a * c * b

End Function

Private Sub Form_Load()

AutoRedraw = True

End Sub


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

原文地址: https://outofmemory.cn/yw/12427617.html

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

发表评论

登录后才能评论

评论列表(0条)

保存